Gegensätzliche Welten in Einklang ist zu bringen ist meist nicht einfach. Dies gilt auch für Betriebssystemwelten. Mit SynCE gelingt es doch – für PDAs unter Microsoft Windows Mobile und Linux-Desktops.
Bereits der Standarkernel enthält das Modul ipaq, mit dessen Hilfe Linux den PDA als USB-Gerät erkennt. Zwar können nicht nur HPs iPAQ-PDAs dieses Modul nutzen, leider funktioniert es andererseits auch bei weitem nicht mit allen PDAs:
- Aktuelle Pocket-PCs mit Windows Mobile 2005 nutzen ein anderes Übertragungsprotokoll. Hier funktioniert das
ipaq-Modul erst mit Hilfe des Pocket-PC-Programms ActiveSync Mode [1]. - Bei manchen PDAs scheitert es an der Hardware: Statt den im Kernelmodul vorgesehenen zwei USB-Endpunkten weisen solche Geräte vier Endpunkte auf. Hier funktioniert die Verbindung erst nach dem Patchen und Neukompilieren des Kernels. Der Kasten “Vier USB-Endpunkte” erläutert, wie Sie vorgehen.
Der Kasten “PDA-Typen” beschreibt, wie Sie herausfinden, in welche Kategorie Ihr Pocket-PC fällt. Läuft darauf Windows Mobile 2005, kopieren Sie die Datei USBSwitch_PPC.cab[1] unter Windows oder über ein Speicherkartenlesegerät auf den PDA. Ein Klick mit dem PDA-Stift installiert die Programmdatei im Verzeichnis, in dem auch die Cab-Datei liegt, ein Klick darauf startet es. Stellen Sie den USB Serial Sync Mode ein (Abbildung 1).

ipaq funktioniert dann auch mit aktuellen PDAs.” width=”221″ height=”300″ />
Abbildung 1: Mit Activ Sync Mode versteht Windows Mobile 2005 wieder das Netzwerkprotokoll der Vorgängerversion. Das Kernelmodulipaq funktioniert dann auch mit aktuellen PDAs.Vier USB-Endpunkte
Falls ihr PDA vier USB-Endpunkte aufweist, kann ihn das im Standarkernel enthaltene ipaq-Modul nicht korrekt erkennen. Abhilfe schafft ein Patch: Laden Sie für Kernel der 2.6.16er-Serie ipaq.c von [2] herunter und ersetzen sie damit nach einem Backup /usr/src/linux/drivers/usb/serial/ipaq.c. Richten Sie es in der Kernel-Konfiguration über Device DriversUSB supportUSB Serial Converter supportUSB PocketPC PDA Driver als Modul ein. Hinweise zum Konfigurieren und Kompilieren des Kernels finden Sie unter [3].
PDA-Typen
Auf dem Pocket-PCs finden Sie unter Einstellungen / Info / Version Angaben zur Windows-Version. 5.0 entspricht Windows Mobile 2005. Um herauszufinden, wie sich der PDA unter Linux verhält, trennen Sie zunächst die Verbindung zum PDA und geben Sie auf der Konsole cat /proc/bus/usb/devices > /tmp/before ein. Verbinden Sie dann den PDA. Die Befehle cat /proc/bus/usb/devices > /tmp/after && diff /tmp/before /tmp/after liefern schließlich die nötigen Informationen über das USB-Gerät (relevante Einträge kursiv):
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 10 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs= 1 P: Vendor=049f ProdID=0003 Rev= 0.00 C? #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ipaq
Cls=ff(vend.) zeigt an, dass es sich um ein Gerät handelt, das sich direkt über das ipaq-Kernelmodul ansprechen lässt. Pocket-PCs mit Windows Mobile 2005 liefern stattdessen die Ausgabe Cls=ef(unk.). Relevant ist außerdem der Wert #Eps: Er gibt die Zahl der USB-Endpunkte wieder. Steht hier eine Zwei, so funktioniert die Verbindung zu Ihren PDA mit dem Standarkernel. Bei vier Endpunkten hingegen müssen Sie den Kernel wie im Kasten “Vier USB-Endpunkte” beschrieben patchen.
Das Modul <C>ipaq<C>
Die Ausgabe von dmesg als Root sollte umittelbar nach dem Verbinden von PC und PDA die Meldung usb 2-5: PocketPC PDA converter now attached to ttyUSB0 enthalten. Erkennt Linux den PDA nicht als Pocket-PC, hilft ein Eintrag in /etc/modprobe.conf. Sehen Sie sich erneut die Ausgabe des /proc-Filesystems aus dem Kasten “PDA-Typen” an und suchen Sie nach der Zeile P: Vendor=xxxx ProdID=xxxx Rev= 0.00. Fügen Sie in modprobe.conf die Zeile options ipaq vendor=xxxx product=xxxx ein (xxxx durch die passenden Werte ersetzen). Falls Sie einen PDA mit vier USB-Endpunkten besitzen, fügen Sie auf einer neuen Zeile noch options ipaq ttyUSB=1 hinzu. Laden Sie das Kernelmodul nun als Root mit den Befehlen rmmod ipaq und modprobe ipaq neu.
SyncCE installieren
Mit Windows-Mobile 2003 oder WindowsCE arbeiten bereits ältere SynCE-Versionen korrekt, für die Ihre Distribution eventuell Pakete enthält. Funktioniert der Zugriff auf den PDA nicht, bleibt nur die Möglichkeit, eine aktuelle Version vonSynCE zu selbst übersetzen. Mit Windows Mobile 2003 oder älter stellt die Release-Version (Anleitung zum Download und Kompilieren: [4]) die bessere Wahl dar. Windows Mobile 2005 setzt allerdings die SVN-Version voraus. Eine Anleitung für das Extrahieren der Dateien aus dem SVN-Repository und das Kompilieren finden Sie unter [5].
Die Anleitung ist allerdings für einen anderen Anwendungsfall konzipiert: Löschen Sie abweichend von der Beschreibung unter Unzip and tidy up synce-0.9.1.tar.gz nach Entpacken von synce-0.9.1.tar.gz die Datei synce-serial-0.9.1.tar.gz nicht. Entpacken Sie diese vielmehr und übersetzen Sie synce-serial mit den Befehlen ./bootstrap && ./configure && make && su -c "make install".
Die Verbindung herstellen
Hat Linux Ihren PDA als USB-Gerät erkannt (siehe Ausgabe von dmesg), kann SynCE auf ihn zugreifen, sofern keine Firewall die Verbindung nicht aufhält. Geben Sie daher gegebenenfalls zunächst die Ports 5678, 5679 und 990 frei. Starten Sie dann als normaler Benutzer das Programm vdccm.
Die eigentliche Verbindung bereiten Sie mit synce-serial-config ttyUSB0, bei PDAs mit vier USB-Endpunkten mit synce-serial-config ttyUSB1 vor. Die Gerätedatei ttyUSBx kann je nach Distibution auch tts/USBx, usb/tts/x oder usb/ttyUSBx heißen (x steht für 0 oder 1). synce-serial-start initiiert schließlich die Kommunikation: Öffnen Sie in Konqueror die Adresse rapip:/, so sollte das Dateisystem des PDAs erscheinen.
Ausblick
Ist es Ihnen gelungen, das Dateisystem des PDAs im Konqueror anzuzeigen, steht auch einer Synchronisation der Adress- und Kalenderdaten über Multisync oder Kitchensync nicht mehr viel im Weg: Installieren sie zunächst das entsprechende Plugin. Das Multisync-Plugin heißt synce-multisync_plugin und ist unter [6] erhältlich. Das Kitchensync-Plugin finden Sie als syncekonnector unter [7].
Wie Sie mit Multisync und Kitchensync synchronisieren, beschreibt der Artikel “Terminabgleich”. Mit Windows Mobile 2005 funktioniert das Synchronisieren im Moment leider noch nicht. Aktuellere Information hierzu finden Sie auf der SynCE-Mailingliste zu Windows Mobile 2005 [8]. Gnome-Nutzer finden unter [9] eine Anleitung zum Einrichten der Gnome-Einbindung.
Infos
[1] ActiveSync-Modus umschalten: http://t005.tgv.net/USBSwitch_PPC.cab
[2] Vier-Endpunkte-Patch: http://www.webhochhaus.de/linux/patches/ipaq-module/ipaq.c
[3] Linux-Kernel kompilieren: Peter Kreussel, “Kerngeschäft”, LinuxUser 06/2006, S. 88
[4] Release-Version von SynCE: http://www.synce.org/index.php/Building_synce_with_WM5_support_from_sourceforge_packages
[5] SVN-Version von SynCE: http://www.synce.org/index.php/Building_synce_with_WM5_support_from_packages_and_Subversion
[6] MultiSync-Plugin: http://sourceforge.net/project/showfiles.php?group_id=30550&package_id=92164
[7] KitchenSync-Plugin: http://sourceforge.net/project/showfiles.php?group_id=30550&package_id=73834
[8] SynCE-Mailingliste zu Windows Mobile 2005: https://lists.sourceforge.net/lists/listinfo/synce-windowsmobile5
[9] SynCE-Gnome-Einbindung: http://synce.sourceforge.net/synce/gnome.php




