old-www/LDP/Mobile-Guide/html/mobile-guide-p3c2s8-zaurus....

967 lines
20 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>SHARP SL-5000/5500/C700-860/C3x00/6000 aka Zaurus</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Linux on the Road"
HREF="index.html"><LINK
REL="UP"
TITLE="Linux PDAs"
HREF="mobile-guide-p3c2-linux-pdas.html"><LINK
REL="PREVIOUS"
TITLE="Samsung: YOPY"
HREF="mobile-guide-p3c2s8-yopy.html"><LINK
REL="NEXT"
TITLE="Non-Linux PDAs - Ports and Tools"
HREF="mobile-guide-p3c2-linux-for-pdas-ports-and-tools.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux on the Road: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="mobile-guide-p3c2s8-yopy.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Linux PDAs</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="mobile-guide-p3c2-linux-for-pdas-ports-and-tools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="mobile-guide-p3c2s8-zaurus"
></A
>6.3. SHARP SL-5000/5500/C700-860/C3x00/6000 aka Zaurus</H1
><P
>&#13; The SHARP Zaurus SL-5000/5500 wasn't the first Linux PDA, but the one
with the greatest success in the Linux community and beyond.
</P
><P
>&#13;
<DIV
CLASS="figure"
><A
NAME="AEN1201"
></A
><P
><B
>Figure 6-2. Screenshot of the SHARP Zaurus SL-5500 PDA.</B
></P
><DIV
CLASS="mediaobject"
><P
><IMG
SRC="images/zaurus1.png"></P
></DIV
></DIV
>
</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1210"
></A
>6.3.1. The SHARP System</H2
><P
>&#13; You may find the official site for information about Linux on the Zaurus at
<A
HREF="http://developer.ezaurus.com/"
TARGET="_top"
>SHARP Japan</A
> (in Japanese).
You can get the official kernel, either complete or just the patches for the
Zaurus there. You can also get the official root-filesystem, that is the
initrd, but without the
<A
HREF="http://qpe.sourceforge.net/"
TARGET="_top"
>QTopia</A
>
environment.
Check the documentation at SHARP how to create your zImage, bootflag and
initrd for flashing the ROM of the Zaurus with your custom setup. Or go to
your country-specific division of SHARP to get a complete ROM in one file
called "ospack", which is
<A
HREF="http://www.zaurus.de/"
TARGET="_top"
>Zaurus.DE</A
>
for Germany or
<A
HREF="http://www.myzaurus.com/"
TARGET="_top"
>MyZaurus</A
>
for the US versions.
The kernel is rather old: 2.4.6 with 2.4.6-rmk2-patches and some more from
<A
HREF="http://www.lineo.com/"
TARGET="_top"
>Lineo</A
>.
The rmk-patches are from
<A
HREF="http://www.arm.uk.linux.org/"
TARGET="_top"
>Linux ARM Community</A
>.
The root filesystem from SHARP is known for its weird structure with
symbolic links all over the place.
The custom compile worked. Remember to hit the "/"-key when the Zaurus
displays "Wait... ", so you can choose to start a login instead of QTopia,
which is not available then. Unless you downloaded QTopia, (cross-)compiled
it and installed it into the root filesystem.
BTW, you can create a new user with "adduser", a command provided by BusyBox.
<A
HREF="http://www.busybox.org/"
TARGET="_top"
>BusyBox</A
>
, provides nearly all UNIX-commands available on the official system.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1220"
></A
>6.3.2. The Community Systems</H2
><P
>&#13;Currently I know of two running systems: OpenZaurus and Debian (unofficial).
</P
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1223"
></A
>6.3.2.1. OpenZaurus</H3
><P
>&#13; <A
HREF="http://openzaurus.org/"
TARGET="_top"
>OpenZaurus</A
>
tries to create the same environment as the one from SHARP, but
based upon free software only.
At the moment, it still uses the old kernel from Sharp, but slightly
modified in regards of usage of the FLASH-ROM as RAM and division of RAM
between RAMDISK and RAM. Unfortunately, the driver for the SD-controller is
binary-only and thus non-free. But also SHARP itself tries to convince the
vendor, SDCA, to provide the sources for the public.
Moreover,
<A
HREF="http://openzaurus.org/"
TARGET="_top"
>OpenZaurus</A
>
created a sane root-filesystem we all know from our
regular Linux systems. It also replaces QTopia by
<A
HREF="http://opie.handhelds.org"
TARGET="_top"
>Open Palmtop Integrated Environment - OPIE</A
>
, which
is a fork from QTopia with no relations to Trolltech anymore. All
applications from QTopia should run on OPIE, but not quite: The Doom-like
game called Zraycast does not run on OPIE, but does on QTopia (more or less).
You can download a ready zimage, bootflag and initrd directly or checkout the
sources from CVS. The downloaded images worked fine.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1229"
></A
>6.3.2.2. Debian</H3
><P
>&#13; The current, unofficial version of
<A
HREF="http://people.debian.org/~mdz/zaurus/"
TARGET="_top"
>Debian Zaurus</A
>
really tries to be a regular
Debian system with apt and X. A simple version of dpkg is already shipped with
<A
HREF="http://www.busybox.org/"
TARGET="_top"
>BusyBox</A
>
, which makes it a little bit easier. The maintainer has therefore
stripped down some more tools to fit them into the Flash-ROM.
It uses the kernel provided by
<A
HREF="http://openzaurus.org/"
TARGET="_top"
>OpenZaurus</A
>
and thus the one from Sharp.
There are some issues with the RAMdisk, calibration of the stylus and
sleep / power-off/-on.
As soon as it is in a more stable state, it will join forces with
<A
HREF="http://emdebian.sourceforge.net/"
TARGET="_top"
>EmDebian</A
>
and the sources will become available (probably already furnished upon
request). The downloaded images still have to be tweaked. :)
All systems, including the sources from SHARP, are set to use the US
keyboard layout (or the German keyboard). It seems that the keymap
available is fixed in the kernel and there are no user-space tools
installed per default to change this. Perhaps I will give the package
"console-tools" on Debian a try.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1236"
></A
>6.3.2.3. PocketWorkStation</H3
><P
>&#13;Here are some of the features of
<A
HREF="http://www.pocketworkstation.net/"
TARGET="_top"
>PocketWorkStation</A
>
a Debian/GNU Linux distribution for PDAs:
<P
></P
><UL
><LI
><P
>&#13;Full Debian GNU/Linux operating environment, with easy access to the many GB of available software.
Want the Konqueror web browser and have 50MB free space on your SD card? Run <B
CLASS="command"
>apt-get install konqueror</B
>,
go eat lunch and come back to find it ready to run. No porting needed.
</P
></LI
><LI
><P
>&#13;Includes X11 able to run most Linux applications - it supports virtual screens
larger than the physical screen, realtime anti-aliased scaling and rotation,
3-mouse-button emulation and a full keyboard
(useful i.e. if you need to send Ctrl-Alt-Del to an application).
</P
></LI
><LI
><P
>&#13;VNC client fbvnc (same features as X11 above) - remote administer your NT box from your Zaurus.
</P
></LI
><LI
><P
>&#13;Runs completely out of a single directory (a 256MB SD card is ideal),
no re-flashing or modification of the existing operating system is required.
</P
></LI
><LI
><P
>&#13;Switch between QTopia and X11 whenever you like without rebooting or needing to stop any of your X11 applications.
</P
></LI
></UL
>
</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1252"
></A
>6.3.3. Synchronization with your Linux PC</H2
><P
>&#13; The QTopia-Desktop is available as a download from
<A
HREF="http://www.trolltech.com/developer/download/qtopia.html"
TARGET="_top"
>Trolltech</A
>
for free (as in beer): There is a
<A
HREF="http://docs.zaurus.com"
TARGET="_top"
>FAQ</A
>,
which explains the necessary steps for setup (Ethernet-over-USB). It is not
quite up-to-date, because SHARP has tightened the security with their current
ROM-release, so you have to give the IP-address 192.168.129.1 to your usb0
network device. You have to download and compile a patch for your kernel
to use the driver usbdnet (see aforementioned website). Afterwards, a
connection between the QTopia-Desktop and the Zaurus is possible.
I had a lot of problems with the usb network layer on my system and could not
sync properly. A switch from the driver uhci to usb-uhci for my host dit it.
Just recently I had to reboot my notebook and the Zaurus due to a hiccup in
the corresponding usb-net drivers. The network via an ethernet-card in the
CF-slot is much more reliable than the connection via usb and you can still
use the keyboard. The disadvantage is, that you cannot have a storage device
in your CF-slot while you are on-line.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1257"
></A
>6.3.4. External Serial Keyboard</H2
><P
>&#13; So far I was not able to get it going.
There is a site which offers a
<A
HREF="http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html"
TARGET="_top"
>serial keyboard driver and a patch for the iPAQ</A
>
. Since the iPAQ and the Zaurus are based on the same CPU architecture,
StrongArm, I hope that the driver provided there will also work on the
Zaurus. You also need a user-space tool called
<B
CLASS="command"
>inputattach</B
>, which you can also get from there (source
or binary for ARM). I got a Happy Hacking Keyboard Lite with a PS/2
connector. An adaptor translates to serial which itself is plugged into
to the Collie serial &#60;-&#62; serial connector. I do not know if this
chain is even possible to work. The provided patch applied with only one
failing hunk which made a trivial change in the sources
(include/linux/serio.h) necessary; check the output. After having
re-configured the SHARP kernel config and having compiled the modules, I
transferred them to the Zaurus. The modules marked and created are:
newtonkbd.o, serio.o, serport.o and perhaps stowaway.o from
drivers/char/joystick/ and input.o and keybdev.o from drivers/input/.
When you start <B
CLASS="command"
>inputattach</B
>, you have to use the line
<B
CLASS="command"
>inputattach --newtonkbd /dev/ttyS0</B
>, _not_ ttySA0 as
stated on the website. For some strange reason, the Collie serial driver
does not comply to the official StrongARM documentation of the kernel,
which states that the serial ports are accessible via /dev/ttySAx. And
because the serial_collie.o is already compiled into the Sharp kernel,
you do not have to load the generic module serial.o. Well, I also tried
the serial_collie.o as a module, while it was still compiled into the
kernel. There were no complaints when loading it, but the system froze
unpredictably, so I had to do a soft-reset quite often. Why can I load a
module whose code is already in the kernel, I wonder... Anyway, it does
not work. :( I tried inputattach in the --dump mode (you have to
undefine a variable in the source and recompile) and it seems that there
is nothing happening between the serial port and the keyboard. The call
for select (man 2 select) fails due to a timeout.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1264"
></A
>6.3.5. Cross-Compiling</H2
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1266"
></A
>6.3.5.1. Kernel</H3
><P
>&#13; In order to build the kernel, initrd and applications you need a
cross-compiling environment, GCC is preferred.
<A
HREF="http://emdebian.sourceforge.net/"
TARGET="_top"
>EmDebian</A
>
offers
.deb packages for Debian GNU/Linux i386.
Note: you have to look up the download
links in the old site (a link is provided on the new site), because they are
missing on the new site (though the download page exists).
There are some
dependancy problems with the g++ and libstdc++-dev packages which can be
"resolved" with a --force-depends. The package libstdc++-dev has some problems
finding an info-file: just create a symlink from
<TT
CLASS="filename"
>/usr/share/info/iostream.ifo.gz</TT
>
to <TT
CLASS="filename"
>/usr/share/info/iostream-295.info.gz</TT
>.
You should get some pointers for other systems at the
<A
HREF="http://www.arm.uk.linux.org/"
TARGET="_top"
>Linux ARM Community</A
>.
Once installed, you can grab a standard kernel, apply the current ARM-patches
and modify the top Makefile to target the arm-architecture. I did not try that
so far.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1273"
></A
>6.3.5.2. Applications</H3
><P
>&#13; Check the
<A
HREF="http://qpe.sourceforge.net/sharp.html"
TARGET="_top"
>QTopia</A
> pages for more info
and the
<A
HREF="http://qpe.sourceforge.net/development.html"
TARGET="_top"
>QTopia - Development</A
> pages.
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1278"
></A
>6.3.5.3. Tool Chains</H3
><P
>&#13; Werner Schulte explains how to build a OPIE development Live CD.
The CD contains an ISO image with the tools and methods described in his
<A
HREF="http://www.uv-ac.de/opiedev"
TARGET="_top"
>Opie Development HOWTO - LiveCD chapter</A
>.
The CD allows the user to crosscompile OPIE programs without having a
cross-compiler installed on his linux-box (also i386 embedded available).
</P
><P
>&#13; Instructions for building a
<A
HREF="http://www.lucid-cake.net/osx_arm/index_en.html"
TARGET="_top"
>cross-compiling GCC for the Zaurus under Mac OS X</A
>.
</P
><P
>&#13; A
<A
HREF="http://www.pellicosystems.com/demolinux/zdemolinux/index.html"
TARGET="_top"
>DemoLinux distribution</A
>
to show the Trolltech Qtopia development environment for the SHARP Zaurus Personal Mobility
Tool or any ARM based device running the Trolltech QPE system
provided by Pellico Systems.
</P
><P
>&#13; <A
HREF="http://kopsisengineering.com/kopsis/SharpZaurusSdkDsl"
TARGET="_top"
>Zaurus Development with Damn Small Linux</A
>
offers a cross-development environment to build binaries for the ARM processor
used in the SHARP Zaurus Linux PDAs. You may run it either inside the QEMU
virtual machine or from a Live CD.
</P
><P
>&#13; <A
HREF="http://free-electrons.com/community/tools/kernelkit/en"
TARGET="_top"
>KernelKit</A
>
is a Knoppix derivative dedicated to developers of Linux
device drivers and Free Software embedded systems. In particular, it
includes uClibc cross-compiling toolchains for several embedded
architectures (currently ARM, i386, MIPS, mipsel, PPC, and m68k) and
emulators (currently qemu and SkyEye). It can be used for demonstration or
training purposes, or by developers who cannot install GNU/Linux on their
workstations.
</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1290"
></A
>6.3.6. Caveats</H2
><P
>&#13; SHARP introduced a proprietary serial interface at the bottom of the Zaurus
SL-5x00 series. You can buy an adaptor to a regular serial interface from them, but
unfortunately, the plug is very thick and you cannot open the slide for the
keyboard anymore. Hopefully, you can still plug an external keyboard into this port!
You can at least plug the power cord into the adaptor so you do not have to
run on battery. There are third-party adaptors available, which overcome
this caveat.
</P
><P
>&#13; There is no speaker for the soundchip of the SL-5500. You have to use the socket for the
headphones to hear OggVorbis and the alikes. The buzzer currently supports
only 14 different sounds defined in
<TT
CLASS="filename"
>&#60;kernel-source&#62;/include/asm-arm/sharp_char.h</TT
>
, check for <B
CLASS="command"
>SHARP_BUZ_ALL_SOUNDS</B
>.
</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1296"
></A
>6.3.7. Resources</H2
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1298"
></A
>6.3.7.1. Manufacturer: SHARP</H3
><P
>&#13;
<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://docs.zaurus.com"
TARGET="_top"
>ZaurusZone</A
>.
</P
></LI
><LI
><P
>&#13; <A
HREF="http://more.sbc.co.jp/slj/linux.asp"
TARGET="_top"
>Sharp Linux/Java PDA Linux Information</A
>
</P
></LI
><LI
><P
>&#13;
<A
HREF="http://www.zaurus.com/dev/"
TARGET="_top"
>Sharp Zaurus Developer's Program</A
>
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1311"
></A
>6.3.7.2. Kernel and Community Distributions</H3
><P
>&#13;
<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://www.arm.uk.linux.org/"
TARGET="_top"
>ARM Linux</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://emdebian.sourceforge.net/"
TARGET="_top"
>Emdebian</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://openzaurus.org/"
TARGET="_top"
>OpenZaurus Project</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html"
TARGET="_top"
>Linux serial keyboards</A
>
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1327"
></A
>6.3.7.3. FAQs, Forums, etc.</H3
><P
>&#13;
<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://zaurus.help4free.de/html/modules/news/"
TARGET="_top"
>Sharp Zaurus Hilfe und Support Community (German)</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.zaurususergroup.com/modules.php?op=modload&#38;name=FAQ&#38;file=index"
TARGET="_top"
>Unofficial Sharp Zaurus SL-5500 FAQ</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://docs.zaurus.com"
TARGET="_top"
>Sharp Zaurus - Developer Site</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.handhelds.org"
TARGET="_top"
>handhelds.org - mobile Devices</A
>
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1343"
></A
>6.3.7.4. Applications, Desktop Environments</H3
><P
>&#13;
<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://opie.handhelds.org"
TARGET="_top"
>Open Palmtop Integrated Environment (OPIE)</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://gpe.handhelds.org"
TARGET="_top"
>GPE Palmtop Environment, GTK-based alternative to OPIE</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://qpe.sourceforge.net"
TARGET="_top"
>QTopia</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://www.trolltech.com/developer/download/qtopia.html"
TARGET="_top"
>QTopia-Desktop</A
>
</P
></LI
><LI
><P
>&#13; The
<A
HREF="http://www.uv-ac.de/ipaqhelp"
TARGET="_top"
>iPAQ and Zaurus Development using QPE handbook</A
>
by Werner Schulte
describes how to install the Familiar Linux and Qtopia / OPIE on the Compaq iPAQ Handheld (and SHARP
Zaurus) and how to develop applications for the iPAQ/Zaurus using the Familiar distribution and QPE desktop from
Trolltech or OPIE (the free clone).
</P
></LI
></OL
>
</P
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1362"
></A
>6.3.7.5. Software Indexes</H3
><P
>&#13;<P
></P
><OL
TYPE="1"
><LI
><P
>&#13; <A
HREF="http://www.killefiz.de/zaurus/"
TARGET="_top"
>Zaurus Software Index - ZSI</A
>
</P
></LI
><LI
><P
>&#13; <A
HREF="http://ipkgfind.handhelds.org"
TARGET="_top"
>IPKGfind Software Index</A
>
</P
></LI
></OL
>
</P
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1372"
></A
>6.3.8. Conversion from Palm Pilot to Zaurus</H2
><P
>&#13; See my
<A
HREF="http://tuxmobil.org/go2z.html"
TARGET="_top"
>survey of applications and conversion tools</A
>
between a conventional PDA
operating system (only PalmOS yet,
WinCE/Pocket PC and Epoc will follow hopefully)
and a Linux PDA.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="mobile-guide-p3c2s8-yopy.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="mobile-guide-p3c2-linux-for-pdas-ports-and-tools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Samsung: YOPY</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="mobile-guide-p3c2-linux-pdas.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Non-Linux PDAs - Ports and Tools</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>