Ein Linuxserver und Windows CE Geräte

Gliederung
1 Einleitung
2 Voraussetzungen
3 Konfiguration des Linuxservers
4 Konfiguration eines Windows CE-Clients

1 Einleitung

Ende 1999 habe ich mich mit Wehmut entschlossen, meinen Newton gegen einen Casio Cassiopeia einzutauschen. Apple hat aus meiner Sicht beim Newton genau das geschafft, was IBM vorher bereits mit OS/2 praktiziert hat. Ein technologisch hochstehendes Produkt durch schlechtes Marketing und mangelhafte Unterstützung in den Sand zu setzen. Nun ja, es war dieses schöne Stück neuer Hardware im Haus (und wie habe ich es irgendwo im Netz so nett gelesen: Eigentlich ist diese Hardware viel zu schade, um unter diesem Betriebssystem zu laufen ...) und sofort begannen die Überlegungen, ob und wie diese mit Linux zu nutzen ist. Linux CE (für Interessierte hier der Link zur Linux CE Webseite) ist noch nicht so weit, daß die Geräte im Alltag damit einsetzbar wären. Also bleibt im Moment nur, das Gerät unter Windows CE mit einem Linuxrechner zu verbinden.

Damit sich diese Verbindung herstellen läßt, muß im Grunde ein Mittelding zwischen einem Modem-Einwahlserver und einer normalen Netzwerkverbindung eingerichtet werden. Die Konfiguration für den Linuxserver kann in dieser Form wohl ohne weiteres auch verwendet werden, um eine Netzwerkverbindung zwischen anderen Windowsrechnern und einem Linuxserver über ein Nullmodemkabel zu realisieren. Wegen der Besonderheiten bekommt dieses Thema eine eigene Seite. Es schadet mit Sicherheit nicht, wenn Sie einmal einen Blick auf die Einwahlserverseiten werfen.

Die folgende Beschreibung ermöglicht es Ihnen, das Windows CE-Gerät zum vollwertigen Netzclient zu machen, von dem aus im WWW gesurft werden kann, Dateien per FTP ausgetauscht werden können usw.. Es geht also um mehr als "nur" die simple Verbindung zwischen zwei Rechnern.

Wenn Sie sich fragen, wozu der ganze Aufwand, denn es gibt doch die Möglichkeit, das CE-Gerät mittels ActiveSync relativ problemlos mit Windows-Rechnern zu verbinden: Diese Verbindung ist eben keine vollwertige Netzverbindung. Soweit ich das bislang nachvollziehen konnte, stellt ActiveSync zwar eine PPP-Verbindung zwischen beiden Geräten her, aber hier scheint es sich einmal wieder um eine sehr spezielle Microsoft-Variante zu handeln. Das TCP/IP-Protokoll scheint Bestandteil von Windows CE zu sein, entsprechende Utilities zeigen beim Solo-Gerät eine IP-Nummer. Das CE-Gerät bekommt bei aktiver ActiveSync-Verbindung die IP-Nummer 192.168.55.100 und der Server die IP 192.168.55.101 zugewiesen. Aber es müßte auf dem Server dann ein Programm wie WinGate o.ä. laufen, daß mittels Masquerading dann den vollwertigen Netzzugan ermöglicht.

Linux kann hier seine Netzwerkstärken voll ausspielen.

2 Voraussetzungen

Windows CE

