четверг, 22 ноября 2012 г.

Прошивка Trendnet TEW-432BRP v.2.0. через UART

Знакомый принёс маршрутизатор Trendnet TEW-432BRP v.2.0. после неудачной прошивки. Попытки прошить его обычным способом не помогли. Решено было прошивать через UART, благо он там был.

Для прошивки мне понадобились: 
1. Переходник USB-UART на микросхеме CP2102 купленый в Китае.

2.  HyperTerminal или программа Putty.

3. Tftp-сервер я использовал:
Для Windows:
Tftpd32 версии tftpd32 standard edition (installer) (545 kB)
Для Linux:
Демон tftpd


4. Собственно сама прошивка скачанная с сайта http://trendnet.ru. При скачивании прошивки обязательно обратите внимание на версию firmware прошивки которую вы качаете, она должна совпадать с указанной на корпусе маршрутизатора.

Методика прошивки:
Подготовка:
Разбираем маршрутизатор. На плате видим разъём UART. Подключаемся к нему через переходник USB-UART. Подключем витую пару от компьютера на вход LAN1.

1. Запускаем HyperTerminal. На компе при этом должен быть прописан IP адрес 192.168.1.2
в HyperTerminal параметры:
Bit per second:38400
Data Bits:8
Parity: none
Stop Bits:1
Flow Control:None.

2. Включаем маршрутизатор в сеть и при появлении самой первой надписи в окошке HyperTerminal:
---RTL8186 at 2009.01.08-16:48+0800 version 1.4b [16bit](180MHz)

В моём случае было:

UART1 output test ok
Uart init
mfid=000000c2 devid=00002249
Found 1 x 2M flash memory

---RTL8186 at 2009.01.08-16:48+0800 version 1.4b [16bit](180MHz)
sys checksum error at 00020000!
sys checksum error at 00020000!
no sys signature at 00030000!
<RealTek>

жмем esc на компе и видим надпись:
<RealTek>
Теперь мы в загрузчике и можем загрузить в маршрутизатор новую прошивку.

3. Копируем файл с прошивкой  fw.bin на  c:\trendnet ( просто создаём папку trendnet на диске С в корне, и кладём в неё файл с прошивкой fw.bin ).

4. Нажимаем Пуск, Выполнить, cmd, OK - получаем окно командной строки windows xp, в котором вводим следующие команды:
cd c:\trendnet и жмём enter

5. Набираем : tftp -i 192.168.1.6 put fw.bin и жмём enter.
192.168.1.6 это не ошибка, именно такой адрес присваивает ему загрузчик микросхемы RTL8186.
На этом прошивка маршрутизатора закончена, он сам перезагрузится и к нему можно будет подключиться по адресу 192.168.10.1.

В заключение приведу лог сообщений в HyperTerminal:

UART1 output test ok
Uart init
mfid=000000c2 devid=00002249
Found 1 x 2M flash memory

---RTL8186 at 2009.01.08-16:48+0800 version 1.4b [16bit](180MHz)
sys checksum error at 00020000!
sys checksum error at 00020000!
no sys signature at 00030000!
**TFTP Client Upload, File Name: fw.bin
/
**TFTP Client Upload File Size = 0017063C Bytes at 80300000

Success!
<RealTek>
Default Setting upgrade.
checksum Ok !
burn Addr =0x00008000! srcAddr=0x80300000 len =0x00005715
.
Flash Write Successed!
<RealTek>
Current Setting upgrade.
checksum Ok !
burn Addr =0x00010000! srcAddr=0x80305715 len =0x00005715
.
Flash Write Successed!
<RealTek>
Linux kernel upgrade.
checksum Ok !
burn Addr =0x00020000! srcAddr=0x8030ae2a len =0x00165812
.......................
Flash Write Successed!
<RealTek>
reboot.......

UART1 output test ok
Uart init
mfid=000000c2 devid=00002249
Found 1 x 2M flash memory

