Installation of GRASS GIS on the Zaurus SL-C3000

This how to is written for the purpose of helping anyone interested in running the Geographic Resources Analysis Support System (GRASS), an open source, free software Geographical Information System (GIS), on the Sharp Zaurus SL-C3000 Personal Mobile Tool. Pocket Workstation (Debian) and the Cacko ROM are used as the operating system.

The proliferation of Personal Digital Asistants (PDA) in geographic field work is readily apparent. Their small form factor, durability, and ever increasing storage capacity and processing speed have made ?PDAs a common tool of the field scientist. The availability of GIS running on a PDA presents a spectrum of tantalizing possibilities.


I would like to thank the many people who have put time and effort documenting their projects for the benefit of all. This how to is a compilation of their work.

The SL-C3000 is a clamshell format PDA that sports a 416Mhz processor, a 640x480 display, and a 4Gb HDD, among other features. This makes the SL-C3000 ideal for GIS field work, where lugging a laptop might be inconvenient or not even possible.

[[|SL-C3000 Specs]]

General Overview of Installation Procedure:

A) Install the Cacko ROM

B) Format ?HDD3 to ?EXT3

C) Install Pocket Workstation (Debian OS for SL-C3000)

D) Install GRASS GIS


/This procedure will erase ALL of your personal data and ALL of the original Sharp ROM! Try at your own risk! I can not guarantee this procedure will not brick your SL-C3000! This procedure is based on the use of an SL-C3000 and might not work on other models! I have provided links to the original instructions for each procedure. It is highly recommend that you read the original instructions for each of these procedures, since, in order of simplicity, I have removed a lot of the cleavets, warnings, and additional steps that were present in the originals./

A. Cacko ROM Installation:

(modified from

Since the SL-C3000 is only sold in Japan, it is convenient to replace the factory installed operating system with one configured for the english language. Do to the superior stability of the factory OS as of the moment of this writing, we decided to install the Cacko ROM for the SL-C3000 (SLC3Kb1). The Cacko ROM is based on the factory OS, but has been configured for the english language.

1. First copy all SLC3Kb1 files to the root of a vfat formatted CF or SD card and insert into the Zaurus. Files can be found at

2. Remove power and battery.

3. Reconnect power and battery and ensure the battery door switch is in the ON position (closed).

Note on steps 2 and 3: It may be possible that the same effect could be achieved by using the hard re-set button located inside the battery compartment, thus avoiding the need to disconnect power and remove battery. I have not tried using just-the-button method for being afraid of breaking (bricking?) something.

4. Hold down the OK button and power on.

5. Select option 4 from the Japanese menu.

6. Select either SD or CF from the next menu, depending on the media used in step 1.

7. Confirm by selecting Y.

The ROM should install.

Now you MUST do the following....

8. As soon as the install has completed re-enter the OK menu and select option 3, then 1. This will erase the user portion of the flash and hdd and extract the rest of the ROM. This will be encorporated into the user install process later.

9. Insert the network card, configure the network connection, and test your internet connection. This is important since it will be required to download updates and the GRASS GIS package.

/Known issues: The kernel is quite 'chatty' at startup particularly if you have an SD card in the slot. Ignore SD messages and ignore jffs2 messages - that's particularly chatty and what looks serious almost certainly isn't even an issue. The application buttons are NOT preconfigured. Go to the settings tab and select your preferences. This is a good old 'can't be bothered to fix it' that also appears in the standard Cacko ROM./

B. Formatting HDD3 to EXT3

(modified from

1. In the Cacko ROM 's console log on as root using su.

2. Unmount the partition with umount /dev/hdc3.

Note: The SL-C3000 will default to a different device for the CF card depending on wether the CF card was present at boot time. Run df to verify device. Possibilities are /dev/hda3 or /dev/hdc3.

3 Change the partition type of /dev/hdc3 with fdisk /dev/hdc. Use command t on partition 3, on set it to 83. Exit with w to save changes. (If you got trouble at the next step, you might need a reboot here.)

4. Format /dev/hdc3 to ext3 with the command mke2fs -j /dev/hdd3. Then you should be able to mount it with mount /dev/hdc3 /hdd3.

Note: If you try to reboot now, the Zaurus will complain about a ?HDD3 problem. You can make it boot anyway by hitting Ctrl-C. Indeed, this partition is mounted by the startup scripts, and the type is forced to FAT. So we'll just edit those scripts.

5. Remount the root filesystem as read-write: mount -o remount,rw /dev/root /.

6. Copy rc.rofilesys to /root/etc/rc.d/rc.rofilesys.

7. Remount the root filesystem as read-only: mount -o remount,ro /dev/root /.

Note: To boot to ?QTopia just echo q > /home/zaurus/launch.default. To run the linux console in preparation for debian, echo a > /home/zaurus/launch.default. At the next reboot you'll have the selected system.

8. Do echo q > /home/zaurus/launch.default and reboot, you should be back to ?QTopia, with /dev/hdc3 mounted on /hdd3 as ext3.

C. Pocket Workstation Installation (Debian OS for the SL-C3000)

(modified from

In order to avoid 'dependancy hell', the decision was made to use Debian as the front end Linux distribution. Debian's excellent application/library feed servers, combined with it's robust installation, package management, and maintenance applications, provides an efficient way of installing GRASS GIS. Another added benefit is having a full Debian installation in your pocket.

1. Get the latest zaurus-debian-big from Klaus Weidner's site. At the time of this writing it is v0.18 .

2. Create a debroot directory on the drive with mkdir /hdd3/debroot, and uncompress zaurus-debian-big in it.

3. Test your internet connection since it will be required for the installation of GRASS GIS. A DSL/Broadband connection or better is highly recommended.

3. Exit ?QTopia and go to the linux console. To do this, you have to echo a > /home/zaurus/launch.default and reboot.

4. At the login prompt, login as 'root'.

5. cd to /hdd3/debroot and run the postinst script: ./INSTALL.d/ It will ask you some questions, you can say yes to almost every one.

Note: Do not say yes when asked to start Vncserver and Fbvnc. The included fbvnc doesn't work for the SL-C3000 (at least at the time of this writing).

6. In /hdd3/debroot/usr/local/bin replace fbvnc, zsuspend, and backlight. If some of these files were not originally present, it's ok, just copy them anyways. The files can be found at and

Now you can login to Debian with Vncserver, then Fnvnc. To exit from the debian, hit Fn+Shift+Q. You can go back in it with Fbvnc. To kill your session, use killall Xvnc (from outside the debian), and to launch a new one use Vncserver and Fbvnc.


When inside Debian do not suspend your SL-C3000 using the ON-OFF button! Doing so will lock your SL-C3000 in some kind of suspend loop that will require a hard re-set! To properly suspend use the suspend function from the GUI's (?IceWM) menu.


D. GRASS GIS Installation

The last part of the installation process is pretty straight forward thanks to Debian's apt-get utility.

1. Within Debian edit the /etc/apt/sources.list. Comment out all dep entries and add =deb stable main contrib non-free. Pocket Workstation is based on Debian Sarge, which was moved from testing to stable recently (June 6, 2005). That being the case, we need to change apt's references to the package servers to reflect the shift from testing to stable.

2. Make shure your internet connection is active.

3. Run the following commands:

        apt-get update

        apt-get upgrade

        apt-get install gdal-bin

        apt-get install grass-doc

        apt-get install grass

4. It's highly recommended that you download some of the sample data sets to test your GRASS installation.

Tips (this section is work in progress)

Here are some useful bits of information on how to work with Debian on the SL-C3000.

Some tips are given in /root/HELP.txt. Although the HELP.txt is more geared towards the SL-5500, a lot of useful information can be extracted from it. Pay particular attention to the use of the cru and crd commands.

Key Mappings:

Mouse mappings:

Mounting media:

When an SD or CF card is inserted into the SL-C3000 the Cracko ROM will autodetect it and mount it automatically, but you still need to make it accessible to the Debian environment.

Note: The following commands are to be executed outside the Debian environment, omit the use of cru.

To make an SD card visible to the Debian environment use:

     cru mount -o bind /usr/mnt.rom/card /hdd3/debroot/mnt/card

To safely remove the SD card use:

     cru umount /hdd3/debroot/mnt/card

     cru umount /usr/mnt.rom/card  

If mounting/umounting a CF card, replace the word card with cf.

Connecting via WiFi:

When mounting a WiFi card, I first configure the card and parameters in the Cacko ROM. Once configured, I connect to the network and then re-boot. On boot up the card will be properly recognized and mounted by the Linux kernel. To avoid having to revert booting the Qt environment, next time I need to add a network interface I plan to edit the /etc/pcmcia/network.opts file. The network.opts file contains the different schemes for connecting your network cards. You can edit the network.opts file to add more network configurations.

To establish a connection from the Debian side try:

        cru cartdctl insert
        cru cardctl scheme CardResume
        cru cardctl scheme qpewlan0

To remove try:

        cru scheme CardSuspend
        cru cardctl eject

Connecting to the internet via a USB host PC:

As root, on the Zaurus execute:

        route add -host usbd0
        route add default gw

(modified from ( (