Best viewed on NetFront (640x480)

Alternate Distros/ROMs for SL-C3000 and SL-C3100

Beside the Qtopia 1.5 based Sharp distro which is often wrongly referred to as Sharp ROM, there are several other distros available for the various Zaurus models. However, at the moment, the Sharp distro is the only really stable distro available for the SL-C3000. There is currently work underway to convert the various ROMs into a distro that runs on the SL-C3000, but realistically, it will be a while until stable versions of those will be available. OpenZaurus 3.5.4.1 is the only other Linux distribution that officially supports the SL-C3000.

Support for the SL-C3100 version of those other ROMs already exist even though the SL-C3100 is newer than the SL-C3000. This is because of the larger flash the SL-C3100 has which allows it to be flashed with a ROM image similar to all the other Zauri models that run off the internal flash. In fact, the SL-C3100 is treated like a SL-C1000 with an extra internal MicroDrive and hence support for the extra MicroDrive is miniscure.

The SL-C3000 is the only model that was designed to run off the internal MicroDrive (harddisk) instead of flash. Therefore, extreme care should be taken when putting an alternate distro onto the SL-C3000 since it cannot be easily backed up with a NAND backup like the other models. Only do it if you know what you are doing and make sure you know how to recover if something goes wrong. Restoring a SL-C3000 is not as easy as restoring the other models either. Stick to the Sharp distro if you are a newbie. Advanced users still should be very careful when they try out the other beta distros. Keep in mind that putting another distro onto the SL-C3000 will wipe everything on it so make sure you make appropriate backups before doing so.

Since I have two Zauri, both the SL-C3000 and the SL-C3100, I can make one of them my stable working mini laptop with all my customised settings, applications and data while the other one will be used for application development for the Z and trying out other ROMs/distros. Ultimately, I will need a better alternate distro for my SL-C3000 since the default Sharp ROM or Cacko are too limiting for its small 4MB home partition. My SL-C3100 on the other hand is functioning perfectly with a customised Sharp ROM and X/Qt (see pdaXqtrom for details on running a host of X applications on the default Sharp distro).


Cacko

The Cacko distro is an improved Sharp distro which basically fixes a lot of the shortcomings of the Sharp distro. Also, Sharp distro is by default completely in Japanese. The Cacko distro is essentially Sharp distro completely translated into English with updated driver support.

The Cacko 1.23 release was mainly aimed at the SL-C1000, with the SL-C3100 being treated just like a SL-C1000 with an internal CF. Nothing is put on the internal MicroDrive, so it remains untouched by the Cacko installation. Cacko 1.23 is released in two editions, the full edition and a lite edition.

The lite edition is a barebone distro where most the pre-installed applications and modules have been removed to give you the maximum of available space on the flash. All the left out applications and modules can be installed from the Cacko feed. They all have a lite in their package names for easy identification.

The full Cacko 1.23 distro is very similar to the Sharp distro. It enhances the kernel with patches similar to the Tetsu special kernel and also adds additional filesystem support such as squashfs, hfs, iso/joliet, ntfs and fuse. The main difference between the Cacko ROM and the Sharp one is that it is completely in English and all the Japanese components, including the dictionaries have been removed. Also, a lot of work has been put into networking and bluetooth support, thus a lot of the network and bluetooth adaptors, both CF based ones as well as USB dongles, are automatically recognised and just work with Cacko without the need of installing and configuring drivers for them. Some of the default applications that come with the Sharp distro have also been replaced with better alternatives, in particular the ones that were Japanese only applications. In addition, a number of essential Linux tools and Qtopia based applications have also been added and are available on Cacko pre-installed. See the Cacko release notes for a detailed list of added features.

To install Cacko, you would have to flash your SL-C3100 with the Cacko ROM. This will wipe your entire flash, so make sure you do a Nand backup so you can restore your Zaurus to the previous state in case you want to revert back, but also make a backup of your data if it is stored on the flash since it gets wiped. The /hdd3 partition on your internal MicroDrive won't be wiped by flashing the Cacko ROM so it is not essential to back it up prior to flashing Cacko, but it would be a good idea anyway just in case something goes wrong. You do not need to resize the root partition for the SL-C3100 because 32MB is the default root partition on the SL-C3100 unles you have changed it to something else previously. The SL-C1000 has a default root partition of 64MB so repartitioning it on the SL-C1000 will free up extra space for your user partition to install applications and to store user data.

