John's little Zaurus page

Years ago I picked up a
Sharp Zaurus SL-C760 and absolutely love it.
I immediately flashed the OS to
pdaXrom 1.1.0rc8 (now rc12) and now have a complete GNU/Linux/X11-based
email/web/LaTeX computer that fits easily in my
pocket,
has a 6+ hour battery, is instant-on, and has no harddrive to wear out. For
more details, see my old Zaurus page.

Out with the Old

Alas, "progress" marches on, which in this case means that 11b-only
devices such as the C760 with "orinoco"-style wireless card can
connect to almost no current 11g/n networks. And even if I could find
an 11g CompactFlash card, rc12's linux 2.4.x kernel doesn't include
11g support, which was added in 2.6.24. So I needed to give up on my
beloved but no-longer-developed pdaXrom.

Lots of Googling led to several non-solutions: Zubuntu
(gets caught in an infinite fsck
loop on boot due to not ignoring the Zaurus' "Jan. 1 1970" initial hwclock date);
Debian "Andromeda" or
OpenBSD (don't support the C7x0);
NetBSD (doesn't support
CF
11g cards);
pre-kexecboot
Angstrom (doesn't include 11g drivers).

In with the New

After much travail, I finally found a working solution: the Angstrom distribution's recent
releases feature a 2.6.26 kernel including 'libertas' drivers for the
Ambicom WL54 CF card.
The trick is to install an Angstrom image that doesn't use the
standard "udev" device driver.

Then create a new rootfs image using Angstrom's
onlinebuilder and
copy it to an ext2-formatted SD card. Be sure to choose the following options:

c7x0 (or your model)

"advanced"

"2011.03"

"regular" (else you'll get too big an image for no reason)

"mdev", NOT "udev" or "kernel"

under Additional console packages, "All kernel modules"

under Network related packages, "Wireless-tools"

if you want an ssh client, also "Dropbear SSH server"

Depending on what additional packages you choose, you could need
anywhere from a 32MB to a 1GB card. (My c760 could never read 1GB
cards, so I selected just enough x11 packages to fit on a 512MB card.)

You'll also need firmware your 11g card. For the WL54CF, you can
grab debian's
libertas-firmware package and unpack the contained /lib/firmware/
directory to your SD card (e.g., using "dpkg -x" or "ar -x").

Boot the Z with the ext2 card and select it in the kexecboot menu.
Log in as root. Insert the libertas modules by doing:
cd /lib/firmware; modprobe libertas_cs

Configure iwconfig eth0 as needed for your network, and do a
ifdown eth0; ifup eth0 to reload the eth0 device with DHCP. Enjoy!

Now that I've reached my goal of being able to ssh out from the Zaurus on an
11n network, I'm happy for now. Things I still would like to do include:

automate the module loading and network setup into the init scripts at boot time