[sf-lug] Hacking embedded devices..

Rick Moen rick at linuxmafia.com
Wed Dec 22 12:48:36 PST 2010

Let me just elaborate on that bit about OpenWrt.

OpenWrt is one of a number of very small Linux distributions for
embedded router + wireless access point appliances.  That whole genre 
was launched when Linksys released the model WRT54G "wi-fi capable
residential gateway" in 2002, and Linux activists found it to be both
(1) Linux-based and (2) hackable.  Specifically, Linksys tried to shirk
its GPL obligation to publish source code, were called on it, and
furnished source code that's been crucial for the various offshoots such
as DD-WRT, Tomato, and OpenWrt.

With any of them, given suitable hardware (which by this point is a much
wider list than just the Linksys models), you follow canned instructions
to overwrite your appliance's boot firmware with the distro, which then
boots thereafter and loads into RAM to run the appliance -- instead of
whatever it came with.

About the Linksys hardware, see:

About the third-party distros, here's one starting point:

When I got my own pair of cheap Linksys devices as a gift (and passed
one of them along to EBLUG in Fremont), I at first expected to load the
very popular DD-WRT software onto them.  After listening to a number of
people's advice -- and grateful props to Grant Bowman on this one, in
particular -- I changed my mind and went for OpenWrt.

Why?  A couple of things.  

1.  Open source.  OpenWrt is; DD-WRT isn't.  (It's claimed to be
all GPL, but the developer has been a bit squirrely at best about
compliance, and it's been proven that they include several bits of
third-party kernel code under incompatible proprietary licences.  See:
http://en.wikipedia.org/wiki/DD-WRT#Controversy and
http://en.wikipedia.org/wiki/Talk:DD-WRT )

2.  DD-WRT is a firmware image that's not really designed to be user
modified, tweaked, or anything added to it.  Although in theory you 
can use Firmware Modification Kit,
http://www.bitsum.com/firmware_mod_kit.htm , to revise and reconstruct 
DD-WRT, it's less practical than with OpenWrt.  

In particular, OpenWrt supports adding software via _packages_ (using
'opkg') without having to recompile the firmware, while DD-WRT does not.
Thus, its ability to be customised and configured without difficulty is
much greater.

3.  OpenWrt has a much larger, more productive community.  DD-WRT seems
to be mostly one guy.

When I loaded OpenWrt onto my pair of Linksys devices, the project was
going through an awkward transition from 2.4.x to 2.6.x Linux kernels,
made possible mainly by then-new availability of a good open source
driver for Broadcom wireless chips, replacing the buggy and unstable
proprietary driver that had been used in 2.4 kernels.  At the time, 
you could use the new OpenWrt 8.09.1 'Kamikaze' code (with 2.6 kernels
and a stable Broadcom driver) only if you compiled development code, as 
the official release was still OpenWrt 0.9 'WhiteRussian'.  Daniel
Gimpelevich was kind enough to help me with that:  Compiling 8.09.1
on my Pentium III server took something like six hours(!).  

However, that was a couple of years ago, and the project has moved on to 
10.0 'Backfire' releases, which have a good reputation -- and you can
just run the release code and not have to compile anything.

People who attend the CABAL meetings at my house in Menlo Park and use
the Internet connectivity are reaching the Net through that OpenWrt
8.09.1 betaware on my dinky Linksys -- and, as anyone can confirm, it's 
been _way_ better than the previous setup that relied on my wife's Apple
Airport Extreme WAP/router, which has never been reliable when under
heavy use, whereas the throwaway Linksys with OpenWrt passes that test
with flying colours.

More information about the sf-lug mailing list