Категорії
WRT

Восстановление роутера после неудачной прошивки

Иногда бывают ситуации, когда роутер прошивается неудачно. Причин тому может быть много: неправильная прошивка, сбой при прошивки, ошибка разработчиков прошивки и прочие. В любом случае выяснять это не имеет смысла, а лучше займёмся восстановлением прошивки роутера.

Тестовый стенд: Linksys WRT160NL, USB-кабель DKU-5 от телефонов nokia, ОС Windows XP

0) Предисловие.

Оказывается, OpenWRT можно запустить и в VirtualBox’e! О том, как это сделать, описано здесь http://habrahabr.ru/post/195592/

1) Подготовительные работы.

Первым делом нужно подготовить нужный кабель. Используйте кабель именно DKU-5, так как только с ним удалось добиться успеха. Остальные кабеля (COM, USB) не подошли. И так, вот распайка кабеля: 

Нам нужны RXD, TX и GND. Аккуратно к ним припаять кабеля которые мы присоединим (а можно и припаять) к соответствующим на роутере:

В моём случае попался китайский кабель DKU-5 в котором были перепутаны GND и RX. В любом случае попробуйте поэксперементировать.

Если кабель подключён верно, то при запуске вы увидите вполне читаемый вывод о процессе загрузки роутера. Если же нет – вы либо ничего не увидите (перепутан RX и TX; даже если вы подключили правильно – попробуйте поменять местами) либо увидите мусор (значит либо кабель плохой, либо перепутаны RX/TX/GND или другие контакты).

Ещё нужно будет установить драйвера на этот USB кабель. Найти их можно по ID устройства на сайте devid.info. Замечу сразу, что драйвера есть только для WindowsXP. После удачной установки, наш кабель будет использовать порт COMX. У меня это COM3 (посмотреть можно в Списке оборудования)

2) Подготовка к подключению.

Для подключения используем любую программу эмулирующую подключение по терминалу: Putty, HyperTerminal (идёт с поставке Windows XP).

Для Putty используем такие параметры:

скорость: 115200
порт: COM3

Для HyperTerminal:

скорость: 115200
порт: COM3
биты данных: 8
чётность: нет
стоповые биты: 1
управление потоком: нет

3) Подключение.

После включения роутера процесс загрузки будет выглядеть так:

U-Boot 1.1.6 (Apr 14 2010 - 14:02:36)
DRAM:  ar7100_ddr_initial_config(237) enter!
ar7100_ddr_initial_config(269) exit!
U-Boot 1.1.6 (Apr 14 2010 - 14:02:36)
AP81 (ar7100) U-boot
sri
32 MB
WRT160NL u-boot version: 1.0.0
Top of RAM usable for U-Boot at: 82000000
Reserving 279k for U-Boot at: 81fb8000
Reserving 192k for malloc() at: 81f88000
Reserving 44 Bytes for Board Info at: 81f87fd4
Reserving 36 Bytes for Global Data at: 81f87fb0
Reserving 128k for boot params() at: 81f67fb0
Stack Pointer at: 81f67f98
Now running in RAM - U-Boot at: 81fb8000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash:  8 MB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Net:   ag7100_enet_initialize...
ag7100 get ethaddr for device eth0
Fetching MAC Address from 0x81feb1e0
--------***** Get the RTL8306SD Manufactory ID=379c *****-------
Reg6: speed=0 nway=1 duplex=0
Reg5: speed=0 nway=0 duplex=0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0 a5=0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
eth0: c0:c1:c0:dd:12:fd
eth0 up
eth0
### main_loop entered: bootdelay=1
Hit any key to stop autoboot:  1  0

и когда увидите последнюю строку – нажмите enter, этим вы прервёте дальнейшую загрузку и ввойдёте в режим управление роутера.

Теперь вводим такую строку:

ar7100> upgrade code.bin
check link duplex:Full/speed:100
dup 1 speed 100
Tftpd start listening on port[69]!
Load address: 0×80060000

Теперь возьмите прошивку и переименуйте её в code.bin. Далее соедините патчкордом копмьютер и роутер, назначив адрес компьютеру 192.168.1.[2-254]. Далее на компьютере выполните такую команду:

