Zaurus als PPP Server

  • back
  • Wozu das Ganze? Nun, wer zB. wie ich zwei PDAs (oder ein PDA und ein Notebook) hat, und das Beamen von Dateien zu anstrengend findet, ist vielleicht daran interessiert, eine Netzwerk-Verbindung via IRDA herzustellen. Dann kann man zB. mal eben per FTP Dateien rüberschieben oder wie in meinem Fall 2ConnectU auf dem Psion PDA starten und vom Zaurus aus die hervorragenden PIM Tools vom Psion verwenden.

    Wenn ich jetzt noch Paketweiterleitung auf meinem Zaurus zum fliegen kriege, kann man mit dem Psion über den Zaurus (sofern man eine WLAN Karte für ihn hat) als "WLAN Modem" drahtlos surfen! Ich arbeite daran.

    Ich habe jetzt solange herumgefriemelt, bis es tatsächlich funktionierte - der Zaurus als PPP Einwahlserver. Dazu ist nur ein wenig Handarbeit nötig. Hier also eine Liste, was zu tun ist:

    Auf dem Zaurus

    Eine Datei "irda" unter /etc/ppp/peers anlegen, die folgendes enthält:

    noauth
    passive
    silent
    persist
    nodetach
    115200
    local
    /dev/ircomm
    netmask 255.255.255.0
    192.168.1.201:192.168.1.200
    

    (Wenn man "persist" aus dem Script nimmt, wird der PPP Server beendet, wenn die Gegenstelle auflegt)

    Dann auf der Kommandozeile eingeben:

    /etc/rc.d/init.d/irda start
    pppd call irda
    

    und das wars. Der Zaurus erwartet nun eine PPP Einwahl.

    Auf der Gegenstelle (Einwahl Client)

    Für den Psion habe ich eine eigene Anleitung - was dort steht, gilt auch für den Zaurus als PPP Server.

    Folgende Einwahlparameter sind zu setzen (was je nach Betriebssystem anders zu machen ist)

    IRDA dialin
    direct connection
    get IP address from PPP host
    get DNS address from PPP host
    manual login
    no login params
    no login script
    using ppp extensions (optional)
    allow plain text authentification

    So - damit ist nun die Verbindung zwischen Zaurus und PDA hergestellt.
    Das ist aber nur die halbe Miete.
    Wenn man mit dem Client PDA über den Zaurus ins Netz will, braucht man Portmapping bzw. Portforewarding. Leider unterstützt der Zaurus das nicht von Haus aus (kein ipchains, kein iptables). Darum habe ich mir einen kleinen simplen Portmapper für den inetd des Zaurus geschrieben. Er kann hier heruntergeladen werden:
    Zaurus Portmapper (pmap) v0.1
    Dieses Archiv enthält sowohl das compilierte Binary, als auch den Sourcecode und unterliegt der GPL.

    Im Debian ARM Feed bin ich auf einige interessante Pakete gestoßen: Es gibt dort tinyproxy - damit kann man den Zaurus als Proxy Server verwenden und gelangt so über den Zaurus ins Web und für die Weiterleitung von DNS Abfragen gibt es den DNS Redirector dnrd.
    Um diese Dienste automatisch zu starten, wenn der PPP Server eine Verbindung aufgebaut hat, und zu beenden, wenn die Verbindung terminiert wurde, kann man die PPP Skripte /etc/ppp/ip-down und /etc/ppp/ip-up entsprechend anpassen:

    /etc/ppp/ip-up Ergänzung

    if [ "$4" = "192.168.1.201" ] then
      {pfad zu dnrd}/dnrd -s {IP-Nummer des DNS Servers}
      {pfad zu tinyproxy}/tinyproxy -p 8080
    fi
    

    /etc/ppp/ip-down Ergänzung

    if [ "$4" = "192.168.1.201" ] then
      killall tinyproxy
      {pfad zu dnrd}/dnrd -kfi
    fi
    

    Von da an werden die betreffenden Dienste automatisch gestartet, sobald sich ein PPP Client einwählt - und sie werden sofort wieder beendet, sobald der PPP Client die Verbindung abbaut.

    Um das ganz noch etwas komfortabler zu gestalten, kann man im "Netzwerk & Sync" Programm (Einstellungen-Tab) einen neuen Verbindungs-Eintrag (IrDA - PPP) erzeugen, sucht anschließend das dazugehörige conf-Skript aus ~/Applications/Network/modules, aus dem man ermitteln ("id"-Zeile) kann, welches PPP Skript aus /etc/ppp/peers für den neuen Eintrag verwendet wird. Dieses PPP Skript öffnet mit einem Editor und ersetzt den Inhalt durch dem im ersten Kasten oben angegebenen Text (ohne persist) und siehe da : nun kann man den PPP Server bequem vom Einwahl-Applet (kleiner Telefon-Hörer neben der Uhr) aus starten und beenden.