Debug-порт в роутере

Наверное, эту статью нужно было сделать одной из первых, чтобы роутер был для нас не как черный ящик со входами и выходами, а как полноценная плата, на основе которой можно реализовывать свои идеи. Development board или starter kit - кому какое название приятней.

Раскрутим корпус и посмотрим на плату. Мой dlink выглядит вот так изнутри:

Собственно говоря, все современные платы выглядят примерно одинаково. Это проц, оперативка и флэшка. Ну и конечно обязательным на плате является разъем для подключения отладочной консоли. Как правило, этот разъем заведен прямо на уарт процессора. Эта платка не является исключением, причем производитель роутера посчитал нужным установить его.

Думаю, что через некоторое время производители роутеров выведут на колодки порты ввода-вывода и другие доступные интерфейсы, что, несомненно, еще более расширит сферу их применения.

Для подключения к уарту нужно использовать адаптер. Его легко можно сделать самому или купить у нас готовый.
Запускаем, к примеру, minicom на скорости 115200 и включаем питание роутера. Подключившись к debug-порту, уже чувствуешь себя полноценным хозяином этой платки.

Лог загрузки:

Decompressing...........done

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: Wed Mar 18 10:12:27 CST 2009 (leon@enzo)
Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena
Initializing Devices.
Boot partition size = 262144(0x40000)
et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 4.150.3.0
CPU type 0x29029: 240MHz
Total memory: 32768 KBytes

Total memory used by CFE: 0x80300000 - 0x803C0720 (788256)
Initialized Data: 0x80337730 - 0x8033AE50 (14112)
BSS Area: 0x8033AE50 - 0x8033C720 (6352)
Local Heap: 0x8033C720 - 0x803A0720 (409600)
Stack Area: 0x803A0720 - 0x803C0720 (131072)
Text (code) segment: 0x80300000 - 0x80337730 (227120)
Boot area (physical): 0x003C1000 - 0x00401000
Relocation Factor: I:00000000 - D:00000000

alpha bootcode ver 0.1.3
cmd = ifconfig eth0 -addr=192.168.0.1 -mask=255.255.255.0
We disable the arp for self.
We disable the arp for self.
Device eth0: hwaddr 1C-BD-B9-34-2A-F9, ipaddr 192.168.0.1, mask 255.255.255.0
gateway not set, nameserver not set
cmd = go;
cmd = load -raw -addr=0x803c0720 -max=0x3a0000 :
Loader:raw Filesys:tftp Dev:eth0 File:: Options:(null)
Loading: Failed.
Could not load :: Timeout occured
Dest=80001000, source =803c0720, filename=flash1.trx
cmd = boot -raw -z -addr=0x80001000 -max=0x3a0000 flash0.os:
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)
Loading: entry point=80001000
.. 4136 bytes read
Entry at 0x80001000
Closing network.
Starting program at 0x80001000
Linux version 2.6.36.1 (dima@dima-desktop) (gcc version 4.3.3 (GCC) ) #19 Sun Dec 5 17:42:53 MSK 2010
CPU revision is: 00029029 (Broadcom BCM3302)
ssb: Sonics Silicon Backplane found at address 0x18000000
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal 0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00002000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200

Адаптер для подключения к debug-порту