Skip to content

Nokia 6680 synchronization with Evolution over USB (Debian Linux)

I managed to get synchronization over USB between my Nokia 6680 mobile phone and Evolution on Debian Linux (Lenny) working. It took me quite some time to get all the necessary information, but the following set-up and configuration was actually quite easy.

I found the following pages very useful:

  • udev related stuff in order to get communication running even for non-root user – link
  • Nokia-Evolution Ubuntu site – link
  • msynctool-related info, filtering – link

The discussion in this post is based on the information I found in these links. Large parts of the document are taken from the pages above. I just want to have a copy here in case the original pages are not available any longer… and of course it’s easier for me to have all information on my web…

USB and udev

If you want to synchronize the phone using the USB cable, it is necessary to fix the permissions of the respective device. The first link shown above contains all the necessary information. Just brief:

  • connect the phone, use dmesg to see if it was somehow recognized. I am getting something like
    usb 1-4: new full speed USB device using ohci_hcd and address 4
    usb 1-4: configuration #1 chosen from 1 choice
    usb 1-4: New USB device found, idVendor=0421, idProduct=041e
    usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    usb 1-4: Product: Nokia 6680
    usb 1-4: Manufacturer: Nokia
    
  • lsusb provides the list of all connected USB devices, for example
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 004: ID 0421:041e Nokia Mobile Phones 6680
    Bus 001 Device 003: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
    Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    

    This output indicates that the phone is the device 004 located on bus 1

  • udevinfo -e will give you a long list of devices. Look for (in this case) usbdev1.4
    P: /devices/pci0000:00/0000:00:02.0/usb1
    N: bus/usb/001/001
    
    P: /devices/pci0000:00/0000:00:02.0/usb1/1-2
    N: bus/usb/001/003
    
    P: /devices/pci0000:00/0000:00:02.0/usb1/1-4
    N: bus/usb/001/004
    
    P: /devices/pci0000:00/0000:00:02.1/usb2
    N: bus/usb/002/001
    
    P: /devices/pci0000:00/0000:00:02.2/usb3
    N: bus/usb/003/001
    
  • use the respective “P”-line in order to get the device info from udevinfo -a -p /devices/pci0000:00/0000:00:02.0/usb1/1-4. You will get something like
      looking at device '/devices/pci0000:00/0000:00:02.0/usb1/1-4':
        KERNEL=="1-4"
        SUBSYSTEM=="usb"
        DRIVER=="usb"
        ATTR{configuration}=="Bulk transfer method configuration"
        ATTR{bNumInterfaces}=="10"
        ATTR{bConfigurationValue}=="1"
        ATTR{bmAttributes}=="80"
        ATTR{bMaxPower}=="100mA"
        ATTR{urbnum}=="73"
        ATTR{idVendor}=="0421"
        ATTR{idProduct}=="041e"
        ATTR{bcdDevice}=="0000"
        ATTR{bDeviceClass}=="02"
        ATTR{bDeviceSubClass}=="00"
        ATTR{bDeviceProtocol}=="00"
        ATTR{bNumConfigurations}=="1"
        ATTR{bMaxPacketSize0}=="64"
        ATTR{speed}=="12"
        ATTR{busnum}=="1"
        ATTR{devnum}=="4"
        ATTR{version}==" 2.00"
        ATTR{maxchild}=="0"
        ATTR{quirks}=="0x0"
        ATTR{authorized}=="1"
        ATTR{manufacturer}=="Nokia"
        ATTR{product}=="Nokia 6680"
    

    which is everything you need

  • modify the udev rules (I am using /etc/udev/rules.d/local.rules). The file should contain (configuration is based on the udevinfo output)
    BUS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="*", MODE="0660", GROUP="dialout"
    

    Then restart udev via /etc/init.d/udev restart

Installation

  • install necessary software: aptitude install evolution multisync-tools opensync-plugin-evolution opensync-plugin-syncml libsyncml-utils
  • running msynctool --listplugins should give you the following output
    Available options:
      syncml-http-server
      syncml-obex-client
      evo2-sync
    

Configuration

  • to get the synchronization running, several steps are required. Firstly, a group has to be created, defining the way how the synchronization is done. I am using groupname nokia-evo, but you can use whatever you want.
    msynctool --addgroup nokia-evo
    msynctool --addmember nokia-evo evo2-sync
    msynctool --addmember nokia-evo syncml-obex-client
    
  • The communication with the phone (syncml-obex) has to be further configured. Run msynctool --configure nokia-evo 2 and make the following changes to the file:
    identifier: PC Suite
    version: 1
    wbxml: 1
    usestringtable: 1
    type: 5
    recvLimit: 10000
    maxObjSize: 10000 

    The recvLimit and maxObjSize work for me with the value of 0. Since there are problems with the synchronization of notes (probably not supported!), it is necessary to remove the contents of the note_db section. The last setting to change is the value of the interface variable. Run syncml-obex-client -u. You should get something like

    Superuser privileges are required to access complete USB information.
    Found 2 USB OBEX interfaces
    Interface 0:
    	Manufacturer: Nokia
    	Product: Nokia 6680
    	Interface description: SYNCML-SYNC
    Interface 1:
    	Manufacturer: Nokia
    	Product: Nokia 6680
    	Interface description: PC Suite Services
    Use '-u interface_number' to connect
    

    Use the number of the interface called SYNCML-SYNC, i.e., interface would be 0 in this particular case.

  • Test the configuration using msynctool --showgroup nokia-evo
  • Start evolution and perform the sync using msynctool --sync nokia-evo. I encountered problems from time to time, particularly when synchronizing large amount of data. It proved useful to do the synchronization in parts (first contacts, then calendar).
      echo "contact"
      msynctool --sync nokia-evo --filter-objtype note --filter-objtype event --filter-objtype todo
      echo "calendar"
      msynctool --sync nokia-evo --filter-objtype note --filter-objtype contact --filter-objtype todo
      echo "todo"
      msynctool --sync nokia-evo --filter-objtype note --filter-objtype event --filter-objtype contact
    

    It is not clear to me, what the todo object corresponds to, since it seems to do the same thing as calendar (event). Note that notes (I am not sure what is meant by this, probably notes not associated with the calendar…) can’t be synchronized at the moment – it’s not supported and the synchronization usually hangs. The notes associated with a given date in the calendar are synchronized and shown in evolution without any problems.

The synchronization can be pretty tricky and it doesn’t always work 100%. I have from time to time problems with the calendar. The birthdays are not synchronized and shown. The contact list is, on the other side, working without any problems. In case that the synchronization hangs, just press Ctrl-C and restart the sync. The so called slow-sync will be performed, which should remedy the trouble (but it doesn’t always work, unfortunately). There is still a long way to go in the synchronization business in order to work flawlessly…