---RTL8186 at 2009.01.08-16:48+0800 version 1.4b [16bit](180MHz)
Jump to image start=0x80800000...
decompressing kernel:
Uncompressing Linux... done, booting the kernel.
done decompressing kernel.
early printk enabled
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
Initial ramdisk at: 0x801ae000 (5017600 bytes)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/ram console=0 ramdisk_start=0 single
Calibrating delay loop... 178.99 BogoMIPS
Memory: 9316k/16384k available (1551k kernel code, 7068k reserved, 5000k data, 5
6k init, 0k highmem)
Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode-cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
check_wait... unavailable.
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Serial driver version 6.02 (2003-03-12) with no serial options enabled
ttyS00 at 0x00c3 (irq = 3) is a rtl_uart1
state->flags=00000000
HDLC line discipline: version $Revision: 1.1 $, maxframe=4096
N_HDLC line discipline registered.
Realtek GPIO Driver for Flash Reload Default
block: 64 slots per queue, batch=16
RAMDISK driver initialized: 16 RAM disks of 5000K size 1024 blocksize
SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).
CSLIP: code copyright 1989 Regents of the University of California.
PPP generic driver version 2.4.1
PPP MPPE Compression module registered
RealTek E-Flash System Driver. (C) 2002 RealTek Corp.
Found 1 x 2M Byte MXIC MX29LV160AB at 0xbe000000
RTL8185 driver version 1.14 (2008-02-15)
8186NIC Ethernet driver v0.1.0 (Jan 30, 2008)
eth0: RTL8186-NIC at 0xbd200000, 00:01:02:03:04:05, IRQ 4
eth1: RTL8186-NIC at 0xbd300000, 04:05:06:07:08:09, IRQ 5
Check MII:phy 2, reg 31
0x0000b0b0
Check MII:phy 2, reg 26
0x00000052
Asic.revision=0x00000000
Realtek FastPath v1.04
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
Linux IP multicast router 0.06 plus PIM-SM
ip_conntrack version 2.1 (128 buckets, 1024 max) - 316 bytes per conntrack
PPTP netfilter connection tracking: registered
PPTP netfilter NAT helper: registered
ip_tables: (C) 2000-2002 Netfilter core team
ipt_account 0.1.21 : Piotr Gasidlo <quaker@barbara.eu.org>, http://www.barbara.e
u.org/~quaker/ipt_account/
ipt_domain 0.0.3 : Platinum, http://platinum.cublog.cn/, and Arthur
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 4900 blocks [1 disk] into ram disk... done.
Freeing initrd memory: 4900k freed
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 56k freed
mount /proc file system ok!
serial console detected.  Disabling virtual terminals.
init started:  BusyBox v1.00-pre8 (2005.09.16-02:21+0000) multi-call binary
Initialize wlan0 interface
Setup BRIDGE interface
Setup bridge...
device eth0 entered promiscuous mode
eth0:phy is 8305
device wlan0 entered promiscuous mode
br0: port 2(wlan0) entering listening state
br0: port 1(eth0) entering listening state
br0: port 2(wlan0) entering learning state
br0: port 2(wlan0) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth0) entering learning state
br0: port 1(eth0) entering forwarding state
br0: topology change detected, propagating
Setup WAN interface
eth1:phy is 8305
Auto-Discovery (ver 1.01)

(none) login:


9 комментариев:

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

    ОтветитьУдалить
  2. Подскажите, пожалуйста. Имеется такой же самый роутер, но с другой проблемой - при включенном wlan перезагружается с периодичностью сек 5-10. Если удается отключить wlan, то такого не происходит. Поможет в этом случае какая-нибудь кастомная прошивка?

    ОтветитьУдалить
  3. Скорее всего нет, несите в сервис. На тренднет 5 лет гарантии

    ОтветитьУдалить
  4. Проблема скорее всего с TFTP клиентом, он не передаёт файл

    ОтветитьУдалить
  5. TEW-432BRP D1.2R
    Работал. Однажды находясь в веб-интерфейсе, его выключили. через 1,5 мес. включил - индикаторы Статус и лан загорелись, и всё...
    ИП не раздаёт, достучаться соотвественно по езернету никак. на резет не реагирует вообще. т.е. сколько не держал кнопку нажатой, статус даже не мигнул.
    на плате есть площадки как я подозреваю под юарт и жтаг.

    есть смысл мучать зверька? и где можно посмотреть распиновку контактов?

    ОтветитьУдалить
  6. Смысл помучить всегда есть, хотя-бы для опыта. Распиновка контактов по идее должна быть стандартной. Проверить можно при помощи мультиметра. Вначале вызвонить землю, потом при включённом роутере определить где контакт питания. TX и RX можно определить вольтметром или осциллографом. На ТХ должен присутствовать сигнал. В крайнем случае TX и RX можно определить методом научного тыка, правда в этом случае есть вероятность спалить порт.

    ОтветитьУдалить
  7. Подскажите пожалуйста где 1я нога?если плату держать индикаторами вправо,то 1я нога сверху?

    ОтветитьУдалить
  8. не могу подключиться через терминал к порту...пишет unable to open com 11. please check your port settings. настроки порта на компе выставил такие же как в статье...не понимаю как пробиться((((

    ОтветитьУдалить