Thus for the SL-C3100, just flash the ROM without repartitioning root, ie use the Install new ROM option straight away and say yes to format user partition. If you say no, just your root partition will be reflashed and you get the Cacko kernel and config, but all your application binaries will remain unchanged. Select Reboot when the flashing has finished and you are done.

There is a Cacko 1.23 beta available for the SL-C3000. Since the SL-C3000 has a very small flash partition, installing another distro will wipe your entire MicroDrive. You won't be able to simply make a Nand backup and restore your system if you want to revert back. You would need to rebuild your SL-C3000 from scratch. However, the C3000 beta release of Cacko leaves your partition table layout as is and just reformats your partitions. Be aware that the C3000 beta is quite different from the normal 1.23 release of Cacko, it does not upgrade the kernel nor does it provide all the extra modules (since they won't fit onto the tiny flash where modules normally are located).

I only tried the full Cacko 1.23 on my SL-C3100 and noticed quite a few annoying error messages when booting up Cacko on it (more than the usual ones you get for Sharp with the Tetsu special kernel installed) but it does boot up and it works.

I have hacked the startup script (rc.rofilesys) to eliminate some of the errors since they are a thorn in my eyes, and I have also applied the same hack that I applied to the default rc.rofilesys for the Sharp distro. The hacked script allows you to boot the SL-C3100 without needing /hdd1 and /hdd2, but it will attempt to mount /hdd1 as swap and /hdd2 as ext3 if they exist.

Customising Cacko is similar to customising the Sharp distro, but a bit less customisation is required since a lot is already pre-customised. For example, LUSScreensaver, mplayer and kino2, ko/pi, opera, mc, ssh and sudo are already pre-installed if you install the full Cacko edition, just to name a few.

However, there are also a few differences introduced by Cacko. The startup image in Cacko is bz2 compressed to save space. It gets extracted to /tmp (which is 10MB in size compared to the 1MB on Sharp) during startup and loaded from there. Once loaded, the extracted image is deleted. A bigger tmpfs allows you to open larger files but since tmpfs uses physical RAM, less physical memory is available, so instead of having 63MB, you end up with 54MB. This is a reasonable trade-off.

Cacko also includes an updated battery and memory applet which allows you to generate and manage swapfiles of sizes up to 128MB (the previous version was limited to 64MB only, however, there is a newer Japanese version which allows swapfile sizes up to 512MB) and overclock as well as underclock the CPU. Furthermore, Cacko does not really use rc.rofilesys to mount the internal MicroDrive partitions. Instead, it remounts everything using the /sbin/hddmount script which is called by /home/QtPalmtop/qpe.sh after all the rc scripts have run. You might as well put the script to load the SD card service after hddmount and eliminate the S04sd links so you won't get flooded with MMC warnings during bootup if you have your SD card inserted.

First disable SD driver from being loaded by the rc scripts:

# mv /etc/rc.d/rc3.d/S04sd /etc/rc.d/rc3.d/_S04sd
# mv /etc/rc.d/rc4.d/S04sd /etc/rc.d/rc4.d/_S04sd
# mv /etc/rc.d/rc5.d/S04sd /etc/rc.d/rc5.d/_S04sd

Then modify /home/QtPalmtop/qpe.sh to load the SD driver instead:

/sbin/hddmount
while true ; do
    if [ -f /home/QtPalmtop/pics144/Startup_screen.bmp ]; then
      sdisp /home/QtPalmtop/pics144/Startup_screen.bmp &

    else
      bzcat /usr/QtPalmtop.rom/pics144/Startup_screen.bmp.bz2 > /tmp/Startup_screen.bmp
      rm -f /tmp/Startup_screen.bmp

    fi
    /etc/rc.d/init.d/sd stop
    /etc/rc.d/init.d/sd start
    cd


Since the latest Cacko (1.23) is not available for the SL-C3000 except for the beta version which does not update the kernel and add additional drivers anyway, I have extracted the features that I really like in Cacko and created packages that can be installed on the SL-C3000 Sharp distro so that my SL-C3000 can also benefit from some of the useful Cacko features and updates that is available for the SL-C3100 without having to install the beta which is just missing too many features provided by the proper Cacko 1.23 to make it worthwhile.

