Last updated December, 2007

These instructions are to install PocketWorkstation with X-Qt on the Sharp ROM. X/Qt information is available at


Before you can begin, a method of transfering files from the internet to your PDA must be established.

The most convienent and straightforward method is to just have Internet available on the PDA itself. That will allow you to use the ipkg package manager. There are many ways this can be done, for example using the built-in wireless, or masquerading through the USB TCP/IP connection.

You will also need access to a shell to run the configuration scripts. You can use these terminals if you plan on using the Zaurus:

or install !?OpenSSH and work remotely.

Installing X/Qt

All the following steps should be run as 'su'.

The first step is to have a working copy of X/Qt installed. X/Qt must be installed onto an ext2 formatted filesystem, the internal memory will work fine.

If the PDA has access to the internet, the easiest way to install is to use the testing feed available from the X/Qt sourceforge site.

  1. Open a terminal
  2. Type echo "src xqt" >> /etc/ipkg.conf

  3. Type ipkg update
  4. Type ipkg install xqt-server xqt-fonts-misc xbase-etc

If internet access is still unavailable, download/copy to the PDA all the following packages from

only xbase-etc requires to be installed on the internal memory, the rest can be installed on the ext2 SD or CF. If the installation failed on the first round, remove the ?QtPalmtop directory on your ext2 card and try again.

Open up a terminal and install each of these packages.

  ipkg install xqt-server_1.9.0 xqt-fonts-misc_X.X.X... etc

test the X/Qt by tapping the X icon on your desktop. You should see a gray background with crosshair. click the pulldown button on your Z and "shutdown" to exit. X/Qt depends on zlib, though (zlib 1.1.2 should suffice).

Download a modified X/Qt startup scripts package here These scripts include a modified .xinitrc file that will be saved in your /home/zaurus directory. Install it with the package manager GUI, otherwise (ipkg install) you need to manualy add the icon onto the desktop

This package will install the original X/Qt startup scripts modified for PocketWorkstation. The depencies for blackbox and rxvt have also been removed.