Auf meinem Casio ist Windows CE in der Version 2.11. Unbedingt benötigt wird noch das serielle Verbindungskabel für die Verbindung zwischen dem Palmsize-Gerät und dem Linuxrechner.
Zusätzlich habe ich mir einige Hilfsprogramme aus dem Internet besorgt, die alle als freeware verfügbar sind und verschiedene Netzfunktionen auf dem CE-Gerät bereitstellen.
Das wäre zum ersten vxUtil. Es ist auf diversen Servern erhältlich, die Software für windows CE anbieten, die Original-Webseite des Herstellers ist www.cam.com. Das Programm bietet Dienste wie ping, traceroute, finger und andere.
Bei meinem Cassio gibt es wie bei allen anderen Palmsize PCs keine Kommandozeile (DOS-Prompt). Es gibt ein Programm namens Console, welches für speziell dafür entwickelte Programme so etwas zur Verfügung stellt. Achten Sie darauf, daß Sie sich sowohl das Programm als auch die notwendige DLL Kctrl.dll besorgen und letztere im Windows-Verzeichnis installieren. Die Original-Webseite des Programmautors ist www.oohito.com. Da der Autor Japaner ist, ist es vielleicht einfacher, auf  http://pda.tucows.com/wince/  oder anderen Seiten nach dem Programm zu suchen.
Wenn das Programm console auf Ihrem PPC läuft, gibt es ein telnet-Programm und ein ftp-Programm, welches jeweils mit console zusammenarbeitet. Bei dem Telnet-Programm handelt es sich um FTnet. Das FTP-Programm heißt FFtp. Erhältlich sind beide Programme auf http://www2.osk.3web.ne.jp/~fjw/. Da dies auch eine japanische Seite ist, gilt der Hinweis wie zu Console.
Um das ftp-Programm und das telnet-Programm zu starten, müssen Sie zuerst Console starten (es erscheint dann ein weitgehend leeres Fenster) und dann das jeweilige Programm.
Als krönenden Abschluß können Sie dann noch einen Internetbrowser installieren. Die Firma Foliage Software Systems hat das Programm iBrowser als "careware" ins Netz gestellt. Wenn Sie es für den persönlichen Gebrauch einsetzen, wird eine Spende an die American Cancer society erwartet. Die Webseite der firma ist http://www.foliage.de.

Linux

Auf dem Linuxrechner muß logischeweise Linux inclusive der Netzwerkoptionen installiert sein. Wenn der Einwahlrechner seinerseits in einem Netz hängt, muß er (ebenfalls logischerweise) über eine Netzwerkkarte verfügen. Dann benötigen wir noch eine freie serielle Schnittstelle.

Als Pakete müssen mindestens installiert sein:
ppp
Für die Modem-Verbindung:
mgetty

3 Konfiguration des Linuxservers

Die Verbindung zwischen dem windows CE-Gerät und dem Linuxrechner ist eine vollwertige PPP-Verbindung. Im Grunde handelt es sich um die selbe Konfiguration wie Sie für den Modem-Einwahlserver beschrieben ist, nur, daß an den seriellen Schnittstellen keine Modems dazwischengeschaltet sind.
Die serielle Schnittstelle des Linuxrechners überwacht das Programm mgetty. Es wartet darauf, daß sich an der Schnittstelle etwas tut. Um mgetty regelmäßig beim Systemstart zu starten, muß die Datei /etc/inittab verändert werden. Öffnen Sie diese Datei mit einem Editor und suchen Sie nach den Zeilen
# modem getty
# mo:23:respawn:/usr/sbin/mgetty -s 38400 modem
Entfernen Sie das Kommentarzeichen und passen Sie ggf. die Geschwindigkeitsvorgabe an. Fangen Sie erst einmal mit einer Übertragungsgeschwindigkeit von 19200 an. Wenn das System später stabil läuft, können Sie die Geschwindigkeit schrittweise hochsetzen. Ändern Sie die Zeile in:
# für Verbindung zu Windows CE
mo:23:respawn:/usr/sbin/mgetty -r -s 19200 /dev/ttyS0
# -r heisst driekte Verbindung
# -s setzt die Geschwindigkeit

Falls das CE-Gerät nicht an der ersten, sondern an der zweiten seriellen Schnittstelle hängt, müssen Sie statt /dev/ttxS0 hier /dev/ttyS1 eintragen.
Wenn diese Zeilen nicht zu finden sind, tragen Sie sie selbst dort so ein, wie oben beschrieben.

Geben Sie init 1 und danach von init 2 (bzw. init 3 bei grafischem Login) an der Konsole ein bzw. führen ggf. einen Neustart durch. Im Verzeichnis /var/log finden Sie eine Logdatei für mgetty, in der bei Problemen hilfreiche Hinweise zu finden sind.

Sie müssen dann einen Benutzer für die Einwahl definieren. Die genaue Anleitung hierfür finden Sie auf der Webseite zum Einwahlserver.

Sie müssen dann die Datei /etc/ppp/options anpassen. Wenn der betreffende Rechner nicht noch zusätzlich über ein Modem oder über eine ISDN-Karte verfügt, reicht es, wenn Sie die folgenden Angaben in die genannte Datei schreiben. Wenn Sie beispielsweise eine ISDN-Karte und die serielle Verbindung zum CE-Gerät einrichten wollen, schreiben Sie in die Datei /etc/ppp/options die Dinge, die beide Konfigurationen gemeinsam haben, in /etc/ppp/options.ippp0 die spezifischen Dinge für die ISDN-Karte und in /etc/ppp/options.modem die spezifischen dinge für das CE-Gerät.
Die CE-spezifischen Angaben lauten:

# Datei /etc/ppp/options.modem

# es sollen Meldungen ueber den Verbindungsaufbau in die Datei
# /var/log/messages geschrieben werden, die bei der Fehlersuche helfen
# wenn das Ganze laeuft besser wieder herausnehmen, da die Datei sonst zu gross wird
debug
# benutze die modem control lines
modem
# benutze hardware flow control
crtscts
# alle Zeichen der Verbindung koennen genutzt werden
asyncmap 0
# Groesse der Uebertragungspakete fuer die Uebertragung
mtu 1500
# Groesse der Uebertragungspakete fuer Empfangen
mru 1500
# Spiegle dem System vor, die IP-Adresse des anrufenden Modems gehoere zum lokalen Netz
proxyarp
# Das angerufene System soll (passiv) auf Initiativen des anrufenden Systems warten
passive
# die ip-Nummern werden fest vorgegeben fuer die Modems lokal:remote
# bei kleinen Systemen sicher einfacher als dynamische ip-Zuweisung
192.168.1.101:192.168.1.100
# Fuer die direkte serielle Verbindung wird Authentifizierung abgeschaltet:
refuse-chap
refuse-pap
#
# Kompression abschalten
novj
novjccomp
# Für windoof-Rechner DNS vorgeben
ms-dns ip.nummer.des.DNS.servers

Sie müssen natürlich die IP-Nummern auf Ihre Verhältnisse anpassen! Die lokale IP-Nummer muß dabei innerhalb des Netzwerkes liegen, damit proxyarp funktioniert. Hinter ms-dns muß die IP-Nummer des Namenservers in Ihrem Netzwerk stehen.
Die obige Konfiguration sollten Sie abändern, wenn per Modem oder ISDN von außen auf Ihren Rechner zugegriffen werden kann. Denn im Beispiel wird jegliche Authetifizierung durch die Zeilen refuse-chap und refuse-pap abgeschaltet. Das wäre eine große Sicherheitslücke, wenn andere Zugriffe möglich sind. Lesen Sie Details zu CHAP und PAP auf den anderen Serverseiten nach, wenn nötig.

Damit die Verbindung zum Server zu Stande kommt, wird beim Einloggen des Benutzers einwahl_user ja durch das Anmeldeskript das Programm (genauer der Dämon) pppd gestartet. Dieses verbindet das "Netzgerät" ppp0 mit der seriellen Schnittstelle. Für das Netzwerk enthält bei SuSE die Datei /etc/rc.config Details zur Konfiguration. Im Beispiel für eine Netzwerkkarte und für das CE-Gerät. Die Netzwerkkarte wird normalerweise mittels Yast bei der Grundkonfiguration eingerichtet. In der Regel müssen sie also nur die nachfolgend rot markierten Einträge anpassen.

#
NETCONFIG="_0 _1"
#
# IP Adresses
#
IPADDR_0="192.168.1.12"
IPADDR_1="192.168.1.101"

#
# network device names (e.g. "eth0")
#
NETDEV_0="eth0"
NETDEV_1="ppp0"
#
IFCONFIG_0="192.168.1.12 broadcast 192.168.1.255 netmask 255.255.255.0 up"
IFCONFIG_1="192.168.1.101 pointopoint 192.168.1.100 up"
#

Tragen Sie dann noch in die Datei /etc/hosts sowohl das ppp0-"Gerät" als auch das CE-Gerät ein. Bei mir sind das die zwei zusätzlichen Zeilen:
192.168.1.100   cassiopeia.meinnetz.com  cassiopeia
192.168.1.101   cassio_ppp.meinnetz.com  cassio_ppp

Sehen Sie bitte nach, ob es in Ihrem System eine Datei /etc/ppp/ip-up bzw /etc/ppp/ip-down gibt. Wenn Sie kein weiteres Modem oder eine ISDN-Karte im System haben, benötigen Sie diese eigentlich nicht. Achten Sie darauf, daß dort zwischen den Zeilen

case "$BASENAME" in
ip-up)
 ;;
ip-down)

keine Anweisungen stehen. Wenn die Datei z.B. mittels Yast standardgemäß installierd wird, sind dort Angaben enthalten, die beim Verbindungsaufbau das routing auf den Rechner am anderen Leitungsende setzt. Genau das wäre hier aber falsch. Details dazu finden Sie auf der Webseite zum Einwahlserver.

4 Konfiguration eines Windows CE-Clients

Starten sie den CE-Rechner und wählen sie im Startmenü den Punkt Kommunikation->Verbindungen. Wählen sie Neue Verbindung einrichten. Wählen sie einen Namen für die Verbindung, ich habe für das folgende Beispiel den Namen Linux ausgewählt (wie originell 8-)) ).
Ich habe keine Direktverbindung zu Stande gebracht. Ich vermute, daß liegt daran, daß hier die Microsoft-eigenen PPP-Einstellungen zum Tragen kommen. Sie müssen also so tun, als wollten Sie eine Modemverbindung erstellen! Wählen sie also als Modem "Hayes-kompatibel an COM1".

Als Anschlußeinstellungen wählen Sie die nachfolgend gezeigten Einstellungen. Die Baudrate können Sie später unter Umständen hochsetzen, Sie müssen dann auf dem Linuxrechner aber auch die entsprechende Schnittstellengeschwindigkeit in /etc/inittab einstellen (siehe oben).

Achten Sie unbedingt darauf, daß bei den Anrufoptionen nichts markiert ist.

Bei den TCP/IP-Einstellungen können Sie entweder angeben, daß die IP-Nummern vom Server zugeteilt werden, oder Sie tragen die IP-Nummer als Vorgabe ein. Das verkürzt den Verbindungsaufbau minimal.

Der Linuxrechner ist so konfiguriert, daß er die IP-Nummer des Namenservers überträgt. Deshalb kann nachfolgend ein Häkchen an "Vom Server zugewiesene IP-Adressen" gemacht werden.

Obwohl es sich nur um eine fiktive Modemverbindung handelt, müssen sie eine Telefonnummer eintragen. Welche ist egal, sie wird in unserem Fall nicht verwendet.

Benutzernamen, Kennwort usw. sind ebenfalls nicht nötig. Lassen sie es leer.

Speichern Sie diese Einstellungen. Verbinden Sie den Linuxrechner mit dem CE-Gerät und aktivieren Sie die Verbindung.

Es öffnet sich ein Fenster. Sie müssen jetzt irgendwie einmal das Drücken der "Enter-Taste" simulieren (Ich habe noch keinen Weg gefunden, daß das irgendwie automatisch umgesetzt wird - wenn hier jemand einen Tipp hat, wäre ich für einen Hinweis dankbar). Bei Palmsize-PCs ohne Tastatur benötigen Sie dafür eine Tastatur auf dem Bildschirm oder eine Zeichenerkennungssoftware. Ich arbeite mit Calligrapher und benutze hier die Calligrapher-Tastatur.

Wenn Sie Enter "gedrückt" haben, müßte der Login-Prompt des Linux-Systems erscheinen. Sie müssen den Namen des Einwahl-Benutzers eintippen und dann das Passwort. Daraufhin erscheint eine kurze Loginmeldun und ein Haufen wirrer Zeichen. Wenn Sie diese sehen, ist der Hauptteil geschafft. Sie sind nämlich die sichtbaren Zeichen für die "Verhandlunen" zwischen dem pppd des Linuxrechners und dem CE-Gerät.

Wählen sie im Menü Datei->Weiter.

Daraufhin verschwindet das Einwahlfenster und es bleibt ein Meldungsfenster auf dem Bildschirm, mit der Mitteilung, daß Sie verbunden sind und der Möglichkeit, die Verbindung zu beenden.

Ab jetzt sind Sie mit dem Gerät voll ins Netz integriert. Der folgende Bildschirm zeigt z.B. den Bildschrim des iBrowsers mit meinen Linux-Netzseiten.

Ob ein Webbrowser wirklich sinnvoll ist, kann mensch diskutieren. aber Dateitransfer mittels ftp oder telnet oder der Zuriff auf E-Mail können schon Sinn machen.



Zurück zur Hauptseite