NETGEAR WNAP210
The WNAP210 is a b/g/n wireless access point, capable of running OpenWrt.
Version
PBC revision is marked as rev:3
Hardware Highlights
Version / Model | SoC | WiFi | Ethernet | Ram | Flash | LAN | USB | Serial | JTag |
---|---|---|---|---|---|---|---|---|---|
Unknown (maybe v1) | Atheros AR9132 CPU@400MHz | Atheros AR9103 | Atheros AR8021 | 32MiB | MX 25L6406EMI, 8MB | 1 | ? | Yes | Yes |
v2 | Atheros AR9132 CPU@400 MHz | <unknown> | Atheros AR8021 | 64MiB | MX 25L6406EMI, 16MB | 1 | No | Yes | Yes |
Serial console
The serial console connector (JP1), pinout: GND - TX - RX - VCC. Ground pin is near to flash chip. Serial setup is 115200 8N1.
Version 2 Pin ordering: P1: VCC (3.3V), P2: TX, P3: RX, P4: GND
LED table
GPIO | LED | Colour | Active |
---|---|---|---|
1 | Tick | Orange | High |
6 | WLAN | Blue | High |
LOGS
Bootloader is u-boot.
U-Boot 1.1.4-WNAP210-V2.2 (Mar 24 2009 - 18:08:52) AP83 (ar9100 with SPI flash) DRAM: 32 MB Found MXIC Flash. ID c22017 Flash: 8 MB In: serial Out: serial Err: serial Net: ag7100_enet_initialize... Fetching MAC Address from 0xbf7f1000 MAC_CFG1 0xf MAC_CFG2 0x7114 PHY Setting up... VSCXXX Found 0 unit 0:0 phy_addr: 1 id: 004dd04e PHY: Atheros AR8021 eth0: 10:0d:7f:45:43:80 eth0 up Manu data is valid! Enter SPACE to drop into boot loader: 0 ar7100> ar7100> bdinfo cpufreq = 200 MHz cpuinfo = AR9132 boot_params = 0x81F6BFA4 memstart = 0x80000000 memsize = 0x02000000 flashstart = 0xBF000000 flashsize = 0x00800000 flashoffset = 0x00037EDC ethaddr = 00:03:04:19:81:11 ip_addr = 192.168.0.236 baudrate = 115200 bps ar7100> ar7100> version U-Boot 1.1.4-WNAP210-V2.2 (Mar 24 2009 - 18:08:52) chiamgming@gmail.com ar7100> showmd ProductID = WNAP210 HWVer = 00:00:00:02 reginfo = 0 numofimages = -1 currimage = -1 basemac = 100D7F454380 maccnt0 = -1 maccnt1 = -1 maccnt2 = -1 maccnt3 = -1 serno = 22042A5D00CE7 cpufreq = 200 MHz cpuinfo = AR9132 boot_params = 0x81F6BFA4 memstart = 0x80000000 memsize = 0x02000000 flashstart = 0xBF000000 flashsize = 0x00800000 flashoffset = 0x00037EDC ethaddr = 00:03:04:19:81:11 ip_addr = 192.168.0.236 baudrate = 115200 bps ar7100> ar7100> imls Image at BF050000: Image Name: Linux Kernel Created: 2011-10-05 7:31:11 UTC Image Type: MIPS Linux Kernel Image (gzip compressed) Data Size: 917504 Bytes = 896 kB Load Address: 80060000 Entry Point: 80214000 Verifying Checksum ... OK ar7100> ar7100> iminfo ## Checking Image at 81000000 ... Bad Magic Number ar7100> fsinfo mtdparts variable not set, see 'help mtdparts' ar7100> flinfo Bank # 1: The hell do you want flinfo for?? ar7100> ar7100> coninfo List of available devices: serial 80000003 SIO stdin stdout stderr ar7100>
Default printenv
ar7100> printenv bootdelay=5 baudrate=115200 ethaddr=00:03:04:19:81:11 uboot_addr=0xbf000000 uboot_size=+0x40000 uboot_env_addr=0xbf040000 uboot_env_size=+0x10000 ap_config_addr=0xbf290000 ap_config_size=+0x10000 cvr_config_addr=0xbf2a0000 cvr_config_size=+0x10000 manu_addr=0xbf7e0000 manu_size=+0x10000 art_addr=0xbf7f0000 art_size=+0x10000 rootfs=burn uimagename=u-boot.bin erase_uimage=erase ${uboot_addr} ${uboot_size} erase_eimage=erase ${uboot_env_addr} ${uboot_env_size} erase_apimage=erase ${ap_config_addr} ${ap_config_size} erase_cvrimage=erase ${cvr_config_addr} ${cvr_config_size} erase_aimage=erase ${art_addr} ${art_size} erase_ckmimage=erase ${ckm_addr} ${ckm_size} erase_manuimage=erase ${manu_addr} ${manu_size} uimage=${download} ${memtmp_addr} ${uimagename};run erase_uimage;cp.b ${memtmp_addr} ${uboot_addr} ${filesize} apimage=${download} ${memtmp_addr} ap_user_config${USER};run erase_apimage;cp.b ${memtmp_addr} ${ap_config_addr} ${filesize} cvrimage=${download} ${memtmp_addr} cvr_user_config${USER};run erase_cvrimage;cp.b ${memtmp_addr} ${cvr_config_addr} ${filesize} aimage=${download} ${memtmp_addr} art_data_64k${USER};run erase_aimage;cp.b ${memtmp_addr} ${art_addr} ${filesize} manuimage=${download} ${memtmp_addr} manu_data_64k${USER};run erase_manuimage;cp.b ${memtmp_addr} ${manu_addr} ${filesize} clearenv=run erase_eimage producttest=memtest ram 1;memtest flash 1;porttest lan;porttest gpio ethact=eth0 kimagename=vmlinux.gz.uImage rimagename=rootfs.squashfs download=tftp memtmp_addr=0x80060000 kernel_size=+0x100000 kernel_addr=0xbf050000 rootfs_size=+0x610000 rootfs_addr=0xbf150000 clear_var=era 0xbf760000 +0x80000 serverip=192.168.0.101 ipaddr=192.168.0.236 bootargs=console=ttyS0,115200 rootfstype=squashfs root=31:03 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),1024k(vmlinux.gz.uImage),6208k(rootfs),512k(var),64k(manufacturing-data),64k(ART) erase_kimage=erase ${kernel_addr} ${kernel_size} erase_rimage=erase ${rootfs_addr} ${rootfs_size} kimage=${download} ${memtmp_addr} ${kimagename};run erase_kimage;cp.b ${memtmp_addr} ${kernel_addr} ${filesize} rimage=${download} ${memtmp_addr} ${rimagename};run erase_rimage;cp.b ${memtmp_addr} ${rootfs_addr} ${filesize} bootcmd=bootm 0xbf050000 flash_rootfs=run rimage flash_kernel=run kimage flash_all=run flash_kernel flash_rootfs clear_var stdin=serial stdout=serial stderr=serial Environment size: 2380/65532 bytes
Netgear firmware boot
ar7100> bootd ## Booting image at bf050000 ... Image Name: Linux Kernel Created: 2011-10-05 7:31:11 UTC Image Type: MIPS Linux Kernel Image (gzip compressed) Data Size: 917504 Bytes = 896 kB Load Address: 80060000 Entry Point: 80214000 Verifying Kernel Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel @80214000... Linux version 2.6.23-WNAP210_2.1.1 (root@build) (gcc version 4.2.4) #1 Wed Oct 5 12:52:10 IST 2011 flash_size passed from bootloader = 8 arg 1: console=ttyS0,115200 arg 2: rootfstype=squashfs arg 3: root=31:03 arg 4: init=/sbin/init arg 5: mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),1024k(vmlinux.gz.uImage),6208k(rootfs),512k(var),64k(manufacturing-data),64k(ART) arg 6: mem=32M CPU revision is: 00019374 Determined physical RAM map: memory: 02000000 @ 00000000 (usable) User-defined physical RAM map: memory: 02000000 @ 00000000 (usable) Built 1 zonelists in Zone order. Total pages: 8128 Kernel command line: console=ttyS0,115200 rootfstype=squashfs root=31:03 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),1024k(vmlinux.gz.uImage),6208k(rootfs),512k(var),64k(manufacturing-data),64k(ART) mem=32M Primary instruction cache 64kB, physically tagged, 4-way, linesize 32 bytes. Primary data cache 32kB, 4-way, linesize 32 bytes. Synthesized TLB refill handler (20 instructions). Synthesized TLB load handler fastpath (32 instructions). Synthesized TLB store handler fastpath (32 instructions). Synthesized TLB modify handler fastpath (31 instructions). Cache parity protection disabled PID hash table entries: 128 (order: 7, 512 bytes) Using 200.000 MHz high precision timer. console [ttyS0] enabled Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory: 30204k/32768k available (1433k kernel code, 2564k reserved, 307k data, 84k init, 0k highmem) Mount-cache hash table entries: 512 NET: Registered protocol family 16 NET: Registered protocol family 2 Time: MIPS clocksource has been installed. IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered AR7100 GPIOC major 0 squashfs: version 3.3 (2007/10/31) Phillip Lougher squashfs: LZMA suppport for slax.org by jro JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler deadline registered (default) Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing enabled serial8250: ttyS0 at MMIO 0x0 (irq = 19) is a 16550A serial8250.0: ttyS0 at MMIO 0x0 (irq = 19) is a 16550A 7 cmdlinepart partitions found on MTD device ar7100-nor0 Creating 7 MTD partitions on "ar7100-nor0": 0x00000000-0x00040000 : "u-boot" 0x00040000-0x00050000 : "u-boot-env" 0x00050000-0x00150000 : "vmlinux.gz.uImage" 0x00150000-0x00760000 : "rootfs" 0x00760000-0x007e0000 : "var" 0x007e0000-0x007f0000 : "manufacturing-data" 0x007f0000-0x00800000 : "ART" TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 VFS: Mounted root (squashfs filesystem) readonly. Freeing unused kernel memory: 84k freed Mounting etc to ramfs. [DONE] Mounting var to jffs2. [DONE] Checking SSH keys. [DONE] Checking for run file. [DONE] Starting System Logger. [DONE] Starting Kernel Logger. [DONE] Starting Panel LED. [DONE] Starting watchdog. [DONE] Starting Reset Detect. [DONE] Checking Manufac. data [DONE] Checking board file. [CREATED] Loading Ethernet module. [GENMAC] [DONE] Checking database. [DONE] Verifing checksum. [DONE] Loading Bridge module. sh: yes: unknown operand [DONE] Loading wlan modules. [DONE] Creating vap interface. [DONE] Creating wds interface. [DONE] Starting configd. [DONE] Starting web server. [DONE] Starting Translator... start-stop-daemon: cannot start /usr/bin/log_ro: No such file or directory [syslog] Starting Translator... [password] Starting Translator... [ssh] Starting Translator... [snmp] Starting Translator... [telnet] Starting Translator... [dns] Starting Translator... route: SIOCADDRT: Invalid argument [bridge_and_vlan_translator] Starting Translator... [hostapd_tr] Starting Translator... [timezone] Starting Translator... [ntp] Starting Translator... [nmbd_tr] Starting Translator... l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down l2_packet_receive - recvfrom: Network is down [http_redirect_tr] Starting Translator... [sc_radio] Sending ARPingARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) l2_packet_receive - recvfrom: Network is down ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) ARPING to 192.168.0.236 from 192.168.0.236 via brtrunk Sent 1 probe(s) (1 broadcast(s)) Received 0 reply (0 request(s), 0 broadcast(s)) System initilization is .. [DONE...] Welcome to SDK. Have a lot of fun... netgear454388 login:
Default user/psd is admin/password. (Login as root for linux shell access.)
Inspection
# cat /proc/mtd dev: size erasesize name mtd0: 00040000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00100000 00010000 "vmlinux.gz.uImage" mtd3: 00610000 00010000 "rootfs" mtd4: 00080000 00010000 "var" mtd5: 00010000 00010000 "manufacturing-data" mtd6: 00010000 00010000 "ART" # cat /proc/cpuinfo system type : Atheros AR9100 processor : 0 cpu model : MIPS 24K V7.4 BogoMIPS : 264.19 wait instruction : yes microsecond timers : yes tlb_entries : 16 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : mips16 VCED exceptions : not available VCEI exceptions : not available
U-Boot recovery mode
If the checksum check fails, u-boot enters tftp recovery mode. It will listen on IP 192.168.0.236 and accept new factory images via tftp (don't forget to set binary mode). Recovery mode is indicated by the power led lighting up briefly in orange, followed by about 1-second interval green blinking. This can be used to go back to the stock firmware, by deliberately erasing the checksum partition.
U-Boot 1.1.4-WNAP210-V2.2 (Mar 24 2009 - 18:08:52) AP83 (ar9100 with SPI flash) DRAM: 32 MB Found MXIC Flash. ID c22017 Flash: 8 MB In: serial Out: serial Err: serial Net: ag7100_enet_initialize... Fetching MAC Address from 0xbf7f1000 MAC_CFG1 0x7 MAC_CFG2 0x7114 PHY Setting up... VSCXXX Found 0 unit 0:0 phy_addr: 1 id: 004dd04e PHY: Atheros AR8021 eth0: 10:0d:7f:45:43:80 eth0 up Manu data is valid! Enter SPACE to drop into boot loader: 0 ## Booting image at bf050000 ... Bad Magic Number eth0 link down The Router is in TFTP Server Firmware Recovery mode NOW! Listening on Port : 69, IP Address: 192.168.0.236...
WIP WNAP 210
This is a work in progress. It is currently possible to compile OpenWrt onto the device and to get it to run, but there are still a few outstanding issues: https://github.com/rudihorn/openwrt-wnap210