Sitecom WL-341
Supported Versions
Version/Model | Launch Date | S/N | OpenWrt Version Supported | Model Specific Notes |
---|---|---|---|---|
v1 | ? | - | - | - |
v2 | ? | - | - | - |
v3 | ? | - | trunk (partially) | Rebranded Sercomm IP1006RRv2 |
OvisLink AirLive WN-200R https://wikidevi.com/wiki/OvisLink_AirLive_WN-200R is also known to be a rebranded version of this board.
Hardware Highlights
CPU | Ram | Flash | Network | USB | Serial | JTag |
---|---|---|---|---|---|---|
RaLink RT3052@384MHz | 16MiB (+1 unpopulated) | 4MiB | 4+1 10/100 | Yes, on header, unpowered | Yes | No |
Installation
Flash Layout
Original:
Creating 4 MTD partitions on "RT2880 SOC Physically mapped flash": 0x00000000-0x00030000 : "Bootloader" 0x00030000-0x00040000 : "Config " 0x00040000-0x00160000 : "Kernel" 0x00160000-0x00400000 : "rootfs"
OpenWrt:
[ 0.400000] physmap platform flash device: 00800000 at bf000000 [ 0.420000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0022a8 [ 0.440000] physmap-flash.0: Found an alias at 0x400000 for the chip at 0x0 [ 0.440000] Amd/Fujitsu Extended Query Table at 0x0040 [ 0.450000] Amd/Fujitsu Extended Query version 1.1. [ 0.460000] number of CFI chips: 1 [ 0.460000] 8 cmdlinepart partitions found on MTD device physmap-flash.0 [ 0.480000] Creating 8 MTD partitions on "physmap-flash.0": [ 0.490000] 0x000000000000-0x000000020000 : "u-boot" [ 0.500000] 0x000000020000-0x000000030000 : "board-nvram" [ 0.520000] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.530000] 0x000000040000-0x000000110000 : "kernel" [ 0.540000] 0x000000110000-0x0000003f0000 : "rootfs" [ 0.560000] mtd: partition "rootfs" set to be root filesystem [ 0.570000] mtd: partition "rootfs_data" created automatically, ofs=300000, len=F0000 [ 0.580000] 0x000000300000-0x0000003f0000 : "rootfs_data" [ 0.600000] 0x0000003f0000-0x000000400000 : "signature-eRcOmM" [ 0.610000] 0x000000040000-0x0000003f0000 : "firmware" [ 0.630000] 0x000000000000-0x000000400000 : "fullflash"
OEM easy installation
The router can be upgraded using the default Sercomm edited bootloader by giving it a complete flash image (4MiB) with the bootloader included (although it won't be flashed) using the same windows utility used with the NSLU2. Upslug doesn't work due to some hardcoded parameters and my lack of familiarity with it, so I can't modify it to make it work. If somebody wants to help, it just needs to be modified to work with 4MiB images, without modifying the first 256KiB that contain the u-boot.
The process is this:
- Press the WPS button on top of the unit
- Connect power
- Two router leds should start blinking alternatively
- Start the program, press the “two arrows/refresh” button
- Click on the mac address, then file, then open the firmware image, then upgrade.
- The router will reboot automatically at the end of the upgrade process.
Upgrading OpenWrt
If you have already installed OpenWrt and like to reflash for e.g. upgrading to a new OpenWrt version you can upgrade using the mtd or sysupgrade command line tool. It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.
LuCI Web Upgrade Process
- Browse to http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/ LuCI Upgrade URL
- Upload image file for sysupgrade to LuCI
- Wait for reboot
Terminal Upgrade Process
- Login as root via SSH on 192.168.1.1
- Use the following commands to upgrade.
cd /tmp/ wget http://downloads.openwrt.org/snapshots/trunk/XXX/xxx.abc sysupgrade /tmp/xxx.abc
- If sysupgrade does not support this router, use the following commands.
cd /tmp/ wget http://downloads.openwrt.org/snapshots/trunk/XXX/xxx.abc mtd write /tmp/xxx.abc linux && reboot
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Specific Configuration
Interfaces
The default network configuration is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | LAN & WiFi | 192.168.1.1/24 |
vlan0 (eth0.0) | LAN ports (1 to 4) | None |
vlan1 (eth0.1) | WAN port | DHCP |
wl0 | WiFi | Disabled (cannot be enabled due to a RAM problem) |
Switch Ports (for VLANs)
The layout is WLLLL.
Port | Switch port |
---|---|
Internet (WAN) | 0 |
LAN 4 | 1 |
LAN 3 | 2 |
LAN 2 | 3 |
LAN 1 | 4 |
Failsafe mode
The router can be put in Recovery/Update mode pressing the WPS button and connecting the power, then immediately releasing it. The procedure is successful if two leds start blinking alternatively
Buttons
→ hardware.button on howto use and configure the hardware button(s).
The device has only one button, WPS.
BUTTON | Event |
---|---|
WPS/recovery | WPS |
Hardware
Info
Architecture: | MIPS |
Vendor: | Ralink |
bootloader: | U-Boot |
System-On-Chip: | RT3052_MP1 (MIPS 24KEc) |
CPU/Speed | 24KEc 384 Mhz |
Flash-Chip: | Macronix MX29LV320 |
Flash size: | 4196 KiB |
RAM: | 16 MiB + 1 unpopulated space |
Wireless: | On-chip rt2800pci 2.4ghz 802.11bgn |
Ethernet: | On-chip RaLink 10/100 switch w/vlan support swconfig |
Internet: | n/a |
USB: | Yes 1 x 2.0 unpowered on header |
Serial: | Yes |
JTAG: | No |
Photos
Opening the case
Note: This will void your warranty!
- To remove the cover unscrew two screws found under the rubber feets in the underside of the device.
Serial
→ port.serial general information about the serial port, serial port cable, etc.
Standard LVTTL 3.3V serial, 57600 8n1. RX connected _may_ hang the bootloader.
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
There is no JTAG port on the device
Debricking
If the bootloader is working just use the Recovery method and flash a full firmware image.
Bootloader Notes
- The last 64KiB block in flash contains a signature (ascii eRcOmM) that is checked at every boot, if missing the router boots in recovery mode and the firmware needs to be flashed again to fix it.
Hardware mods
- as a beginner, you really should inform yourself about soldering in general and then obtain some practical experience!
32/64/128MiB RAM Mod
Just add/replace the ram chips with bigger 133MHz+ SDR SDRAM chips, the bootloader detects the size of the ram automatically. You can source those in SDR SDRAM SODIMM modules for a few bucks on eBay.
USB header
You'll need a USB Female receptacle.
Just connecting/soldering the wires DM/DP on pcb to the D-/D+ wires will give you an unpowered USB 2.0 Host. To add power you need to solder a LM1117 + 2 10u 6v + 2 1u 6v capacitors in the blanks at the back of the board.
Ext. Antenna
Buy 2 u-fl sockets on eBay and solder them in the appropriate spots in the PCB (where the antenna cables are soldered), then use them however you wish.
Bootlog
[ 0.000000] Linux version 2.6.39.4 (marcus905@ferdinand) (gcc version 4.5.4 20120105 (prerelease) (Linaro GCC 4.5-2012.01) ) #1 Wed Jan 18 22:49:17 CET 2012 [ 0.000000] prom: fw_arg0=00000001, fw_arg1=00f53fb0, fw_arg2=00f543b0, fw_arg3=00000000 [ 0.000000] env[0]: memsize=16 [ 0.000000] env[1]: initrd_start=0x00000000 [ 0.000000] env[2]: initrd_size=0x0 [ 0.000000] env[3]: flash_start=0xBFC00000 [ 0.000000] env[4]: flash_size=0x400000 [ 0.000000] env[0]: memsize=16 [ 0.000000] env[1]: initrd_start=0x00000000 [ 0.000000] env[2]: initrd_size=0x0 [ 0.000000] env[3]: flash_start=0xBFC00000 [ 0.000000] env[4]: flash_size=0x400000 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU revision is: 0001964c (MIPS 24Kc) [ 0.000000] Ralink RT3052 id:1 rev:2 running at 384.00 MHz [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 01000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone PFN ranges: [ 0.000000] Normal 0x00000000 -> 0x00001000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[1] active PFN ranges [ 0.000000] 0: 0x00000000 -> 0x00001000 [ 0.000000] On node 0 totalpages: 4096 [ 0.000000] free_area_init_node: node 0, pgdat 8021d5c0, node_mem_map 8025a000 [ 0.000000] Normal zone: 32 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 4064 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064 [ 0.000000] Kernel command line: board=WL341V3 mtdparts=physmap-flash.0:128k(u-boot)ro,64k(board-nvram)ro,64k(u-boot-env)ro,832k(kernel),2944k(rootfs),64k(signature-eRcOmM),3776k@0x40000(firmware),4096k@0x0(fullflash) console=ttyS1,57600 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 64 (order: -4, 256 bytes) [ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes [ 0.000000] Writing ErrCtl register=0007c310 [ 0.000000] Readback ErrCtl register=0007c310 [ 0.000000] Memory: 13776k/16384k available (1857k kernel code, 2608k reserved, 309k data, 156k init, 0k highmem) [ 0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:48 [ 0.000000] console [ttyS1] enabled, bootconsole disabled [ 0.010000] Calibrating delay loop... 255.59 BogoMIPS (lpj=1277952) [ 0.090000] pid_max: default: 32768 minimum: 301 [ 0.100000] Mount-cache hash table entries: 512 [ 0.110000] NET: Registered protocol family 16 [ 0.120000] MIPS: machine is Sitecom WL-341 v3 [ 0.140000] bio: create slab <bio-0> at 0 [ 0.150000] Switching to clocksource MIPS [ 0.160000] NET: Registered protocol family 2 [ 0.170000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.190000] TCP established hash table entries: 512 (order: 0, 4096 bytes) [ 0.200000] TCP bind hash table entries: 512 (order: -1, 2048 bytes) [ 0.210000] TCP: Hash tables configured (established 512 bind 512) [ 0.220000] TCP reno registered [ 0.230000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.240000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.260000] NET: Registered protocol family 1 [ 0.300000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.310000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.330000] msgmni has been set to 26 [ 0.340000] io scheduler noop registered [ 0.350000] io scheduler deadline registered (default) [ 0.360000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.370000] serial8250: ttyS0 at MMIO 0x10000500 (irq = 13) is a 16550A [ 0.390000] serial8250: ttyS1 at MMIO 0x10000c00 (irq = 20) is a 16550A [ 0.400000] physmap platform flash device: 00800000 at bf000000 [ 0.420000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0022a8 [ 0.440000] physmap-flash.0: Found an alias at 0x400000 for the chip at 0x0 [ 0.440000] Amd/Fujitsu Extended Query Table at 0x0040 [ 0.450000] Amd/Fujitsu Extended Query version 1.1. [ 0.460000] number of CFI chips: 1 [ 0.460000] 8 cmdlinepart partitions found on MTD device physmap-flash.0 [ 0.480000] Creating 8 MTD partitions on "physmap-flash.0": [ 0.490000] 0x000000000000-0x000000020000 : "u-boot" [ 0.500000] 0x000000020000-0x000000030000 : "board-nvram" [ 0.520000] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.530000] 0x000000040000-0x000000110000 : "kernel" [ 0.540000] 0x000000110000-0x0000003f0000 : "rootfs" [ 0.560000] mtd: partition "rootfs" set to be root filesystem [ 0.570000] mtd: partition "rootfs_data" created automatically, ofs=300000, len=F0000 [ 0.580000] 0x000000300000-0x0000003f0000 : "rootfs_data" [ 0.600000] 0x0000003f0000-0x000000400000 : "signature-eRcOmM" [ 0.610000] 0x000000040000-0x0000003f0000 : "firmware" [ 0.630000] 0x000000000000-0x000000400000 : "fullflash" [ 0.650000] ramips_eth: loaded [ 0.650000] TCP westwood registered [ 0.660000] NET: Registered protocol family 17 [ 0.670000] 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> [ 0.680000] All bugs added by David S. Miller <davem@redhat.com> [ 0.700000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4. [ 0.720000] Freeing unused kernel memory: 156k freed [ 2.540000] input: gpio-buttons as /devices/platform/gpio-buttons/input/input0 [ 2.620000] Button Hotplug driver version 0.4.1 [ 2.840000] Registered led device: wl341v3:amber:status [ 2.840000] Registered led device: wl341v3:blue:status [ 2.840000] Registered led device: wl341v3:blue:wps [ 8.000000] Compat-wireless backport release: compat-wireless-2011-11-29 [ 8.010000] Backport based on wireless-testing.git master-2011-12-01 [ 8.160000] cfg80211: Calling CRDA to update world regulatory domain [ 8.710000] cfg80211: World regulatory domain updated: [ 8.720000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 8.740000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 8.760000] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 8.770000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 8.790000] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 8.800000] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 9.360000] usbcore: registered new interface driver usbfs [ 9.370000] usbcore: registered new interface driver hub [ 9.390000] usbcore: registered new device driver usb [ 10.220000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 10.220000] Registered led device: rt2800pci-phy0::radio [ 10.220000] Registered led device: rt2800pci-phy0::assoc [ 10.220000] Registered led device: rt2800pci-phy0::quality [ 10.490000] PPP generic driver version 2.4.2 [ 10.880000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 11.120000] NET: Registered protocol family 24 [ 11.270000] nf_conntrack version 0.5.0 (217 buckets, 868 max) [ 12.030000] xt_time: kernel timezone is -0000 [ 12.500000] dwc_otg: version 2.72a 24-JUN-2008 [ 12.510000] dwc_otg: Core Release: 2.66a [ 12.720000] dwc_otg: Periodic Transfer Interrupt Enhancement - disabled [ 12.730000] dwc_otg: Multiprocessor Interrupt Enhancement - disabled [ 12.740000] dwc_otg: Using DMA mode [ 12.750000] dwc_otg: Device using Buffer DMA mode [ 12.760000] dwc_otg dwc_otg.0: DWC OTG Controller [ 12.770000] dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 1 [ 12.780000] dwc_otg dwc_otg.0: irq 26, io mem 0x101c0000 [ 12.800000] dwc_otg: Init: Port Power? op_state=1 [ 12.800000] dwc_otg: Init: Power Port (0) [ 12.810000] hub 1-0:1.0: USB hub found [ 12.820000] hub 1-0:1.0: 1 port detected [ 12.930000] dwc_otg: Device Not Supported [ 13.070000] dwc_otg: Device Not Supported [ 15.760000] device eth0.1 entered promiscuous mode [ 15.770000] device eth0 entered promiscuous mode [ 15.810000] br-lan: port 1(eth0.1) entering forwarding state [ 15.820000] br-lan: port 1(eth0.1) entering forwarding state [ 36.150000] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0 [ 36.160000] jffs2_build_filesystem(): unlocking the mtd device... done. [ 36.180000] jffs2_build_filesystem(): erasing all blocks after the end marker... done. [ 44.140000] JFFS2 notice: (1320) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 45.190000] ramips-wdt: timeout value 60 must be 0 < timeout < 33 [ 444.240000] hostapd: page allocation failure. order:1, mode:0x4020 [ 444.240000] Call Trace:[<801cd5f0>] 0x801cd5f0 [ 444.240000] [<801cd5f0>] 0x801cd5f0 [ 444.240000] [<8004c384>] 0x8004c384 [ 444.240000] [<80220000>] 0x80220000 [ 444.240000] [<8006e338>] 0x8006e338 [ 444.240000] [<8006ee84>] 0x8006ee84 [ 444.240000] [<8006ef54>] 0x8006ef54 [ 444.240000] [<8006fc64>] 0x8006fc64 [ 444.240000] [<8000dfbc>] 0x8000dfbc [ 444.240000] [<8014a758>] 0x8014a758 [ 444.240000] [<8014a0ac>] 0x8014a0ac [ 444.240000] [<80170a50>] 0x80170a50 [ 444.240000] [<8014a758>] 0x8014a758 [ 444.240000] [<80eeb830>] 0x80eeb830 [ 444.240000] [<80eeac04>] 0x80eeac04 [ 444.240000] [<80eec2ec>] 0x80eec2ec [ 444.240000] [<8014253c>] 0x8014253c [ 444.240000] [<80ee946c>] 0x80ee946c [ 444.240000] [<80030cc8>] 0x80030cc8 [ 444.240000] [<80412b60>] 0x80412b60 [ 444.240000] [<8015619c>] 0x8015619c [ 444.240000] [<801560c0>] 0x801560c0 [ 444.240000] [<80156450>] 0x80156450 [ 444.240000] [<80156594>] 0x80156594 [ 444.240000] [<801536b0>] 0x801536b0 [ 444.240000] [<801536b0>] 0x801536b0 [ 444.240000] [<801a67a0>] 0x801a67a0 [ 444.240000] [<80156cf4>] 0x80156cf4 [ 444.240000] [<8014204c>] 0x8014204c [ 444.240000] [<800814b4>] 0x800814b4 [ 444.240000] [<80142ccc>] 0x80142ccc [ 444.240000] [<80073754>] 0x80073754 [ 444.240000] [<80143e1c>] 0x80143e1c [ 444.240000] [<80081558>] 0x80081558 [ 444.240000] [<80008664>] 0x80008664 [ 444.240000] [ 444.240000] Mem-Info: [ 444.240000] Normal per-cpu: [ 444.240000] CPU 0: hi: 0, btch: 1 usd: 0 [ 444.240000] active_anon:698 inactive_anon:23 isolated_anon:0 [ 444.240000] active_file:372 inactive_file:424 isolated_file:0 [ 444.240000] unevictable:0 dirty:0 writeback:0 unstable:0 [ 444.240000] free:50 slab_reclaimable:107 slab_unreclaimable:958 [ 444.240000] mapped:325 shmem:46 pagetables:76 bounce:0 [ 444.240000] Normal free:200kB min:508kB low:632kB high:760kB active_anon:2792kB inactive_anon:92kB active_file:1488kB inactive_file:1696kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:16256kB mlocked:0kB dirty:0kB writeback:0kB mapped:1300kB shmem:184kB slab_reclaimable:428kB slab_unreclaimable:3832kB kernel_stack:392kB pagetables:304kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no [ 444.240000] lowmem_reserve[]: 0 0 [ 444.240000] Normal: 0*4kB 1*8kB 10*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 200kB [ 444.240000] 842 total pagecache pages [ 444.240000] 0 pages in swap cache [ 444.240000] Swap cache stats: add 0, delete 0, find 0/0 [ 444.240000] Free swap = 0kB [ 444.240000] Total swap = 0kB [ 444.240000] 4096 pages RAM [ 444.240000] 613 pages reserved [ 444.240000] 1671 pages shared [ 444.240000] 2763 pages non-shared [ 444.240000] SLUB: Unable to allocate memory on node -1 (gfp=0x20) [ 444.240000] cache: kmalloc-8192, object size: 8192, buffer size: 8192, default order: 3, min order: 1 [ 444.240000] node 0: slabs: 0, objs: 0, free: 0 [ 444.780000] phy0 -> rt2x00queue_initialize: Error - Queue entries allocation failed.
Notes
Still unsupported in trunk, WIP.
U-boot needs the kernel at 0x40000 instead of the standard ramips 0x50000.
0x0-0x3FFFF (uboot+env) and 0x3F0000-0x3FFFFF (eRcOmM sig) are reserved.
Boots a specific image build with WIP patches soon to be applied in trunk. Has problems with wifi and leds don't work because the GPIOs where they are are not known, plus they're unlabeled on the device itself and on the manual.