Here is a list of packages extracted from Cacko with short descriptions:

  • qtopia-sysinfo_1.23_arm.ipk - enhanced sysinfo tool with process and mount controls
  • qtopia-addressbook_1.23_arm.ipk - addressbook with alphanumeric sorting support
  • qtopia-combbatteryapplet_1.0.6_arm.ipk - updated battery applet with overclocking/underclocking support
  • qtopia-memoryapplet_1.0.3_arm.ipk - updated memory applet with better swapfile management
  • qtopia-keyboardapplet_1.0.0_arm.ipk - keyboard layout mapper applet
  • qtopia-network-usblan_1.0.0_arm.ipk - network config for usb lan adaptor
  • qtopia-network-bluetooth_1.0.0_arm.ipk - network config for bluetooth adaptor

The following are some of the driver packages available from the Cacko feed to add the same driver and networking support as Cacko:

  • vga-console-font_1.0-1_arm.ipk - vga console font
  • input-modules-2.4.20_1.23-lite-1_arm.ipk
  • isofs-modules-2.4.20_1.23-lite-1_arm.ipk
  • hfs-modules-2.4.20_1.23-lite-1_arm.ipk
  • nls-modules-2.4.20_1.23-lite-1_arm.ipk
  • ntfs-modules-2.4.20_1.23-lite-1_arm.ipk
  • udf-modules-2.4.20_1.23-lite-1_arm.ipk
  • usb-camera-modules-2.4.20_1.23-lite-1_arm.ipk
  • usb-network-modules-2.4.20_1.23-lite-1_arm.ipk
  • usb-storage-modules-2.4.20_1.23-lite-1_arm.ipk
  • iptables-base-1.2.11-lite-1_arm.ipk
  • iptables-extras-1.2.11-lite-1_arm.ipk
  • iptables-modules-2.4.20_1.23-lite-2_arm.ipk

If you don't want to flash Cacko, but want the additional and updated functionality that Cacko provides, then you can install the Tetsu kernel and modules followed by additional Cacko lite modules (2.4.20). This should give you a kernel similar to Cacko. Then you can install the Cacko lite applications from the Cacko feed and the extracted packages mentioned above. This would get you very close to the functionality and features of Cacko 1.23.

When customising Cacko with the customisation guide for Sharp distro, some packages and instructions can be skipped, eg. in the essential section Tetsu kernel, keyhelper, sudo and qkonsole are mentioned, but Cacko already contains them so it is not required to install them again. However, the keyhelper and automounter config in Cacko is very minimal and installing the custom config for those will enhance the capabilities for them.

You can also add Japanese support back into Cacko by installing the [japanese-support-c3100jaen_1.23_arm.ipk] package and copying the dictionary back from the CD-ROM as well as installing the zdict and translater packages. The japanese-support-c3100jaen package which I have created does not restore all the Japanese menus. It gives you the Japanese inputmethod support without changing all the messages and the addressbook back into Japanese so the result is similar to what my custom-jaen package does on the Japanese Sharp distro.

[cacko]

The above is a screenshot of Cacko after heavy customisation. It looks just like my customised Sharp distro. I also symlinked an Australian locale/inputmethod and also added an Australian icon for the keyboard applet.


pdaXrom

pdaXrom is another alternate distro for the Zaurus. It is essentially a complete X windows environment. Thus pdaXrom would make your Zaurus into a mini laptop with an X server and a lot of the X applications available on your desktop/laptop Linux distro ported to the Zaurus. There is also a pdaXrom X86 version that is for your desktop/laptop so you can run the same applications on your Zaurus and your PC.

The latest pdaXrom release is currently 1.1.0 r121 and the SL-C3100 is supported, however, it is not stable and full of bugs. There is also a beta version for the SL-C3000 based on the 1.1.0beta1 release (pdaXrom 1.1.0 beta1 for C3000 beta2) which is much more stable. There are still a few issues with the betas and hopefully, once they are all resolved, pdaXrom release version should be great. The most stable versions are still beta1 and beta3. Anything after that, ie beta4 or r121 are stil in the early stages of development and testing.

I decided to test pdaXrom on my SL-C3000 because the C3000 beta2 release of pdaXrom 1.1.0 beta1 features a pivot boot feature that uses /home on the MicroDrive instead of the tiny 4MB /home on the flash. This neatly fixes the problem of the tiny /home running out of space since the flash on the C3000 is only 16MB and only 4MB of it is allocated to /home. However, this also prevents the MicroDrive to spin down for power saving and thus battery time is reduced, but it also responds faster due to no repeated spin up times (just replace the MicroDrive with a Flash Card and it will be perfect).

Installation went flawlessly following the instructions on the OESF forum. The C3000 installer repartitions and reformats the entire MicroDrive into a single 4GB partition during install. Once installation is finished and you reboot, you will end up at the command line login prompt. Login as root without password and then use startx to get into the X GUI (well, it should boot right into the GUI since it is runlevel5).

