Aufmacher Artikel

Palm Pilot und das ,,Point-to-Point``-Protokoll

01.11.2001 Sun Microsystems hat Recht: "Das Netzwerk ist der Computer". Wenn Sie irgendeine Rechenmaschine benutzen, ist es wahrscheinlich, dass Sie sie einmal Netzwerk-fähig machen müssen. Das gilt auch für einen PDA.

PDAs (Perasonal Digital Assistants) sind großartige Kandidaten für Netzwerk-Kommunikation, sowohl für schnurloses als auch schnurgebundenes Networking, da Ihre Desktop-Netzwerk-Workstation selbst auf minimalem Raum funktioniert. Dieser Artikel beschreibt in wenigen, einfachen Schritten, wie Sie eine persistente Verbindung herstellen zwischen Ihrem Palm Pilot und Ihrer Linux Workstation unter Verwendung von Palms Hot Sync Cradle und dem Point-to-Point-Protokoll. Ausführliche Details in Bezug auf das PPP finden Sie unter RFC 1661 [1].

Warum die Anstrengung?

Warum sollten Sie dies tun?, werden Sie sich fragen. Nun, ich bin nicht sicher, ob ich Ihnen dies beantworten kann, aber hier sind einige Gründe, die helfen könnten:

  • Sie schreiben eine netzwerkfähige Palm-Anwendung, die Sie auf einem realen Gerät testen wollen, Sie wollen aber nicht für ein schnurloses Modem bezahlen, nur um Ihre Anwendung zu testen.
  • Sie wollen zu einer entfernten Workstation eine Telnet-Verbindung herstellen und alles, was Sie dabei haben, ist Ihr Palm Pilot (das könnte doch mal sein <>.)
  • Sie wollen einen Kiosk aufbauen, der nur aus Palm Cradles und einer Linux Box besteht, auf dem die User im Web surfen können und zwar nur mit Hilfe Ihres Palm Pilots.

Dies sind einige mögliche Situationen, in denen das Wissen, das in diesem Artikel vermittelt wird, von Nutzen sein könnte. Nichtsdestotrotz ist es auf jeden Fall eine interessante Übung. Außerdem ist es doch ganz cool, mit dem Palm Pilot im Web surfen zu können oder zu "telnetten". Für diejenigen, die sich mit Microsoft Windows ziemlich gut auskennen, mag das Thema dieses Artikels weniger geheimnisvoll scheinen, da PDA-Networking mit dem Microsoft RAS-Protokoll recht einfach ist. Es ist jedoch nicht so offensichtlich, wie man mit seiner Linux Workstation einen Palm Pilot ans Netz bringen kann.

Mit einem schnurlosen Modem (wie von OmniSky) oder einem Palm VII ist Palm Pilot-Networking optimal, aber diese Alternativen sind immer noch sehr teuer. PPP-Networking bietet eine günstige Alternative, um coole "Netzwerk-Sachen" mit Ihrem Palm Pilot zu machen: zum Beispiel das Testen von Anwendungen.

Vorbereitung

Die meisten Linux-Distributionen kommen mit einer Anzahl von PPP-Utilities. Wenn Sie mit PPP nicht vertraut sind, sehen Sie sich bitte die PPP HOWTO-Artikel [2] an. Eine PPP-Verbindung aufzubauen zwischen Ihrer Palm- und Linux-Workstation unterscheidet sich nicht so sehr vom Aufbau einer PPP-Verbindung mit Ihrem Internet Service Provider (ISP), obwohl die Konfiguration Ihres Palm-Gerätes etwas trickreich sein kann. Bitte beachten Sie auch, dass ich bei den Schritten, die ich nachfolgend beschreibe, die Beta-Version von RedHat Linux 7.0 (Kernel-Version 2.4.0-0.99.11) und einen Palm Vx (Palm OS v.3.5.0) benutze, so dass Ihre Ergebnisse, je nach Ihrer speziellen Konfiguration, leicht differieren können.

OK, los geht's. Verbinden Sie als erstes Ihr Palm Cradle mit einer freien seriellen Schnittstelle an Ihrer Workstation. Vergewissern Sie sich, dass Ihr Cradle richtig angeschlossen ist. Ein Weg dies zu tun ist, sich das Tool "pilot-link" [3] zu holen und zu versuchen, mit "pilot-xfer" eine Palm Database (PDB) von Ihrem Gerät zu Ihrer Workstation zu transferieren. Versuchen Sie beispielsweise MemoDB wie folgt zu transferieren:

pilot-xfer /dev/ttyS1 -f MemoDB

Setzen Sie für /dev/ttyS1 Ihre von der Cradle benutzte Schnittstelle ein. Wenn alles andere fehlschlägt, finden Sie ausführliche Informationen in der Pilot-xfer-Dokumentation.

PPP-Konfiguration

Zweitens, wenn Sie in der Lage sein wollen, mit Ihrem Palm-Pilot-Netzwerk zusätzliche Rechner zu erreichen, müssen Sie sicherstellen, dass Ihr Kernel IP-Masquerading unterstützt. Im ungünstigsten Fall ist es nötig, Ihren Kernel mit IP-Masquerading-Support aufzustocken, jedoch ist es wahrscheinlich, dass er - wenn Sie die neueste RedHat-Distribution verwenden - damit bereits unterstützt wird. Außerdem musste ich wegen der Verwendung von "iptables" das ipchains-Modul mit rmmod ipchains entfernen, um mein ppplogin-Skript (Listing 1) zum Laufen zu bringen.

Sie müssen entweder Ihr bestehendes /etc/ppp/options-File erstellen oder modifizieren um diese Parameter zu erhalten:

lock
 debug
 noauth
 crtscts

Listing 1

ppplogin
01      # Load the NAT module (this pulls in all the others).
 02     modprobe iptable_nat
 03
 04     # Note: Change eth0 to ppp0 if you use a modem.
 05     # Dial-up for your Internet connection.
 06     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 07
 08     # Turn on IP forwarding.
 09     echo 1 > /proc/sys/net/ipv4/ip_forward
 10
 11     # 10.100.166.56 is the IP of the local Linux workstation.
 12     # 192.168.1.2 is the IP I wish to assign to the Palm device.
 13     # Modify accordingly.
 14
 15     /usr/sbin/pppd 10.100.166.56:192.168.1.2 connect <\\>
 16       '/usr/sbin/chat -vf /etc/ppp/chat' /dev/ttyS1

Schließlich muss noch als letzter Schritt bei der Konfiguration des PPPD auf Ihrem Linux-Rechner das /etc/ppp/chat-Script erstellt werden. Dieses File sollte nur die Zeile TIMEOUT 30 enthalten, oder welchen Timeout-Wert auch immer Sie dem PPPD zuordnen wollen.

Abbildung 1

Abbildung 1: Schritt 1

Abbildung 2

Abbildung 2: Schritt 2

Konfiguration des Netzwerks

Nun, da wir den PPP-Server konfiguriert haben, bleibt noch das Set-up der Netzwerk-Konfiguration auf dem Palm-Gerät. Die abgebildeten Bildschirmausschnitte, gezogen vom PalmOS-Emulator für Unix, zeigen, wie Sie Ihre Netzwerk-Settings konfigurieren.

Abbildung 3

Abbildung 3: Schritt 3

  • Tippen Sie auf Prefs und wählen Sie Connection aus dem pull-down-Menü (Abbildung 1) * Wählen Sie Direct Serial und tippen Sie auf Edit (Abbildung 2) * Tippen Sie auf Details und konfigurieren Sie wie abgebildet (Abbildung 3) * Wählen Sie Network aus dem pull-down-Menü und erstellen Sie einen neuen Service wie abgebildet (Abbildung 4) * Tippen Sie auf die Taste Details (Abbildung 4) und konfigurieren Sie wie abgebildet * Tippen Sie auf die Taste Script (Abbildung 5) und konfigurieren Sie wie abgebildet.
Abbildung 4

Abbildung 4: Schritt 4

Abbildung 5

Abbildung 5: Schritt 5

Schritt für Schritt

Während diese Screenshots äußerst hilfreich sein können, habe ich diesen Prozess etwas vereinfacht und zwar mit Hilfe von Netzwerkverbindungs-Datenbanken [5], die die Informationen zur Konfiguration enthalten. Bei Bedarf können Sie diese Files downloaden und auf Ihrem Gerät installieren, was Ihnen einiges an Frustration ersparen könnte. Sobald sie diese Palm-Databases erhalten haben, können Sie sie mit pilot-xfer auf Ihrem Palm-Gerät zu installieren:

