Homepage Johann Hanne 
Valid XHTML 1.0 Strict
About | Projects | Gadgets | Photos | Links
Gadgets - uClinux on SOHO routers 

Note: This project is obsolete. There are several other projects which are much more promising because they build on devices that already run uClinux when shipped, so you don't have the hassle with JTAG or similar.

Here are some links to the different projects so you have a starting point:

  • Greg Boehnlein found out that the Actiontec Dual PC Modem runs uClinux. The device has 2 MB of flash, 8 MB of RAM, two independent 100 MBit ethernet ports and a 56k Modem. Very nice for broadband access with PSTN backup, or even as dialin server (even though it's limited to 33k6 then).
  • The Linksys WRT54G runs uClinux. Very powerful with 4 MB of flash, 16 MB of RAM, 100 MBit WAN interface, 4-port LAN switch (said to be VLAN capable, i.e. you can have 4+1 routed interfaces!) and 802.11g WLAN (2.4 GHz, 54 MBit). There are several projects which work on alternative firmware, e.g.:
  • The guys at seattlewireless.net also tried also tried to get uClinux onto some AP. They were much close than me, but the project seems to be dead now. They have plenty of information on their site though!

I will leave this page online for reference purposes only.

The long-term goal of this project was to run uClinux (which is a Linux version suited for small, embedded devices) on some common SOHO router (also called broadband/DSL router). Most of the firmware which comes with this kind of routers works fine for basic things. However, often it's buggy and advanced features (such as layer 4 proxying, IPSEC etc.) are missing. Linux would allow really everything you can think of in the networking area. I don't have succeeded in running uClinux on such a device yet, as it's not an easy task to compile a kernel fitting the CPU and put that kernel into the flash ROM. So I've started collecting all information I can can about available hardware first. I think 1 MB of flash ROM and 4 MB of RAM should be enough to run uClinux. Generally speaking, the older the router, the easier it is to get uClinux on it as the older devices often have debugging facilities and serial ports. On embedded devices, the initial console is on the serial port. Recent devices often don't have an serial port and you have to use the JTAG port to do the debugging, which is not an easy task as you don't have the chance to see the kernel boot messages.

This is an overview with what I've go so far and some photos showing all the boards in detail:

Manufacturer Type CPU Flash RAM Pics
Linksys BEFSR11 ARM7
Samsung S3C4500X
512 kB 2 MB Components side
Back side
Linksys BEFVP41 ARM7
Samsung S3C4510B
1 MB 4 MB Components side
Components side with JTAG mod
Back side
Netgear MR314 ARM7
Samsung S3C4510B
1 MB 4 MB Components side
Back side
Netgear RT314 ARM7
Samsung S3C4500X
1 MB 4 MB Components side
Back side