Gentoo on a Zaurus PDA

Introduction

This is a Gentoo rootfs archive customized for SL-C1000 models. It may also be useful for owners of the C3x00, but some adjustments will probably be necessary to make it work on these models (like kernel recompilation).

This article and all information and products in it are provided on an "as is" basis, without warranty of any kind, either express or implied. Your use of this article is at your own risk.

Description

The distribution is originally based on stage3-armv5tel-20090623.tar.bz2. The following is configured:

  • Added spitz keyboard layout (calendar key toggles langugage).
  • All packages are recompiled with -O2 instead of Os.
  • USB network.
  • WiFi network.
  • BlueTooth network (via ppp).
  • IrDa network (via ppp).
  • The kernel 2.6.24 is compiled with appropriate patches and config.
  • The mail led indicates SD card activity.
  • Locale is set to ru_RU.UTF-8.
  • Timezone is set to GMT +3 (Moscow).
  • procps is recompiled with the Debian patches, which fix the ‘Unknown HZ value’ error.

There are two ways to load the kernel: directly (without a bootloader) or via kexecboot. In the first case you need to flash the kernel (see the manual below). Both versions use the first partition of SD card as root.

The following packages are installed:

alsa-utils bluez-utils dhcpcd elinks (with the Debian patches) zgv gentoo-sources gentoolkit mpc mpd mutt pcmciautils pidgin ppp sdcv syslog-ng vim wireless-tools

Here is a complete list of packages (equery l).

Notes:

  • There’s no Xorg, because Zaurus is too slow for running it in my opinion.
  • The system works quite stable, but optimization for iwmmxt is disabled because of the kernel issue.
  • /usr/portage is removed from the tarball in order to reduce its size. You can download it from here.
  • The tarball contains the kernel sources with all the patches applied and the config file (in the /usr/src/linux directory).

How to install

Kernel (skip this part if you use the kexec bootloader).

  1. Format a CF or SD card with mkfs.msdos -t vfat -F 16 /dev/<your-dev-name>.
  2. Put the following files into the root directory of the card:
  3. Turn your Zaurus off using halt.
  4. Connect the Zaurus to A/C power.
  5. Hold the ‘OK’ button and press the power on/off button.
  6. You should see a menu. Select the option #4 and then either 1 or 2 depending on your flash card type. Confirm the kernel installation by selecting Y.
  7. Wait till your Zaurus reboots and displays the error Unable to mount root fs.

Rootfs

  1. Download the rootfs tarball: gentoo-rootfs-20100627.tar.bz2 (206 Mb).
  2. Format the first partition of your SD card as ext2 or ext3.
  3. Extract the rootfs to this partition (tar xvpf gentoo-rootfs-20100627.tar.bz2 -C /mnt/<your-mnt-dir>).
  4. Insert the SD card into the Zaurus and reboot the machine.

WPA2

The rootfs provided above uses the orinoco driver for Prism-based WiFi cards. I recently figured out, that the kernel 2.6.24 already contains a better one – hostap. This driver support WPA2 and the Master mode (for making WiFi AP).

So I recommend to disable CONFIG_HERMES and enable CONFIG_HOSTAP instead. This will be done in any future rootfs release.

Besides the hostap driver, WPA2 support also requires relatively new firmware. If your Prism-based WiFi card has too firmware version, you will need to update it. Here is a very detailed manual describing how to reflash Prism chipset. The utilities and the new firmware (version 1.8.2) can be downloaded from here.
WARNING: I haven’t tested flashing by myself. I use Zonet ZCF1100 with the firmware 1.8.0, and WPA2 works fine. Please read the manual very carefully and think twice before flashing.

Mirrors

Zaurus-dedicated websites are slowly dying. Therefore I decided to make a local mirror of some information I considered useful:

Isses/ToDo

  • Cpufreq – apply the cpufreq patch for pxa27x to enable frequency scaling.
  • QVGA – pdafb supports QVGA mode, try to configure it (may be useful for games).
  • Touchscreen jittering – the problem seems to be caused by invalid hsync length received by the touchscreen driver from pxafb. Need to investigate it.
  • Netsurf seems to be the most powerful web browser for framebuffer. Try it.

Changelog

  • 16 Feb 2015
    Added local mirrors.
    Added note about WPA2.
    Added ToDo/Issue list.
  • 27 Jun 2010
    Packages are updated to the current date.
    Returned from moc back to mpd, switched from ALSA to OSS to avoid freezing of the daemon.
    fim is removed, because zgv is much faster.
  • 10 Jan 2010
    Installed a simple drawing tool called zketcher.
    Installed another image viewer called fim.
    The kernel is slightly modified in order to block handling of the power key when lid is closed and make touch screen work a bit cleaner.
  • 04 Oct 2009
    Packages are updated to the current date (including glibc).
    GPM is installed, works through tslib, useful in elinks.
    SDL is patched with the screen rotation support (via SDL_VIDEO_FBCON_ROTATION).
    fbi is replaced with zgv, which is faster, can zoom, etc.
  • 24 Jul 2009
    First public release.

Leave a Reply

Your email address will not be published. Required fields are marked *