Page about my newest PDA, Sharp Zaurus which I purchased on 2003-06-11
during USENIX in San Antonio, TX.
At the same time, I held BoF with topic:
Linux on PDA: iPaq, Zaurus -- is my palm dead?It's sad, but on 2003-07-10 Sharp decided to stop support for Zaurus in
Germany (and it seems in whole Europe for that matter).

Zaurus stuff

You won't find much duplicated material from somewhere on the net. Having
said that, most things which are not mine are from
Zaurus DevNet Forums. Go
there. Superb resource, but not very technically oriented.

Be a developer!

Well, this machine is so much less user-friendly than my previous palm
that you don't really have a chance! :-) And it runs Linux,
so it's hacker-friendly.

My configuration

This was most powerful and newest model at the time I bought it. It has
better battery than previous model 5500, transparent cover (very handy for
taking a quick look at your calendar), plastic stylus (which is degradation
from plastic-metal one which came with 5500) and really good speaker.

I wanted MMC card and not SD so I can compile my own latest-and-greatest
kernel. That is a good choice, but this particular card worked first time
I inserted it, and then started to report read errors. I returned it with
hope that I will get another one. But, they just returned my money. Uh, well...
(see below)

When I realized that I won't get new MMC card (that was after I returned to
Croatia), I bought this one. Never heard or Amzor? Neater am I. Is still
doesn't work (I guess that
my slot in Zaurus is defective).
It works fine in USB Card reader!

I didn't plan to buy CompactFlash card at first, but since I needed it
to change my ROM (err, kernel...) I bought this one in local (USA) photo
shop. Probably paid too much for it, but it comes handy as a mp3 storage and
for backups.

How to compile new kernel for Zaurus 5600?

First, a warning: kernel source code doesn't include kernel
module for SD/MMC slot. I don't care much, because my slot doesn't work.
You have two options: you can compile just additional modules (which will
work with original Sharp 1.0 ROM) or recompile whole kernel and insert
binary module (which might or might not work depending on changes that you
made to kernel, e.g. EXTRAVERSION. insmod -f might work though).

Well, it's not easy. Sharp (as of this writing, 2003-06-14) hasn't yet
released any ROM source (a.k.a. Linux source code to their specific
changes), so you have to find your way around.

On the other hand, if you just want to compile additional module for
your current kernel (which I highly recommend because you won't brick your
Zaurus) you will actually want to compile with same gcc.

First, copy default configuration for poddle (cp arch/arm/def-configs/poodle .config) and run usual make oldconfig, make dep, make bzImage, make modules.

I have tried this kernel (it's under arch/arm/boot/zImage),
and it really works! I even separated drivers for WiFi card in modules so I
can change them more easily. That should (along with link at
www.zaurus.com hopefully) solve the problem of "not having kernel
source" for 5600.

Since this was written, Sharp has released source of kernel for 5600. That's a good news, and since hackers have been adding features to it (like preemptive patch). Good page about that is located at Zaurus User Group site.

IPsec on my Zaurus

I decided to use
IPsec tunnel implementation
which is not FreeS/WAN because it would require me to recompile whole
kernel. This way, you can recompile just modules for your kernel.

I would really suggest that you read
IPsec tunnel
documentation if you want to use this. It's really short and simple.
For impatient, let's just say that you have to install above .tar.gz in
root (/) of your Zaurus and then create /etc/ipsec/zaurus.key
key file using (on host machine):

dd if=/dev/random of=/etc/ipsec/zaurus.key bs=24 count=1

Then, scp that key file to Zaurus (if your Zaurus is sitting in USB cradle,
you might use other methods, but don't say that I suggested that) and
start IPsec tunnel using provided scripts on
host
and
zaurus
. You might want to change
scripts because they use fixed IP addresses. Encrypted network is
between 192.168.0.1 on host and 192.168.0.201 on Zaurus.

How to upgrade ROM on Zaurus 5600 without loosing your data?

You have heard instructions about
upgrading the ROM which include CF
card and pressing C and D? For start, those aren't applicable
to Zaurus 5600 because
original Sharp documentation
said that you have to press Q and T but, I couldn't get
that to work eater.

However, you can use Maintenance menu to perform same task (and
save your data) like this:

Prepare your CF card

You will have to have following files on your card:

initrd.bin
mversion.bin
updater.sh
zImage.bin

I suspected that
updater.sh
is the crucial
component, and I got it from Sharp ROM 1.07 or 1.10 (both have file with
same md5sum). However, now you can peek inside this shell script thanks
to Sash's encsh.c which
works like a charm on this file. Compile
encsh with make encsh, do
encsh -d updater.sh and
take a look inside
...
File mversion.bin has version which will be displayed
in System Info.

All other files for ROM 1.00 (initrd.bin, mversion.bin and
zImage.bin) you can take from
Sharp community site.

Preliminary benchmarking of ROMs 1.00, 1.07 and
1.10 shows that writes to flash with ROM 1.10 is about 257.89% slower than
with 1.00 or 1.07. Maybe that's why Sharp is delaying it's release...

Flash your ROM

Insert the CF card to the SL-5600, and connect AC adapter

Push Reset button

Close the battery cover, and move the Lock Switch to the Lock position

You will get Zaurus CF updater which will display percentage of
kernel and flash (initrd) update. Much better than blinking LEDs!

Zaurus will reboot automatically after flashing is over...

The Sharp logo will be displayed after a few seconds, and after about 2
minutes, Welcome screen will be displayed.

Procedure is also claver: it will warn you if you don't plug your
Zaurus in AC adapter.

Syncing over anything - from Zaurus to VMware

There are very good instructions on
Zaurus
forum how to sync over wireless. But, I wanted to sync with VMware, and
USB driver doesn't seem to work in VMware.
So, I applied my knowledge of IP networks and instructions for wireless sync
to produce sync between USB cradle on host computer and InteliSync in
VMware.

This is second version of this instructions: last one had one
little problem: it required you to hand-edit configuration files created by
vmware-config.pl. That would work great until you re-run
vmware-config.pl (which is needed if you install or compile new
kernel). This version users some deliberate network mis-configuration to
make changes permanent.

On Zaurus

Change your IP number on Zaurus to 192.168.129.1 and connection to USB - TCP/IP (advanced) like this:

On Linux host

Setup your IP networking with zaurus. I use following in
/etc/network/interfaces for my Debian:

Now, run vmware-config.pl and edit vmnet1 host-only
adapter settings so that network is 192.168.129.129 and netmask is
255.255.255.128.

This will split network 192.168.129.0 in two parts: lower (IP 1-127) will be
bound to USB interface (and Zaurus will have IP 192.168.129.1) and upper (IP
129-255) which will be bound to VMware (and vmnet1 interface will have IP
192.168.129.129 while DHCP on this interface will offer IP numbers
192.168.129.192-254). This is very important, because we want to keep IP
192.168.129.2 free for Windows inside VMware so that Intelisync (which has
fixed IP numbers .1 and .2) will work.

On Guest Windows 98

First, change network setting for interface which is host-only adapter

WARNING:
This part of page is currently in writing. For some reason (known only to
me) I decided to upload this page to all mirrors (probably some other
content changed and I wanted mirrors to reflect that). So, you can't follow
rest of this instruction and expect this to work. You have been warned.

Start sync

Unsorted stuff

Scripts for /etc/hotplug/usb/ to make your Zaurus automatically
recognized when inserted in cradle on Debian unstable
(README is inside).
Strangely, other instructions
didn't work for me.hotplug-usb.tar.gz
793 bytes

Related

If you want to convert data from
Keyring for Palm OS on PalmOS
to ZSafe, you can
use my dump-gkr perl script with option
-4 for ZSafe 1.x format or -6 for 2.x format.