Internet über die Infrarot-Schnittstelle und ein Nokia 8210 Handy
Die Beteiligten
- Laptop: Dell Latitude CPi D300XT (P2-300, 128MB)
- Seine Infrarot-Schnittstelle
- Distribution: Debian sid ("unstable")
- Handy Nokia 8210, D2 als Vertragspartner
Die Umstände
Weil ich es immer lieber etwas brandaktuell habe, wurde als erstes der aktuelle Entwickler-Kernel (das ist jetzt der 2.4.3-pre3) installiert. Den gibt´s unter ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.2.tar.bz2 zuzüglich des Patches von 2.4.2 auf 2.4.3-pre3, den man unter ftp://ftp.kernel.org/pub/linux/kernel/testing/patch-2.4.3-pre3.bz2 momentan finden kann. Alle folgenden Kernel sollten natürlich auch funktionieren. Außerdem gibt´s von Töns Büker den Hinweis, daß das mit 2.2.18 auch funktioniert.
Der Hardware: Laptop
Der Laptop ist im BIOS so konfiguriert, daß die Infrarot-Schnittstelle im "SIR"-Mode, also im "Slow InfraRed"-Modus, betrieben wird. Dadurch tritt sie im System als ganz normale serielle Schnittstelle auf, ist allerdings in ihrer Übertragungsrate auf 112500Bd begrenzt. Das ist jedoch kein Problem, da das Handy nicht mehr als 9600Bd schafft... Das Modul für die seriellen Schnittstellen findet den IRDA-Port so:
Serial driver version 5.05 (2000-12-13) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS02 at 0x03e8 (irq = 4) is a 16550A
Der IRDA-Port wird vom Kernel als /dev/ttyS2 gefunden.
Die Software: Kernel
Auf der Kernel-Seite müssen - neben all den anderen Dingen, die gebraucht werden, um Linux auf dem Laptop laufen lassen zu können, folgende Dinge ausgewählt werden:
Menü "Network device support":
... <M> PPP (point-to-point protocol) support [*] PPP multilink support (EXPERIMENTAL) <M> PPP support for async serial ports <M> PPP support for sync tty ports <M> PPP Deflate compression <M> PPP BSD-Compress compression <M> PPP over Ethernet (EXPERIMENTAL) ...
Wichtig von diesen Auswahlen sind aber eigentlich nur die Punkte "PPP (point-to-point protocol) support" und "PPP support for async serial ports". Der Rest ist für mich zum Spielen
Menü "IrDA (infrared) support":
<M> IrDA subsystem support --- IrDA protocols <M> IrLAN protocol <M> IrNET protocol <M> IrCOMM protocol [ ] Ultra (connectionless) protocol [ ] IrDA protocol options Infrared-port device drivers --->
"IrLAN" und "IrNET" können weggelassen werden. Ich habe sie ausgewählt, um damit noch etwas herumspielen zu können, aber für den Betrieb des Handies sind sie überflüssig...
Menü "Infrared-port device drivers":
--- SIR device drivers <M> IrTTY (uses Linux serial driver) <M> IrPORT (IrDA serial driver) --- FIR device drivers < > NSC PC87108/PC87338 < > Winbond W83977AF (IR) < > Toshiba Type-O IR Port < > SMC IrCC (Experimental) --- Dongle support [ ] Serial dongle support
Da der IRDA-Chip, den mein Laptop hat, noch nicht als FastIRDA-Chip unterstützt ist, brauche ich nur die SlowIRDA-Treiber. Die sind für die erreichbaren Datenübertragungsraten mehr als ausreichend...
Die Software: Debian-Pakete
Für den Betrieb des Handys werden unter Debian 2 Pakete benötigt: irda-common und irda-tools:
ii irda-common 0.9.14-1 IrDA management utilities ii irda-tools 0.9.14-1 IrDA handling tools
Wer keine Debian-Distribution benutzt, sollte sich auf ftp://irda-utils.sourceforge.net/pub/irda-utils/ nach den aktuellen irda-utils umsehen und diese gemäß der Anleitung compilen...
Nachdem dieses nun alles installiert ist, hat man für das IRDA-Subsystem ein Start-Script (/etc/init.d/irmanager), in dem nun nur noch eingetragen werden muß auf welcher seriellen Schnittstelle der IRDA-Port ist. Außerdem sollte der "discovery mode" hier aktiviert werden. Bei mir sieht das dann folgendermaßen aus:
# # Start irattach. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/irattach NAME=irattach DESC="IrDA service" DEVICE="/dev/ttyS2" # use "irda0" for FIR device DISCOVERY="-s" # if you want to become discovery mode, set "-s" test -f $DAEMON || exit 0
Modifiziert wurden die Zeilen mit "DEVICE=" und "DISCOVERY=" am Anfang. Auß wurde (gemäß der Beschreibung in der Datei) die "exit 0"-Zeile gelöscht, die verhindert, daß die IRDA-Unterstützung gestartet wird, ohne daß sie vorher konfiguriert wurde.
Sowie also der neue Kernel am laufen ist und das IRDA-Start-Script (entweder durch einen erneuten Boot-Vorgang oder per Hand durch "/etc/init.d/irmanager start") gestartet wurde, sollte das IRDA-Subsystem zur Verfügung stehen. Wird jetzt ein IRDA-fähiges Gerät vor die IRDA-Schnittstelle des Rechners gelegt, so sollte man dieses Gerät in der Übersicht unter /proc/net/irda/discovery wiederfinden können.
Nun geht es an der Konfigurieren der PPP-Verbindung zum Provider. Das ist für mich D2. Die Netzwerk-Dienste kann ich hier nutzen, ohne mich vorher in irgendeiner Form anmelden zu müssen. Als Benutzernamen und Password kann ich jeden beliebigen Schmu eintragen; abgerechnet wird über die Handy-Nummer. Die PPP-Einwahl-Nummer für D2-Kunden ist 229000 und als Authentifizierungs-Methode kommt PAP zum Einsatz.
Für das eigentliche Konfigurieren der Verbindung empfehle ich (unter Debian) das Tool "pppconfig", das eigentlich sehr Anwenderfreundlich ist und hinterher Eingriffe immernoch zuläßt. Wie bei jeder PPP-Verbindung, so muß auch hier ein device angegeben werden, an dem der "Modem" hängt. Statt wie üblich bei normalen Modem ist das nun, da es sich ja hier um ein IRDA-Gerät handelt, das device /dev/ircommnew0. /dev/ircomm0 selbst ist ein Relikt eines ersten Anlaufes, Handys unter Linux zum Rennen zu bringen.
jbglaw@schaufenster:~$ ls -l /dev/ircomm* crw-rw-r-- 1 root dialout 60, 64 Mar 9 20:46 /dev/ircomm0 crw-rw-r-- 1 root dialout 161, 0 Mar 15 18:32 /dev/ircommnew0
Im Gegensatz zur Standard-Installation, die den beiden device nodes für die Gruppe keine Schreib-Rechte einrät (die Gruppe wurde hier ebenfalls von root auf dialout geändert), habe ich hier die Zugriffsrechte so geändert, daß auch einem normalen user (wenn er denn der Gruppe dialout angehört) das Recht eingeräumt wird, die PPP-Verbindung aufzubauen. Das ist jetzt also genau so, wie es für normale Modem-Verbindungen unter Debian ist.
Ist auch diese letzte Hürde genommen, so sollte man sich ganz normal einwählen können. Meine Verbindung habe ich "d2" genannt, und deshalb kann ich mich nun einwählen, indem ich
jbglaw@schaufenster:~$ pon d2
eingebe und ein paar Sekunden warte...