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
- Konqueror-embedded
- Firefox
- Sylpheed
- Thunderbird
- the complete vim (vim, vim-doc, vim-syntax)
- Rox (filemanager)
- 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
/usr/apps/XTerm/AppRun
/usr/apps/Aterm/AppRun
/usr/share/applications/aterm.desktop
/usr/share/applications/xterm.desktop
/usr/bin/mb-applet-xterm-wrapper.sh
/usr/share/application/mb-launcher-term.desktop
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.
umount /mnt/card
fdisk /dev/mmcda1
- after the prompt:
p (to see what partition is there)
- after the prompt:
d <enter> (if applicable, to remove the existing partition)
- after the prompt:
1 <enter> (for the number of the partition)
- after the prompt:
n <enter> (to create a new partition)
- after the prompt:
p <enter> (to make it primary)
- after the prompt:
1 (chooses partition #1)
- after the prompt:
<enter> (to choose default start at 1)
- after the prompt:
<enter> (to use the default end sector)
- after the prompt:
v <enter> (to verify the partition)
- after the prompt:
t <enter> (to change the partition type)
- after the prompt:
1 <enter> (select partition #1)
- after the prompt:
83 <enter> (selects ext2)
- after the prompt:
w <enter> (writes the partition and the program exits)
mkfs.ext2 /dev/mmcda1
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.