pdaXrom is a X windows environment that is by default pre-configured to use openbox as its window manager and uses matchbox applets for its panels and taskbar features. There is also a host of default applications pre-installed with the base pdaXrom install, most of which are quite useful.

However, there are many more applications available for pdaXrom from its feeds. The X86 version which can be installed on a PC or Laptop has all the available applications pre-installed by default. The C3000 and C3100, as well as the C1000 and C3200 share a common feed. In addition, there is also a generic feed marked as C7x0 feed which is also required. To install more applications, use the Package Manager and configure the feed locations. The default feed URL pre-configured in the Package Manager is out of date and should be replaced with the generic (C7x0) and C3x00 specific feeds. You can also configure local feeds. Just download the feed.tar.gz files and extract the content to a card or the internal disk. Then point the package manager at the directory containing the feed contents (eg: file:///home/root/Documents/installs/C3000/feeds).

The following applications were already pre-installed:

  • SciTE
  • AbiWord
  • xpdf
  • dillo
  • licq
  • sylpheed
  • xchat
  • xmms
  • GQview
  • xdemineu
  • aterm
  • galculator
  • xclock
  • xircp
  • xterm

This is quite a good start, but to be really useful, there are a few extra applications and utilities needed. I have added quite a few packages to make it as functional as a full laptop. See the pdaXrom customisation section for more details.

So far pdaXrom seems quite fast. It looks very nice also and seems to be more responsive than Qtopia. I am very impressed with the speed. I can run both quake and quake2 in fullscreen (320x240 mode). This makes me very happy since Doom2 and Quake2 are my favourite games and having them run on the Zaurus is just great!

There is also an on-board compiler available for pdaXrom which can be used to compile your own packages or develop new applications.

There were also a few minor problems I encountered with the C3000 beta2. The boot process is much cleaner than the Sharp distro and it looks much more like a Linux boot process. Yet, there were a few small annoying error messages which would had otherwise made it perfect. Those error messages were easily fixed. The default keyboard mapping is a bit odd for my taste so I customised it to my liking. Also, the suspend feature seems to be a bit buggy.

Some of the applications from the feeds need to be customised before they can be used effectively. AbiWord for example, installs with a default screen size that is larger than what the C3000 and C3100 have (640x480), so you won't see part of the application that extend beyond the screen. This can be fixed by manually editing the default config files for those apps and changing their default screen size.

[pdaxrom]

This is a screenshot from the pdaXrom 1.1.0 beta1 on the C3000 after a bit of tweaking with the look and feel.

See my custom pdaXrom page to see a list of customisation/fixes that I have applied to my C3000.

The bad thing about pdaXrom is that after beta3, things go downhill. For each bug fixed a new one is introduced. The beta4 and its successor r121 are really new versions because of their drastic change with the introduction of a new boot mechanism and replacement of the stable 2.4.20 kernel with the faster but buggier 2.6.x kernel. As a result of this, most configuration tools are broken and many of the applications need to be recompiled. If you want to put up with a buggy distro for testing, then you might as well move to OpenZaurus instead because it actually fully supports all C3x00 models.


OpenZaurus

OpenZaurus, or OZ as its commonly known as, is yet another popular Linux distro for the Zaurus. OpenZaurus comes in two main flavours which you can choose from. There is OPIE and GPE. The OPIE flavour of OZ is an opensource implementation of a newer version of Qtopia and a likely candidate as a replacement for Sharp ROM/Cacko. OZ/GPE is the X11 flavour of OpenZaurus and similar to pdaXrom. There is also an experimental Enlightment version too which is another powerful X11 window manager. Finally, there is also OZ/bootstrap which is just the bare minimum bootable image of OZ.

You can also install Opie and GPE on different virtual terminals and thus have both running at the same time and switch between the terminals. This can be done with a bit of hacking but should ideally be the default for the clamshell models so you get the best mix of applications from both Qtopia and X11 environments since they have plenty of space for it.

However, OZ appears to be very developer centric. It is coupled with a build system, OpenEmbedded, and very much focused on building, packaging and source control. It is a system build from the ground up and focuses a lot on the kernel and clean builds. The OZ team appears to be very organised and have a very structural approach. Unfortunately, this sometimes comes across as being inflexible and stubborn by some end users. It also sometimes appear that usability is given less importance in favour of portability. The gap for this is filled with the Hentges distro, which is a more user-friendly distro based on OZ. Hentges is pretty much to OZ what Cacko is to the stock Sharp ROM. Both are a more user-friendly repackaging of a more rudimentary distro. Hentges is currently available for Akita (C1000) and Spitz (C3x00).

[hentges]

The latest version of OpenZaurus for the C3x00 is 3.5.4.1 which is build with the 2.6.16 kernel instead of the standard 2.4.20 kernel that the Zaurus was released with. OpenZaurus being a bleeding edge distro, with lots of active development, has implemented many more advanced features than the Sharp distro, however, as with all bleeding edge technologies, backward compatability and stability is not always guaranteed and thus certain new features might break existing features and/or applications inadvertantly. This is something very hard to avoid for software projects unless you take Sharp's approach of not updating the environment and just patching it up when forced to. OZ takes the opposite approach. It is constantly being build and it integrates a lot of features from other Linux distros such as altboot and kexec. At the moment, TCP/IP via USB client cable does not work when connecting to Windows. This is the biggest problem I have with OZ since I like to plug it into my Windows PCs.

OZ also takes advantage of the MicroDrive available on the C3x00 and thus installs itself to the MicroDrive instead of the flash. This of course has its advantages and disadvantages. On the C3000 this would be a great advantage, however, the same is also done for the C3100 and C3200 which may or may not be as advantageous. The C3100 and C3200 are more or less treated like a C3000 on OZ since they are almost identical as opposed to what other distros do, which treat the C3100 like a C1000 with an extra harddisk.

OpenZaurus also boasts to have around 6000 packages and that their package dependencies all work. However, this is not entirely true. They naturally forgot to mention how many of those packages actually work. Unfortunately, a large percentage of those packages don't actually work or are just mostly useless cannon fodder. Their large number also is a result that they split up every component into a separate package. So while some distros convenniently have one single package for an application, OZ would split it up into several dozen packages. Thus they need to heavily rely on their package dependency to pull all these packages together. Needless to say that not all their packages are up to date and not all dependencies resolve properly. Some packages have not been updated for quite some time.

I believe that OZ has a lot of potential to be the best distro eventually. See my custom OZ page to see a list of customisations that I have applied. However, in its current state, it can be summarised as fast but useless. OPIE looks good enough and is quite fast, but it lacks most of the essential applications like a decent browser and office applications and it is not backward compatible and thus cannot run applications from Sharp/Cacko. GPE is quite ugly but pretty fast as well. However, it is buggy and unstable too. In theory, OZ can do everything perfectly, however, in practice, it is quite a long way from that goal.

Zaurus users generally want to take advantage of all the features available on their superior devices and not lose functionality that is standard and working quite nicely with the stock Sharp ROM/distro. One thing the OZ team needs to do to woe more Zaurus users is to provide at least the same feature rich applications and functionality as the other distros already have. They should expand their repository to include more useful applications and actually test their packages before they put them on their feeds. They also need to get off their high horse and not just say that OZ is the best and everything else is crap. There are a lot of great functionality the other distros have that the OZ people could learn from and adopt to make it better. It is quite ironic that a distro that so heavily depends on package dependencies does not have a working GUI Package Manager. Both the GPE and OPIE package managers crash when installing large packages or attempt to handle package dependencies. The OZ flash utility/installer is also a joke as it is not even able to (re)partition the install target/disk which the other "inferior" distros can do. The keyboard mapping in OZ is less functional than Sharp/Cacko because it has much cleaner code and is not hacked together. However, I like these hacks (ie keyhelper) because they are actually very useful and make the Zaurus a pleasure to use.


Angstrom

Angstrom is the successor and replacement for OpenZaurus once it is stable and fully working. At the moment, it has the same problems plaguing OpenZaurus if not more. The kernel has been updated to the latest 2.6.x revision so you are always at the cutting edge with the absolute latest kernel patches which unfortunately also means a lot of new bugs. From a Zaurus point of view the main difference between OpenZaurus and Angstrom is that Angstrom is build around the arm EABI which means applications should run faster in general if they are able to run without crashing. The move to Angstrom also provides a newer GCC 4.x to build the EABI which means binary incompatability with any previous feeds.

From a developer point of view, this means they can work with the absolute latest libraries and frameworks such as QT4 and OpenMoko. From a user point of view this means an unstable system which keeps changing and although there are many packages, hardly any testing has been done on them.

Angstrom aims to be a generic platform for portable devices not necessarily Zaurus. This means, the priority of Angstrom is to be able to be installed on as many devices as possible. The consequence of that is that it needs to be generic and not too machine specific. However, to be really user friendly, a distro needs to be customised for the target platform and take advantage of any of its features whether they be generic or unique to a device. Many performance optimizations as well as usability features are often very machine specific.


Debian

Debian is another future possibility for the Zaurus once it has become stable. The armel port of Debian is underway and once finished should result in a faster EABI enabled Debian for arm. Hopefully and equally as stable kernel can be build for it as well.

In the meantime, there has been quite a bit of work on enabling the arm based Debian to be installed on the Zaurus similar to PocketWorkstation but without reliance on an already existing distribution.

Titchy is such a distro based on Debian arm and a 2.6 kernel similar to Angstrom which boots directly off the internal MicroDrive. It also has its own installer which installs an initial rootfs onto the MicroDrive before connecting to a Debian feed to install the rest of the system.


OpenBSD

Apart from Linux distros, there is also OpenBSD for the Zaurus. Not sure whether I am going to try it though. Learning Linux is already keeping me quite busy.


Choosing a Linux distro

After having tried several Linux distros for the SL-C3x00, I have chosen a distro for my SL-C3100. There are basically several choices to be made. First one is to whether use the older but stable 2.4.20 kernel or the newer and bleeding edge 2.6.x kernel. I chose the 2.4.20 kernel since it is quite stable and has the best hardware support for my Zaurus, ie every feature works. The 2.6.x kernel is slightly faster, but not everything works properly yet. The next major choice is whether to run Qtopia or X11.

For the 2.4.20 kernel, the choices would be a customised Sharp ROM, Cacko 1.23 or pdaXrom 1.1.0 beta 3. For the 2.6.x kernel, the choices would be OZ/OPIE, OZ/GPE or pdaXrom 1.1.0r121.

When choosing between Qtopia and X11, the look and feel as well as what applications are available is of importance. For Qtopia applications, Cacko and Sharp ROM have more applications since they are backward compatible with older apps and they run commercial applications. OZ/OPIE only has opensource applications and cannot run older applications so the number of useful applications is very limited for OPIE. On the X11 front, there appears to be more useful applications and games available for pdaXrom and it looks much prettier than GPE as well.

Most of the useful and important applications for me run under Qtopia, ie NetFront and MusicPlayer. Other applications I like such as AbiWord and Firefox require X11. Since Qtopia can run X11 applications with X/Qt, but X11 based distros cannot properly run Qtopia applications, the Qtopia based distros win.

Now the choice is between staying with the Sharp ROM and customising it or use Cacko. OPIE is not a real choice since it lacks essential applications even though it looks nicer. I opted for the Sharp ROM rather than Cacko since Cacko removed the Japanese support which I liked but I pulled many features from Cacko and customised the Sharp ROM with it. For the SL-C3000, the choice is a bit different since there aren't many distros that really support it.


Boot Loader

There are also alternate boot loaders for the Zaurus other than the default one provided by Sharp. With the introduction of the 2.6 kernel into the Zaurus world, several variants of boot loaders have been developed. pdaXrom has a new boot loader starting with beta4 called uboot. OZ has simplified the pivot boot process with altboot and once kexec is integrated, it could be used to boot other distros as well. There is also a special boot loader specifically for the C3000 featured on piro's website (http://www.piro.hopto.org/~piro/zaurus/bootloader/).

[bootloader]

Using one of these bootloaders might be a way to boot and pivot the rootfs on the C3000 to overcome the tiny 16M flash problem.


OpenZaurus vs pdaXrom - a distro for the SL-C3000

I am quite happy with Sharp ROM (with a bit of tweaking) on my SL-C3100 since it behaves the way I like and does everything I want it to do. However, the SL-C3000 is a bit different since it got a tiny flash. Hence I am looking for an alternate distro for the SL-C3000 which can run completely off the internal MicroDrive.

The choice for a distro for my SL-C3000 is quite hard since none of the currently available distros are quite ready yet. Since my SL-C3100 is already running a Qtopia based distro, I really want a X11 based distro for the SL-C3000. There are two possible candidates, OZ/GPE and pdaXrom. However, neither of the two has gotten to a point yet where it is stable enough to use and includes sufficient useful applications and utilities. Both still have a lot of shortcomings.

Below is a discussion about why these two distros have potential and also where they fall short.

Firstly, the OS needs to be able to boot and mount the internal MicroDrive as rootfs. OZ does that very well, however, pdaXrom does not officially support the C3000 so it needs to be hacked to do that. Also, the perfect distro needs to fully support the SL-C3000 hardware and its many powerful features.

I will compare the two most relatively stable version, GPE based on OZ 3.5.4.1 (2.6 kernel) and pdaXrom 1.1.0 beta1 (2.4.20 kernel) rather than the most bleeding edge and experimental versions such as Angstrom GPE (2.6 kernel) and pdaXrom r121 or later (2.6 kernel).

Hardware Support

The SL-C3000 has great hardware which more or less is supported by both distros. Here is a quick summary of hardware and their level of support:

  • XScale CPU - both OZ and pdaXrom are optimised for XScale
  • CPU scaling and Power consumption - this is poorly supported on either distro
  • touch screen - both distro support touch screen
  • 4 GB internal hard drive - supported by OZ by default, ie OZ runs off the harddrive. pdaXrom requires hack to use harddrive but works just the same with hack
  • USB host capability - OZ has support for USB host, but common device drivers are not automatically loaded. better supported by pdaXrom. USB storage is supported by both, however, usb mouse and keyboard is better supported by pdaXrom
  • CF pcmcia service works on both OZ and pdaXrom, however, the CF card is not automatically mounted after reboot
  • SD card service works on both but by default is significantly slower on OZ since it uses the sync option instead of async
  • IrDA - seems to work on both distros but not much tested since it is not that useful these days
  • Sound - is flakey on both pdaXrom and OZ. pdaXrom loses sound on suspend/resume while OZ does not have proper volume control and autosensing when the headphone is plugged in
  • Rotation - between landscape and portrait style is supported by both distros, ie it is detected, but the resulting rotation is not so perfect depending on the window manager used. it works correctly on pdaXrom with openbox, but needs hack to work properly on OZ with matchbox

Keyboard Mapping

The main keys on the keyboard is mapped correctly on both distros, but is not very well documented on how to customise the keymaps. Some special keys are missing on both distros. Sticky keys can be enabled on pdaXrom which does not seem to be the case in OZ. Multi-key does not seem to work on OZ.

Window Manager

OZ uses the matchbox window manager which looks quite ugly. Fluxbox is also available. pdaXrom by default uses openbox with matchbox components as applets. It looks very nice. There are also a host of alternate window managers available for pdaXrom such as icewm, xfce, fluxbox and kde. All those window managers can automatically resize the application window on load to fit the screen except for openbox which is the pdaXrom default window manager.

TaskBar and Applets

The pdaXrom taskbar looks exceptionally pretty while OZ taskbar is rather dull. None of them have a docking view for minimised applications. A taskbar applet is available for both distros as well as a set of other useful applets such as clock applets and battery/cpu status applets. However, OZ does not have a working applet for ejecting removable cards. None of them have a swap management applet.

Themes

The default theme on pdaXrom is quite pretty and can be customised through the theme config applet, but switching themes requires manual editing of the config file. The OZ theme, on the other hand can easily be switched and customised through its config applet, however, switching the theme on OZ results in some applications, namely abiword, to crash.

Config Tools

The config tools in both pdaXrom and OZ are a bit flakey and don't always work properly. The date/time tool is very hard to invoke from the taskbar in pdaXrom, although it works when invoked from the menu. The date/time tool for OZ does not work. You cannot use it to change the date or time. There is no applet in OZ to configure sound. The pdaXrom sound applet has no effect while applications that use sound are active.

Suspend/Resume

Suspend and resume is a bit flakey on pdaXrom. When it works, it works fine, but at times, it does not work reliably. Suspend works fine in OZ, however, resume sometimes behaves flakey.

Screen Capture

Screen capturing is an easy task in OZ, however, this feature is missing in the default pdaXrom install. It can be added with contributed packages, although it is not as integrated as in OZ.

Applications

There are more useful applications in pdaXrom. There may be more packages in OZ, but the number of truely useful applications is greater on pdaXrom although some are oversized and don't fit on the Z's screen. A lot of the dialog boxes in both OZ and pdaXrom are also oversized. Some keys are incorrectly mapped in some of the applications. Most applications depending on SDL libraries, for example, have wrongly mapped keys. Firefox also has many missing keys on OZ.

Games

pdaXrom is the king in games. Not only can it support many games through emulators, but there are also a lot of user contributed games of all sorts. Even a playstation emulator has been ported and optimised for pdaXrom.

Language

The default language of both pdaXrom and OZ is English. Support for other languages is provided via way of unicode fonts and input method support for entering extended characters using a virtual keyboard. OZ supports a host of European languages, but lacks support for Asian languages such as CJK (Chinese/Japanese/Korean). pdaXrom has support for CJK, although not all applications have been compiled with CJK support enabled.

Development

Now this is the biggest difference between pdaXrom and OZ. OZ uses a build system called OE (OpenEmbedded) which is used to build everything in OZ. OE only runs on Linux and can target various platforms of which the Zaurus is one, but you will need a PC to build OZ packages and compile code. The native compiler which can compile code directly on the Zaurus itself is not very well supported on OZ. pdaXrom in contrast is more geared towards the Zaurus. It has a pre-made and configured development image that can be placed onto the Zaurus which allows you to immediately begin building and compiling. There are also bootable ISO images and VMWare images of pdaXrom for the PC, so you can easily run pdaXrom on your PC as well, or use the ready build image to cross compile applications for the Zaurus. OZ developers are also concentrating more on developing PDA specific applications that works on other devices besides the Zaurus, ie they target devices with smaller screens and less storage. pdaXrom on the other hand is more about getting as many PC linux apps working on the Zaurus as possible and exploiting and utilising every possible feature that the Zaurus has. In essence, pdaXrom is about turning the Zaurus into a mini linux PC, whereas OZ is more about providing a bleeding edge and alternate open source operating system, as well as lightweight applications for PDAs.

Support and Community

The OZ community is divided into two distinct groups, the developers and the end users. OZ developer prefer to communicate through their mailing list which is very development centric and offer support on IRC for users. They also announce things through their website and through posts on OESF. Documentation was almost non existant or scattered until recently. The new OZ wiki is a start for documenting a few things, but bug reporting is still quite confusing and tedious since there are several bug reporting systems and repositories.

pdaXrom has a much smaller development team than OZ but has a bigger user community (OZ has more users, but no cohesive user community). Support for pdaXrom is pretty much community driven. The pdaXrom users help each other and collect workarounds for common problems until they are fixed. Bug reporting is much easier and simpler in pdaXrom, but the versioning scheme of pdaXrom is quite confusing since it does not adhere to a standard.

Custom C3000 distro

Since neither pdaXrom nor OpenZaurus have sufficient features that would make them the distro of choice on a C3000, I have come to the conclusion that I would need to build my own custom distro for my C3000. This custom distro would be based on either pdaXrom or OpenZaurus.

pdaXrom development has stopped for the relatively stable and functional 2.4 kernel based beta1 and beta3. All current development is on the 2.6 kernel based beta4 and r121.

OpenZaurus is divided into OPIE and GPE. OPIE seems abandoned and does not offer much more than Cacko/Sharp in terms of functionality since it lacks major applications and is not backwards compatible with existing non-opensource applications. GPE seems unfinished and looks rather plain.

One option would be to continue work on pdaXrom beta3 and enhance its stability. The other option would be to enhance the Hentges OZ/GPE image. For the time being, I will refer to the stable pdaXrom beta1/beta3 based distro as pdaXii13 (pdaXrom improved and integrated beta1 and beta3) and the OpenZaurus based distro as OZii31 (OpenZaurus improved and internationalized 3.5.4.1).

Both of these possibilities would be X11 based.

I have decided to build pdaXii13 for my SL-C3000 which is based on the C3000 beta2 but much more polished. I have fixed all the shortcomings and bugs that annoyed me and now my C3000 has a real stable and perfectly working distro. See my pdaXii13 page on all the enhancements and features.


The Next Generation Zaurus distro - Linux 2.6 and EABI

There currently is a lot of work being done on creating newer and better distros for the Zaurus based on the 2.6 kernel. Work on pdaXrom is still ongoing and has progressed to version r198. It still is full of annoying bugs. OpenZaurus is no more. It has been abandoned in favour of its successor, Angstrom. There has been some progress made in Angstrom which is also based on the latest 2.6 kernel as well as EABI. It is currently still in an unstable state. Debian has also been revamped and the new version is also using EABI and 2.6 kernel. There is no Debian installer for armel build for Zaurus yet, but it is possible to boot Debian for the Zaurus using a combo of bootloaders and custom 2.6 kernels. The future for a 2.6 kernel based distro on the Zaurus seems to be either with derivatives of Angstrom or Debian which are build using OpenEmbedded. Binaries compiled for each should be binary compatible, but library dependencies will be an issue.

pdaXng will be the next generation of pdaXii13 but build on top of a stable 2.6 kernel and updated libraries. It will retain the look and feel of pdaXrom but not be based on the pdaXrom code base and definately not use uboot.



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.