HowTos/DE/USB Netzwerk

From OpenZaurus

(Translated from the english version, credits to the original author Randall 19:06, 15 April 2006 (BST) German translation originally from coredump ?)

Dieses HowTo wird Ihnen helfen eine simple Netzwerkverbindung zwischen einem Linux PC und Ihrem Zaurus herzustellen. Eine funktionierende Netzwerkverbindung ist Voraussetzung für viele nette Spielereien mit dem Zaurus wie z.B. das Synchronisieren von Kontakten und Terminen, das Hoch- und Herunterladen von Dateien und der Zugriff auf das Internet mit dem PDA.

Als Voraussetzung benötigen Sie einen komplett installierten und konfigurierten Linux PC mit einem freien USB Steckplatz und einen Zaurus mit dem OpenZaurus Betriebssystem. Zusätzlich sollten sie mit der Linux Befehlszeile vertraut sein.

Da wir das usbnet Modul verwenden, benötigen sie auf Ihrem PC den Linux Kernel 2.6.x oder 2.4.20 und neuer. Hinweis: Der “Vanilla” Kernel 2.4.30 beinhaltet nicht die korrekte usbnet.c Datei. Für mehr Informationen beachten Sie bitte den Abschnitt Fehlersuche. Wir werden das Netzwerk zwischen PC und Zaurus auf statische IP’s einstellen, da eine automatische Adressvergabe für ein USB Netzwerk overkill wäre

Contents

Den USB Bus prüfen

In diesem Schritt werden wir den Zaurus an den PC anschliessen und prüfen ob er vom PC erkannt wird. Stecken Sie den Zaurus in die Dockingstation, verbinden Sie die Dockingstation mit dem PC und schalten Sie im Anschluss den Zaurus ein.

Öffnen Sie nun auf dem PC eine Konsole und geben “lsusb” ein. Die Ausgabe sollte in etwa so aussehen:

   Bus 002 Device 003: ID 04dd:8004 Sharp Corp. Zaurus SL-5000D/SL-5500 PDA
   Bus 002 Device 001: ID 0000:0000
   Bus 001 Device 001: ID 0000:0000

Dies bedeutet, dass Ihr Zaurus vom PC korrekt erkannt wurde. Läuft Ihr Zaurus mit Kernel 2.6 sollte die Ausgabe folgendermassen aussehen:

   Bus 002 Device 004: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget
   Bus 002 Device 001: ID 0000:0000
   Bus 001 Device 001: ID 0000:0000

Falls das Tool “lsusb” auf Ihrem Rechner nicht installiert sein sollte, können Sie diesen Schritt auch mittels “dmesg” nachvollziehen: Läuft auf Ihrem Zaurus Kernel 2.4 sollten Sie folgende Zeile finden:

   usb 2-1: new full speed USB device using uhci_hcd and address 3
   usb0: register usbnet at usb-0000:00:10.0-1, Sharp Zaurus SL-5x00, 3a:6b:24:1f:af:0a

Und mit Kernel 2.6 sieht da dann so aus:

   usb 2-1: new full speed USB device using uhci_hcd and address 3
   usb0: register usbnet at usb-0000:00:10.3-1, Linux Device, 3a:6b:24:1f:af:0a

Mit dem Befehl “lsmod | grep usbnet” können Sie feststellen ob das usbnet Modul automatisch geladen wurde (falls es nicht fest im Kernel eingebaut ist).

   bateau:~# lsmod | grep usbnet
   usbnet                 18888  0

Den PC konfigurieren

Der Befehl “ifconfig -a” sollte ein Netzwerkgerät namens usb0 anzeigen, welches jedoch noch nicht konfiguriert ist.

   usb0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
   BROADCAST MULTICAST  MTU:1500  Metric:1
   RX packets:0 errors:0 dropped:0 overruns:0 frame:0
   TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Auf Ihrem PC geben Sie folgenden Befehl ein:

   ifconfig usb0 192.168.129.1 netmask 255.255.255.0 up

Das sollte Ihr USB Netzwerk auf dem PC konfigurieren und danach das Geräat betriebsbereit machen.

Den Zaurus konfigurieren

Starten Sie die “Netzwerk” Applikation im “Einstellungen” Reiter [FIXME: Don’t have a Z with me to check the actual names…] . Wählen Sie das Gerät “usbd0″ (oder usb0 für Kernel 2.6) und geben Sie folgende Informationen ein:

   (X) Automatically bring up
   ( ) DHCP
   Static Ip Configuration
   IP Address  192.168.129.201
   Subnet Mask 255.255.255.0

[FIXME: Translate the above with the translation of the application]

Lassen Sie den Rest fürs Erste frei.

Die Verbindung überprüfen

Jetzt werden wir versuchen ob wir den Zaurus vom PC aus erreichen können .

   desktop:~# ping -c 5 192.168.129.201
   PING 192.168.129.201 (192.168.129.201) 56(84) bytes of data.
   64 bytes from 192.168.129.201: icmp_seq=1 ttl=255 time=2.38 ms
   64 bytes from 192.168.129.201: icmp_seq=2 ttl=255 time=1.27 ms
   64 bytes from 192.168.129.201: icmp_seq=3 ttl=255 time=1.15 ms
   64 bytes from 192.168.129.201: icmp_seq=4 ttl=255 time=1.24 ms
   64 bytes from 192.168.129.201: icmp_seq=5 ttl=255 time=1.22 ms
   --- 192.168.129.201 ping statistics ---
   5 packets transmitted, 5 received, 0% packet loss, time 4003ms
   rtt min/avg/max/mdev = 1.150/1.453/2.382/0.467 ms

Wenn die Ausgabe bei Ihnen nicht ähnlich ist haben Sie warscheinlich einen Fehler in den vorherigen Schritten gemacht. Falls der Ping allerdings funktioniert funktioniert die USB Verbindung fehlerfrei!

Die Einstellungen dauerhaft vornehmen

Sie möchten warscheinlich nicht jedes mal das USB Netzwerk auf Ihrem PC “zu fuss” konfigurieren wenn Sie den Zaurus anschliessen. Sie wollen Ihn eher einfach einstecken und sofort benutzen können. Debian bringt dafür die richtigen Werkzeuge mit!

(Anmerkung des Übersetzers: Das kann natürlich auch jede andere Distribution, Ergänzungen sind stets gern gesehen!)

Editieren Sie die Datei /etc/network/interfaces und fügen Sie folgende Zeilen hinzu:

   mapping hotplug
   script grep
   map usb0
   
   iface usb0 inet static
   address 192.168.129.1
   netmask 255.255.255.0
   pointopoint 192.168.129.201

Dieser Eintrag stellt sicher, dass das USB Netzwerk beim Einstecken des Zaurus automatisch gestartet wird.

Unter RedHat/Fedora Core können Sie /etc/sysconfig/network-scripts/ifcfg-usb0 anpassen um die Konfiguration zu vereinfachen:

   DEVICE=usb0
   ONBOOT=no
   BOOTPROTO=static
   IPADDR=192.168.129.1
   NETMASK=255.255.255.0

Mittels “ifup usb0″ und “ifdown usb0″ kann man das Netzwerk gezielt starten und stoppen, automatisch geschieht das leider nicht. Danke an Jeremy für diese Information! Falls jemand beschreiben kann wie man diese Einstellungen unter seiner Distribution festlegen kann, möge er uns bitte eine e-mail schreiben oder im IRC besuchen. Wir fügen diese dann gerne hinzu mit Quellenangabe versteht sich =)

Fehlersuche

2.4.29 und frühe 2.6er (<2.6.10?) Kernel haben keine Unterstützung für das “Ethernet Gadget” Gerät auf dem Zaurus. Das ist aber nur ein Problem wenn auf dem Zaurus Kernel 2.6 läuft. Falls nach dem Einstecken des Zaurus in die Dockingstation der Befehl “ifconfig -a” kein “usb0″ Gerät aufzeigt, prüfen Sie bitte folgendes:

Starten Sie “lsusb” - Die Ausgabe sollte so ähnlich aussehen:

   Bus 00X Device 00Y: ID 0525:a4a2 Netchip Technology, Inc.

Prüfen Sie ob das Gerät von einem anderen Treiber (usbnet) verwendet wird:

   usbmodules -d /proc/bus/usb/00X/00Y

Wenn “ifconfig -a” kein “usb0″ Gerät anzeigt, sollten Sie keine Ausgaben bekommen haben (FIXME: Why on earth do it in the first place then?]

Nun überprüfen Sie das USB Gerät

   grep '0x0525.*0xa4a2' /lib/modules/`uname -r`/modules.usbmap

Wenn keine Ausgabe erfolgt hat Ihr usbnet Treiber keine Unterstützung für den Zaurus.

Schauen Sie sich die Datei usbnetc. in Ihren Kernelquellen an. Wenn Sie den Text “0525/a4a2″ nicht finden benötigen Sie einen neueren Kernel (2.6.10 sollte funktionieren).

Wenn auf Ihrem PC Kernel 2.4.x läuft und usbnet.c kein “0525/a4a2″ enthält, können Sie sich hier eine funktionierende usbnet.c Datei herunter laden. Kopieren Sie diese Datei nach /usr/src/linux/drivers/usb/ und Kompilieren Sie die Module mit “make modules && make modules_install”. Ausserdem muss #define CONFIG_USB_CDCETHER. in der Kernel Konfiguration (.config) gesetzt sein.

Bei einigen USB Geräten ist es möglich Treiber manuell an bestimmte Vendor und Device ID’s zu binden mittels der “handmap” Datei. Das funktioniert aber nicht immer.

Hintergrundwissen zum USB Subsystem

Wenn Sie ein USB Gerät einstecken liest der USB Controller die Hersteller und Geräte ID des USB Teilnehmers aus. Falls diese ID’s dem USB Subsystem bekannt sind, wird der korrekte Treiber für den USB Teilnehmer automatisch geladen.