Customizing the Zaurus C3100

Marcus Kracht

Warning

I am using a Zaurus C3100 with pdaXrom 1.1.0 beta1, obtainable from here.

Contents:

Buying the Zaurus

I bought mine from http://www.PriceJapan.com. It is much cheaper than any other supplier. I found the service reliable and fast. They buy in Japan and ship to you, so you get only a Japanese manual. If you have already used some computers you will know enough anyway. Once you have installed pdaxrom, there is no need for the Japanese software. There is a lot of help around.

My Experience

Installation went without a problem. There is a difference in that the official instructions tell you to reserve 50MB for the operating system, the installer tells you that 58MB is recommended. I opted for the latter. Either way, once the system is installed you must make sure that you install new software on your harddrive. It is found on /mnt/ide3. When you go there, you will find that it is filled with data, that is a leftover from the previous system that Sharp put on. Like other manufacturers Sharp thinks that people want to have their disk filled with data. I deleted it.

Where To Get pdaXrom and Software

Go to pdaXrom. Download their flash ROM and do as they say. Basically, you need to do the following: install the three files on a Flash Card (or whatever), put off the computer, plug the AC cord, take out the battery for 5 seconds, put in the battery, the flash card, and press OK, and hold the OK key while turning the machine on. You will get a boot menu. Follow the instructions on the site. Then you will have installed a raw system. It has barely anything, but the site above provides some very useful software: I downloaded

  1. Konqueror-embedded
  2. Firefox
  3. Sylpheed
  4. Thunderbird
  5. the complete vim (vim, vim-doc, vim-syntax)
  6. Rox (filemanager)
  7. Xpdf (pdf-viewer)

Adding Software

As a unix user, you may want to install software using the make tools. This is generally possible and means you do not have to rely on other people providing the packages for you. For that, you need to (1) install the make tools, and (2) copy zgcc-3.4.5.img to /home/root, (3) reboot. This makes sure that the image is mounted. I installed OCaML 3.09.1 and Apache using these tools. I am working on LaTeX at this point. (Make sure that you compile it onto the hard disk, otherwise you risk cramming the system.)

LaTeX

