Главная » Статьи » Мои статьи

Восстановление прошивки DIR-300

Источники

http://forum.dlink.ru/viewtopic.php?f=8&t=158343&p=900210#p900210

http://www.adm-blog.ru/view/vosstanovlenie_routera_posle_neudachnoj_proshivki.html

http://www.dd-wrt.com/phpBB2/viewtopic.php?t=43229

 

Роутер был прошит под билайн и не хотел получать IP по DHCP.
H/W ver: B2 F/W ver: 2.04
P/N: RIR300EEU….B2E
H/W ver: B2 F/W ver: 2.04
После неудачной перепрошивки на прошивку от DIR620 получился почти дохлик. Работал как свитч.
Спустя долгие и мучительные попытки пришел к выводу, что для перепрошивки мне требуется UART кабель. Все мучения были отложены на потом.
Заказал кабель.

http://www.ebay.com
(стоил около 60р по старому курсу, название USB-To-RS232-TTL-UART-PL2303H)

Мои действия при прошивке ничем не отличаются от метода UART+TFTP, но есть некие тонкости, которые хотелось бы отметить.

1) Разобрать роутер и найти на его плате 4 контакта, расположенных в один ряд, то есть 1_2_3_ _4. Именно так, один как бы пропущен. Это сделано для того чтобы не перепутать последовательность. Надо сказать, что это не контакты, а запаянные отверстия, в которые горячим припоем легко вставить проводок.
[Распиновка
1 - Tx
2 - Gnd
3 - +3.3V(Vcc)
4 - Rx]

2) Припаять к этим 4 контактам как бы ножки, как на мат плате компьютера(джамперы). То есть вставить в эти 4 контакта по 1 проводку.

3) Установить плату роутера обратно в корпус и подключить USB-to-UART к нашим джамперам.
[Распиновка по цветам проводов на кабеле.
Black cable-----GND
Green cable-----TXD
White cable-----RXD
Red cable —-----VCC]

4) Установить драйвера на микросему, на которой работает наш кабель UART. Они предоставляются производителем бесплатно.

http://www.prolific.com.tw/

 - сайт производителя, но так как он не доступен на момент написания статьи,
то выложил сюда

https://yadi.sk/d/2ieUTT0Sgg9wF

5) Настроить на сетевой карте IP адрес 192.168.0.2 маску 255.255.255.0 шлюз 192.168.0.1

6) Запустить программу Terminal v1.9b by Br@y ++

http://easyelectronics.ru/files/soft/Terminal.exe

[Почему не Putty или Kitty? Потому, что не коннектится через них, при настройке через соединение типа Serial и выставлении битрейта 57600 при нажатии на кнопку Open или Start ничего не происходит]

7) Запустить программу WinAgents TFTP Server Manager. Положить в папку C:\ProgramData\WinAgents\TFTP Server 4\TFTPRoot файл прошивки test.bin.

http://www.winagents.ru/downloads/tftpsetup.exe

[И тут есть, что обсудить. Во-первых, с tftpd32 у меня вообще не заладилось при запуске прошивки писал bad checksum. Не верится мне, что это в ftp-сервере, но все же описан метод, который работает в моих условиях на моем ПК.
Во-вторых, имя файла прошивки test.bin является именем по-умолчанию, и что бы я ни вводил в строку:
Input Linux Kernel filename () ==:
он мне говорил:
*** Warning: no boot file name; using 'test.bin'
Но от нехватки кривых рук я не страдаю. У меня их две, далеко не прямые.]

8) Подключить Ethernet кабель в роутер в LAN1

9) НЕ подключая питание роутера!, вставить в USB-порт USB от нашего UART кабеля. При этом Rx, Tx, Gnd, Vcc уже должны быть на плате, не обращая внимание на индикацию роутера.
В Terminal выбрать наш СOM-порт(узнать в диспетчере устройств где сидит микросхема PL2303) и нажать на кнопку Connect слева сверху. Тут же на экране в окне Тerminal должны начать появляться символы бесконечным циклом:
<0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0>
[Важный момент: у меня эти значки появлялись лишь когда я держался за кабель в месте контактов на плате, ну или придерживал его рукой и неважно в каком месте. Вероятен или брак, или моя не пропайка.]

10) Набрать в программе Terminal цифру 2 и быть готовым нажать Enter. Включить роутер в розетку(или вставить штеккер питания в роутер), тут же нажать Enter на клавиатуре(так мы отправим сообщение в Terminal на микросхему).
Появится текст:
U-Boot 1.1.3 (Feb 24 2011 - 11:12:27)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb0000
config usb..*** Error: D+/D- is 1/1, config usb failed.
..*** Error: D+/D- is 1/1, config usb failed.
Set info->start[0]=BF000000
flash_protect ON: from 0xBF000000 to 0xBF01E727
flash_protect ON: from 0xBF030000 to 0xBF030FFF
============================================
Ralink UBoot Version: 3.5.2.0
------------------------------------------—
ASIC 3052_MP2 (Port5<->None)
DRAM component: 256 Mbits SDR
DRAM bus: 16 bit
Total memory: 32 MBytes
Flash component: NOR Flash
Date:Feb 24 2011 Time:11:12:27
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384
##### The CPU freq = 320 MHZ ####
estimate memory size =32 Mbytes
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
You choosed 2
0
2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)

11) Жмем Y и отправляем, нажав Enter.
Появится текст:
Please Input new ones /or Ctrl-C to discard
Input device IP (192.168.0.1) ==:192.168.0.1

12) Если такой IP адрес роутера нас устраивает, то отправляем Enter.
Если нет, то много раз нажимаем в нижнем сером окне Terminal кнопку Backspace, пока не перестанут стираться символы в верхнем окне программы. Затем вводим в серое текстовое
поле желаемый IP адрес роутера, он будет появляться в верхнем поле. Жмем Enter.
Появится текст:
Input server IP (10.10.10.3) ==:10.10.10.3

13) Меня такой IP сервера не устроил и я указал адрес ПК прописанный на сетевой карте ранее, то есть 192.168.0.2
Появится текст:
Input Linux Kernel filename () ==:

14) Указать файл прошивки, который лежит в папке ftp сервера. У меня сработало с именем test.bin. Советую его попробовать.
Появится текст:
netboot_common, argc= 3
NetTxPacket = 0x81FE6A00
KSEG1ADDR(NetTxPacket) = 0xA1FE6A00
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
Header Payload scatter function is Disable !!
ETH_STATE_ACTIVE!!
*** Warning: no boot file name; using 'test.bin'
Using Eth0 (10/100-M) device
TFTP from server 192.168.0.2; our IP address is 192.168.0.1
Filename 'test.bin'.

TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
checksum bad
Got ARP REQUEST, return our IP
checksum bad
checksum bad
checksum bad
checksum bad
Got ARP REQUEST, return our IP
checksum bad

ArpTimeoutCheck
Got ARP REPLY, set server/gtwy eth addr (c8:60:00:54:1d:3c)
Got it

TFTP error: 'File not found.' (1)
Starting again

Trying Eth0 (10/100-M)

ETH_STATE_ACTIVE!!
Got ARP REQUEST, return our IP
*** Warning: no boot file name; using 'test.bin'
Using Eth0 (10/100-M) device
TFTP from server 192.168.0.2; our IP address is 192.168.0.1
Filename 'test.bin'.

TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: Got ARP REPLY, set server/gtwy eth addr (c8:60:00:54:1d:3c)
Got it

TFTP error: 'File not found.' (1)
Starting again

Trying Eth0 (10/100-M)

ETH_STATE_ACTIVE!!
*** Warning: no boot file name; using 'test.bin'
Using Eth0 (10/100-M) device
TFTP from server 192.168.0.2; our IP address is 192.168.0.1
Filename 'test.bin'.

TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: Got ARP REPLY, set server/gtwy eth addr (c8:60:00:54:1d:3c)
Got it
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################################################################Got ARP

REQUEST, return our IP
#
#################################################################
##############################
done
Bytes transferred = 3477345 (350f61 hex)
NetBootFileXferSize= 00350f61
Erase linux kernel block !!
From 0xBF050000 To 0xBF3AFFFF

[тут большой блок логов терминала]

done
pppoe_pass: Disabled.
ipv6_pass: Disabled
service zebra restart
service ripd restart
[ ! -f /etc/backup/nvram_backup.dat ] && (sleep 20 && fs backup_nvram && fs save) &
Store settings to backup file....
crc = 7ed0094d
Save curent date and current time to rwfs
Compress config files
tar: removing leading '/' from member names
Write RW-FS to flash (92kB of 192kB)
Unlocking RW-FS ...
Writing from /tmp/tgzfs to RW-FS ...
Config saved. OK.

Это прошивка неоригинальная, а Wive-RTNL. Но самое главное, что она работает.
Оф страница:
http://wive-ng.sourceforge.net/

Оттуда можно перейти к скачке:
http://sourceforge.net/projects/wive-ng/files/wive-ng-rtnl/Wive_WR-150N-RT3050-1T1R.5.1.10.RU.29042015.bin.zip/download

нас интересует:
Wive_WR-150N-RT3050-.........
так как чип у нашего dir-300 именно 3050

Получилось перепрошить раза с 15-18. Может быть, оно того и не стоит.

Также столкнулся с проблемой, что после того, как мы ввели имя файла прошивки, появлялись буквы Т Т Т Т Т Т.
Однако этого не появлялось, когда я поменял tftpd32 на WinAgents TFTP Server Manager. Хотя, может, это - совпадение.

Категория: Мои статьи | Добавил: iamsimakov (2015-05-17)
Просмотров: 9828 | Комментарии: 5 | Теги: прошивка, wive-ng, dir-300 | Рейтинг: 5.0/1
Всего комментариев: 5
avatar
0
1 iamsimakov • 2:12 AM, 2017-11-04
тот кто в теме и пробовал отпишите пожалуйста работал ли для вас данный метод? какие проблемы и трудногсти привели к этой статье?
avatar
0
2 pjatruha • 10:43 PM, 2020-11-06
У меня не получилось залить прошивку на мой DIR-300 B1 через TFTP сервер. Я залил ее непосредственно через адаптер USB-UART. Но вот как ее дальше сохранить в память роутера не знаю. Вот тут я подробно все описал :https://4pda.ru/forum/index.php?s=&showtopic=420109&view=findpost&p=101410134
avatar
0
3 iamsimakov • 11:36 AM, 2020-12-15
Добрый день, вроде бы ваш последний комментарий:
> Flash это S29GL032N Так как же шить?

в моем случае не могу точно сказать, что именно прошивалось, но вероятно, записалась постоянная память роутера

Расскажите, смогли прошить?
Извиняюсь, за столь поздний комментарий
avatar
1
4 pjatruha • 4:03 PM, 2020-12-15
Добрый день.

Да, получилось оживить роутер через TFTP сервер. Правда потом я продолжил эксперименты(попытался залить прошивку исключительно через UART)  и удалил бут со флеш. Теперь хочу залить дамп на флеш через программатор, но пока нет на это время. Если все получится, то планирую продолжить эксперименты...
avatar
0
5 iamsimakov • 11:43 AM, 2020-12-16
С программатором дело не имел, могу пожелать только удачи.
avatar