Hacking Viasat branded version of Netgear WN602 v2 wireless bridge

Viasat WN602 v2
Viasat WN602 v2

The Viaplay package of my satellite receiver contained two Netgear WN602 v2 wireless network bridges to connect the satellite box to my network. These are a Viasat branded version with custom software for easy setup. To get the wireless bridge working I just had to connect the network cables, power them up and press the WPS setup button.

My house will soon get a fiber internet connection, to prepare for that I’m installing a wired network instead in the house and these boxes became superfluous. Instead I was thinking of using these as access points to extend my wireless network. This should be possible with the original Netgear firmware, but the Viasat firmware did not expose any interface for changing settings or update firmware.

Opening up the device i found a pin header with 4 pins, and i know these units often expose a TTL-serial port. Pin #1 is marked with a white dot and I could measure 3.3 V between pin 1 & 4, and made the assumption that pin 2 & 3 was the Rx & Tx pins. Using an FTDI-based serial adapter with 3,3V TTL levels I detected by trial and error that I could get a console bye connecting the adapter Rx to pin 2 (Tx) and the adapter Tx to pin 3 (Rx). The communication settings should be 115200 baud, 8 databits, no parity and one stop bit, otherwise you would just receive garbage.

Serial port on PCB
The serial port is accessible on the PCB. Pinout is:
1. 3.3 V
2. Tx
3. Rx
4. GND

The console access was not very helpful since i needed the root password to perform anything useful, this password was most likely kept secret by Viasat. Directly after power up the bootloader, U-Boot, instead called the router WRN612, which seemed very similar. Some googling verified that the WN602 essentially is a WNR612 with the WAN port removed. U-Boot also prompted for a key-press together with a down counter to abort the normal boot and enter a command prompt for the bootloader:

U-Boot
U-Boot

Luckily U-Boot is rather well documented, from here, loading a new firmware should be easy.

My first choice would have been to install dd-wrt instead which is an open source firmware for routers. Sadly dd-wrt had no support for neither WN602 nor WNR612, the D-Link DIR-601 A1 would perhaps work since it is based on the exact same chips, and these units are usually very similar to the chipset manufacturer reference design. The main processor in these are an Atheros AR7240 and the wireles network chip is an Atheros  AR9285. I decided to try OpenWRT instead, which is a similar project that had an excellent wiki entry for WNR612 on which most of this guide is based.

To flash the router with Open WRT I did like this:

  1. Connect a serial console to the hardware serial port described above. I used a FTDI based USB to Serial adapter from Sparkfun together with PuTTY as a terminal application. Be sure not to connect the 3,3 V pin, GND, Rx and Tx is enough. Connecting the power pin could damage the router, serial adapter and/or your USB-port
  2. Power up the router and be ready to press the “any key” when the bootloader asks for it.
  3. When the boot have been interrupted and you are in the boootloader console enter:

    to disable flash write protection, and then:

    to activate a TFTP server waiting for firmware upload
  4. Enter a static IP address from the 192.168.1.0/24 series on your computer and connect it to one of the network ports on the device.
  5. Use a TFTP client on your computer to upload the firmware to address 192.168.1.1, i used TFTP Utility to upload the file named openwrt-ar71xx-generic-wnr612v2-squashfs-factory.img from the openwrt firmware repository.

    TFTP Util
    TFTP Util

DONE!

Firmware flashed successfully
Firmware flashed successfully

Now I can use both wireless bridge devices as wireless access points instead of putting them on a shelf somewhere and forget about them.

14 thoughts on “Hacking Viasat branded version of Netgear WN602 v2 wireless bridge”

  1. Thanks for your guide.
    I got 4 of this Viasat WN602v2, and I have trying your hack and it works for me, on all my 4 WN602v2.

    But I want more hack’s of this WN602v2 with OpenWrt.
    Ex. read serial-ttl port for ex. temperatur over Wifi/LAN.
    But I’am new with Linux, so it will take some time for me to do.

    Thanks

    1. Great to hear that my guide could be helpful.

      It should be possible to redirect terminal to another serial port. In your output above you have the line:
      “[ 0.000000] Kernel command line: board=WNR612V2 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,3712k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd”

      Thats probably where your terminal output is set to ttyS0 (the name of your ttl serial port), probably originating from an init file somewhere. make sure you have SSH-access before doing this since you will loose terminal access from your serial port.

      I think your best bet is to ask around on the OpenWRT forums, there’s most likely someone there who has done it before.

      1. Hello my name is Stanislav. I read your guide and tried to do the same but I do not work when loading a keyboard program Puttu and the router continues to boot by itself; can I have a not so I do??

        1. Make sure that both your Rx and Tx lines are connected correctly. If you connect only the Tx and not the Rx you will se the output from the router, but cannot send a key-press back to the router.

  2. I got f**** 1 of 4 of my WN602v2 when upload systemupgrade.bin

    How to get it work??

    I got this on console when boot:

    U-Boot 1.1.4 (WNR612 400 MHz, V0.4, Dec 21 2009 – 15:38:14)

    DRAM:
    sri
    #### TAP VALUE 1 = 8, 2 = 8
    32 MB
    Top of RAM usable for U-Boot at: 82000000
    Reserving 269k for U-Boot at: 81fbc000
    Reserving 192k for malloc() at: 81f8c000
    Reserving 44 Bytes for Board Info at: 81f8bfd4
    Reserving 36 Bytes for Global Data at: 81f8bfb0
    Reserving 128k for boot params() at: 81f6bfb0
    Stack Pointer at: 81f6bf98
    Now running in RAM – U-Boot at: 81fbc000
    id read 0x100000ff
    flash size 4194304, sector count = 64
    Flash: 4 MB
    In: serial
    Out: serial
    Err: serial
    Net: ag7240_enet_initialize…
    No valid address in Flash. Using fixed address
    No valid address in Flash. Using fixed address
    : cfg1 0xf cfg2 0x7014
    eth0: 00:03:7f:09:0b:ad
    eth0 up
    : cfg1 0xf cfg2 0x7214
    eth1: 00:03:7f:09:0b:ad
    ATHRS26: resetting s26
    ATHRS26: s26 reset done
    eth1 up
    eth0, eth1
    Hit any key to stop autoboot: 0
    Trying eth1
    dup 1 speed 1000

    Client starts…[Listening] for ADVERTISE…TTT
    Retry count exceeded; boot the image as usual

    nmrp server is stopped or failed !
    Verifying Checksum … OK
    ### SQUASHFS loading ‘image/uImage’ to 0x80800000
    ### SQUASHFS load complete: 1175776 bytes loaded to 0x80800000
    ## Booting image at 80800000 …
    Image Name: MIPS OpenWrt Linux-3.14.30
    Created: 2015-02-07 20:26:57 UTC
    Image Type: MIPS Linux Kernel Image (lzma compressed)
    Data Size: 1175712 Bytes = 1.1 MB
    Load Address: 80060000
    Entry Point: 80060000
    Verifying Checksum … OK
    Uncompressing Kernel Image … OK
    No initrd
    ## Transferring control to Linux (at address 80060000) …
    ## Giving linux memsize in bytes, 33554432

    Starting kernel …

    [ 0.000000] Linux version 3.14.30 (openwrt@gb-11) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r44296) ) #1 Sat Feb 7 20:23:22 UTC 2015
    [ 0.000000] bootconsole [early0] enabled
    [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
    [ 0.000000] SoC: Atheros AR7240 rev 2
    [ 0.000000] Determined physical RAM map:
    [ 0.000000] memory: 02000000 @ 00000000 (usable)
    [ 0.000000] Initrd not found or empty – disabling initrd
    [ 0.000000] Zone ranges:
    [ 0.000000] Normal [mem 0x00000000-0x01ffffff]
    [ 0.000000] Movable zone start for each node
    [ 0.000000] Early memory node ranges
    [ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
    [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
    [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
    [ 0.000000] Kernel command line: board=WNR612V2 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,3712k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
    [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
    [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Writing ErrCtl register=00000000
    [ 0.000000] Readback ErrCtl register=00000000
    [ 0.000000] Memory: 28456K/32768K available (2520K kernel code, 124K rwdata, 520K rodata, 220K init, 191K bss, 4312K reserved)
    [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] NR_IRQS:51
    [ 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:5.000MHz
    [ 0.000000] Calibrating delay loop… 265.42 BogoMIPS (lpj=1327104)
    [ 0.080000] pid_max: default: 32768 minimum: 301
    [ 0.080000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.090000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.100000] NET: Registered protocol family 16
    [ 0.110000] MIPS: machine is NETGEAR WNR612 V2
    [ 0.550000] registering PCI controller with io_map_base unset
    [ 0.560000] bio: create slab at 0
    [ 0.570000] PCI host bridge to bus 0000:00
    [ 0.570000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
    [ 0.580000] pci_bus 0000:00: root bus resource [io 0x0000]
    [ 0.580000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
    [ 0.590000] pci 0000:00:00.0: fixup device configuration
    [ 0.590000] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1000ffff 64bit]
    [ 0.600000] pci 0000:00:00.0: using irq 40 for pin 1
    [ 0.600000] Switched to clocksource MIPS
    [ 0.610000] NET: Registered protocol family 2
    [ 0.610000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.620000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.620000] TCP: Hash tables configured (established 1024 bind 1024)
    [ 0.630000] TCP: reno registered
    [ 0.630000] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.640000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.640000] NET: Registered protocol family 1
    [ 0.650000] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.680000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.690000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
    [ 0.700000] msgmni has been set to 55
    [ 0.700000] io scheduler noop registered
    [ 0.710000] io scheduler deadline registered (default)
    [ 0.710000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
    [ 0.750000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 12500000) is a 16550A
    [ 0.750000] console [ttyS0] enabled
    [ 0.750000] console [ttyS0] enabled
    [ 0.760000] bootconsole [early0] disabled
    [ 0.760000] bootconsole [ea
    ^@[ 0.000000] Kernel command line: board=WNR612V2 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,3712k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
    [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
    [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Writing ErrCtl register=00000000
    [ 0.000000] Readback ErrCtl register=00000000
    [ 0.000000] Memory: 28456K/32768K available (2520K kernel code, 124K rwdata, 520K rodata, 220K init, 191K bss, 4312K reserved)
    [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] NR_IRQS:51
    [ 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:5.000MHz
    [ 0.000000] Calibrating delay loop… 265.42 BogoMIPS (lpj=1327104)
    [ 0.080000] pid_max: default: 32768 minimum: 301
    [ 0.080000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.090000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.100000] NET: Registered protocol family 16
    [ 0.110000] MIPS: machine is NETGEAR WNR612 V2
    [ 0.550000] registering PCI controller with io_map_base unset
    [ 0.560000] bio: create slab at 0
    [ 0.570000] PCI host bridge to bus 0000:00
    [ 0.570000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
    [ 0.580000] pci_bus 0000:00: root bus resource [io 0x0000]
    [ 0.580000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
    [ 0.590000] pci 0000:00:00.0: fixup device configuration
    [ 0.590000] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1000ffff 64bit]
    [ 0.600000] pci 0000:00:00.0: using irq 40 for pin 1
    [ 0.600000] Switched to clocksource MIPS
    [ 0.610000] NET: Registered protocol family 2
    [ 0.610000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.620000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.620000] TCP: Hash tables configured (established 1024 bind 1024)
    [ 0.630000] TCP: reno registered
    [ 0.630000] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.640000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.640000] NET: Registered protocol family 1
    [ 0.650000] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.680000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.690000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
    [ 0.700000] msgmni has been set to 55
    [ 0.700000] io scheduler noop registered
    [ 0.710000] io scheduler deadline registered (default)
    [ 0.710000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
    [ 0.750000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 12500000) is a 16550A
    [ 0.750000] console [ttyS0] enabled
    [ 0.750000] console [ttyS0] enabled
    [ 0.760000] bootconsole [early0] disabled
    [ 0.760000] bootconsole [early0] disabled
    [ 0.770000] m25p80 spi0.0: found mx25l3205d, expected m25p80
    [ 0.780000] m25p80 spi0.0: mx25l3205d (4096 Kbytes)
    [ 0.790000] 4 cmdlinepart partitions found on MTD device spi0.0
    [ 0.790000] Creating 4 MTD partitions on “spi0.0”:
    [ 0.800000] 0x000000000000-0x000000040000 : “u-boot”
    [ 0.800000] 0x000000040000-0x000000050000 : “u-boot-env”
    [ 0.810000] 0x000000050000-0x0000003f0000 : “firmware”
    [ 0.820000] 2 netgear-fw partitions found on MTD device firmware
    [ 0.820000] 0x000000050000-0x000000170440 : “kernel”
    [ 0.830000] mtd: partition “kernel” must either start or end on erase block boundary or be smaller than an erase block — forcing read-only
    [ 0.840000] 0x000000170440-0x0000003f0000 : “rootfs”
    [ 0.850000] mtd: partition “rootfs” must either start or end on erase block boundary or be smaller than an erase block — forcing read-only
    [ 0.860000] mtd: device 4 (rootfs) set to be root filesystem
    [ 0.870000] 1 squashfs-split partitions found on MTD device rootfs
    [ 0.880000] 0x000000350000-0x0000003f0000 : “rootfs_data”
    [ 0.880000] 0x0000003f0000-0x000000400000 : “art”
    [ 8.160000] eth1: link up (1000Mbps/Full duplex)
    [ 0.920000] libphy: ag71xx_mdio: probed
    [ 1.510000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:04 [uid=004dd041, driver=Generic PHY]
    [ 1.520000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
    [ 2.120000] ag71xx-mdio.0: Found an AR7240/AR9330 built-in switch
    [ 2.160000] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
    jffs2 is ready
    No jffs2 marker was found
    [ 8.430000] jffs2: notice: (398) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 14 of xref (0 dead, 2 orphan) found.
    switching to overlay
    [ 2.170000] TCP: cubic registered
    [ 8.490000] eth1: link down
    procd: – early –
    procd: – watchdog –
    [ 2.170000] NET: Registered protocol family 17
    [ 2.180000] Bridge firewalling registered
    [ 2.180000] 8021q: 802.1Q VLAN Support v1.8
    [ 2.190000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
    [ 2.200000] Freeing unused kernel memory: 220K (80379000 – 803b0000)
    procd: Console is alive
    procd: – watchdog –
    [ 4.910000] usbcore: registered new interface driver usbfs
    [ 4.920000] usbcore: registered new interface driver hub
    [ 4.920000] usbcore: registered new device driver usb
    [ 4.930000] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
    [ 4.940000] ehci-platform: EHCI generic platform driver
    procd: – ubus –
    [ 4.950000] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
    [ 4.960000] ohci-platform: OHCI generic platform driver
    procd: – preinit –
    [ 6.110000] random: mktemp urandom read with 55 bits of entropy available
    Press the [f] key and hit [enter] to enter failsafe mode
    Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
    [ 7.660000] eth1: link up (1000Mbps/Full duplex)
    jffs2 is not ready – marker found
    [ 9.430000] eth1: link down
    procd: – early –
    procd: – watchdog –
    procd: – ubus –
    procd: – init –
    Please press Enter to activate this console.
    [ 12.210000] NET: Registered protocol family 10
    [ 12.220000] ip6_tables: (C) 2000-2006 Netfilter Core Team
    [ 12.240000] Loading modules backported from Linux version master-2014-11-04-0-gf3660a2
    [ 12.240000] Backport generated by backports.git backports-20141023-2-g4ff890b
    [ 12.260000] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 12.280000] nf_conntrack version 0.5.0 (448 buckets, 1792 max)
    [ 12.330000] xt_time: kernel timezone is -0000
    [ 12.370000] cfg80211: Calling CRDA to update world regulatory domain
    [ 12.370000] cfg80211: World regulatory domain updated:
    [ 12.380000] cfg80211: DFS Master region: unset
    [ 12.380000] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    procd: – init –
    [ 12.390000] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    Please press Enter to activate this console.
    [ 12.400000] cf

    BusyBox v1.22.1 (2015-02-07 20:05:06 UTC) built-in shell (ash)
    Enter ‘help’ for a list of built-in commands.

    g80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    _______ ________ __
    | |.—–.—–.—–.| | | |.—-.| |_
    | – || _ | -__| || | | || _|| _|
    |_______|| __|_____|__|__||________||__| |____|
    |__| W I R E L E S S F R E E D O M
    —————————————————–
    CHAOS CALMER (Bleeding Edge, r44296)
    —————————————————–
    * 1 1/2 oz Gin Shake with a glassful
    * 1/4 oz Triple Sec of broken ice and pour
    * 3/4 oz Lime Juice unstrained into a goblet.
    * 1 1/2 oz Orange Juice
    * 1 tsp. Grenadine Syrup
    —————————————————–
    [ 12.410000] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
    root@(none):/# [ 1.520000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MI
    I
    ash: missing ]
    root@(none):/# [ 2.120000] ag71xx-mdio.0: Found an AR7240/AR9330 built-in swi
    tch
    0] cfg80ash: missing ]
    root@(none):/# [ 2.160000] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:GM
    II
    ash: missing ]
    root@(none):/# [ 2.170000] TCP: cubic registered
    ash: missing ]
    root@(none):/# [ 2.170000] NET: Registered protocol family 17
    ash: missing ]
    root@(none):/# [ 2.180000] Bridge firewalling registered
    ash: missing ]
    root@(none):/# [ 2.180000] 8021q: 802.1Q VLAN Support v1.8
    ash: missing ]
    root@(none):/# [ 2.190000] VFS: Mounted root (squashfs filesystem) readonly o
    n device 31:4.
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 2.200000] Freeing unused kernel memory: 220K (80379000 – 803
    b0000)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# procd: Console is alive
    /bin/ash: procd:: not found
    root@(none):/# procd: – watchdog –
    /bin/ash: procd:: not found
    root@(none):/# [ 4.910000] usbcore: registered new interface driver usbfs
    ash: missing ]
    root@(none):/# [ 4.920000] usbcore: registered new interface driver hub
    ash: missing ]
    root@(none):/# [ 4.920000] usbcore: registered new device driver usb
    ash: missing ]
    root@(none):/# [ 4.930000] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI
    ) Driver
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 4.940000] ehci-platform: EHCI generic platform driver
    ash: missing ]
    root@(none):/# [ 4.950000] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Dr
    iver
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 4.960000] ohci-platform: OHCI generic platform driver
    ash: missing ]
    root@(none):/# procd: – preinit –
    /bin/ash: procd:: not found
    root@(none):/# [ 6.110000] random: mktemp urandom read with 55 bits of entrop
    y available
    ash: missing ]
    root@(none):/# Press the [f] key and hit [enter] to enter failsafe mode
    /bin/ash: Press: not found
    root@(none):/# Press the [1], [2], [3] or [4] key and hit [enter] to select the
    debug level
    /bin/ash: Press: not found
    root@(none):/# [ 7.660000] eth1: link up (1000Mbps/Full duplex)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# jffs2 is not ready – marker found
    /bin/ash: jffs2: not found
    root@(none):/# [ 9.430000] eth1: link down
    ash: missing ]
    root@(none):/# procd: – early –
    /bin/ash: procd:: not found
    root@(none):/# procd: – watchdog –
    /bin/ash: procd:: not found
    root@(none):/# procd: – ubus –
    /bin/ash: procd:: not found
    root@(none):/# procd: – init –
    /bin/ash: procd:: not found
    root@(none):/# Please press Enter to activate this console.
    /bin/ash: Please: not found
    root@(none):/# [ 12.210000] NET: Registered protocol family 10
    ash: missing ]
    root@(none):/# [ 12.220000] ip6_tables: (C) 2000-2006 Netfilter Core Team
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.240000] Loading modules backported from Linux version mast
    er-2014-11-04-0-gf3660a2
    ash: missing ]
    root@(none):/# [ 12.240000] Backport generated by backports.git backports-2014
    1023-2-g4ff890b
    ash: missing ]
    root@(none):/# [ 12.260000] ip_tables: (C) 2000-2006 Netfilter Core Team
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.280000] nf_conntrack version 0.5.0 (448 buckets, 1792 max)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.330000] xt_time: kernel timezone is -0000
    ash: missing ]
    root@(none):/# [ 12.370000] cfg80211: Calling CRDA to update world regulatory
    domain
    ash: missing ]
    root@(none):/# [ 12.370000] cfg80211: World regulatory domain updated:
    ash: missing ]
    root@(none):/# [ 12.380000] cfg80211: DFS Master region: unset
    ash: missing ]
    root@(none):/# [ 12.380000] cfg80211: (start_freq – end_freq @ bandwidth), (
    max_antenna_gain, max_eirp), (dfs_cac_time)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.390000] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz
    ), (N/A, 2000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.400000] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz
    ), (N/A, 2000 mBm), (N/A)
    /bin[ 10.980000] random: nonblocking pool is initialized
    /ash: syntax error: unexpected “(”
    root@(none):/# [ 12.410000] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz
    ), (N/A, 2000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.420000] cfg80211: (5170000 KHz – 5250000 KHz @ 80000 KHz
    ), (N/A, 2000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.420000] cfg80211: (5250000 KHz – 5330000 KHz @ 80000 KHz
    , 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.430000] cfg80211: (5490000 KHz – 5730000 KHz @ 160000 KH
    z), (N/A, 2000 mBm), (0 s)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.440000] cfg80211: (5735000 KHz – 5835000 KHz @ 80000 KHz
    ), (N/A, 2000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.450000] cfg80211: (57240000 KHz – 63720000 KHz @ 2160000
    KHz), (N/A, 0 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.530000] PPP generic driver version 2.4.2
    ash: missing ]
    root@(none):/# [ 12.530000] NET: Registered protocol family 24
    ash: missing ]
    root@(none):/# [ 12.600000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.620000] ath: phy0: Enable LNA combining
    ash: missing ]
    root@(none):/# [ 12.650000] cfg80211: Calling CRDA for country: US
    ash: missing ]
    root@(none):/# [ 12.660000] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xb000000
    0, irq=40
    ash: missing ]
    root@(none):/# [ 12.680000] cfg80211: Regulatory domain changed to country: US
    ash: missing ]
    root@(none):/# [ 12.680000] cfg80211: DFS Master region: FCC
    ash: missing ]
    root@(none):/# [ 12.690000] cfg80211: (start_freq – end_freq @ bandwidth), (
    max_antenna_gain, max_eirp), (dfs_cac[ 11.410000] NET: Registered protocol family 10
    _time)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.700000] cfg80211: (2402000 KHz – 2472000 KHz @[ 11.420000] ip6_tables: (C) 2000-2006 Netfilter Core Team
    40000 KHz
    ), (N/A, 3000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.700000] cfg80211: (5170000 KHz – 5250000 KHz @ 80000 KHz
    , 160000 KHz AUTO), (N/A, 170[ 11.450000] Loading modules backported from Linux version master-2014-11-04-0-gf3660a2
    0 mBm), (N/A)
    /[ 11.460000] Backport generated by backports.git backports-20141023-2-g4ff890b
    bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 12.710[ 11.470000] ip_tables: (C) 2000-2006 Netfilter Core Team
    000] cfg80211: [ 11.480000] ttyS0: 1 input overrun(s)
    (5250000 KHz – 5330000 KHz @ 80000 KH[ 11.500000] nf_conntrack version 0.5.0 (448 buckets, 1792 max)
    [
    12.720000] cfg80211: (5735000 KHz – 5835000 KHz @ 80000 KHz), (N/A, 3000 mB
    m), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 11.550000] xt_time: kernel timezone is -0000
    [ 12.730000] cfg80211: (57240000 KHz – 63720000 KHz @ 2160000
    KHz), (N/A, 4000 mBm), (N/A)
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 11.610000] cfg80211: Calling CRDA to update world regulatory domain
    [ 19.6400[ 11.610000] cfg80211: World regulatory domain updated:
    [ 11.620000] cfg80211: DFS Master region: unset
    [ 11.620000] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 11.630000] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 11.640000] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 11.650000] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
    [ 11.660000] cfg80211: (5170000 KHz – 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
    [ 11.660000] cfg80211: (5250000 KHz – 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
    [ 11.670000] cfg80211: (5490000 KHz – 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
    [ 11.680000] cfg80211: (5735000 KHz – 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
    [ 11.690000] cfg80211: (57240000 KHz – 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
    [ 11.770000] PPP generic driver version 2.4.2
    [ 11.780000] NET: Registered protocol family 24
    00] jffs2_scan_eraseblock([ 19.670000] j[ 19.67000
    0] jffs2_build_filesystem(): erasing all blocks after the end marker…
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 23.390000] IPv6: ADDRCONF(N[ 11.850000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
    ETDEV_UP): eth1: link is not ready
    /bin/ash: syntax error: une[ 11.860000] ath: phy0: Enable LNA combining
    xpected “(”
    root@(none):/# [ 23.390000] device eth1 entered promiscuous mode
    ash: missing ]
    root@(none):/# [ 23.410000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not rea
    dy
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 23.460000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 11.890000] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xb0000000, irq=40
    [ 11.920000] cfg80211: Calling CRDA for country: US
    [ 24.570000][ 11.920000] cfg80211: Regulatory domain changed to country: US
    d[ 11.930000] cfg80211: DFS Master region: FCC
    [ 11.930000] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 11.940000] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
    [ 11.950000] cfg80211: (5170000 KHz – 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 1700 mBm), (N/A)
    [ 11.960000] cfg80211: (5250000 KHz – 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
    [ 11.970000] cfg80211: (5735000 KHz – 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
    [ 11.980000] cfg80211: (57240000 KHz – 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
    [ 24.570000] jstem, 0 of xdatu[ 25.490000] eb
    ps/Full duplex)[ 25.490000] br-lan: port 1(eth1) entered forwarding state
    /bin/ash: syntax error: unexpected “)”
    root@(none):/# [ 25.500000] br-lan: port 1(eth1) entered forwarding state
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 25.500000] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes
    ready
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 25.530000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link become
    s ready
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# procd: – init complete –
    /bin/ash: procd:: not found
    root@(none):/# [ 27.500000] br-lan: port 1(eth1) entered forwarding state
    /bin/ash: syntax error: unexpected “(”
    root@(none):/# [ 30.030000] random: nonblocking pool is initialized
    ash: missing ]
    root@(none):/# procd: – init complete –
    [ 19.840000] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [ 19.840000] device eth1 entered promiscuous mode
    [ 19.870000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
    [ 19.880000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [ 21.940000] eth1: link up (1000Mbps/Full duplex)
    [ 21.940000] br-lan: port 1(eth1) entered forwarding state
    [ 21.950000] br-lan: port 1(eth1) entered forwarding state
    [ 21.950000] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [ 21.960000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
    [ 23.950000] br-lan: port 1(eth1) entered forwarding state

  3. I’m stuck.. I just get garbage characters from my WN602v2 when connecting via rs232. Using a Prolific PX2302-chip cable

    1. I found the problem. Apparently the baud rate has to be set to 115200 in order to give you the right type of characters 🙂

  4. Hej! Tack för en väldigt intressant blog. Ang. ditt projekt -Hacka en wn602v2-, så använder du en “FTDI based USB to Serial adapter from Sparkfun”. Tänkte hör vilken modell du använder samt var du köpte den?
    Hälsningar
    Pelle

    1. Tackar.

      Det är en adapter jag haft väldigt länge, vet inte om de fortfarande säljer den. Tror det är en sådan här FTDI Basic Breakout – 3.3V De säljer säker nyare varianter som fungerar precis lika bra. Annars går det nog hitta liknande för en tiondel av priset på eBay. Jag hade varit lite försiktig med sådana som innehåller FTDI-kretsar idag, då de fått lite dåligt rykte senaste tiden (googla FTDI gate). Det finns garanterat liknande prylar baserat på andra kretsar.

  5. Great guide! I accidentally bought this cheap at a second hand store without knowing it was branded…
    Nonetheless I would like to try your solution, however I am new to these kind of things so I am not sure which is the correct hardware to get.
    Would any of these work?
    USB 2.0 to TTL UART 5PIN Module Serial Converter CP2102 STC PRGMR
    USB 2.0 to TTL UART 6PIN Module Serial Converter CP2102 STC PRGMR
    FTDI FT232RL USB to adapter module USB TO TTL RS232 Arduino Cable 6Pin M56
    PL2303HX to USB TTL USB to Serial Port Arduino WW88016364
    If not, which one should I get (that I can connect directly to a computer’s usb port)? Thanks in advance!

    1. All of those will probably work fine, they all seem to have 3.3V TTL-levels on the RX and TX pin. The two which looked more lika a cable had 5V power instead of 3.3V, but in this case you only need GND, RX and TX so it doesnt matter that much. The top ones seem to have bot 3.3V and 5V power so the seem to be more versatile if you plan to use them for other projects in the future.

Leave a Reply

Your email address will not be published. Required fields are marked *