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

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

generic.sysupgrade

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

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

generic.failsafe

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

Front:

Opening the case

Note: This will void your warranty!

  • To remove the cover unscrew two screws found under the rubber feetsin the underside of the device.

Main PCB

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

generic.debrick

If the bootloader is working just use the Recovery method and flash a full firmware image.

Bootloader Notes

  1. 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

  1. 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.

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.

Current status 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.


Tags

Back to top

toh/sitecom/wl-341.txt · Last modified: 2014/10/12 13:08 by theoradicus