[[Vorlage(Archiviert)]] {{{#!vorlage Warnung Aufgrund von Abhängigkeitsproblemen wurde das Plugin in Ubuntu 10.04 [:Lucid_Lynx:] aus den Paketquellen gelöscht (s. [bug:524938:] {en}). }}} {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo:Root-Rechte] [:Editor:Einen Editor verwenden] }}} [[Inhaltsverzeichnis()]] [wikipedia:SyncML:] ist ein Standard der [http://www.openmobilealliance.org Open Mobile Alliance] {en}, der inzwischen von einer Vielzahl von Hardware-Anbietern unterstützt wird (u.a. Nokia, Palm, Motorola, Sony Ericsson und Samsung). Der Vorteil ist, dass SyncML weder auf eine bestimmte Plattform noch auf eine bestimmte Netzwerkarchitektur festgelegt ist - entsprechend bestehen auch in OpenSync [1] verschiedene Möglichkeiten, den Standard zu nutzen: Über einen http-Server, über einen [wikipedia:OBEX:]-Client via USB-Kabel oder über einen OBEX-Client via [:Bluetooth:]. Alle Möglichkeiten greifen aber auf dasselbe Paket zurück[2]: {{{#!vorlage Paketinstallation opensync-plugin-syncml }}} Das Plugin lässt sich in KitchenSync [1] bereits über eine graphische Oberfläche einrichten; Benutzern von Multisync-GUI [1] steht bisher nur dasselbe Skript zur Verfügung, über das auch im Terminal die Konfiguration abläuft [3]. = SyncML über einen http-Server = Die Synchronisation über einen http-Server ist die allgemeinste Form des Datenabgleichs über SyncML. Sie sollte mit allen Geräten möglich sein, die SyncML unterstützen; das gilt insbesondere für Nokia-Mobiltelefone. Als Plugin-Typ ist ''"SyncML over HTTP-Server"'' zu wählen, das Plugin selber heißt `syncml-http-server`. == Einrichtung mit KitchenSync == [[Bild(OpenSync/SyncMLhttpKitchenSyncConf.png, 250, right)]] Fügt man einer Gruppe ein SyncML-Plugin hinzu, so nennt KitchenSync das zugehörige Mitglied automatisch `Mobile Phone`. Es darf aber nach Belieben umbenannt werden. Wird das Mitglied im Editier-Fenster markiert, so erscheint nebenstehende Oberfläche: Im Reiter ''"Connection"'' ist der Port zu wählen, der verwendet werden soll. Standard-Einstellung ist 8080. Dieser Port muss auch auf dem externen Gerät eingestellt werden. Im Reiter ''"Databases"'' ist anzugeben, wie die abzugleichenden Datenbanken auf dem externen Gerät heißen. Manchmal beginnen diese Namen mit Großbuchstaben. Im Reiter ''"Options"'' könnten ein beliebiger Benutzername und das zugehörige Passwort angegeben werden. Beides müsste auch im externen Gerät eingetragen werden; beides kann normalerweise aber leer gelassen werden. Falls [wikipedia_en:WBXML:] verwendet wird, kann es sinnvoll sein, bei ''"Use String Table"'' ein Häkchen zu setzen; die Option ''"Only Replace Entries"'' bleibt aber normalerweise abgewählt. Zudem könnte hier eine URL angegeben werden, die auch im externen Gerät stehen müsste, auch dies ist aber nicht notwendig. Schließlich kann es vor allem bei älteren externen Geräten sein, dass deren Speicherkapazität eher gering ist, weshalb auch noch die Möglichkeit besteht, die maximale Größe eines Datensatzes und die maximale Größe aller zu transferierender Daten zusammen festzulegen. Stehen diese Werte auf Null (Standard-Wert), so werden alle Daten transferiert. == Einrichtung im Skript == Nach Aufruf des Konfigurations-Befehls im Terminal [2] bzw. nach Markierung des Plugins in Multisync-GUI [1] erscheint folgendes Skript: {{{#!code xml 8080 0 0 0 0 0 contacts calendar notes }}} Die Optionen lassen sich wie folgt konfigurieren: * `username` und `password`: Nur angeben, falls ein Benutzername und ein Passwort verwendet werden sollen. Das kann aber problemlos leer gelassen werden. * `url` und `port`: Die zu verwendende URL und der zu verwendende Port, beides muss auch auf dem externen Gerät eingestellt werden. Meist reicht für die URL ein '/', Standard für den Port ist '8080'. * `usestringtable`: Entweder '1' oder '0', eine Einstellung für wbxml. * `onlyreplace` und `onlyLocaltime`: Beides kann normalerweise auf '0' belassen werden. * `recvLimit` und `maxObjSize`: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen. * `contact_db`, `calendar_db` und `note_db`: Die Namen der zu synchronisierenden Datenbanken, und zwar so, wie sie von jenem Gerät benannt werden, das mit SyncML erreicht werden soll (also das Mobiltelefon). Die Voreinstellung kann aber versuchsweise so stehen gelassen werden; manchmal wird anstelle von `contacts` der Eintrag `addressbooks` verwendet und anstelle von `calendar` `agenda`; zudem beginnen die Datenbanknamen manchmal mit Großbuchstaben. == Beispiel-Konfiguration == Beispiel einer funktionierenden Konfiguration (zu einem Nokia 6680, das Beispiel stammt von [http://www.opensync.org/wiki/syncml-guide opensync-Wiki] {en}). {{{#!code xml / 8080 1 0 10000 Contacts Calendar Notes }}} = SyncML über einen OBEX-Client = Ob über ein USB-Kabel oder via Bluetooth, als Plugin-Typ ist `SyncML over OBEX Client` zu wählen, das Plugin selber heißt `syncml-obex-client`. == Einrichtung mit KitchenSync == [[Bild(OpenSync/SyncMLobexKitchenSyncConf.png, 250, right)]] Fügt man einer Gruppe ein SyncML-Plugin hinzu, so nennt KitchenSync [1] das zugehörige Mitglied automatisch `Mobile Phone`. Es darf aber nach Belieben umbenannt werden. Wird das Mitglied im Editier-Fenster markiert, so erscheint nebenstehende Oberfläche: Im Reiter ''"Connection"'' ist zuerst zu wählen, ob die Verbindung via USB oder via Bluetooth laufen soll. Bei einer USB-Verbindung ist danach anzugeben, an welchem Interface das Verbindungskabel eingesteckt ist. Wie sich dies allenfalls im Terminal ermitteln lässt, ist weiter unten, bei der Skript-basierten Einrichtung erklärt. Bei einer Verbindung via Bluetooth ist einerseits die 12-stellige MAC-Adresse des externen Geräts, andererseits der Kanal anzugeben, über den die Verbindung laufen soll. Dies ist normalerweise Kanal 11; wie dies und wie die MAC-Adresse im Terminal herausgefunden werden kann, steht ebenfalls weiter unten bei der Skript-basierten Einrichtung und im Artikel zur [:Bluetooth/Einrichtung: Bluetooth-Einrichtung]. Im Reiter ''"Databases"'' ist anzugeben, wie die abzugleichenden Datenbanken auf dem externen Gerät heißen. Manchmal beginnen diese Namen mit Großbuchstaben. Im Reiter ''"Options"'' könnten ein allfälliger Benutzername und das zugehörige Passwort angegeben werden. Entsprechendes müsste auch im externen Gerät eingetragen werden, dies kann normalerweise aber leer gelassen werden. Falls WAP Binary XML verwendet wird, sollte dort ein Häkchen gesetzt werden, hierzu kann es sinnvoll sein, auch ''"Use String Table"'' anzuwählen; die Option ''"Only Repalce Entries"'' bleibt aber normalerweise abgewählt. Zudem muss hier angegeben werden, welche Version von SyncML verwendet wird (Standard ist momentan 1.1). Unter ''"Identifier"'' ist ein Ausdruck einzutragen, den manche Geräte verlangen, um sich zu identifizieren. Wenn der Geräte-Hersteller eine eigene Synchronisations-Software anbietet, sollte deren Identifier verwendet werden (meist der Name der Software). Schließlich kann es vor allem bei älteren externen Geräten sein, dass deren Speicherkapazität eher gering ist, weshalb auch noch die Möglichkeit besteht, die maximale Größe eines Datensatzes und die maximale Größe aller zu transferierender Daten zusammen festzulegen. Steht dieser Wert auf Null (Standard-Wert), so werden alle Daten transferiert. == Einrichtung im Skript == Die Konfiguration des OBEX-Plugins läuft im Terminal [2] und in Multisync-GUI [1] für die USB- und die Bluetooth-Variante über dasselbe Script. Diese liegt in '''/home/benutzername/.opensync/''' und dann, je nach dem wie viele Gruppen man hat, unter '''group1/''' und dann entweder unter '''1/ oder 2/''' Das Skript sieh dann folgendermaßen aus: {{{#!code xml 0 1 0 5 0 0 0 0 0 contacts calendar notes }}} Die Optionen lassen sich wie folgt konfigurieren: * `bluetooth_address`: (Nur beachten, wenn via Bluetooth synchronisiert werden soll!) Hier ist die MAC-Adresse des externen Gerätes anzugeben, sie lässt sich, so das Gerät in Reichweite ist, herausfinden mit {{{#!vorlage Befehl hcitool scan }}} * `bluetooth_channel`: (Nur beachten, wenn via Bluetooth synchronisiert werden soll!) Hier ist anzugeben, über welchen Kanal SyncML laufen soll. Das lässt sich herausfinden mit {{{#!vorlage Befehl sdptool browse BLUETOOTH_ADRESSE }}} Die Ausgabe ist recht lang, gegen Ende sollte ein Block 'Service Name: SyncML Client' kommen, dort steht in der 6. Zeile der verwendete Kanal (normalerweise Channel 11). * `interface`: (Nur beachten, wenn via USB-Kabel synchronisiert werden soll!) Die Nummer des USB-Interface, das das Ziel-Gerät verwendet. Diese kann, bei angeschlossenem Gerät, herausgefunden werden mit {{{#!vorlage Befehl syncml-obex-client -u }}} * `identifier`: Ein Ausdruck, den das Plugin bei gewissen Geräten braucht, um sich zu identifizieren. Wenn der Geräte-Hersteller eine eigene Synchronisations-Software anbietet, sollte deren Identifier verwendet werden (meist der Name der Software). * `version`: Die zu verwendende Version von SyncML. Mögliche Angaben sind 0 für SyncML 1.0, 1 für SyncML 1.1 oder 2 für SyncML 1.2. Standard-Wert ist 1. * `wbxml`: '1' wenn das Plugin wbxml verwenden soll, '0' wenn nicht. Bei Unischerheit ausprobieren. * `username` und `password`: Beides muss nur angeben werden, falls ein Benutzername und ein Passwort wirklich verwendet werden sollen. Das kann man aber problemlos bleiben lassen, dieselben Angaben müssten aber auch im externen Gerät eingetragen werden. * `type`: Zwingendes Argument! Wenn das USB-Kabel verwendet wird, auf '5' stellen, bei Bluetooth unbedingt auf '2'. * `usestringtable`: Wenn wbxml verwendet wird, ist hier gewöhnlich auf '1' zu stellen, ansonsten '0'. * `onlyreplace` und `onlyLocaltime`: Beides kann normalerweise auf '0' belassen werden. * `recvLimit` und `maxObjSize`: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen. * `contact_db`, `calendar_db` und `note_db`: Die Namen der zu synchronisierenden Datenbanken, und zwar so, wie sie von jenem Gerät benannt werden, das mit SyncML erreicht werden soll (also das Mobiltelefon). Die Voreinstellung kann aber versuchsweise so stehen gelassen werden; manchmal wird anstelle von `contacts` der Eintrag `addressbooks` verwendet und anstelle von `calendar` `agenda`; zudem beginnen die Datenbanknamen manchmal mit Großbuchstaben. Die Einstellungen bei USB-Geräten, ob [wikipedia:WAP_Binary_XML:WBXML] unterstützt, wird man so testen: {{{#!vorlage Befehl sudo syncml-obex-client -u 0 --wbxml --slow-sync text/x-vcard contact }}} Es sollte eine Ausgabe etwa in folgender Form erscheinen {{{ Codeconnection with device succeeded Received an Alert for the DS Server at contact: Type: 200, Last 1501, Next 1501 Slowsyncing Just received a new session with ID 1 Received the DevInf Session 1 reported final. flushing Received an reply to our Alert Going to receive 0 changes Received a modified entry 677 of size 217 and type text/x-vcard Data: BEGIN:VCARD VERSION:2.1 N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:abh=C3=B6ren;Mailbox FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:abh=C3=B6ren, Mailbox TEL;CELL:+49145643000333 X-IRMC-LUID:0002000002A5 END:VCARD Received a modified entry 633 of size 289 and type text/x-vcard Data: BEGIN:VCARD VERSION:2.1 N;CHARSET=UTF-8:Nachname;Vorname FN;CHARSET=UTF-8:Nachname, Vorname ORG;CHARSET=UTF-8:Firma TEL;CELL:+49163689843611 }}} == Synchronisierung über USB == Für den usbraw-Zugriff sind Root-Rechte[4] notwendig, eine Synchronisierung mit Evolution ist allerdings mit `sudo` sehr unschön. Beheben lässt sich dieser Umstand durch das Anlegen einer [:udev:]-Regel. Zunächst für das angeschlossene USB-Gerät Hersteller (`idVendor`) und Produkt-ID (`idProduct`) ermitteln {{{#!vorlage Befehl lsusb }}} danach in einem Editor[5] mit Root-Rechten eine Datei '''/etc/udev/rules.d/99-symbian-usb.rules''' mit folgendem Inhalt anlegen: {{{ BUS=="usb", SYSFS{idVendor}=="????", SYSFS{idProduct}=="????", MODE="0660", GROUP="plugdev" }}} zuletzt udev aktualisieren {{{#!vorlage Befehl sudo reload udev }}} == Beispiel-Konfigurationen == Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia 6103) {{{#!code xml XX:XX:XX:XX:XX:XX 11 PC Suite 1 1 2 1 0 0 0 0 contacts calendar notes }}} Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia 5800 XpressMusic. Achtung: Channel kann sich von selbst ändern! (Siehe [bug:376845:])) {{{#!code xml XX:XX:XX:XX:XX:XX 4 0 PC Suite 1 1 2 1 0 0 50000 0 Contacts Calendar Notes }}} Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia Communicator 9500) {{{#!code xml XX:XX:XX:XX:XX:XX 10 0 PC Suite 1 1 2 1 0 0 0 0 Contacts Calendar RcntTask }}} Beispiel einer funktionierenden Konfiguration via USB-Kabel zu einem Nokia 6680, das Beispiel stammt von [http://www.opensync.org/wiki/syncml-guide hier]. {{{#!code xml 0 PC Suite 1 1 5 1 0 10000 Contacts Calendar Notes }}} Beispiel einer funktionierenden Konfiguration via USB-Kabel zu einem Nokia 5320 XpressMusic, das Beispiel stammt von [http://lightmasters-life.blogspot.com/2009/06/nokia-5320-xpressmusic-opensync.html hier]. {{{#!code xml 0 PC Suite 1 1 5 1 0 0 Contacts Calendar Notes }}} Beispiel einer funktioniierenden Konfiguration des Nokia N97 mini via Bluetooth {{{#!code xml 'Bluetooth-Adresse' 7 0 PC Suite 1 1 2 0 0 0 0 0 Contacts Calendar Notes }}} Beispiel einer funktionierenden Konfiguration des Nokia X6 via USB {{{#!code xml 0 PC Suite 1 1 5 1 0 0 0 Contacts Calendar Notes }}} = Erfolgreich getestete Geräte = == via http-Server == * Nokia 6680 * Sony Ericson K610i == via OBEX-Client und USB == * Nokia 5320 XpressMusic * Nokia 5800 XpressMusic * Nokia 6680 * Nokia 7390 * Nokia N73 * Nokia X6 * Sony Ericsson D750i ([http://ubuntuusers.de/paste/226513/ Kalender], [http://ubuntuusers.de/paste/226514/ Kontakte]) * Sony Ericsson K770i (Kontakte u. Kalender) == via OBEX-Client und Bluetooth == * Nokia 6103 * Nokia Communicator 9500 * Nokia 9300i mit Einstellung wie 9500 * Nokia E50 * Nokia E51 * Nokia E71 * Nokia 7610 * Nokia 6110 Navigator (Nur v1.1 und Adressbuch) * Nokia 6300 (Kalender, Kontakte) * Nokia 5220 XpressMusic (Nur wenn man vorher Benutzername und Passwort anlegt, dann aber ohne Probleme) * Nokia 5800 XpressMusic (getestet: Kalender, Notizen) * Nokia N97 mini (getestet: Kalender, Kontakte) = Links = * [wikipedia:SyncML:] * [http://www.opensync.org/wiki/syncml-guide Der SyncML-Guide im OpenSync-Wiki] {en} * [http://www.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.html Die SyncML-Seite der Open Mobile Alliance] {en} # tag: Hardware, Kommunikation, Multimedia