I tried to compile LaTeX-3.0 but it proved to be very difficult. You need to have the zgcc installed and ed, see above. I specified the options --host=armv5tel-cacko-linux (so that it gets a proper name rather than "armv5tel-unknown-linux"), and --prefix=/mnt/ide3/usr/teTeX so as to install on the hard disk. First problem: there was a type mismatch (in a file texk/kpathsea/c-std.h the type ALLOC_RETURN_TYPE is defined to be either char or void, but in the native libraries it had to be void. That I solved by brute force: I eliminated the type and wrote void. Next, I had to insert an empty file named sedscript twice into some directories. The next problem however was in texk/dvipsk/gstfopk.c, which I was unable to solve. I gave up. Luckily, someone had done compilation hald a year ago. You may download the source here. Next steps: decide where to put the directory, go there and say

tar xzfv where the source is/tetex_C31k.tgz .

The source will be unpacked into a directory called teTeX. Next: edit the file /etc/profile and add the path where you put it/teTeX/bin/armv5tel-unknown-linux to your paths. (Or use the appropriate shell command to do this.) Reboot to make sure that the paths are found. Issue texhash to update your list of files. (This generates some files called ls-R which the system uses as lookup tables. So, you must call this function whenever you have added files. It used to be enough to say ls -R > ls-R at the appropriate places. Now however the file must have a certain line at the beginning otherwise TeX will refuse to update it.) A note: xdvi is much faster than xpdf, so to view I recommend the former.

Xpdf

Works out of the box.

GVIM Settings

The next thing to fix is the font for vi. Edit a file .vimrc and put in the following lines:

set guifont=Courier\ 20
set syntax=on
colorscheme colourscheme
set softtabstop=3

(As colourscheme I actually use koehler.)When you use gvim, it will now display everything in a larger font, and do syntax highlighting. The vim manual tells you everything about fonts, needless to say that you can put in other ones according to taste. (I found the one above the most pleasant.)

Infrared Keyboard

(To be tested.)

OCaML

You can even run OCaML. It is quite fast. It can be compiled out of the box. All you need is to get the source from ocaml and do as they say. See above for compilation requirements. You also get ocamlbrowser, since Tcl/Tk is installed.

ATerm and Settings

I prefer to use aterm. You can change the settings as follows. The terminal is called either by typing a command or by clicking on a desktop icon. In the latter case it evokes a script with options filled in. The ones to look for are in There is also a rvxt, which is treated similarly. Here is my /usr/apps/Aterm/AppRun:

#! /bin/sh
aterm -fg yellow -bg black -cr cyan -geometry 65X22 -fn -misc-fixed-bold-r-normal--18-*

This gives a very shiny terminal. In all the other files I replaced calls to "xterm" or "aterm" by the same command above. (Make sure it appears in one single line.) Also, I edited /home/root/.bashrc as follows:

declare -x PW1="\$PWD"">"

This gives a prompt which shows you the working directory.

Modem and Dialup

My settings are somewhat different from the default. I use a socketcom 56k modem CF card. To operate it, you have to change a few details in the PPP modem configuration. My card appears as /dev/ttyS3, so you need to put that into Dialup->Modem->Device. Moreover, the init string is
AT&F
Tick "hardware flow control". In principle that does it for most providers. I have found that some commercial providers work fine with the original setting, but UCLA dialup (called BOL) for example does not. Some ingenuity is required. You have to edit a file /etc/ppp/peers/my-peer. The secret lies what you say after connect. Here is what I wrote for BOL (UCLA). Everything is on one line:

connect '/usr/sbin/chat -s -v ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" "AT&F" OK "ATDTthe number to dial" CONNECT "" "Username:" my username "Password:" my password "ine>" ppp ""'

The problem is that the dialer does not wait for the other connection to come up with requests it just throws the data at the receiving modem. This does not always work, so you have to force the dialer to wait for an answer. In my case, BOL responds with something like "Welcome to Bruin Online", which is caught by the double quotes after CONNECT. Next BOL issues the line "Username:". Other providers, other prompts, so you have to experiment. Now my username is offered. Next BOL prompts with "Password:" and gets the password. Finally, it gives the dialer a prompt that ends in "ine>", after which the dialer may issue "ppp", and get the ppp connection established. The strings "Username:", "Password:" and "ine>" are what BOL uses (in fact that latter is only the suffix of "Welcome to Bruin Online>", but it is enough to give a suffix of the expected string). To find out about your own provider, use a working computer and dial up the connection. Take a look at the session transcript to see what the communication consists in.

Networking and Wireless

I use a wireless card, and it works perfectly (SMC Model No. SMC264W). I get access to the network. Also the VPN works (at least with Firefox).

NFS

The next step is to use NFS to share the file system from your PC to your Zaurus. First, you need to set up a NFS on your host PC, plus in my case an ethernet connection and then tell the Firewall to let the sharing go ahead. Next you need to download and install the NFS Utils. You should be set up. I have set up the ethernet connection such that the Zaurus is called 192.168.0.2 and the PC 192.168.0.1. The NFS exports the directory /home/marcus . I have a directory mnt. I issue now the following:

mount -t nfs -o hard,intr,nolock 192.168.0.1:/home/marcus mnt

This makes the directory tree of /home/marcus on the main PC available as a subdirectory mnton the Zaurus. (You must create that directory first to which you mount. Preferrably leave it empty.) Although it theoretically works, the connection is so slow that I have decided to use scp instead.

Unicode

Displaying fonts in other languages is not so easy, as the installation does not provide for it. There are solutions to it, though. First, check out the fonts on your unix system. (Mine are in /usr/X11/lib/X11/fonts on the PC.) I copied the directory misc onto my zaurus, into the directory /usr/X11R6/lib/X11/fonts/misc. (Warning: this directory exists, so make sure you move the contents it somewhere before overwriting it.) Next, install vte and gtkterm2. This gives you a terminal. Since the letters are supertiny, edit ~/.gtkterm2rc and replace the line terminalFont=Terminal 8 by the line terminalFont=Terminal 16. Finally, download the locale, for example enUS.UTF-8. My .bashrc has the lines

declare -x LC_CTYPE="en_US.UTF-8"
declare -x LANG=en_US.UTF-8"

in it. This sets the locale. Now type gtkterm2 to call the terminal. To know that you got it right, download the file UTF-8-demo and type more UTF-8-demo and watch the result.

Repartitioning SD Cards

Installing packages on your SD card can fail to work. Probably it is because they come with FAT16 partition and you need to reformat them before you use them. Do the following.
  1. umount /mnt/card
  2. fdisk /dev/mmcda1
  3. mkfs.ext2 /dev/mmcda1
  4. mount /dev/mmcda1
After that your card should be ready to be used.

Evaluation

This is a really perfect solution for me. I can pretty much run all software on the main PC and on the Zaurus. Plus the Zaurus fits into my pocket and I can carry the data home. Thanks to the user group (www.oesf.org) I was able to solve (almost) all problems.

Disclaimer

All I report above is what I have done myself on my machine, so at least these things should work in principle. You should remember that for many problems there are other solutions, too. I am not an expert in linux, so do not assume that I know exactly what else you may do. Some of the solutions I found myself, others I have listed because I have read them elsewhere and successfully tried them. But sometimes I do not know why they work. You may use anything I write about at your own risk and benefit. If you want to give me feedback, you are welcome to do so. Just click here to send me a message. I have benefitted from other people's willingness to help (and express my gratitude to them), for example in making OCaML and LaTeX available to me, which is now partially obsolete as I learned to install and use the native compiler. The same does not go for LaTeX at the moment. I keep trying.