HOWTO sync Nokia E70 with you computer under Linux

HOWTO Nokia E70 and Linux

Antoine Ginies (guibo_at_guibo.com)

2007

Revision History
Revision 0.2January 2007ag
first release

Chapitre 1. Synchronize data with your Nokia E70 phone with your computer under GNU/Linux via bluetooth

1.1. HOWTO synchronize calendar, notes and contacts

Figure 1.1. Nokia E70 Phone

Nokia E70 Phone

1.1.1. First install all needed software

download and install libsyncml-0.4.2, libopensync-plugin-file-0.20, libopensync-plugin-syncml-0.20, libopensync-plugin-kdepim-0.20 You need SVN snapshot, that contains the need patch to get it working with Nokia E70. You need bluez-utils package too.

Mandriva cooker opensync snapshot: libsyncml-0.4.2-2mdv2007.1.i586.rpm, libsyncml0-0.4.2-2mdv2007.1.i586.rpm

or the SRPM with a working SVN version, and rebuild it: libsyncml0-0.4.2-2mdv2007.1.i586.rpm

or get it from here: opensync.org

Now you have all needed tools to synchronize your computer with your Nokia E70 phone.

1.1.2. Step step configuration

This is a quick overview, to get more information, take a look at the Opensync documentation

add a group to sync your nokia to file:

[guibo@node20 ~]$ msynctool --addgroup sync_nokia2file

list all plugins available to sync your phone:

[guibo@node20 ~]$ msynctool --listplugins
Available plugins:
file-sync
kdepim-sync
syncml-obex-client

Now add two member to the group sync_nokia2file:

[guibo@node20 ~]$ msynctool --addmember sync_nokia2file file-sync
[guibo@node20 ~]$ msynctool --addmember sync_nokia2file syncml-obex-client

now create a directory to store your files:

[guibo@node20 ~]$ mkdir ~/files_from_nokia

On your phone: Connections -> Synchron. -> PC Suite, Options -> Change Sync.-Profile Set SyncML to 1.1, bluetooth, no user, no password, yes, yes. Now the Applications configuration:

  • Contacts -> yes, Contacts, Normal

  • Calendar -> Yes, Calendar, Normal

  • Notes -> Yes, Notes, Normal

Figure 1.2. Sync menu

Sync menu

Figure 1.3. Applications

Applications

Figure 1.4. Contacts settings

Contacts settings

Figure 1.5. Connections

Connections

Figure 1.6. Connections 2

Connections 2

detect your phone:

[guibo@node20 ~]$ hcitool scan
Scanning ...
        00:12:D1:DB:D6:9F       Guibo e70

now get all services available on this phone:

Some interesting Nokia code to retrieve information about MAC address:

  • *#2820#: get the Bluetooth MAC adress

  • *#62209526#: get the WLAN Mac address

[guibo@node20 ~]$ sdptool browse 00:12:D1:DB:D6:9F
.......
Service Name: SyncMLClient
Service RecHandle: 0x1000e
Service Class ID List:
  UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 10
  "OBEX" (0x0008)
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "" (0x00000002-0000-1000-8000-0002ee000002)
    Version: 0x0100

this one describe the service name "SyncMLClient", so the good one. It's channel 10. Now we have to configure all member of the group sync_nokia2file. First is the configuration file that describe the path to future files. This should open the vi text editor, where you can enter the configuration data for the member.

[guibo@node20 ~]$ msynctool --configure sync_nokia2file 1
<config><path>/home/guibo/files_from_nokia/</path><recursive>FALSE</recursive></config>

[guibo@node20 ~]$ msynctool --configure sync_nokia2file 2
<?xml version="1.0"?>
<config>
  <bluetooth_address>00:12:D1:DB:D6:9F</bluetooth_address>
  <bluetooth_channel>10</bluetooth_channel>
  <interface>0</interface>
  <identifier></identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>10000</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

this configuration file is case sensitive ! so be carreful ! to get a resume of your configuration just do a:

[guibo@node20 ~]$ msynctool --showgroup sync_nokia2file
Groupname: sync_nokia2file
Member 1: file-sync
        Configuration : <config><path>/home/guibo/files_from_nokia/</path><recursive>FALSE</recursive></config>

Member 2: syncml-obex-client
        Configuration : <?xml version="1.0"?>
<config>
  <bluetooth_address>00:12:D1:DB:D6:9F</bluetooth_address>
  <bluetooth_channel>10</bluetooth_channel>
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>10000</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

now all is configured: just sync your date from your phone to your computer:

[guibo@node20 ~]$ msynctool --sync sync_nokia2file
Synchronizing group "sync_nokia2file"
Member 1 of type file-sync just connected
received event dsession
received contact dsession
received note dsession
Member 2 of type syncml-obex-client just connected
All clients connected or error
Member 1 of type file-sync just sent all changes
Received an reply to our Alert
Received an reply to our Alert
Received an reply to our Alert
Going to receive 85 changes
Going to receive 9 changes
Received an entry 1 with data of size 4 from member 2 (syncml-obex-client). Changetype ADDED
Received an entry 4 with data of size 4 from member 2 (syncml-obex-client). Changetype ADDED
.........
Going to receive 1 changes
Received an entry 42 with data of size 4 from member 2 (syncml-obex-client). Changetype ADDED
Received an entry 43 with data of size 4 from member 2 (syncml-obex-client). Changetype ADDED
Member 2 of type syncml-obex-client just sent all changes
All clients sent changes or error
All conflicts have been reported
Sent an entry 4 of size 24 to member 1 (file-sync). Changetype ADDED
Sent an entry 14 of size 24 to member 1 (file-sync). Changetype ADDED
........
Received an reply to our sync
Received an reply to our sync
Received an reply to our sync
Sent an entry 17 of size 24 to member 1 (file-sync). Changetype ADDED
Sent an entry 18 of size 24 to member 1 (file-sync). Changetype ADDED
........
Member 2 of type syncml-obex-client committed all changes.
Sent an entry 22 of size 24 to member 1 (file-sync). Changetype ADDED
Sent an entry 23 of size 24 to member 1 (file-sync). Changetype ADDED
.........
Member 1 of type file-sync committed all changes.
All clients have written
Member 2 of type syncml-obex-client just disconnected
Member 1 of type file-sync just disconnected
All clients have disconnected
The sync was successful
[guibo@node20 ~]$

You can check the sync works, go into the ~/files_from_nokia directory, all files should be present, to check the file 88, just do a:

[guibo@node20 files_from_nokia]$ cat 88
BEGIN:VCARD
VERSION:2.1
N: establet;Optique;;;
TEL;VOICE:0561511111
FN:Optique  establet
END:VCARD

to be able to sync with kontact (kde) just create a new group:

msynctool --addgroup sync2kontact
msynctool --addmember sync2kontact syncml-obex-client
msynctool --addmember sync2kontact kdepim-sync
msynctool --configure kontact 1

use the same configuration for "syncml-obex-client". kdepim-sync does not need to be confiugured.

msynctool --sync kontact

Launch contact and it works ! Waouh !

I have try to use the plugin libopensync-plugin-evolution2-0.20 but without success, perhaps it's a misconfiguration, or evolution (version 2.9.4) has changed the format to store Contacts, notes and calendar. I don't know.

1.2. Send and receive file to your Nokia E70 phone

1.2.1. Needed software

Morever you need a kernel that support bluetooth devices. The list of available bluetooth modules available under Mandriva Linux kernel:

[root@node20 2.6.17-9mdv]# find | grep blue
./kernel/drivers/bluetooth
./kernel/drivers/bluetooth/bluecard_cs.ko.gz
./kernel/drivers/bluetooth/bcm203x.ko.gz
./kernel/drivers/bluetooth/bfusb.ko.gz
./kernel/drivers/bluetooth/bpa10x.ko.gz
./kernel/drivers/bluetooth/bt3c_cs.ko.gz
./kernel/drivers/bluetooth/btuart_cs.ko.gz
./kernel/drivers/bluetooth/dtl1_cs.ko.gz
./kernel/drivers/bluetooth/hci_uart.ko.gz
./kernel/drivers/bluetooth/hci_usb.ko.gz
./kernel/drivers/bluetooth/hci_vhci.ko.gz
./kernel/net/bluetooth
./kernel/net/bluetooth/bnep
./kernel/net/bluetooth/bnep/bnep.ko.gz
./kernel/net/bluetooth/cmtp
./kernel/net/bluetooth/cmtp/cmtp.ko.gz
./kernel/net/bluetooth/bluetooth.ko.gz
./kernel/net/bluetooth/hidp
./kernel/net/bluetooth/hidp/hidp.ko.gz
./kernel/net/bluetooth/rfcomm
./kernel/net/bluetooth/rfcomm/rfcomm.ko.gz
./kernel/net/bluetooth/l2cap.ko.gz
./kernel/net/bluetooth/sco.ko.gz

1.2.2. Bluez configuration files

/etc/bluetooth/hcid.conf:

options {
        autoinit yes;
        security auto;
        pairing multi;
        pin_helper /etc/bluetooth/pin-helper;
        passkey "0000";
}

device {
        name "Blue (%h)";
        class 0x3e0100;
        iscan enable; pscan enable;
        lm accept;
        lp rswitch,hold,sniff,park;
}

/etc/bluetooth/pin

0000

/etc/bluetooth/pin-helper must be executable (chmod 755 pin-helper)

#!/bin/sh
echo -n "0000"

Start or restart your hcid daemon.

1.2.3. kdebluetooth

Figure 1.7. Konqueror and kdebluetooth

Konqueror and kdebluetooth

Figure 1.8. Bluetooth object push

Bluetooth object push

1.2.4. Nautilus

Figure 1.9. Nautilus and sendto bluetooth

Nautilus and sendto bluetooth

Valid XHTML 1.0! Valid CSS!