Hallo zusammen,
da ich mich selbst lange damit beschäftigt habe mein Xperia X1 mit Kubuntu zu synchronisieren und es jetzt seit einiger Zeit bei mir fehlerfrei funktioniert, möchte ich euch daran teilhaben lassen 😉
Wie oben erwähnt verwende ich Kubuntu 9.04 (KDE4) und zuvor 8.10 (KDE4), allerdings konnte ich meinen Rechner noch nicht dazu bringen mit Kontact zu synchroniesieren. Dies lag vermutlich daran, dass unter KDE4 zur Verwaltung der PIM Einträge Akonadi eingesetzt wird. Jedoch gibt es hierfür noch kein OpenSync Plugin. Dieses wird/soll jedoch mit der Version 0.40 von OpenSync zur Verfügung stehen. Wann OpenSync 0.40 freigegeben wird steht allerdings noch offen. Daher habe ich mich für Evolution entschieden und bin damit eigentlich auch recht zufrieden...
Für die Synchronisation werden folgende Pakete benötigt
synce-sync-engine
synce-kpm
libnotify-bin
libopensync0
opensync-plugin-evolution
opensync-plugin-synce
multisync-tools
!!!Bevor ihr beginnt, empfehle ich dringend ein Backup von 'pim.vol' auf dem Windows Mobile Gerät, sowie der Daten von Evolution zu machen!!!
Installation der Pakete
Die oben genannten Pakete müssen installiert werden. Dies geschieht am einfachsten indem ihr folgendes in die Konsole eintippt:
apt-get install synce-sync-engine synce-kpm libnotify-bin libopensync0 opensync-plugin-evolution opensync-plugin-synce multisync-tools
Einrichtung von OpenSync
Einrichtung von Opensync und den dazugehörigen Plugins siehe OpenSync (Abschnitt „Kommandozeile“)
Das Synce-Plugin muss nicht konfiguriert werden. Für das Evolution-Plugin habe ich folgendes verwendet:
<?xml version="1.0"?> <config> <address_path>default</address_path> <calendar_path>default</calendar_path> <tasks_path>default</tasks_path> </config>
Einrichtung von Synce-KPM
Hierzu müsst ihr zunächst 'synce-sync-engine' und 'synce-kpm' starten. Nun schließt ihr eure Windows Mobile Gerät per USB an den Rechner an. Synce-Kpm sollte sich nun melden, dass ein neues Gerät gefunden wurde und noch keine Partnerschaft besteht. Auf die Frage, ob diese nun erstellt werden soll klickt ihr auf ja. Als Name könnt ihr einen beliebigen Namen auswählen, z.B. WinMobile. Darunter könnt ihr Synce-Kpm sagen was synchronisiert werden soll.
Erster Datenabgleich
Um den Rechner und Win Mobile auf den gleichen Stand zu bringen, muss zunächst eine Synchronisation in eine Richtung durchgeführt werden. Dies bedeutet, dass bei Konflikten eines der beiden Geräte den Vorrang erhält. Dieser Schritt ist notwendig, da OpenSync bisher (bei gleichen Einträgen auf dem Rechner und dem Win Mobile Gerät) noch nicht weiß, welcher nun der neueste ist. Später wird bei der Synchronisation der Daten der Zeitstempel verglichen, um Konflikte aufzulösen.
Um diese einseitige Synchronistation starten zu können, müsst ihr zunächst einmal herausfinden welches Plugin welche Nummer hat. Dies erfolgt mit folgendem Befehl:
msynctool --showgroup <Gruppe>
Wobei <Gruppe> der Gruppenname sein muss, den ihr bei der Einrichtung von OpenSync vergeben habt. Sucht euch das Plugin heraus, das zunächst den Vorrang erhalten soll und führt dann folgenden Befehl aus:
msynctool --sync <Gruppe> --conflict <Plugin-Nummer>
Wobei <Plugin-Nummer> die Nummer des bevorrechtigten Plugins ist.
Die Synchronisation sollte ohne Fehler vor sich gehen. Glückwunsch, dann habt ihr das meiste Überstanden.
Synchronisieren
Um die Synchronisation zu starten könnt ihr nun folgenden Befehl ausführen (ACHTUNG: 'synce-sync-engine' und 'synce-kpm' müssen gestartet sein!!!)
msynctool --sync <Gruppe> --conflict n
Mit '--conflict n' wird festgelegt, dass bei Konflikten immer der neuste Eintrag verwendet werden soll.
Ohne zuvor 'synce-sync-engine' und 'synce-kpm' zu starten, kann es bei der Synchronisation zu Fehlern kommen. Meistens werden die 'log-Dateien' von OpenSync überschrieben und eine Zuordnung der Zeitstempel ist dann nicht mehr möglich. Sollte euch dies dennoch einmal passieren, müsst ihr erneut eine einseitige Synchronisation durchführen. Dies ist allerdings recht ärgerlich, wenn man zuvor sowohl auf dem Rechner als auch auf dem Win Mobile Gerät Daten abgeändert hat. In diesem Fall gehen nämlich alle Änderungen eines Gerätes verloren. Damit mir so etwas nicht (nochmal) passiert, habe ich mir ein kleines Skript geschrieben, welches prüft, ob die erforderlichen Dienste laufen. Außerdem macht es den Synchronisationsvorgang etwas komfortabler.
Mein Skript
Zunächst einmal das Skript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/bin/bash #Variablen definieren GROUP=<Gruppe> # Gruppenname eintragen HIDE=0 # Zeit in Millisekunden nachdem die Sprechblasen ausgeblendet werden sollen (0 = nicht ausblenden) # Prüfen, ob notwendige Dienste laufen AKTIV1=`top -b -n1 | grep -i -c synce-sync` AKTIV2=`top -b -n1 | grep -i -c synce-kpm` if [ $AKTIV1 == "0" ]; then notify-send -i /usr/share/icons/default.kde4/48x48/actions/dialog-close.png -t $HIDE "Fehler" "'Synce-Sync-Engine' läuft nicht. Synchronisierung wurde abgebrochen." exit #Auskommentieren, wenn der Dienst nur temporär gestartet werden soll #synce-sync-engine & #Auskommentieren, wenn der Dienst im Autostart steht fi if [ $AKTIV2 == "0" ]; then notify-send -i /usr/share/icons/default.kde4/48x48/actions/dialog-close.png -t $HIDE "Fehler" "'Synce-kpm' läuft nicht. Synchronisierung wurde abgebrochen." exit #Auskommentieren, wenn der Dienst nur temporär gestartet werden soll #synce-kpm -i & #Auskommentieren, wenn der Dienst im Autostart steht fi #Datum der Dateien in Variable sichern ALT=`date -r ~/.opensync-0.22/group3/change.db` ALTLOG=`date -r ~/.opensync-0.22/group3/changelog.db` #Meldung über Sync-Start ausgeben und Sync starten notify-send -i /usr/share/icons/default.kde4/48x48/actions/view-refresh.png -t 3000 "Synchronisiere..." "Der Datenabgleich zwischen PC und PDA läuft..." & msynctool --sync $GROUP --conflict n #Datum der Dateien abrufen und in Variable speichern NEU=`date -r ~/.opensync-0.22/group3/change.db` NEULOG=`date -r ~/.opensync-0.22/group3/changelog.db` #Daten vergleichen und Meldungen ausgeben if [ "$NEU" = "$ALT" ] && ! [ "$NEULOG" = "$ALTLOG" ];then notify-send -i /usr/share/icons/default.kde4/48x48/actions/dialog-close.png -t $HIDE "Synchronisation abgeschlossen!" "Es gibt keine Änderungen zum Abgleichen " elif [ "$NEU" = "$ALT" ] && [ "$NEULOG" = "$ALTLOG" ];then notify-send -i /usr/share/icons/default.kde4/48x48/devices/network-wired.png -t $HIDE "Fehler" "Der Datenabgleich konnte nicht durchgeführt werden. Prüfen sie die Verbindung zwischen den Geräten" else notify-send -i /usr/share/icons/default.kde4/48x48/actions/dialog-ok-apply.png -t $HIDE "Synchronisation abgeschlossen!" "Der Datenabgleich wurde erfolgreich beendet" fi #Benötigte Dienste beenden, falls sie nicht im Autostart stehen #pkill synce-kpm #pkill synce-sync-engine |
Ihr müsst zunächst in Zeile 4 der Gruppenname eintragen und falls ihr wollt, dass die Sprechblasen automatisch ausgeblendet werden, könnt ihr in Zeile 5 noch eine Zeit in Millisekunden eintragen, nach der sich die Sprechblasen wieder schließen.
Ich habe mir 'synce-kpm' und 'synce-sync-engine' in den Autostart gelegt, deshalb lasse ich mir, falls eines der beiden Programme nicht läuft, lediglich eine Warnung ausgeben. Um die beiden Programme bei der Anmelden zu starten kann man sich einfach ein Skript anlegen, welches man dann in den Autostart legt. Siehe hierzu Autostart
Falls man die Programme nicht ständig im Hintergrund laufen lassen will, kann man Zeile 13 und 18 mit einer Raute # auskommentieren und die Zeile 14, 19, 44 und 45 durch entfernen der Raute aktivieren.
Für das Skript kann man sich einen Starter anlegen, welcher das Skript ggf. im Terminal ausführt. Dadurch kann man auch eventuelle Fehler ausfindig machen bzw. den Fortschritt verfolgen
WICHTIG
Achtet darauf, dass das Windows Mobile Gerät richtig verbunden ist bevor ihr mit der Synconisation startet. Dies erkennt ihr am einfachsten, wenn auf dem Windows Mobile Geräte oben neben der Feldstärkeanzeige zwei entgegengesetzte Pfeile zu sehen sind.
Ich übernehme keinerlei Haftung für eventuelle Datenverluste und/oder sonstigen Schäden die bei der Installation oder durch die Verwendung dieses Skripts entstehen. Wie oben schon erwähnt sollte vor Beginn eine Datensicherung durchgeführt werden.
Nun wünsche ich viel Spaß beim Synchronisieren
PS: Ihr müsst evtl. noch die Icons für die Benachrichtigungen anpassen, ich habe Icons von KDE4 verwendet