Už dlouho na mém seznamu úkolů hnije synchronizace mezi telefonem (Sony-Ericsson K750i) a nějakou rozumnou PIM aplikací v Linuxu (protože používám GNOME, tak jako cesta nejmenšího odporu se jeví Evolution). Už jsem se o to pokoušel několikrát, ale zatím to nikdy nefungovalo. Dneska (když už bylo venku tak jak bylo) jsem tomu věnoval opět nějaký čas a tentokrát jsem uspěl na první pokus :-).
Než jsem s čímkoliv začal, zazálohoval jsem si všechno z telefonu.
Gammu
to zvládne v pohodě a čemu jinému bych měl věřit než nástroji, který jsem si sám napsal?
gammu backup /tmp/phonebook.vcf
gammu backup /tmp/calendar.vcs
A teď už je na čase si hrát s
OpenSyncem
. Pro tyto účely se může hodit
setup guide
a
SyncML guide
. Protože jsem dřív míval
problémy s oběmi konci synchronizace - jak telefon tak Evolution končily s nějakou chybou, rozhodl jsem se
na to jít tentokrát pomalu a začít se synchronizací z telefonu do souborů:
msynctool --addgroup file2phone
msynctool --addmember file2phone file-sync
msynctool --addmember file2phone syncml-obex-client
Teď už jenom nastavit ukládání souborů:
msynctool --configure file2phone 1
A nastavit cestu, kam se mají data ukládat:
<?xml version="1.0"?>
<config>
<!-- directory path for file-sync -->
<path>/home/foo/phone-backup/</path>
<!-- should care of subdirectories (TRUE or FALSE) -->
<recursive>FALSE</recursive>
</config>
Tím máme jednoduchou část za sebou a potřebujeme nastavit připojení k telefonu:
msynctool --configure file2phone 2
Naštěstí můžeme použít příklad z
SyncML guide
, jen stačí přidat Bluetooth adresu (dá se zjistit pomocí
hcitool scan
) a kanál (
sdptool browse
00:b0:0b:fa:ce:00
):
<?xml version="1.0"?>
<config>
<bluetooth_address>00:b0:0b:fa:ce:00</bluetooth_address>
<bluetooth_channel>7</bluetooth_channel>
<identifier>Sony Ericss</identifier>
<version>1</version>
<wbxml>1</wbxml>
<username></username>
<password></password>
<type>2</type>
<usestringtable>0</usestringtable>
<onlyreplace>0</onlyreplace>
<onlyLocaltime>0</onlyLocaltime>
<recvLimit>0</recvLimit>
<maxObjSize>0</maxObjSize>
<contact_db>Contacts</contact_db>
<calendar_db>Agenda</calendar_db>
<note_db>Notes</note_db>
</config>
A teď už by měla fungovat synchronizace kontaktů z telefonu do vybraného adresáře:
msynctool --sync file2phone
Když už toto funguje, stačí přidat Evolution a mělo by být hotovo. Vytváření synchronizační skupiny je stejné, jen se použije jiný plugin. Synchronizaci s Evolution většinou není potřeba nijak nastavovat, výchozí hodnoty jsou rozumné (použije se jediná databáze, kterou Evolution automaticky vytvořila):
msynctool --addgroup phone2evo
msynctool --addmember phone2evo evo2-sync
msynctool --addmember phone2evo syncml-obex-client
msynctool --configure phone2evo 1
msynctool --configure phone2evo 2
Ale ještě pořád není vyhráno - telefony Sony-Ericsson phones většinou mají rozbité cosi v synchronizaci poznámek (nebo to je možná rozbité v OpenSync, ale vyjde to nastejno, prostě bez tohoto kroku synchronizace neprojde) a je potřeba vypnout jejich synchronizaci. To můžeme udělat změněním filtrů ve vytvořené synchronizační skupině (filtr je v souboru
~/.opensync-0.22/group2/filter.conf
):
<?xml version="1.0"?>
<filter>
<note/>
</filter>
A teď už konečně můžeme zkusit synchronizaci a mělo by to fungovat:
msynctool --sync phone2evo
Pokud chcete o trochu víc klikat, dá se to samé udělat pomocí GUI
multisync0.90
, ale stejně nakonec skončíte u editování XML souborů :-).