(Until I can find a different host to hold the package it's on Yahoo. Because Yahoo only allows certain extensions I had to gzip it for them to accept it. Make sure you gunzip the file before you try and install it.)

Installing Debian GNU/Linux

PocketWorkstation will need to be installed on an ext2 filesystem with at least ?195MB of free space for the big package. When you start to install more software and libraries, another ?200MB-?300MB will quickly be needed.

Because more space is needed then is available on the internal memory, a memory chip will need to be formatted and used. Refer to the following table when needed.



Mount Point


SD Card




CF Card




Formatting a memory card

1. Open a terminal.

2. Unmount the filesystem being used. Do NOT eject, this will unload the kernel modules needed to access the device.

  umount ''mnt''[cf or card]

3. Format the filesystem as ext2.

  mkfs.ext2 ''dev''[hda1 or mmcda1]

4. Remount the filesystem.

  mount ''mnt''[cf or card]

NOTE: you may need to add the following line to your /etc/fstab:

 /dev/hda1    /mnt/cf   ext2  defaults  0 0

for the cf to be recognized. If you have trouble with corruption (easily checked using md5sum), you should change your mount options from default to rw,sync.

 /dev/hda1    /mnt/cf   ext2  rw,sync  0 0

Type mount to see if it has been mounted as ext2.

Extracting Debian

Plug your Zaurus into AC Power while extracting! You don't want the unit to suspend in the middle of all your hard work.

Copy the following files onto the ext2 filesystem you just formated.

If you're downloading via Opera to your storage card, you will need a Documents folder & permissions

 cd /mnt/cf/
 mkdir Documents
 chmod 777 Documents

Change to the directory with the downloaded files and type:

 gunzip gnu-tar.gz
 chmod 755 gnu-tar
 mkdir ''mnt''[cf or card]/debroot
 ./gnu-tar -C ''mnt''[cf or card]/debroot -xvzpf zaurus-debian-big-v0.18.tgz 

(without ./ you will get the error message "gnu-tar: command not found")

(If you extract using a PC, make sure your links between files don't become linked to the desktop.)

You could also use a folder starting with a period like .debroot, so that programs like Sharp's Media Player don't spend hours searching through it. You can change the directory name to whatever you like.

Final setup procedures

1. Change to your debroot directory. 2. Create a new file startd

  #Startup Commands
  export DISPLAY=0:0
  swapon /swapfile
  #Shutdown Commands
  swapoff /swapfile

3. Set the permissions on the new startd file

  chmod 755 startd

4. Create a ?64MB swap file

  dd if=/dev/zero of=swapfile bs=1024 count=65536
  mkswap swapfile

5. Link the home directory to root

  ln -s root home/root

6. Store the debroot location, type

  pwd > /etc/debroot

  /etc/debroot is called in the .xinitrc

You can remove the debroot/INSTALL.d file since it wasn't used anyways.

The PocketWorkstation installation that uses fbvnc sets up a rootcmd daemon. It will let you run root commands outside the chroot environment from inside of it. If your interested in that check out the script that comes with the zaurus-debian archive.

See PocketWorkstationKeymaps for information on how to use or create an xmodmap file if your keyboard does not work correctly in X/Qt. On Zaurus 6000's various keys like colon : don't work without running xmodmap.

Download the new keymap file into your home folder. ie: /home/zaurus. Run xmodmap <keymap file>.

The only thing left is to mount the proc filesystem.

  mount -t proc /proc /usr/mnt.rom/[cf or card]/debroot/proc

You only need to do this once after you turned your PDA on. You may need to unmount it if you want to eject the card that holds Debian. You can also add the above line into your .xinitrc to let proc mounted automatically

  su -c 'mount -t proc /proc /usr/mnt.rom/[cf or card]/debroot/proc'

if so, consider putting the following at the end of the file startd

  umount /proc

You're done!

Well except for fonts... most people find their font problems go away with the latest X/Qt server (1.9.0).

Mostly everything should be setup now. Click on the PocketWorkstation icon under your Applications tab.

Note: The chroot command needs to start as root (su). If you have a password set on root, then you would see Pocketworkstation launch, and a few seconds later, exit. To fix this, open a Qtopia terminal window, and su into root. Type passwd, and press <enter> twice to set the root password to blank.

NOTE: You won't see the taskbar at first because it is hidden beneath your Qtopia taskbar. Press your menu key to change to fullscreen mode.


better to run the following as su

Locale problems

If you get errors saying "can't set the locale; please make sure $LC_* and $LANG are correct", then run as su

 apt-get install locales

en_US is english US

Updating your Debian build

There are new builds of software regularly, so your debian installation is likely out of date when it's originally installed. You can get update your Debian installation by running the following commands:

 apt-get update
 apt-get upgrade

Model Specifics


Internal Wireless Card

The internet can be controlled through Qtopia as it always has been. However the up and down scripts don't create a resolv.conf file for the chroot environment when using DHCP. An easy hack is to add the line

  cp /etc/resolv.conf /usr/mnt.rom/cf/debroot/etc

to the bottom of the /etc/pcmcia/network.functions files. Then reboot to make it effective.

I've had some problems with this hack, has anyone come up with a better solution? (no probelm for me on 6000)

Keyboard Maps

The 6000 keyboard is all out of whack. Download a keymap or create your own. Put it in ''root''.xmodmaprc PocketWorkstationKeymaps

(I putted it in /home/zaurus/.xmodmaprc, according to the directory specificed in the .xinitrc, so everytime X/Qt starts, the keymapping is automatically done.)

Other Resources:

Known Issues

Quit your X/Qt debian is recommended before suspend

Upgrading PocketWorkstation/X/Qt to Etch

On my system SL-C1000 with a 1Gb SD formatted to ext2 filesystem, 128 Mb of swapfile and Cakco ROM I have successfully upgraded to Etch the X/QT installation. I only seemed to have one serious problem with my upgrade and one secondary problem. Here is my experience. First of all I have installed the zaurus-debian-big-v1.0.tgz instead of 0.18 exactly following the instructions in this page. Before upgrading to etch I've done an apt-get update and upgrade using the sarge feed. {{{ apt-get update apt-get upgrade }}}

Now, I've modified the sources.list file as the following

deb etch main
deb etch contrib
deb etch non-free

(I suggest to modify the repository to point at your country repository because it is necessary to download a lot of packages.)

Now we are ready to perform an  apt-get dist-upgrade  Some preliminary considerations:

We are now ready for the dist-upgrade.

 apt-get dist-upgrade 

Now you can go to get three or four coffee and make a little walk and don't forget to connect the AC supply to your zaurus! During the upgradind you should answer to some question about preserve or install new configuration file for bash, etc.. I always select to install new configuration file, I don't know if it is work preserving old configuration file.

When the upgrading is finished DON'T CLOSE THE TERMINAL WINDOW OR THE X/QT ENVIRONMENT. If you do it, you can't open a xterminal in the new environment!

After the upgrading, the aterm command produce a missing error, so you must install it. The library is in libgl1-mesa-gl or libgl1-mesa-swx11 packages. I've installed the libgl1-mesa-swx11 and it works.

apt-get install libgl1-mesa-swx11

For sure before restart Pocket workstation install xterm, also

apt-get install xterm

You're done!!!

Now you have an etch distribution of PocketWorkstation!!! It is better to perform a reboot to reset network and umount correctly the /proc filesystem.