pilot-xfer /dev/ttyS1 -i NetworkDB ConnectionDB

Wenn Sie jedoch vor diesem Schritt eine Backup-Copy Ihrer Original-Databases machen wollen, sehen Sie auf der Man-Page von pilot-xfer nach. Nun sind wir soweit, dass wir unsere Konfiguration testen können. Platzieren Sie Ihren Palm-Pilot in das Hot<\!s>Sync-Cradle. Tippen Sie auf den Prefs-Icon und wählen Sie Network aus dem Pull-Down-Menü. Ändern Sie Ihr Arbeits-Directory auf Ihrer Linux-Workstation in /etc/ppp und lassen das ppplogin-SKript als Root laufen. Um sicherzustellen, dass alles richtig läuft - nach dem ppplogin-Lauf - können Sie in Ihrem System-Logfile mit tail -f/var/log/messages nachlesen. Die im Kasten dargestellten Zeilen aus /var/log/messages weisen darauf hin, dass PPPD auf eine PPP-Verbindungsanfrage auf /dev/ttyS1 wartet.

Logzeilen aus

/var/log/messages
Apr 30 22:07:02 velocis pppd[2715]: pppd 2.4.0 started by root, uid 0
 Apr 30 22:07:03 velocis chat[2716]: timeout set to 30 seconds
 Apr 30 22:07:03 velocis pppd[2715]: Serial connection established.
 Apr 30 22:07:04 velocis pppd[2715]: Using interface ppp0
 Apr 30 22:07:04 velocis pppd[2715]: Connect: ppp0 <\<> > /dev/ttyS1

Schließlich tippen Sie auf den Connect-Button auf Ihrem Palm-Gerät (Abbildung 4) und warten Sie eine Sekunde, bis die Verbindung hergestellt ist. Vorausgesetzt, Sie haben IP-Masquerading und Ihre PPP-Settings sind ordnungsgemäß konfiguriert, sollten Sie in der Lage sein, entfernte Rechner mit einem Telnet-Client zu erreichen oder sogar einen Web-Browser. Sie können diese Konfiguration auch dazu benutzen, Ihre eigenen kundenspezifischen Palm-Anwendungen zu testen.

Abbildung 6

Abbildung 6: Schritt 6

Geschafft!

Eine PPP-Verbindung zwischen Ihrer Palm- und Linux-Workstation herzustellen ist fast genauso leicht, wie Ihren lokalen ISP (Internet Service Provider) anzuwählen, und bietet darüber hinaus eine Menge Vorteile. Der bemerkenswerteste Vorteil jedoch, den ich darin sehe, ist, dass diese Konfiguration, nämlich sowohl Ihre Palm Linux-Workstation als auch den Palm Pilot zu nutzen, eine kostengünstige Alternative bietet beim Testen Ihrer Netzwerk-Palm-Anwendungen auf echten Geräten, ohne teurere schnurlose Modems und Service Provider in Anspruch nehmen zu müssen. (hmi)

Der Artikel erschien erstmals in ;login: Volume 26 Nr. 4 und wurde mit freundlicher Genehmigung der Usenix Association übersetzt.

Infos

[1] RFC 1661: http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1661.html

[2] PPP-HOWTO: http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html

[3] Pilot-Link: http://www.pilot-link.org/

[4] PalmOS-Emulator POSE: http://www.palmos.com/dev/

[5] Beispiel-Datenbanken für Netzwerk-Verbindungen: http://patriot.net/~jcaple/USENIX/pdbs.tar.gz

[6] Telnet-Client: http://www.mochasoft.dk/

[7] Web-Browser: http://isv07.ilinx.co.jp/en/

[8] PalmOS-HOWTO: http://www.linuxdoc.org/HOWTO/PalmOS-HOWTO.html @IE :

Der Autor

James Caple hat acht Jahre Erfahrung aus Industrie und Entwicklung, Hardware-Hacking, UNIX-Systems-Administration und befasst sich seit kurzem auch mit Java- und C-Programmierung.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare