Palm seriell an Linux

Im folgenden möchte ich beschreiben, wie man einen palm-pilot an einem Linux-Rechner per serieller Verbindung zur Nutzung aller gängigen Internetdienste betreibt. Zu Thema Datensynchronisation gibt es das Paket "plink" in der SuSE-Serie "ap1". Diese Programmsammlung hat bei mir recht problemlos funktioniert, um Daten zu sichern, Programme auf dem Palm zu installieren etc.

Voraussetzungen

Ich benutze folgende Hardware:

Palm IIIe mit original "cradle"
"uralt" Toshiba-Laptop mit 486DX-33 und 20 MB ram
bzw. PC mit IBM M2MX200 und 32 MB ram
der serielle Stecker der Palm-Anschlußstation wird an die normale serielle Schnittstelle angeschlossen. Dabei muss aber - falls gewünscht - der Anschluß der Maus beachtet werden.

Software Palm

Rein theoretisch nichts weiter, das tcp/ip Protokoll und ppp sind im PalmOS (hier V3.3) schon vorhanden. Zum Nutzen der Verbindung benötigt man aber natürlich noch Anwendungen. Dazu später mehr.

Software Linux

Ich habe getestet:
SuSE-Linux 5.3 mit kernel 2.0.35 und pppd 2.2.0
SuSE-Linux 6.4 mit kernel 2.2.14 und pppd 2.3.11

Konfiguration Palm

Unter Einstellen/Serial/IR stellen wir auf "Cradle" - obwohl das glaube ich nicht wichtig ist.

Unter Einstellen/Verbindung erstelle ich eine neue Verbindung "seriell 38,4". Diese bearbeiten wir und stellen auf Verbindungstyp "Seriell an PC". Unter Details wird die Geschwindigkeit - hier mal 38400 - eingestellt. Flußkontrolle automatisch.

Nun zu Einstellen/Netzwerk. Aus Sicherheitsgründen kopieren wir den vorhandenen Dienst "unix". Ich habe den neuen Dienst "laptop" getauft. Zum Benutzernamen kommen wir später. Erstmal freilassen. Ebenso Kennwort. Bei Verbindung selektieren wir die soeben Konfigurierte "seriell 38,4". Unter Details wird als Verbindungstyp PPP ausgwählt, Zeitabschaltung aus. DNS und IP-Adresse Häckchen aktivieren. Dann klicken wir auf Script, tippen die erste Zeile "warten" an und wählen aus der Liste "ende" aus. Damit verschwindet die gesamte Script-Liste. Dies sollte vorerst genuegen.

Konfiguration Linux

mein Linux-Laptop hört auf die (private) IP 192.168.168.2 der Palm bekommt die IP 192.168.168.4 - dies muss in /etc/hosts eingetragen sein.

An welcher seriellen Schnittstelle hängt unser Palm? Bei mir ist es die erste, also COM1 unter DOS, unter Linux heißt diese /dev/ttyS0, die zweite dann logischerweise /dev/ttyS1 usw.

Wir benotigen eine options-Datei fuer den pppd. Bei SuSE liegt diese unter /etc/ppp. Vorsicht: bei sämtlichen gängigen Modem, ISDN und DSL-Verbindungen wird die options-Datei benutzt, sie ist für den Betrieb von allen ppp-Verbindungen noetig. Man kann aber Dateien fuer die unterschiedlichen Schnittstellen anlegen also options.ttyS0 oder z.B. options.ippp1. Dann stehen in diesen Dateien Parameter nur fuer die jeweilige Schnittstelle und in options die default-Werte, die für alle gelten.
Also legen wir erstmal eine Sicherheitskopie an: cp /etc/ppp/options /etc/ppp/options.save
Nun editieren wir /etc/ppp/options. Ich benutze fuer derartige Dinge den mc. In unserer Datei könnte für den ersten, einfachsten Versuch ohne Passwortabfrage folgendes stehen (- die kommentare nur als hilfe):

## begin /etc/ppp/options lock # schnittstelle wird blockiert
/dev/ttyS0 # das ist die o.g. serielle Schnittstelle
38400 # geschwindigkeit
local # direkte kabelverbindung ohne modem
:192.168.168.4 # ip-adresse für den Palm, doppelpunkt ist wichtig
debug # schreibt viele infos in /var/log/messages
## end /etc/ppp/options

Desweiteren brauchen wir die Datei pap-secrets im gleichen Verzeichnis wie options. Diese Datei muss nicht zwingend sicherheitskopiert werden, auch wenn das an sich keine schlechte Idee ist.
Wir erstellen eine Zeile * * "" in dieser Datei.

Los gehts

Nun können wir als root mit pppd -detach den ppp-Dämon starten. Die Option dahinter sorgt dafür, das sich der Dämon nicht in den Hintergrund verabschiedet, sodaß man ihn bei Bedarf mit Crtl+C beenden kann. Am Palm drücken wir unter Einstellen/Netzwerk auf "verbinden".

Tip: wenn das folgende Fenster "meldet an" erscheint, sorgt ein Druck auf Cursor nach unten (die Wippe am Palm) für genauere Hinweise, was gerade passiert. Aber im Idealfall sollte nach max. 10 sec kurz "hergestellt" erscheinen und die Verbindung bestehen. Eine bestehende Verbindung erkennt man an einem kleinen senkrechten Strich, der am oberen rechten Display-Rand des Palm blinkt.

Im logfile /var/log/messages sollten ein paar Zeilen erschienen sein, als letztes die Bestätigung der beiden IP-Adressen.

und jetzt richtig

Wenn das so funktioniert empfiehlt es sich, den Zugang mit einem Login abzusichern. Außerdem ist es sicherlich lästig, jedesmal den pppd von Hand zu starten. Als erstes erweitern wir die options Datei des pppd.

## begin /etc/ppp/options (neuere pppd - Versionen siehe dns-zeile!)
lock
/dev/ttyS0
38400 # geschwindigkeit
local
auth # clients müssen sich anmelden
+pap # dabei muss pap benutzt werden
login # die nutzernamen und paßwörter werden mit der linux-system-passwortdatenbank verglichen
:192.168.168.4
dns-addr=(dns-ip) # in neuen pppd-versionen heißt diese option ms-dns!!
silent # wartet still auf eingehende verbindungen
persist # wenn die verbindung getrennt wird, bleibt der pppd weiter aktiv
#debug # wenn etwas nicht geht, die raute weg, dann in /var/log/messages nachschauen
## end /etc/ppp/options

Außerdem kann man natürlich eine höhere Geschwindigkeit als 38400 wählen. Nur empfiehlt es sich anfangs mit der Niedrigeren zu testen, da es mit 115200 wohl eher zu Problemen kommen kann. Einfach überall anstelle 38400 115200 angeben und schauen, ob es noch läuft - bei mir jedenfalls problemlos.

Probleme

folgende Fehlerquellen fallen mir ein, unabhängig von der Reihenfolge

Palm bleibt beim Verbindungsaufbau hängen. Die "nach unten - Wippe" drücken, um zu sehen, wobei er stehen bleibt. Wenn z.B. dort steht: "wartet..." ist wahrscheinlich das Verbindungsscript noch aktiv. Wir benötigen aber kein Scriup auf dem palm, die Authentifizierung funktioniert "von allein".

Firewall blockt Pakete ab. Da der palm über ein Netzwerkinterface am Linux-Rechner hängt, wird eine Firewall höchstwahrscheinlich auch den Paketverkehr auf diesem Interface behindern. Falls also eine Verbindung nicht läuft, sollte man einen Blick in /var/log/firewall werfen, ob Pakete vom palm-Interface (ppp0) abgewiesen werden (DENY)

Links

palm-Organizer von 3com
SuSE-Linux

palm-Client Software, die bei mir läuft:

TGssh 1.3 beta - Supergenial, endlich habe ich auch einen SSH-Client gefunden!
pTelnet 0.6 - ein Telnet-Client
palmVNC 1.4 - ein VNC-Viewer für den Palm - geniale Idee, nur leider habe ich häufig Verbindungsabbrüche, und auf Dauer nervt es doch...
MultiMail 1.0 - IMAP und POP3 - Client; das im PalmOS vorhandene "mail" kann nicht direkt mit Mailservern arbeiten!
PalmScape 5.0 - WWW Browser, recht putzig sieht das schon aus...
WAPman 1.73 - WAP-Browser, stellt aber auch html-Seiten dar.

nach oben

Viel Spaß!
Christian Güssmer 2000-04