Debian-Pakete für den Zaurus-PDA von Sharp

Aus LinuxUser 01/2003

Debian-Pakete für den Zaurus-PDA von Sharp

Ein Saurier frisst alles

Was tun, wenn die Lieblingsanwendung nicht als vorgefertigtes Paket für den Sharp Zaurus zur Verfügung steht? Dann machen Sie sich die Arbeit des Debian-Projekts zu Nutze!

Mit Linux als Betriebssystem bietet der Zaurus-PDA maximale Flexibilität – fast so, als wäre ein Linux-PC auf handliche Größe geschrumpft. Viele Programme hat die Zaurus-Fangemeinde bereits portiert [1,2], doch wenn man tatsächlich anfängt, den PDA als mobilen Linux-Rechner zu betrachten, fehlen immer mal wieder Tools, an die man sich auf dem Desktop gewöhnt hat, zum Beispiel ein benutzbarer Editor wie nano[3].

ARM dran (bzw. drin)

Wer jetzt denkt: “Ist doch auch Linux, da müsste ich die Programme einfach draufkopieren können”, übersieht einen Punkt: Leider enthält der Zaurus einen anderen Prozessor als ein normaler PC. Der hier eingesetzte StrongARM verwendet eine ganz andere Maschinensprache als die bekannten Intel-kompatiblen x86er. Trotzdem ist es im Prinzip ein Leichtes, Linux-Programme auf StrongARM zu portieren: Man benötigt lediglich einen anderen Compiler, der eben StrongARM-Assembler anstatt Intel-Assembler produziert.

Im Detail stellt es sich allerdings als nicht-trivial heraus, auf einer Prozessorarchitektur (z. B. x86er) Maschinencode für eine andere (z. B. StrongARM) zu erzeugen [4]. Zum Beispiel müssen alle nötigen Bibliotheken (mindestens die Standard-C-Bibliothek libc) ebenfalls für die Zielarchitektur kompiliert vorliegen und gefunden werden. Man bezeichnet solch einen Vorgang als “Cross-Kompilieren” und überlässt ihn lieber erfahrenen Entwicklern. Einfacher wäre es, den Code direkt auf dem Zaurus zu kompilieren [5], doch sind dafür sowohl Haupt- als auch Festspeicher sehr knapp bemessen.

Debian eilt zur Hilfe

Diese Probleme lassen sich elegant umgehen, indem man vorkompilierte ARM-Programme verwendet. Glücklicherweise stellt das Debian-Projekt seine Distribution vollständig für die etwas exotischen ARM-Prozessoren zur Verfügung. Damit befindet sich fast jedes Linux-Programm (nun ja, jedenfalls über 10000 Stück …) bereits in Zaurus-geeigneter, vorkompilierter Form frei zugänglich im Internet.

Der PDA benutzt jedoch sein eigenes Paketformat, so dass sich die Debian-ARM-Pakete nicht direkt einspielen lassen. Zwar haben die Zaurus-Entwickler ein Progrämmchen namens dpkg-deb auf dem Zaurus installiert, das ein Debian-ARM-Paket direkt entpacken kann. Dabei gibt es jedoch öfters Komplikationen, denn das Betriebssystem des Zaurus ist eben nicht Debian: dpkg-deb packt alle Dateien an die im Paket festgelegten und für Debian gedachten Pfade, die mit den für den Zaurus optimalen nicht übereinstimmen müssen. Außerdem wurde keines dieser Pakete für Maschinchen mit sehr begrenztem Festspeicherplatz gebaut; sie belegen daher meist unnötig viel Speicher. Zudem müssen Sie sich selbst darum kümmern, dass alle Abhängigkeiten von anderen Programmen und Bibliotheken erfüllt sind.

Letzten Endes fährt besser, wer das Debian-Paket auf einem Desktop-PC entpackt und nur die benötigten Dateien auf den Zaurus bringt. Da Sie wissen, welche Dateien Sie wohin installieren, können Sie sie bei Bedarf leichter wieder entfernen.

Aus dem Netz gefischt

Ob ein Debian-Paket der gewünschten Software existiert, erfahren Sie über das Web-Frontend [6]. Leider lassen sich nur Pakete für x86er direkt von dort herunterladen; für die ARM-Pakete suchen Sie einen Debian-FTP-Server, etwa [7], mit Ihrem Lieblings-FTP-Programm auf. Unter /pub/debian/dists/stable/main/binary-arm (und natürlich nicht nur in main, sondern auch in den contrib– und non-free-Zweigen) finden Sie jeweils die Datei Packages.gz, die Informationen über alle verfügbaren Pakete enthält.

Listing 1

Debian-Beschreibung des <I>nano<I>-Pakets (Ausschnitt)

Package: nano
Priority: important
Section: editors
Installed-Size: 732
Maintainer: Jordi Mallach <jordi@debian.org>
Architecture: arm
Version: 1.0.6-2
Provides: editor
Depends: libc6 (>= 2.2.4-4), libncurses5 (>= 5.2.20010310-1)
Suggests: spell
Conflicts: nano-tiny (<= 1.0.0-1)
Filename: pool/main/n/nano/nano_1.0.6-2_arm.deb
Size: 187362
MD5sum: 8b4e4a5a86b25845f9568923834a0fec
Description: free Pico clone with some new features
 GNU nano is a free replacement for Pico, the default Pine editor. […]

Aus dem Filename-Eintrag für nano (Listing 1) entnehmen wir, dass sich das gesuchte Paket z. B. unter ftp://ftp.de.debian.org/pub/debian/pool/main/n/nano/nano_1.0.6-2_arm.deb herunterladen lässt.

Entpacken Sie solche Pakete generell in ein neu angelegtes, leeres Verzeichnis, denn dabei entstehen alle Systemverzeichnisse wie usr neu unterhalb des Arbeitsverzeichnisses. Wenn Sie auf Ihrem PC Debian GNU/Linux fahren, geben Sie lediglich

dpkg-deb -X datei.deb Verzeichnis

auf einer Eingabezeile ein, wobei Sie statt Verzeichnis das leere Arbeitsverzeichnis eintragen. Bei anderen Distributionen nehmen Sie die .deb-Datei von Hand auseinander: Bei .deb-Paketen handelt es sich um ar-Archive, die sich mit dem Befehl ar x datei.deb entpacken lassen. Damit entstehen zwei Dateien mit Kontrollinformationen sowie das Archiv data.tar.gz, das Sie im gewünschten Verzeichnis wie von tar.gz-Dateien gewohnt mit tar xzf data.tar.gz entpacken.

Nun entscheiden Sie, welche der entpackten Dateien wohl wichtig sind – im Allgemeinen interessieren Sie sich für die ausführbaren Programme, die unterhalb eines bin– oder sbin-Verzeichnisses liegen, sowie eventuell für Konfigurations- oder Datendateien. Bei Nano beschränkt sich dies auf die Datei usr/bin/nano, alles andere sind Dokumentation oder Übersetzungen.

Auf den Zaurus damit!

Auf dem Zaurus sortieren Sie die ausgewählten Dateien am besten unterhalb von /usr/local ein. Hat der PDA Netzzugang [8], übertragen Sie die nano-Datei darüber, etwa mit

scp usr/bin/nano root@Zaurus-IP:/usr/local/bin

Alternativ legen Sie sie auf einer CompactFlash- oder SD-Karte ab, wenn Sie diese von Ihrem PC aus beschreiben können. Letztlich bleibt der Weg über die Synchronisationssoftware; in diesem Fall landet die übertragene Datei auf dem Zaurus unter /home/root/Documents oder einem Unterverzeichnis davon und muss nach /usr/local/bin kopiert werden.

Abbildung 1: Erfolg: GNU nano auf dem Zaurus!

Abbildung 1: Erfolg: GNU nano auf dem Zaurus!

Falls das neue Programm nicht auf Anhieb funktioniert, liegt es oft daran, dass benötigte Bibliotheken fehlen. Das Kommando ldd zeigt an, welche Libraries eine ausführbare Datei braucht. Leider fehlt es auf dem Zaurus, lässt sich aber aus dem Debian-Paket libc6 (/pub/debian/pool/main/g/glibc/libc6_2.2.5-6_arm.deb) kopieren und benötigt selbst nur die auf dem Zaurus vorhandenen Bibliotheken. Damit finden Sie zum Beispiel heraus, dass nano die Bibliothek libncurses.so.5 benötigt. Wie das Depends:-Feld von Listing 1 anmerkt, findet sich diese im Paket libncurses5. Kopieren Sie die Datei usr/lib/libncurses.so.5.2 am besten nach /home/QtPalmtop/lib auf dem Zaurus, dort wird sie dann ohne weiteres Zutun gefunden.

Außerdem fehlt dem Zaurus das Progrämmchen ldconfig, das unter anderem symbolische Links für Bibliotheken anlegt. nano etwa benötigt libncurses.so.5, aus dem Debian-Paket kommt aber libncurses.so.5.2. Legen Sie den nötigen symbolischen Link einfach von Hand an:

cd /home/QtPalmtop/lib; ln -s libncurses.so.5.2 libncurses.so.5

Nicht für grafische Programme

Unglücklicherweise funktioniert die beschriebene Methode nicht für GUI-Programme: Die Debian-ARM-Distribution nutzt wie jedes normale Linux das X Window System als Grundlage der grafischen Oberfläche – der Zaurus jedoch setzt auf den Framebuffer mit Qtopia-Oberfläche. Abhilfe schafft nur die mühselige Installation eines X-Servers auf dem Zaurus, doch der läuft langsamer und lässt sich auch nur alternativ zur Qtopia-Oberfläche benutzen.

Abbildung 2: Auch das ASCII-Spiel "moon-buggy" lässt sich von Debian "klauen"

Abbildung 2: Auch das ASCII-Spiel “moon-buggy” lässt sich von Debian “klauen”

Dennoch zahlt sich die Arbeit des Debian-Projekts auch für Zaurus-Nutzer aus: So manches Kommandozeilenprogramm, das es noch nicht als natives Zaurus-Paket gibt, lässt sich problemlos installieren, ohne es aufwändig selbst kompilieren zu müssen.

Glossar

Zaurus

Den Namen dieses Linux-PDAs leitet Hersteller Sharp von “Dinosaurus” ab. Er wird mittlerweile bereits für 399 Euro (unverbindliche Preisempfehlung) verkauft; das Nachfolgemodell ist schon in Sicht.

Compiler

Ein Programm, das eine Sprache in eine andere transformiert, meistens eine Hochsprache wie C in den Maschinencode, den ein Prozessor ausführen kann.

Infos

[1] Dirk Materlik: “Saurier im Netz”, LinuxUser 09/2002, S. 58 ff.

[2] Carsten Niehaus: “Zwergen-Desktop”, LinuxUser 10/2002, S. 58 ff.

[3] Nano: http://www.nano-editor.org/

[4] Aufsetzen eines Crosscompilers für den Zaurus (englisch): http://www.zauruszone.com/howtos/linux_compiler_setup_howto.shtml

[5] C und C++ direkt auf dem Zaurus kompilieren (englisch): http://www.zauruszone.com/howtos/compiling_on_the_zaurus.shtml

[6] Debian-Paketverzeichnis: http://packages.debian.org/

[7] Debian-FTP-Server in Deutschland: ftp://ftp.de.debian.org/

[8] Dirk Materlik: “Saurier in freier Wildbahn”, LinuxUser 08/2002, S. 56 ff.

Der Autor

Dirk Materlik studiert Informatik an der FU Berlin und mag gern Linux-Spielzeuge (aktuelles Projekt: http://blinkenleds.spline.de/).

LinuxUser 01/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben