Komunikacja GNU Linux z Nokia E50

30.09.2009

Nokia E50 jest smartphonem z systemem operacyjnym Symbian w wersji Series 60 edycja 3. W związku z tym oprogramowanie gnokii niestety nie obsługuje za dobrze tego telefonu (gnokii obsługuje wersje wcześniejsze niż 3). Mamy jednak możliwość skorzystania z innych programów.

Komunikacja BlueTooth

Do komunikacji wykorzystałem bluetooth, bo to rozwiązanie uważam za najwygodniejsze, choć oczywiście można też skorzystać z kabla USB czy z portu podczerwieni. Zacznijmy od sprawdzenia, czy bluetooth jest poprawnie wykrywany w naszym komputerze:

hcitool dev

W odpowiedzi powinniśmy uzyskać listę urządzeń bluetooth zainstalowanych w naszym komputerze. Jeśli na liście nie ma żadnych urządzeń, musimy najpierw zadbać o zainstalowanie sterowników. Najpierw sprawdzamy jak nazywa się nasze urządzenie (np. lspci|grep -i bluetooth lub lsusb|grep -i bluetooth) i używamy np. Google do znalezienia odpowiedniego sterownika. W moim przypadku (BCM2046) konieczna była rekompilacja jądra (2.6.30) z włączoną opcją CONFIG_BT_HCIBTUSB=m.

Następny krok to sprawdzenie adresu MAC naszego telefonu. Możemy do tego użyć komendy:

hcitool scan

Z kolei komendą sdptool browse adres_MAC_naszego_telefonu możemy sprawdzić dostępne na nim usługi.

Synchronizacja danych

Jednym z problemów, który pojawił się przy próbach synchronizacji było rozłączenie się zaraz po podaniu kodu otwarcia (ang. passcode) w telefonie. W programach z których korzystałem, nie udało mi się znaleźć opcji do przesłania tego kodu do telefonu. Jako obejście tej kwestii zastosowałem dodanie w telefonie nazwy mojego komputera do listy autoryzowanych urządzeń. Dzięki temu przy próbie połączenia nie ma już pytania o hasło.

Przesyłanie plików

Do przesyłania plików użyłem prostego, acz skutecznego programu obexfs. Uruchamiamy go np. tak:

obexfs -b adres_MAC_naszego_telefonu /mnt/obexfs

I od tej chwili mamy swobodny dostęp w trybie odczyt/zapis do plików w naszym telefonie. Możemy kopiować zdjęcia, filmy, muzykę itp.

Synchronizacja kontaktów

Do synchronizacji użyłem programu multisync. Dane mogą być wymieniane np. z Evolution czy choćby z plikami tekstowymi. Można to robić w trybie graficznym (multisync) lub tekstowym (msynctool). Poniżej przykładowa sekwencja dla trybu tekstowego i wymiany do/z plikami tekstowymi:

msynctool --addgroup nokia
msynctool --addmember nokia file-sync
msynctool --addmember nokia syncml-obex-client
msynctool --configure nokia 2

Teraz wpisujemy w XML'u odpowiednie dane konfiguracyjne, czyli:

<config>
<bluetooth_address>adres_MAC_naszego_telefonu</bluetooth_address>
<bluetooth_channel>10</bluetooth_channel>
<identifier>PC Suite</identifier>
<version>1</version>
<wbxml>1</wbxml>
<username></username>
<password></password>
<type>2</type>
<usestringtable>1</usestringtable>
<onlyreplace>0</onlyreplace>
<!-- This needs to be set to 10 000, otherwise you'll be sending more data than your phone can handle. -->
<recvLimit>10000</recvLimit>
<maxObjSize>0</maxObjSize>
<contact_db>Contacts</contact_db>
<calendar_db>Calendar</calendar_db>
<note_db>Notes</note_db>
</config>

Następnie konfigurujemy dane dla katalogu docelowego na komputerze:

msynctool --configure nokia 1

<config>
<path>/home/nazwa_uzytkownika/nokia-sync</path>
<recursive>FALSE</recursive>
</config>

I możemy przystąpić do akcji:

msynctool --sync nokia