C:\tmp> tftp -i 192.168.1.1 put code.bin

Для линукс пользователей

tftp -m binary 192.168.1.1 69
tftp> put code.bin

Процесс прошивки должен завершиться таким выводом:

Receiving firmware [code.bin] from [192.168.1.10]
Write File : CODE.BIN

После этого загружайте роутер

ar7100 > go

Если всё прошло успешно – роутер загрузится.

4) Возможные проблемы.

При использовании оригинальной прошивки, проблем не наблюдалось. Но мне нужна была прошика OpenWRT. В итоге я перепробовал все доступные прошивки и во всех выскакивала ошибка:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Решение нашлось такое: использовать прошивку из trunk-ветки (http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-wrt160nl-squashfs-factory.bin), выпущенной за 2 дня до этого.

Теперь всё работает, за исключением того, что по дефолту не было Web интерфейса. Установка довольно простая:

– обновляем список доступных пакетов

#opkg update

– устанавливаем luci

#opkg install luci

– настраиваем web-сервер

#/etc/init.d/uhttpd enable
#/etc/init.d/uhttpd start

33 коментарі “Восстановление роутера после неудачной прошивки”

Да. И не только 160, но и 320 модели и много других, так как распайка у них одинаковая.

Что-то не врубился.
Открываем в кабеле (там где USB) чтоб увидеть цвета, а припеваем к роутеру другой конец кабеля? Верно? А usb в комп.
или нет?

1. Что-то Вы путаете. Речь идет о dku-5 (в статье именно он указан)
Так какой “специальный”
2. Ещё нужно будет установить драйвера на этот USB кабель
значит все-аки usb в комп?
3. Для чего Вы распаяли (на рисунке) сторону USB если нужно распаивать противоположную?

Нет, имелось ввиду для этого “Открываем в кабеле (там где USB) чтоб увидеть цвета”. П3 – какую противоположную? Не вводите в заблуждение ни меня ни себя. Можете распаивать любую из сторон, главное что бы вы поняли, где какой контакт.

Если честно, не скажу, я пробовал обычный COM-USB, но не заработало, поэтому не стал экспериментировать дальше и взял сразу DKU-5

Подскажите пожалуйста, куда положить файл прошивки? просто на диск С:?
Обновлял Tenda N3 и запорол… походу не ту прошивку взял:(
Win 7 пишет “неопознаная сеть” по адресам веб интерфейса не заходит….

Без разницы, главное указать полный путь к ней, когда будете прошивать.

Спасиба за ответ!
Всё разрешилось без программатора, как и предполагал что залил прошивку от точки доступа (Tenda A3), нашёл её адрес вебинтефейса(192.168.0.254), прописал- но сразу не зашёл, прописал подходящий адрес метевой карты- и всё получилось!!! Зашел в меню обновления прошивки, прописал путь к зараннее скачаному файлу для роутера(уже перепроверил) и обновил!
Всё заработало, точка доступа стала опять роутером:)

для тех у кого цвета в DKU 5 красный зеленый коричневый и еле розовый
gnd -зеленый
rx – коричневый
tx- еле розовый

Все делаю так как у вас но не могу прервать загрузку все клавиши пережал ни какого эффекта
U-Boot 1.1.6 (Apr 14 2010 – 14:02:36)

DRAM: ar7100_ddr_initial_config(237) enter!
ar7100_ddr_initial_config(269) exit!

U-Boot 1.1.6 (Apr 14 2010 – 14:02:36)

AP81 (ar7100) U-boot
sri
32 MB
WRT160NL u-boot version: 1.0.0
Top of RAM usable for U-Boot at: 82000000
Reserving 279k for U-Boot at: 81fb8000
Reserving 192k for malloc() at: 81f88000
Reserving 44 Bytes for Board Info at: 81f87fd4
Reserving 36 Bytes for Global Data at: 81f87fb0
Reserving 128k for boot params() at: 81f67fb0
Stack Pointer at: 81f67f98
Now running in RAM – U-Boot at: 81fb8000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
*** Warning – bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: ag7100_enet_initialize…
ag7100 get ethaddr for device eth0
Fetching MAC Address from 0x81feb1e0

——–***** Get the RTL8306SD Manufactory ID=379c *****——-
Reg6: speed=0 nway=1 duplex=0
Reg5: speed=0 nway=0 duplex=0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0 a5=0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
Reg1: a1=7fd9 a2=30e0 a3=15ac a4=30e0
eth0: 48:f8:b3:25:76:ee
eth0 up
eth0
### main_loop entered: bootdelay=1

Hit any key to stop autoboot: 1 0
## Booting WRT160NL …

и потом дальше грузиться хотя должно остановиться на этом

может вас клиент для COM-порта вообще не воспринимает нажатие клавиш?

Воспринимает нажатие путем замыкания Тх и Rх в терминале печатаются символы которые нажимаю на клавиатуре. Спаял уже 4 кабеля рабочих на разных микросхемах, + 1 на макетке собрал. Ну не могу остановить загрузку . пробовал на ХР на 7 на разных платформах и на 32 и на 64. Идет дальше и все

Hit any key to stop autoboot: 0
## Booting WRT160NL …
Application code length 0x004b0000
CRC OK

Если найдёте решение, поделитесь, самому интересно.

FSB v0.06 PLL w ln p08 zi

Solos 461x PP boot v1.5

SDRAM size = 0x1000000
Processor clock speed 264.0MHz
Finding flashfs partition…done.

Uncompress/Self extract image:
UnComp.Size 0x4f8790 Comp.Size 0x147090

LZMA 4.05
00CK1D4EA676H
Quantum v1.01
Phys region /region/stung-sdram start @ 0xe00000, end @ 0x1000000, alignment 0x100000
Allocatable memory starts @ 0x616500, end @ 0xe00000
No, or invalid, configuration information in EEPROM – trying FLASH
Valid configuration (size 256)
TENDA version V0.0.2_TD_EN_NEPAL_110722 (18th May 2009)
BSP: V1.1.02
CSP: Solos 461x CSP v1.0
Copyright (c) 2004 Conexant Systems Ltd.
Entering crypto process.
SNMP Research EMANATE/Lite Agent Version 16.1.0.25
Copyright 1989-2004 SNMP Research, Inc.
Invalid main partition
msc16_load_file returned 1

TENDA w 548d Никак немогу прошить, помогите

U-Boot 1.1.5 (Apr 6 2009 – 13:54:11)

DRAM: ar7100_ddr_initial_config(237) enter!
ar7100_ddr_initial_config(269) exit!

U-Boot 1.1.5 (Apr 6 2009 – 13:54:11)

AP81 (ar7100) U-boot
sri
32 MB
WRT160NL u-boot version: 1.0.0
Top of RAM usable for U-Boot at: 82000000
Reserving 277k for U-Boot at: 81fb8000
Reserving 192k for malloc() at: 81f88000
Reserving 44 Bytes for Board Info at: 81f87fd4
Reserving 36 Bytes for Global Data at: 81f87fb0
Reserving 128k for boot params() at: 81f67fb0
Stack Pointer at: 81f67f98
Now running in RAM – U-Boot at: 81fb8000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
*** Warning – bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: ag7100_enet_initialize…
На этом моменте уходит в ребут… что бы это могло быть?

Судя по строке Reserving 277k for U-Boot at: 81fb8000 у меня бит юбут. Во время хард ресета роутера произошло отключение света, видимо причина в этом. Возможно ли в домашних условиях его перезалить? И если да то можно ссылку на инструкцию?

Прекрасное описание, все сделал. В результате роутер восстановлен!

Прошивка дд врт не обновляется через веб интерфейс.
Полагаю что нужно принудительно её установить через tftp
Я в этом деле новичок, если кто шарит, подскажите, пожалуйста. И напишите на почту dipersona@ya.ru
Wrt160nl

После ввода команды ar7100> upgrade code.bin и втыания кабеля в порт роутера. В терминале появляется checksum bad. Соответсвенно дальше ввести ничего не удаётся.юрий

Значит данная прошивка не подходит для вашего роутера. Отличия могут быть даже в ревизии прошивок.

Залишити коментар до Влад Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff