Best viewed on NetFront (640x480)

my Zaurus SL-C3000 and SL-C3100

[icon]pdaXii13 - pdaXrom for SL-C3000 and others

pdaXii13 is a bug fixed and customised version of pdaXrom beta3 which uses the 2.4.20 kernel. pdaXii13 stands for pdaX integrated and improved beta1 merged with beta3. pdaXii13 was originally designed and build for the SL-C3000 but can now also be installed on similar Zaurii like the SL-C3100/SL-C3200 and SL-C1000. The SL-C3000 specific version is called pdaXii13 Spitz (Alice) while there also is pdaXii13 Akita (Sally) for the other newer clamshell models. An experimental version of pdaXii13 (charlie) for the older clamshell model also exists. The installation instructions on this page is focused on the SL-C3000, but there are other sections that describe installation for other models as well. Most of the customisations done for pdaXii13 can also be applied to all the other clamshell Zaurii models since they are quite similar in many aspects, but there are also differences in some areas which is covered later.

pdaXii13 is based on pdaXrom which is a complete X windows environment for the Zaurus. It makes the SL-C3000 a true mini laptop. However, pdaXrom never officially supported the SL-C3000 due to its small flash size. pdaXrom beta3 was the last relatively stable release of pdaXrom based on the 2.4.20 kernel, however, it was never finished. The original pdaXii13 was the SL-C3000 specific version of pdaXrom beta3 with some extra finishing touches. Newer versions of pdaXii13 now also supports the NAND based sister models of the SL-C3000, namely the SL-C3100/SL-C3200 and SL-C1000. Support for SL-C8x0 and SL-C7x0 also exist as pdaXii13 Corgi (Charlie). All three versions, pdaXii13 Spitz (Alice), pdaXii13 Akita (Sally) and pdaXii13 (Charlie) are collectively known as simply pdaXii13 while pdaXii13 Spitz comes in a base and full edition, and pdaXii13 Akita only comes as a base edition. pdaXii13 Corgi only comes as an upgrade for pdaXrom beta1 and is equivalent to pdaXii13 base. pdaXii13 Corgi does not have a flash installer like the other two editions.

The SL-C3000 was the first Zaurus with an internal MicroDrive released by Sharp. It came with only 16MB of NAND which is a major shortcoming. The later models in this series do not have this problem anymore and all have 128MB of NAND instead.

Because of that, the pdaXrom version for the SL-C3000 runs completely off the internal MicroDrive using a feature called pivot root which was originally developed for OpenZaurus. The pdaXii13 Spitz (Alice) edition of pdaXii13 does exactly that, ie runs completely off the internal MicroDrive. The pdaXii13 Akita (Sally) edition of pdaXii13 runs off the internal flash memory (NAND) the same way that pdaXrom beta3 does. pdaXii13 Corgi (Charlie) also runs off the internal flash memory (NAND) in the same way.


pdaXii13 is based on the pdaXrom C3000 beta2 release which was originally based on pdaXrom beta1 but was never updated after pdaXrom beta3 was released to address issues in beta1. This distro aims to update the pdaXrom beta1 based C3000 beta2 release to the pdaXrom beta3 release.

Additionally, pdaXii13 (Spitz and Akita) also includes the new SD card module to support SD cards larger than 2GB. It also allow the SL-C3000 to be detected as a USB storage device and share the third partition on the MicroDrive just like in Sharp/Cacko.

Enhancements and fixes discussed in my pdaXrom customisation section have also been rolled into pdaXii13 release as the default.

Once you have installed pdaXii13, you will have the applications listed further below installed and customised for the Zaurus. The customisations that have been applied to pdaXii13 differs from the default pdaXrom beta3 release. There are quite a lot of enhancements made in pdaXii13 full install. The pdaXii13 base install is pretty much like a bug fixed beta3 for SL-C3100 and SL-C1000 without much customisations nor additional packages installed. Unless explicitly mentioned, everything that follows is about pdaXii13 full which is heavily customised with many additionally pre-installed applications.



The following guide is specific for the SL-C3000, ie. pdaXii13 Spitz aka Alice. Hints on how to install on other models follow later, however, it is also advantageous to read the Spitz section as some of it may also apply to other models and the general installation procedure is almost the same with small variations in the details only.

To flash pdaXii13 Spitz (Alice), you will first need to repartition your internal MicroDrive. The original partitioning provided by Sharp is quite adequate for the base install, however, if you had installed the previous C3000 betas, then you probably had your entire MicroDrive partitioned into a single 4GB filesystem. This is OK too. The first partition should be at least 512MB if you install the full pdaXii13, but pdaXii13 base should fit into the default Sharp partition layout. My personal preferred partitioning is as follows since I do a lot of native compilations on the Zaurus:

hdd1 2.2GB / (ext3/linux ID 83)
hdd2 256MB /swap (linux swap ID 82)
hdd3 1.5B /data (win95 fat ID c)

However, for most users, a larger data partition would probably be more useful and hence the newer pdaXii13 installer will create the following custom partition layout instead:

hdd1 1.4GB / (ext3/linux ID 83)
hdd2 256MB /swap (linux swap ID 82)
hdd3 2.4B /data (win95 fat ID c)

The pdaXii13 installer also allows you to create a single partition for the entire MicroDrive, or use an improved version of fdisk which can create partitions properly unlike the default fdisk which comes with the Zaurus to manually create your own desired partition scheme. There is also an option provided which allows you to restore your original factory set partition layout.

Before you flash to a new distro, you will first need to prepare the flash medium. For this you will need either a 512MB or 1GB SD/CF card formatted as fat16 (newer versions of Windows will by default format as fat32 instead of fat16 unless you tell it otherwise). Place all the required installation binaries onto the root of the card. The following files are required:

  • updater-tools.bin
  • zImage-2.4.20.bin
  • initrd.bin
  • hdimage-full.tgz (see note below)

Note: You can either use hdimage-base.tgz which gives you a vanilla pdaXrom install with minimal/essential fixes only, hdimage-full.tgz which is a fully customised and polished image with all the customisations as described below, or hdimage-custom.tgz which is a snapshot/backup of a custom system. The installer will pick up any of these names (hdimage-base.tgz, hdimage-full.tgz, hdimage-custom.tgz) so just copy the one you want to the card with the other files listed above. In general, user contributed custom images should be called hdimage-custom.tgz

You need to do the following to get into the Maintenance Menu which is where you can update/install pdaXii13 from:

  • Unplug everything from your Zaurus, ie power, cards, etc...
  • Press the reset button (unlock the battery cover and press the little reset button)
  • Put battery lid back on and lock the battery compartment
  • Press and hold the OK key while pressing the On/Off button at the front
  • You are now in the Maintenance Menu

To upgrade or flash your distro to pdaXii13, do the following from the Maintenance Menu to get into the pdaXii13 updater menu:

  • Insert CF or SD (which ever has the install files)
  • Plug in the power
  • Choose Option 4 (Update) from the Maintenance Menu
  • Select your installation source, choose CF or SD
  • Confirm your selection (choose option on the left)

In the pdaXii13 updater menu choose Option 2 to repartition your Zaurus if required (depends on your current partition layout). You will need to reboot your Zaurus once you have repartitioned it and then repeat the above steps to get into the Maintenance Menu again and then into the pdaXii13 updater menu.

From the pdaXii13 updater menu, choose Option 3 "Install kernel and bootloader" to flash your C3000 with a new kernel and boot loader image. If you have a C3100 or C3200 and you want to install Alice onto them instead of Sally, then this option will update your existing system (which has to be pdaXrom beta3 or pdaXii13 Akita base) to boot into the MicroDrive but will not update the kernel nor the rest of the system.

Once the installation has finished, you will need to extract the hdimage.tgz (or one of its variants) onto the MicroDrive. Choose Option 4 for that and wait a while until it formats your first partition as ext3 and extracts the content of the tgz file onto the first partition of your MicroDrive.

Then choose the last option (Option 6) to reboot and pdaXii13 should be installed and boot into X windows. OpenBox will be the default X window manager just like in the default pdaXrom beta3. During your first boot, your SSL private and public keys will be generated which will take a while.

If you have used the recommended partition scheme or used your own custom partition layout, then you need to format those remaining partitions. During the initial boot, you will also be given a choice to format your second and third partition if you have them. The second partition will be formatted as swap while the third partition will be formatted as FAT. Alternatively, you can do it manually as well. Start a terminal console and format the remaining partitions depending on what type of partitions you have created. For example:

# mkswap /dev/hda2
# swapon /dev/hda2
# mkfs.vfat /dev/hda3
# mount /dev/hda3 /data

The above assumes you have no CF card inserted. Otherwise use hdc instead of hda.

Once your second partition is initialised, it will be automatically enabled as swap when you reboot. Similarly, your third partition will be automatically mounted as /data after a reboot.

Installation files for pdaXii13 Spitz (Alice) can be downloaded from pdaXii13 files area on tyrannozaurus which contains a stable release version. Alternatively, there are also alpha/beta test binaries available for downloaded from the bleeding edge testing area.

pdaXii13 Spitz was build for the SL-C3000 and has only been tested on a SL-C3000. It may work on SL-C3100/SL-C3200 if they have pdaXrom beta3 or pdaXii13 Akita base installed prior to installing pdaXii13 Spitz, but may also break those models. It is not guaranteed to work, and even if you managed to get it installed, there still may be some things that won't work. pdaXii13 Spitz is for the SL-C3000 and runs entirely from the internal MicroDrive. It is available as pdaXii13 base and pdaXii13 full. pdaXii13 Spitz is also the main release of pdaXii13.

pdaXii13 Akita is for SL-C1000, SL-C3100 and SL-C3200 and runs off the 128MB internal flash (NAND). It is primarily available as pdaXii13 base only, but can be extended to pdaXii13 full on SL-C3100 and SL-C3200 by utilising the internal MicroDrive to store the entire hdd image from the Spitz install. On the SL-C1000 this can not be done automatically due to it not having an internal MicroDrive. There is, however, an experimental feature for the SL-C1000 to install the hdd image to a SD card instead.

Installation instructions and installation files for pdaXii13 Akita (Sally) can be found at tyrannozaurus in the akita area. The pdaXii13 Akita install process is similar to the pdaXrom beta3 install and the same that applies to pdaXrom beta1/beta3 also applies to pdaXii13 Akita installation. It is advised to resize the NAND root to 121 during installation in order to utilize all of pdaXii13's features.


It is also possible to apply all the pdaXii13 fixes to the C3x00/C1000/C8x0/C7x0 without reflashing to pdaXii13, ie you can upgrade your existing pdaXrom beta1/beta3 setup to pdaXii13 without requiring to wipe your existing setup. You can also update an existing pdaXii13 installation with the same method. Just use the upgrade option in the pdaXii13 installer.

You can get the upgrade archive file pdaXii13-custom.tgz from tyrannozaurus which you need to place on the same card as the installation files from which you are upgrading/installing from.

There also is an install script contained in the tarball which will copy all the patched binaries and scripts to the appropriate locations when you run the script if you prefer to manually upgrade or an installer is not available for your model. To upgrade to pdaXii13 using the manual method, extract the tarball (preferrably to a CF card rather than a SD card) and run the install script ( from the console outside of X.

Make sure you make a NAND backup of your Zaurus before you apply the update in case something goes wrong, then copy pdaXii13-custom.tgz to a CF card.

# mkdir -p /mnt/cf/upgrade
# zcat pdaXii13-custom.tgz | tar xvf - -C /mnt/cf/upgrade
# cd /mnt/cf/upgrade/custom
# /etc/rc.d/init.d/sd stop
# ./ / upgrade

This will give you something similar to the latest pdaXii13 base and works on all clamshell models.

Please refer to the pdaXii13 release notes under the testing area to see which enhancements/features can be applied automatically via upgrading, and which need a complete reflash or manual upgrade of individual packages (ipk files).

Pre-Installed Packages

Below is a list of pre-installed applications that are part of the pdaXii13 full installation. The following packages are in addition to the applications installed by the default pdaXrom beta3. These applications are not all pre-installed on pdaXii13 base.

    engines and runtimes:

    • atd (scheduler)
    • samba (file sharing)
    • aspell (spelling engine)
    • scim (chinese and japanese support)
    • x11vnc (vnc server)
    • python (interpretor)
    • perl (interpretor)
    • java (classpath and jamvm)
    • gsnapshot (screen capture)
    • xscreensaver (screen saver)
    • wallpaper (random background images)
    • gnome-bluetooth (obex gui)
    • gnome-phone-manager (gnokii frontend)
    • glipper (clipboard)
    • festival/mbrola (text to speech)
    • dosbox (DOS emulator)

    useful command line utilities:

    • vim (replacement for vi)
    • nano (text editor)
    • scrot (screen capture)
    • lame (mp3 encoder)
    • feh (image viewer)
    • mplayer (video player)
    • gplflash (flash player)
    • flite (speech synthesizer)
    • bzip2 (compression utility)
    • unrar (uncompression utility)
    • unzip (uncompression utility)
    • diffutils (file comparison utility)
    • ipktools (ipk building tools)
    • xdialog (dialog tools)
    • wmctrl (X controls)
    • mouseclick (mouse control)


    • abiword (word processor)
    • gnumeric (spreadsheet)
    • xournal (note taking)
    • medit (text editor)
    • textedit (text editor)
    • sylpheed (email)
    • firefox (browser)
    • dillo (browser)
    • links (browser)
    • gftp (ftp client)
    • amule (p2p)
    • gaim (IM client)
    • wifi-radar (wifi detector)
    • kismet (network sniffer)
    • tightvnc (vnc client)
    • putty (net client)
    • mrxvt (tabbed terminal emulator)
    • multi-aterm (tabbed terminal emulator)
    • rox (file manager)
    • xfe (file manager)
    • pcmanfm (file manager)
    • emelfm2 (file manager)
    • LinNeighborhood (samba client frontend)
    • xmmsplayer (video player plugin for xmms)
    • gmplayer (mplayer with GUI)
    • smplayer (GUI for mplayer)
    • vlc (streaming media)
    • streamtuner/streamripper
    • gqcam (webcam)
    • spcagui (webcam)
    • xarchiver (file compressor/decompressor GUI)
    • gqview (image viewer)
    • gthumb (image viewer)
    • scribble (simple drawing)
    • qbedic (dictionary)
    • stardict (dictionary)
    • epdfview (pdf viewer)
    • evince (pdf viewer)
    • fbreader (ebook viewer)
    • justreader (ebook viewer)
    • opie-reader (ebook viewer)
    • qcomicbook (comic viewer)
    • kchmviewer (chm viewer)
    • dia (flow diagrams)
    • gimp (graphics)
    • khdrecord (sound recording)
    • gpe-calendar (calendar)
    • gpe-announce (alarms)
    • gpe-contacts (addressbook)


    • xdemineur (mines)
    • tetrix (tetris)
    • tictac (tictactoe)
    • xpat2 (solitaire)
    • xinvaders (space invaders)
    • xkobo

There are many more packages beside the ones on the official feeds. Many user contributed packages exist and can also be installed. beta1/beta3 packages are compatible with pdaXii13. Some packages for pdaXrom beta4 and r121 will also work on pdaXii13 but be careful with those since some can also break pdaXii13 due to library version incompatabilities.

Configuring Feeds and Installing Packages

The Package Manager has been pre-configured to point to a special beta3 feed ( which is a merger of several beta3 compatible feeds including the official beta3 and beta1 feeds as well as some custom feeds. It also points to local feeds on /mnt/card/feed, /mnt/cf/feed and /data/feed.

To create your own custom local feed, you can download the beta1 feed.tar.gz files for the generic and C3x00 specific one.

You can then merge the two feeds (and any additional ones) onto your internal MicroDrive or one of the external cards. Just extract the files into a directory (extract the 7x0 archive first and then the C3100 one on top of it to eliminate the duplicates). Then use ipkg-make-index to generate a new Packages file for the feed.

[package manager]

You can also install individual packages without requiring a feed, but you will need to manually install dependant packages yourself. You can either use the GUI Package Manager or use the command line ipkg command.

Keyboard Shortcuts

The pdaXii13 custom keyboard layout (spitz.xmodmap) is fully functional with all keys mapped. Below is a list of keyboard shortcuts and customisations that exists on pdaXii13.

There are two types of changes to the keymappings. The first one are the essential fixes to make the keymap work, and the second ones are enhancements to make it more usable and similar to the keyhelper enhancements on the Sharp distro.

To customise the default keymap, modify /etc/sysconfig/keyboard/ and /etc/X11/kb/spitz.xmodmap and use loadkeys and xmodmap to reload the key mappings respectively. Use xev within X to determine the keycode for the keys. If you don't like my custom keymap, then use the original akita.xmodmap instead.

Sticky keys are automatically enabled and can be controlled with the ax command which controls all the AccessX functionality. With sticky keys, you can hit the control/modifier keys, ie: Fn, Shift, Ctrl and Alt, once and then hit the second key without needing to keep the control/modifier key pressed. For example, to produce A, simply press Shift followed by a. This is very nifty for one handed typing. As a side effect of using sticky keys, the Fn key + 1..4 combination to change the brightness and creen resolution is not working properly and thus has been remapped. Also the Caps Lock functionality has been disabled because of a conflict in the X server which needs to be patched to allow these features to function properly. A patch has been applied to the X server to fix the silkscreens, but patching the Fn functionality for special dual function keys is a bit more complicated.

Most keys are mapped as displayed on the keyboard except for some additional keys which have also been mapped but are not marked on the keyboard. Also some additional keys have been remapped as follows:

  • LeftKanji = Alt (Alt_L)
  • RightKanji = Super (Super_L)
  • Fn+q = Backtick (accent grave)
  • Fn+Q = é
  • Fn+W = ê
  • Fn+E = è
  • Fn+R = É
  • Fn+T = Ê
  • Fn+Y = È
  • Fn+i = î
  • Fn+I = Î
  • Fn+p = EuroSign
  • Fn+P = PoundSign
  • Fn+n = {
  • Fn+m = }
  • Fn+a = ä
  • Fn+A = Ä
  • Fn+o = ö
  • Fn+O = Ö
  • Fn+u = ü
  • Fn+U = Ü
  • Fn+s = ß
  • Fn+S = þ
  • Fn+D = Ð
  • Fn+z = å
  • Fn+Z = Å
  • Fn+x = æ
  • Fn+X = Æ
  • Fn+c = ç
  • Fn+C = Ç
  • Fn+v = ø
  • Fn+V = Ø

By defeault, there are also several predefined key combos which do the following in the default OpenBox window manager. Other window managers have slightly different key combos:

  • Ctrl+Alt+BS = Shutdown X
  • Ctrl+Alt+Left = Switch to previous Virtual Desktop
  • Ctrl+Alt+Right = Switch to next Virtual Desktop
  • Shift+Alt+Left = Send to previous Desktop
  • Shift+Alt+Right = Send to next Desktop
  • Ctrl+Alt+d = Toggle Show Desktop
  • Ctrl+Alt+m = Toggle Maximize/Restore Window
  • Fn+Ctrl+Alt+Down = MoveRelativeVert
  • Fn+Ctrl+Alt+Up = MoveRelativeVert
  • Fn+Ctrl+Alt+Left = MoveRelativeHorz
  • Fn+Ctrl+Alt+Right = MoveRelativeHorz
  • Alt+Tab = Switch forward between running Applications
  • Alt+Shift+Tab = Switch backward between running Applications
  • Alt+0 = MaximizeFull
  • Alt+5 = UnmaximizeFull
  • Alt+9 = Iconify
  • Alt+8 = Resize
  • Alt+7 = Move
  • Alt+4 = Close
  • Alt+6 = ToggleShade
  • Menu = Activate Launch Menu
  • Home = Mode
  • Mail = rox
  • Address = xmms
  • Calendar = mrxvt
  • Shift+Calendar = aterm
  • Ctrl+Alt+c = screencap
  • Shift+Ctrl+c = screencap

Some function keys have been remapped as follows:

  • Super+1 = Switch VGA mode (320x240)
  • Super+2 = Switch SVGA mode (640x480)
  • Super+3 = Decrease Brightness
  • Super+4 = Increase Brightness
  • Super+5 = Refresh
  • The silkscreen keys are mapped as follows by default:

  • Home = dilllo
  • Mail = sylpheed
  • Address = xmms
  • Calendar = rox
  • Dictionary = stardict
  • To reduce finger movements, I also added extra mappings so that instead of pressing Fn+Ctrl+Alt, you can also use the Home key instead, and instead of Ctrl+Alt, you can use the Super key (right kanji key). I also associated most Alt+key combos to be also activated by Home+key as well.

    The above changes can be done by modifying rc.xml which is by default located under /etc/xdg/openbox/, but may also be located under /home/root/.config/openbox/. In pdaXii13, those two locations are symbolically linked.The silkscreen and shortcut keys at the bottom of the keyboard can also be changed using the Input Setup tool.

    SCIM input language switching can be activated by pressing Ctrl+space or Ctrl+/

    When you plug in a USB keyboard, you can automatically remap the keys so that the keys on the external keyboard are mapped correctly, but it will result in the Zaurus keyboard being mismapped. When the external keyboard is unplugged, the keymapping for the zaurus keyboard is restored. This is handled by the hotplug subsystem.

    [usb keyboard selector]

    You can also manually switch the keyboard mapping for your USB keyboard by using the USB Keyboard Selector tool. It allows you to switch between the default Zaurus keymapping (spitz.xmodmap) and the default USB keyboard mapping (usb.xmodmap). There are additional options for other keyboard mappings which you can add by placing keyboard maps for those mappings under /etc/X11/kb/ and naming your keyboard mapping file usb-LANGUAGE.xmodmap where LANGUAGE is the two letter abbreviation in lowercase.

    The default XMMS keys have been changed to make it more Zaurus friendly, especially when the Zaurus is in portrait mode and you want to use the buttons and the scrollwheel at the back of the Zaurus to control XMMS just like the MusicPlayer in Sharp ROM. The following keys can be used to control XMMS:

    • X or OK = Play
    • C or Cancel = Pause
    • V = Stop
    • N = Increase Volume
    • M = Decrease Volume
    • Left = Skip Backward
    • Right = Skip Forward
    • Z or Up = Prev Song
    • B or Down = Next Song
    • R = Repeat
    • S = Shuffle
    • L = Load track to playlist
    • Shift + L = Load folder
    • Alt + S = Skin browser
    • Ctrl + P = Preferences

    xpdf has the following default key mappings:

    • o = open file
    • r = reload
    • f = find next
    • n = next page
    • p + previous page
    • + = zoom in
    • - = zoom out
    • z = zoom page
    • w = zoom page width
    • 0 = zoom normal
    • q = quit

    Below are some of the keyboard shortcuts for mrxvt:

    • Ctrl+Shift+t = Create a new tab
    • Ctrl+Shift+n = Create a new tab
    • Ctrl+Shift+w = Close active tab
    • Ctrl+Shift+q = Close all tabs and exit
    • Ctrl+Fn+Up = Activate left tab
    • Shift+Left = Activate left tab
    • Ctrl+Shift+h = Activate left tab
    • Ctrl+Shift+p = Activate previous active tab
    • Ctrl+Tab = Activate previous active tab
    • Ctrl+Fn+Down = Activate right tab
    • Shift+Right = Activate right tab
    • Ctrl+Shift+l = Activate right tab
    • Ctrl+Shift+Left = Move active tab to left
    • Ctrl+Shift+less_than = Move active tab left
    • Ctrl+Shift+Right = Move active tab to right
    • Ctrl+Shift+greater_than = Move active tab right
    • Ctrl+equal = Increase font size
    • Ctrl+minus = Decrease font size
    • Ctrl+Shift+plus = Increase font size by 2
    • Ctrl+Shift+underscore = Decrease font size by 2
    • Ctrl+Shift+r = Toggle pseudo-transparency
    • Ctrl+Shift+i = Hide/show tabbar
    • Ctrl+Shift+s = Hide/show scrollbar
    • Ctrl+Shift+m = Hide/show menubar
    • Ctrl+Shift+a = Hide/show tabbar buttons
    • Ctrl+Shift+f = Toggle full screen mode
    • Shift+Insert = Paste X selection into active tab.
    • Ctrl+Shift+v = Paste X selection into active tab.
    • Shift+Up = Scroll up one line
    • Shift+Down = Scroll down one line

    Some of the sticky keys will also work outside of X as well. sticky keys are enabled by default. You can disable them by settings STICKY_KEYS to false in pdaxii13.conf and restarting X.

    Screen Rotation

    Screen rotation works automatically on pdaXii13. Openbox will detect transformation between laptop mode (landscape) and PDA mode (portrait) and rotate the screen by calling which will ensure it is done appropriately by checking the current orientation and calling the relevant commands accordingly.


    You will end up with the taskbar at the correct location for the orientation you are in. The currently running applications will also be resized to fit your orientation. In order for this to happen, the running applications will be maximized. The rotate option on the menu will also call and force a manual rotation.


    Screen Capture

    A screenshot can be taken by running xwd -display :0 > screendump.xwd

    A smarter script (screencap) has been written that mimics the capture behaviour on the Sharp distro, ie. the script is bound to the Ctrl+Alt+c key combo and activated when that key sequence is pressed. A shutter sound (click.wav) is then played before doing the screen dump. The filenaming and sequencing has been made to mimic the Sharp snapshot tool. See the screencap script.

    If scrot is installed it will use scrot to capture a png image, otherwise xwd is used instead and if ImageMagick is installed, then it will be used to convert the xwd image into a png image.


    In pdaXii13 full, an additional screencap icon is placed on the taskbar and once tapped will wait 10 seconds before taking a screenshot. Alternatively, you can also use gsnapshot which allows you to capture a specific area of the screen.

    Desktop and Menu Customisation

    The .desktop files defining the applications are located under /usr/share/applications and the corresponding icons are located under /usr/share/pixmaps

    [menu1] [menu2]

    The desktop is by default managed by matchbox desktop in pdaXrom. pdaXii13 full defaults to rox pinboard instead. You can either access the application icons via the menu or the desktop panels/pinboard.

    You can manually replace the matchbox desktop with rox filer to get an integrated file manager and desktop manager in pdaXrom. To do that, modify /home/root/.xinitrc and replace the following:

    eval "matchbox-desktop $MBBGND" 2>/dev/null >/dev/null &

    with this:

    eval "rox --pinboard=MYPINBOARD" &

    and then restart X.


    The config files for ROX are under /usr/apps and /home/root/Choices/ROXFiler

    In pdaXii13, the above change has been implemented in such a way that rox is used if it is installed, but the default matchbox desktop is used instead if rox is not installed. You can also specify whether to use matchbox desktop or rox pinboard in the pdaXii13 config file called pdaxii13.conf located under /home/root/Choices

    The Look & Feel tool in the Systems Tools can be used to change the default wallpaper as well as change many other aspects of how the GUI looks like. The wallpaper can be any png image file, but a resolution of 640x440 is ideal.


    However, if you changed your desktop to use rox filer instead of the matchbox desktop, then you can right click (Fn+tap) to activate the rox filer properties where you can drag and drop an image into the background section. There is also a command line tool called rox-bset which you can use to replace the background as well as enabling random backgrounds.

    To change the theme for OpenBox, use the OpenBox Config tool (obconf) which can configure other settings in OpenBox as well.

    [openbox config]

    To apply manual changes done by editing rc.xml, either restart X or run the following command:

    # openbox --replace 2>/dev/null &

    There is also an additional GTK Theme selector in pdaXii13 to allow you to change the GTK2 theme used by some applications. The GTK2 theme also controls the font size for those applications. The GTK Theme selector also allows you to just change the font without switching themes.

    [gtk theme switch]

    The QtConfig tool can be used to change the display settings for Qt applications.


    Most applications in pdaXrom are GTK based, but there are also a few QT applications.

    Finally, in pdaXii13, the order of the icons on the toolbar can be changed with the Panel Manager tool.

    [panel manager]

    This tools is new to pdaXii13 and not in the default pdaXrom but can be added manually.

    Other window managers use their own menu settings and may not use the .desktop files. Fluxbox for example uses ~/.fluxbox/menu while icewm uses various files under ~/.icewm/ instead. However, the pdaXii13 version of icewm has a conversion tool which converts all the .desktop files to icewm menu files.

    Window and Dialog Sizes

    There are quite a few applications which open up in a window that is way too big for the Zaurus. This can usually be worked around by maximising the window in question (press Home+m or Super+m).

    Some application can be tailored to a specific window size by editing their config files. Other applications have the size hardcoded. I have recompiled a few such applications, ie GQView and AbiWord.


    The File Open Dialog is also quite big and this problem is across most GTK2 applications. I have recompiled GTK2 and hacked the FileChooser to be more suitable for the Zaurus screen. You can either install my updated GTK2 package or replace manually.


    pdaXii13 has this fix applied by default and most windows will fit onto the display rather than extend beyond the physical screen size.

    Window Managers

    pdaXrom uses openbox as its default window manager because it is lightweight and loads pretty fast. However, it does not automatically resize applications that are oversized. Suitable alternatives seem to be icewm and fluxbox which are also included in pdaXii13 full.

    openbox (default with matchbox desktop)


    openbox (with rox pinboard)

    [openbox with rox]

    icewm (with rox pinboard)


    fluxbox (with rox pinboard)


    e17 (enlightenment)


    The default window manager in pdaXii13 is openbox, just like in pdaXrom. However, once you exit X, you can use xselect to switch and make icewm or fluxbox your default window manager which will run when you start X again.

    If using a different window manager other than the default OpenBox, then there are various other config tools to configure those window managers. IceWM and FluxBox have their own set of config tools.

    File Managers

    There is no default GUI file manager in the default pdaXrom, however, rox filer is a good candidate for this function and has been included in pdaXii13.


    In addition, emelFM2 is also a good file manager with two panels and has also been included in pdaXii13.


    Midnight Commander (mc) is a console based file manager that is by default installed in pdaXrom and has been updated in pdaXii13.


    Additionally, pcmanfm which is a fast and efficient file manager is also included.


    And lastly, xfe which is much like windows explorer has also been included in pdaXii13.



    mrxvt is the default terminal in pdaXii13 because it looks nice and has pseudo transparent background support. To enable transparency, copy Xdefaults to /home/root as .Xdefaults if mrxvt does not have transparency enabled by default. The Xdefault file enables transparency for mrxvt, rxvt, aterm and multi-aterm.


    aterm and multi-aterm, as well as rxvt are also available as alternative terminals and installed on pdaXii13 by default. xterm which is a bit broken in pdaXrom has been fixed in pdaXii13 and displays the fonts without the extra boxes.

    Zaurus Backup

    You should always backup your system since that is the only way to recover if something goes wrong. The easiest way to backup is to archive everything using tar and then use gzip to compress the archive.

    I have created a script called zbackup which backs up the system and its configurations so you can use the backup image generated by it to restore your system. The generated tgz file can be used to restore pdaXii13 by simply renaming it to hdimage-custom.tgz and flashing it.

    It is recommended to exit X before doing a backup. By default, the backup file will be placed under /data

    /opt, /data and /mnt will not be backed up as well as any other additional directories that you create on /. zbackup has been enhanced to also generate an initrd.bin file for the NAND based models so you can restore your Akita based pdaXii13 setup via a reflash. For C3100/C3200 which have both NAND and MicroDrive, an initrd.bin as well as a tgz image of the MicroDrive which needs to be renamed to hdimage-custom.tgz are generated by zbackup.

    Zaurus Restore

    When you want to restore your Zaurus to a previous backup after you have messed it up or you had backed it up to try another distro and now decided you want to restore your previous backup to recover your backed up state, all you need to do is follow the pdaXii13 installation guide to install pdaXii13, but instead of using the hdimage that you can download, you use your backup file instead. Find the backup file and rename it to hdimage-custom.tgz if you haven't already done so and put it on your installation media (CF or SD card) instead of the hdimage-full.tgz or hdimage-base.tgz file.

    If you have a NAND based install of pdaXii13, ie. Sally instead of Alice, the backup would also had created an initrd.bin file. Use that initrd.bin instead of the original initrd.bin to flash. This initrd.bin basically contains the content of the original initrd.bin plus all your customisations.

    zaurus user

    pdaXii13 has a zaurus user to run certain services such as samba, xscreensaver and amule where security is important, but for most other things, the root user is used. This is a slight security concern, but better than pdaXrom where everything is run by root.

    If that is a concern to you then you can create a new user by using the useradd command and starting X once you have logged in as that user.

    Resume and Suspend

    suspend works when invoked from the start menu or when the On/Off button on the front side is pressed. resume also works just like in Sharp ROM where you need to press the On/Off button when the Z is suspended. It also appears that the Z does not like to resume unless you had closed the lid and reopened it. You can cheat by pressing the little nodge at the base of the swivel with your stylus. You may need to wait ten seconds before the Zaurus resumes.

    The hdd led is no longer left on when suspending except when the MicroDrive's filesystem is really badly corrupted and in need of a manual fsck which happens occasionally if you have not rebooted the Zaurus for a long time.

    In pdaXii13, the sound daemon (esd) has been configured not to respawn which prevents it from locking up the keys on resume. It is also advisable to add esdctl off into the apm suspend script and have esdctl on in the corresponding resume script to automatically suspend and resume the sound daemon. This is already done in pdaXii13 and allows the Zaurus to be suspended while XMMS is actively playing without locking out the sound device. On resume, XMMS is able to continue playing. In the extreme case when the sound device does get locked, you can run the fixdsp command to rectify the problem or reboot the Zaurus.

    The blanker applet has also been fixed and can now really enable and disable the DPMS suspend feature. It also calls the xset-wrapper script which can be used to customise the toggle for suspend/screensaver behaviour.


    pdaXii13 has a reboot option in the menu. This is added by creating a reboot.desktop under /usr/share/applications with the corresponding reboot.png under /usr/share/pixmaps as well as the Reboot binary under /usr/bin


    When you select the reboot option from the menu, you will get prompted to confirm just like when you select exit to quit X.

    pdaXii13 startup sequence

    The boot and startup process on pdaXii13 Spitz is a bit different from the standard pdaXrom because of its small flash and follows the following sequence:

    • load kernel from NAND
    • read and mount NAND partitions
    • load /sbin/init interceptor from rootfs on NAND
    • initialize and mount MicroDrive
    • pivot rootfs to MicroDrive
    • execute /sbin/init from MicroDrive
    • initialise core hardware
    • mount internal filesystems
    • load kernel modules
    • load inittab and rc subsystem
    • run rc.local
    • run scripts in /etc/rc.d/rc3.d or /etc/rc.d/rc5.d
    • /etc/rc.d/init.d/local is run from either rc3.d or rc5.d
    • start X if runlevel 5
    • if using openbox/matchbox (default) load mb-applet-tasks
    • task applet will run /home/root/.matchbox/autoexec
    • once X is exited, console login is loaded
    • /etc/issue is displayed
    • when reboot is issued, scripts in /etc/rc.d/rc6.d are run
    • /etc/rc.d/init.d/halt is last script to be run before reboot

    In pdaXii13, the boot/startup process has also been enhanced to make it easier to automatically run a command/script or start an application. There are now three different entry points where extra scripts/commands can be added to be automatically run at startup/bootup.

    • /etc/rc.d/rc.local will be run upon boot before any of the scripts under /etc/rc.d/init.d are run.
    • /etc/rc.d/init.d/local will be run just before X is started.
    • /home/root/.matchbox/autoexec will be run after X has started.


    fsck is run automatically each time you reboot. However, if your filesystem is too messed up, you will need to run fsck manually. In most cases, you will be thrown to a terminal shell prompt during boot if a manual fsck is required. Run the following command when this happens:

    # e2fsck -y /dev/hda1

    The above assumes you have no CF card inserted. Once fsck has finished running, reset your Zaurus by pressing the reset button inside the battery compartment.

    It is recommended to reboot the Zaurus regularly so fsck is run to check for inode corruptions. This is required because the Zaurus implements a kind of lazy inode journalising. If you install or de-install lots of packages, it is also recommended to reboot afterwards.

    pdaXii13 can be booted into Maintenance Mode, ie this is a special stage before the MicroDrive is mounted so you can run fsck on it. The pdaXii13 Config tool will allow you to enable Maintenance Mode. You can also run maintenance from the command line to enable Maintenance Mode. You will be taken to the special Maintenance Mode once you reboot.

    You can also manually fsck your MicroDrive by booting into the emergency partition using D+B key sequence and running fsck from there.

    Alternatively, you could start the pdaXii13 installer and use option 5 to go to a console and run fsck from there.

    You could also use the fsck feature in the Maintenance Menu, so after you press On/Off while pressing the OK button, select Option 2 (data check) and then select Option 2 (run fsck) again.

    pdaXii13 config

    The file /home/root/Choices/pdaxii13.conf defines some rudimentary startup configurations for pdaXii13 such as whether to start X when booting up, whether to play the welcome sound, whether to load SCIM automatically, whether to load ROX or the default matchbox desktop, and which mplayer to invoke from ROX filer as well as whether to load torsmo or activate sticky keys.


    The special Maintenance Mode can also be enabled from this config tool. When Maintenance Mode is enabled, the next time you reboot your Zaurus, it drops into a special shell before the MicroDrive is mounted so you can manually fsck it. Once you are done, you need to reset your Zaurus by pressing the little reset button inside the battery compartment.

    [pdaxcfg] [pdaxcfg] [pdaxcfg] [pdaxcfg] [pdaxcfg] [pdaxcfg]

    The new pdaXii13 config tool pdaXcfg allows you to easily enable and disable each of the options contained in pdaxii13.conf as well as control the maintenance mode. Additionally, the pdaXii13 config tool also provides a system summary. Furthermore it allows you to configure most aspects of pdaXii13. It can be used as the central configuration tool. Most system features and services can be either configured from the pdaXii13 config tool, or it aggregates the corresponding system tools for easy and quick launch from within pdaXcfg. For the wifi settings, if wifi-radar is installed, then it will be launched for network configurations, otherwise network-cfg will be launched instead. pdaXcfg also works for pdaXrom but will be limited to what is available and installed, ie. pdaXii13 specific options or features that don't exist on pdaXrom will not be available when installed on pdaXrom.

    auto mounting

    Automatic mounting via /etc/fstab works in pdaXii13. It does not work in the pdaXrom default config, but I integrated the features from my automount scripts into the default rc scripts. It creates up to 8 loop devices instead of the default 2 loop devices. Furthermore, loop images are also automatically mounted at bootup.

    USB disks are also mounted automatically once they are plugged in. Up to four USB disks can be mounted automatically if you have a hub.


    You can also manually mount and unmount the SD card, CF card and all connected USB storage devices. The card applet has been enhanced to allow this.

    USB network/storage

    The USB module works in two modes similar to the Sharp distro. It can either allow the Zaurus to be used as a USB disk or used as a virtual network adaptor. The Zaurus can be mounted as a USB storage device when connected with the USB sync cable. It will allow you to either share the SD, CF or internal MicroDrive (partition 3 which is mounted as /data).


    Alternatively, the USB network mode will allow you to connect the Zaurus via a virtual ethernet network and thus will allow you to share files via Samba and also allow you to use any TCP/IP dependant network services if enabled. If for example the PC or Laptop you connect to via USB cable has internet sharing (Windows ICS or iptables on Linux) configured, then the Zaurus can access the internet through that connection. See the networking section of my customisation guide for Sharp ROM on how to do that. I have also written a basic script usbnet which automatically configures the usbd0 interface to use the Windows ICS (Internet Connection Sharing).

    Similarly, I have also added a script called usbstorage which quickly switches the USB mode back to storage mode using the previously configured options. Using usbnet and usbstorage you can quickly switch between USB network and USB storage mode without going into the USB config GUI.


    Samba is pre-installled and configured to work on the defined interfaces as a server so you can mount the Zaurus as a samba/windows share. It may need to be reloaded if you create additional network connections in order to share files on those newly created connections as well. To restart the samba service, you can type: /etc/rc.d/init.d/samba restart or simply samba restart

    I also created a simple GUI to control samba.


    samba runs as the zaurus user and inherits the rights and file permissions of that user.

    [LinNeighborhood] [LinNeighborhood] [LinNeighborhood]

    The Zaurus also has a samba client, so it can mount other machines that have samba enabled, even Windows machines. Additionally, the LinNeighborhood interface allow you to mount samba/windows shares from a GUI.


    The bluetooth sub-system included with pdaXii13 uses gnome-bluetooth as the GUI interface for file transfers via the OBEX protocol.

    [obex] [obex]

    Files can be send to a mobile phone from rox's SendTo interface which invokes the gnome-bluetooth interface to give you a graphical tool to select the bluetooth destination device followed with a graphical progress dialog for showing the progress of the file transfer.

    [obex] [obex]

    If the gnome-bluetooth receiving interface is enabled, then upon a request for receiving a file, a GUI is displayed to either allow or deny the file.

    Additionally, a bluetooth phone manager GUI is also available which uses gnokii underneath to communicate with the mobile.

    GPRS network connection via Bluetooth also works. Make sure /etc/bluetooth/pin contains your PIN and then use the PPP config tool to configure the preconfigured GPRS profile to look for your phone. Then use the PPP dialer to connect to the phone to enable the GPRS connection.


    Wireless networking is also supported in pdaXii13. Some extra firmware is included in pdaXii13 to support wifi devices that require a firmware to be uploaded to the device to initialise it.


    In addition, Wifi Radar is also pre-installed and configured for most devices and can be used to detect wireless networks.

    WPA is also supported, however, you need to manually add a network config entry into /etc/wpa_supplicant.conf before you can use wifi-radar to connect via WPA provided your wifi card supports WPA.

    # wpa_passphrase yourssid yourpassphrase > /etc/wpa_supplicant.conf

    Then tell wifi radar what your WPA driver is, which on a Zaurus is always hostap. If your card is not using the hostap driver but needs another driver, then it does not support WPA.

    If your CF wifi card is not working, it may be because your card is not supported, ie its configuration is missing in /etc/pcmcia/config, or there is no driver/module available for your card. If it is the latter case, then you are better off trying to get another card because in order to support your card, you will need to find the driver source code for it, and it needs to be supported for Linux ARM architecture and also be compilable for 2.4.20 Linux kernel. Most of the drivers that fit into this category have already been compiled and added. Linux 2.4.20 kernel only supports 802.11b, not 802.11g or newer.

    If your card manufacturing ID (manfid) is 0xd601,0x0002 then your card might just be misconfigured. Several wifi cards have this ID although it is supposed to be unique to a single manufacturer's card, but unfortunately this is not the case for this manfid and thus is causing configuration problems. Since the Zaurus cannot correctly identify all the cards with this problematic manfid, in pdaXii13, this manfid defaults to the Netgear MA701 Wifi card which uses the prism2 driver. Some other cards from other manufacturers with this manfid can also use the same driver and will also work although the card would be incorrectly identified which should not be a problem. However, some cards like the AmbiCom WL1100C also have this manfid but they require the hostap driver instead and thus will not work at all until you comment out the driver section for the Netgear card in /etc/pcmcia/config and uncomment the appropriate section for your card. Naturally, you need to restart the PCMCIA service after you modify its config in order for the change to take effect.

    USB Ethernet

    USB ethernet is also supported in pdaXii13. Drivers for several USB ethernet dongles such as the ones using the rtl8150, dm9601 or pegasus drivers are supported by default which are used by a great majority of the USB dongles anyways including most of the cheap ones. The hotplug sub system will automatically load the appropriate driver and configure the network interface eth0. This is configured in /etc/sysconfig/network and by default is set to use DHCP. Assigning a custom configuration can be done by editing that file and providing the relevant network details such as an IP address and DNS entry.

    USB wifi dongles are also supported in a similar fashion, except the configuration file is /etc/sysconfig/wireless and requires a valid WEP to be provided.


    Using the new network-cfg tool in pdaXii13, you can configure your USB based network device and save multiple configurations as separate profiles and also establish a network connection using the network-cfg tool. The network-cfg tool is part of the pdaXcfg tool but can also be run separately by itself. It basically is an enhanced version of the pdaXrom network config python script.

    Chinese and Japanese support

    Chinese and Japanese input can be enabled in pdaXii13 by invoking SCIM. You can configure SCIM by running scim-setup.


    You can activate and switch input methods by pressing Ctrl+space for those applications that support it. AbiWord for example can be used with scim:

    [scimabiword chinese] [scimabiword japanese]

    After installing the scim packages, you will also need to set the XMODIFIERS environment variable as follows:

    export XMODIFIERS=@im=SCIM
    export GTK_IM_MODULE=scim
    export QT_IM_MODULE=scim

    Place the above into /etc/profile or .xinitrc

    pdaXii13 has been preconfigured with scim-anthy and scim-pinyin to support Japanese and Chinese input.


    There are several dictionary packages available for pdaXrom. QBEdic is a popular dictionary between different languages that is also available for the Sharp ROM (called ZBEDict), so the same dictionary files can be used. There is also a complete wikipedia that can be installed into QBEDic for reference. QBEDic dictionary files can be placed into any directory, but by default they are located under /usr/share/bedic. You can configure QBEDic to look in specific directories for dictionary files.


    Another popular dictionary package for pdaXrom is stardict which also runs on Windows. There are many dictionary files available for stardict, and there is also a sound package for stardict to pronounce the words in English. Stardict expects its dictionary files to be located under /usr/share/stardict/dic. The sound files have to go under /usr/share


    I have created a squashfs image containing several qbedic and stardict dictionaries as well as the sound files. Since the dictionary files are quite huge, placing them into a squashfs image can save quite a lot of space. I have also created a script called which created the necessary links for stardict so that the files on the squashfs image can be located by stardict. Just place the squashfs image under /data and it will be automatically mounted when you reboot.


    Abiword is a nice word processor, but it defaults to a 800x600 screen resolution which is not very usable for a Zaurus. For the C3000, it should be changed to 640x480. This can be done by editing /home/root/.AbiSuite/AbiWord.Profile


    I have compiled Abiword 2.4.4 and fixed all the window sizes so now every window in Abiword is sized correctly. I also compiled some text import/export plugins, so now I can open and edit StarOffice/OpenOffice documents.


    aspell is also installed to enable spell checking in abiword.


    The mplayer binary compiled by Agawa Koji (atty) is the most optimised and best performing mplayer binary available for the C3000 and thus is the default in pdaXii13.

    The following mplayer command line will allow you to watch video:

    # mplayer -vo bvdd -ac mad -ao ss -framedrop -really-quiet file

    To force fullscreen playback, add the -vm option:

    # mplayer -vo bvdd -ac mad -ao ss -framedrop -really-quiet -vm file

    The xmmsmplayer addon to xmms can be used as a frontend for mplayer. Unfortunately, while mplayer is active and playing taking screenshots is not possible and thus the screenshot seen here has been modified and does not look so good.


    It uses the -vo x11 option by default to play the video in a gtk window. You can make it use the bvdd driver instead and play fullscreen also. The config file used by the plugin is /usr/share/mplayer/mplayer.conf and contains the following config:

    framedrop = yes
    cache = 1024
    dr = yes

    Add the following to make mplayer use the bvdd driver and play fullscreen:

    vo = bvdd
    vm = yes

    There is a bug with mplayer that it does not refresh the screen properly once it exits from fullscreen mode. As a workaround, you can run xrandr -o normal to refresh the screen. Alternatively, you can simply press Home+5 to refresh the screen.

    I have also compiled the latest version of mplayer 1.0rc1 with gmplayer enabled. It runs slower but supports additional video and audio codecs.


    Alternatively, smplayer is a QT based mplayer frontend which I customised to be able to run atty's optimized mplayer-bvdd.


    In pdaXii13, mplayer is a wrapper script which calls the real mplayer binaries (mplayer1, mplayer2, mplayer3) depending on the options set. bvdd is the default and xrandr is automatically called to refresh the screen after mplayer exits.

    Sound Mixer

    The latest pdaXii13 contains a patch for the kernel to support Bass, Treble and 3D stereo sounds.


    Use the wm8750mixer tool to control the enhanced mixer settings.


    pdaXii13 also has V4L support with several standard camera drivers as well as spca5xx which supports a lot of USB webcams. There are several tools supplied to display the video from the camera onto the framebuffer such as spcagui and gqcam. A video capturing tools is also included.

    The resolution depends on your USB camera, most older ones have a 320x200 resolution, however, some have 640x480 which just fits entirely onto the Zaurus' screen.


    Java is available through the jamvm and classpath packages and is roughly comparable to JRE 1.4.x but also implements some of the JRE 1.5.x features.

    In addition, a Java Plugin for Firefox which uses jamvm and classpath is also available [gcjwebplugin-0.3.2_armv5tel.ipk] and enables many Java applets in Firefox 1.5, however, not all applets will work.


    The jamvm and classpath packages gives you a Java compatable runtime, however, in order to develop Java applications, you will need a Java compiler and other tools like jar, javah, javap and javadoc. Jikes can be used as a replacement Java compiler, and there is also a classpath tools package which has some of the Java tools you need.

    You can copy the tools.jar file from a 1.4.x JDK and use it instead.


    There is an on-board gcc 3.4.6 compiler to allow native development on the Zaurus. The older 3.4.5 version is also compatible.

    You need to put one of the zgcc images such as zgcc-3.4.6.squashfs or zgcc-3.4.5-4.squashfs under /home/root or /data. This will make it being automatically mounted on boot. You can also mount it manually as follows:

    # mount -o loop /data/zgcc-3.4.6.squashfs /opt/native/arm/3.4.6-xscale-softvfp

    To compile a little test application, create a file called hello.c with the following content:

    #include <stdio.h>
    int main()
    printf("Hello World\n");

    Then run the following command which will generate an executable called hello.

    # gcc -o hello hello.c

    To compile source packages, first download and extract the source tarball. Then do the following:

    # ./configure
    # ./make

    You can also use strip to strip the binary to make it smaller once it is built. Usually, there is a DESTDIR variable defined in the Makefile which can help you turn the compiled binaries into a package.

    # cd /data/build/pkg
    # newipk testapp
    # cd /data/build/src/testapp
    # make DESTDIR=/data/build/pkg/testapp/data install
    # cd /data/build/pkg
    # makeipk testapp

    This example uses ipk-tools to create a package. See the ipkg section below for further info.

    You can use gcc 3.4.6 to compile both console and X based applications, however, you cannot use it to compile the kernel or glibc. You will need gcc 2.95-2 instead.

    [qt designer] [qt assistant] [qt linguist] [qtconfig]

    Furthermore, I also added QT designer, assistant and linguists, and I recompiled qtconfig so it won't startup oversized.

    Building your own Packages

    You can also build your own packages (ipk files) if you have written some useful scripts or written some applications that you want to distribute and let others install easily with the standard package manager.

    I have build a package ipktools [ipktools_0.2_armv5tel.ipk] which has a set of tools for manipulating ipk files on pdaXrom:

    • newipk - creates a package template structure for you to add files to for packaging
    • makeipk - package up a directory that contains files in an ipk structure into an ipk file
    • unpackipk - extracts the contents of an ipk file into a directory structure for repackaging
    • deb2ipk - converts a deb file into an ipk file format (needs perl)
    • zipipk - zip up an ipk file and remove ipk file afterwards
    • ipkg-make-index - creates the Packages file for a feed

    There currently are two ipk file formats. One uses the tar and gz format, wheras the other one uses a different binary format that is the same as the Debian .deb format. The Zaurus with default Sharp ROM (and Cacko) as well as pdaXrom uses the tar and gz format, which basically is a gzipped tarball (.tgz or .tar.gz) with a control structure and renamed to .ipk. If you extract this ipk file, you will find 3 files inside it - a text file called debian-binaries which just contains the string 2.0, and two .tar.gz files called control and data. The control.tar.gz file contains a text file called control which has informaton about the package such as the Maintainer's name, dependencies, version, description, etc. There may also be some optional shell scripts for doing some pre and post configuration tasks during install and uninstall. Finally, the file data.tar.gz contains all the files and directory structure of the files for their destination location. The other ipk format is used by OpenZaurus and PocketWorkstation (Debian) and requires the ar command to extract the files.

    To unpack an ipk file to see what is inside it, do the following:

    # unpackipk somefile.ipk

    To create your own ipk file, do the following to create the ipk file structure:

    # newipk myproject

    Then once you add your files in the correct locations and also update the control file with the information about your application, you can create your ipk file with the following command:

    # makeipk myproject

    If you want to convert a .deb or OZ ipk file so you can unpack it with unpackipk, then convert it using the deb2ipk perl script first, or ue the ar tool instead.

    Building your own pdaXii13 image

    You can also build your own customised pdaXii13 image.

    The simplest way is to just backup your customised pdaXii13 system with zbackup and rename the backup tgz file to hdimage-custom.tgz and use it to flash your Zaurus with (in combination with the other install files).

    The harder way is to rip the default initrd file for the C1000/C3100 and customise that image.

    The following describes how the pdaXii13 binaries are built if you want to build it yourself from scratch:

    Grab an file (I used the one from pdaXrom C3000 beta2) and use the endecsh utility to decode it into a normal shell script and customise the script.

    # endecsh -d updater.txt

    Then use endecsh to encode the script.

    # endecsh -e updater.txt

    You can compile endecsh yourself or extract it from the updater-tools.bin file.


    The updater-tools.bin file is a tar file. It contains utilities from the pdaXrom tools.tar file.

    # tar xvf tools.tar

    I removed the kernel images and nand patches from the extracted tar file and added the pivot_root binary and init script as well as other tools to the bin directory and re-archived it.

    # tar cvf updater-tools.bin tools


    This is a kernel image. I just renamed the kernel from the C3000 beta2 to zImage-2.4.20.bin. This way, I can use almost any 2.4.20 kernel image for the C3000, by simply renaming the kernel image to zImage-2.4.20.bin and flashing it. I have found that the C3000 beta2 kernel works best and is most stable. I have tried using the Tetsu special kernel image as well and it mostly works, but since the C3000 beta2 kernel works great, there is no point in using the Tetsu kernel.


    The initrd.bin file from the pdaXrom C3000 beta2 was a rip from an old OZ distro that used the 2.4.20 kernel. Hence the system contained in the initrd.bin file required a specifically compiled kernel for OZ and also had to be compatible with pdaXrom. All the mini system does is boot up and mount the microdrive and then pivot to it. I ripped the emergency boot system to built the initrd.bin. To do that, mount mtdblock1 and tar it up.

    # mount /dev/mtdblock1 /mnt/test
    # cd /mnt/test
    # tar cvf initrd.tar *
    # cd
    # umount /mnt/test

    Then extract the initrd.tar file and modify it. Most importantly is to place pivot_root and init into sbin directory. Then use the mkfs.jffs tool to generate a jffs2 image:

    # tar xvf -C initrd
    # mkfs.jffs2 -n -e 16 -o initrd.jffs2 initrd

    Now the generated initrd.jffs2 file needs to be prepended with the Sharp initrd header which you can extract from the original initrd file:

    # head -c 16 initrd.bin > initrdheader
    # cat initrdheader initrd.jffs2 > initrd.bin

    You can extract head and mkfs.jffs2 from updater-tools.bin and make sure you use the head utility from the extracted updater-tools bin directory rather than the default head command.

    Later I found that the initrd.bin from the C3000 beta2 was sufficient, so I ripped that one instead and customised it.


    The hdimage.tgz is simply a gzipped tarball from the pdaXrom beta3 initrd.bin file. You can customise the content of this file, ie add and remove applications to and from it and also customise the pre-configured settings. The easiest way is to flash pdaXii13, then customise the running system to your liking and then use zbackup to generate a tgz image of your current system. Rename the backup tgz image to hdimage-custom.tgz and the installer will use it to flash your C3000 instead of the default hdimage.tgz or hdimage-base.tgz. hdimage-base.tgz contains the files from the ripped C1000/C3100 initrd.bin with minimal customisations. hdimage-full.tgz contains an image of a more heavily customised version of the ripped initrd.bin file with many more pre-installed applications.

    Note that the file structure between hdimage-base and hdimage-full differs slightly to the structure in hdimage-custom. Both hdimage-base and hdimage-full have all the files and directory structures located under /hdd1 wheras hdimage-custom contains no parent /hdd1 directory.

    pdaXii13 build

    pdaXii13-build.tgz is a complete build image for creating the pdaXii13 flash/install files as well as the initrd.bin image. This build image can be used to build pdaXii13 from the Z directly. It works if you have Sharp/Cacko/pdaXrom installed on your Zaurus.

    pdaXii13-custom.tgz contains all the customisation files that were used to customise the initrd image from beta3 to create hdimage-base.tgz

    In theory (this has not been tested), one could use pdaXrom builder to build a custom image for the C3100, but instead of generating an initrd.bin file, you could tar up the generated image instead and use the files from the pdaXii13-custom.tgz tarball to customise the image for the C3000.

    The shell script contained in pdaXii13-custom.tgz will apply all the basic customisations and could also be used to update a C1000/C3100/C3200 beta3 install with fixes similar to pdaXii13 base. A readme file is included in the tarball which describes each file in the bundle.

    The build files for pdaXii13 can all be found at tyrannozaurus pdaXii13 build section.

    Back to Main Page

    DISCLAIMER: The information contained on this site is provided AS IS. No assurance is given to the accuracy of the information or instructions provided. You may use this as a guide but do not blame me if anything bad happens to your system or your data. Use anything described on this site at your own risk. I shall not be made responsible for anything you do.