Синхронизация контактов в Ubuntu 10.04 (lucid)

Сегодня, наконец-то дошли руки до настройки синхронизации контактов между моим коммуникаторм HTC Cruise и ноутбуком с Ubuntu 10.04. На моем домашнем компьютере установлена Ubuntu 9.10 и я уже писал как настраивал синхронизацию с этой версией операционной системы в статье Настройка синхронизации контактов в Ubuntu. В первом же комментарии к статье один из посетителей заметил, что синхронизация не работает в новой Ubuntu 10.04. Но на тот момент я проверить это не мог.

Пару недель назад, перед отпуском я установил Ubuntu 10.04 на ноутбук и сегодня попробовал настроить синхронизацию контактов коммуникатора, а также организовать доступ к файлам коммуникатора. Ниже описание действий, которые я выполнял. Пишу кратко, без пояснений, более развернуто уже описывал в предыдущих статьях.

ВНИМАНИЕ! Перед тем как проводить синхронизацию коммуникатора с компьютером сохраните все ваши данные на коммуникаторе (в первую очередь контакты) любой программой для создания бэкапов. Например, можно воспользоваться бесплатной утилитой PIM Backup

Итак по порядку.

Сначала добавил репозиторий с пакетами:

1
sudo add-apt-repository ppa:synce/ppa

Обновил информацию о пакетах:

1
sudo apt-get update

Далее установил следующие пакеты:

1
sudo apt-get install synce-hal librra-tools librapi2-tools

Подключил коммуникатор и выполнил команду synce-pls, чтобы проверить есть ли доступ к файлам коммуникатора. Файлы и каталоги отобразились, значит все в порядке.

Чтобы была возможность работать с файловой системой коммуникатора через Nautilus установил следующие дополнительные пакеты:

1
2
3
sudo apt-get install libgnomevfs2-dev
sudo apt-get install libsynce0-dev librapi2-dev
sudo aptitude install synce-gvfs synce-gnomevfs

Перезагрузил систему. Подключил коммуникатор. Открыл Nautilus и набрал в адресной строке (чтобы появилась адресная строка можно нажать комбинацию клавиш ctrl+L) набрал synce:// и увидел два каталога: Documents и Filesystem. Хочу обратить внимание, что Ubuntu нужно время, чтобы обновить конфигурацию оборудования, поэтому иногда нужно подождать минуту-две пока появится доступ к файловой системе через Nautilus.

Отключил коммуникатор.

Теперь синхронизация контактов. Открыл свою же статью Настройка синхронизации контактов в Ubuntu) и выполнил все шаги начиная с четвертого, изменив только имя партнерства и название группы синхронизации.

После выполнения команды msynctool –sync htc (htc - это название группы вместо synce-sync), синхронизация действительно не удалась. Ниже привожу полностью вывод команды:

$ msynctool –sync htc
Synchronizing group “htc”
DEBUG:SynCE:Connect() called
Member 1 of type synce-opensync-plugin just connected
Member 2 of type evo2-sync just connected
All clients connected or error
DEBUG:SynCE:get_changeinfo() called
DEBUG:SynCE:slow sync requested for Contacts
DEBUG:SynCE:slow sync requested for Calendar
DEBUG:SynCE:slow sync requested for Tasks
INFO:SynCE:initiating device synchronization
INFO:SynCE:waiting for engine to complete sync
Received an entry pas-id-4C337BD400000000 with data of size 4 from member 2 (evo2-sync). Changetype ADDED
Member 2 of type evo2-sync just sent all changes
INFO:SynCE:device synchronization complete
INFO:SynCE:initiating prefill
INFO:SynCE:prefill complete
DEBUG:SynCE:requesting remote changes
DEBUG:SynCE:got 1 changesets
DEBUG:SynCE:processing changes for 1 items of item type 1
Traceback (most recent call last):
File “/usr/lib/opensync/python-plugins/synce-opensync-plugin-2x.py”, line 174, in get_changeinfo
change.uid = array.array(’B',guid).tostring()
File “/usr/lib/pymodules/python2.6/opensync.py”, line 192, in set_uid
def set_uid(self, *args): return _opensync.OSyncChange_set_uid(self, *args)
TypeError: in method ‘OSyncChange_set_uid’, argument 1 of type ‘OSyncChange *’
Member 1 of type synce-opensync-plugin had an error while getting changes: Error during get_changeinfo() method
DEBUG:SynCE:disconnect() called
Member 1 of type synce-opensync-plugin just disconnected
Member 2 of type evo2-sync just disconnected
All clients have disconnected
The sync failed: Unable to read from one of the members
DEBUG:SynCE:finalize() called
Error while synchronizing: Unable to read from one of the members

Походив по заграничным форумам, нашел ссылку на описание такой же проблемы с вариантом решения. Если ссылка для вас недоступна, то там предлагается скачать файл opensync.py и скопировать его в каталог /usr/lib/pymodules/python2.6/ заменив существующий файл.

Я так и сделал предварительно сохранив оригинал:

1
2
3
sudo mkdir /usr/lib/pymodules/python2.6/backup
sudo cp /usr/lib/pymodules/python2.6/opensync.py /usr/lib/pymodules/python2.6/backup/
sudo cp ./opensync.py /usr/lib/pymodules/python2.6/

После замены файла, снова подключил коммуникатор, выполнил команду msynctool –sync htc и синхронизация прошла успешно!

Таким образом синхронизация контактов работает и в Ubuntu 10.04. По крайней мере у меня. Если кто проверит этот способ у себя и синхронизация заработает - отпишитесь пожалуйста.

Статьи и новости схожей тематики:

Комментариев: 17

  1. Anton:

    Данный метод у меня не работает.
    При попытке выполнить команду synce-pls выводить следующий текст
    ** Message: Hal reports no devices connected
    ** Message: Odccm is not running, ignoring
    synce-pls: Could not find configuration at path ‘(Default)’
    Может есть решение проблемы?

    Ответить

    Igorka Reply:

    Я думаю, что есть. Раз у меня работает, значит это в принципе реализуемо. Какая версия Windows Mobile у вас? И что пишет команда dmesg после того как подключаете коммуникатор (последние 5-10 строчек)?

    Ответить

  2. Евгений:

    Формально у меня синхронизация успешно проходит, только вот в Еволюшен не появляются контакты :(
    подозреваю что дело в вот в этом но как лечить не понятно

    Synchronizing group “x800″
    The previous synchronization was unclean. Slow-syncing
    DEBUG:SynCE:Connect() called
    Member 2 of type evo2-sync just connected
    Member 1 of type synce-opensync-plugin just connected
    All clients connected or error
    DEBUG:SynCE:get_changeinfo() called
    DEBUG:SynCE:slow sync requested for Contacts
    DEBUG:SynCE:slow sync requested for Calendar
    DEBUG:SynCE:slow sync requested for Tasks
    INFO:SynCE:initiating device synchronization
    Member 2 of type evo2-sync just sent all changes
    INFO:SynCE:waiting for engine to complete sync
    INFO:SynCE:device synchronization complete
    INFO:SynCE:initiating prefill
    INFO:SynCE:prefill complete
    DEBUG:SynCE:requesting remote changes
    DEBUG:SynCE:got 4 changesets
    DEBUG:SynCE:no changes for item type 0
    DEBUG:SynCE:no changes for item type 1
    DEBUG:SynCE:no changes for item type 2
    DEBUG:SynCE:no changes for item type 7
    DEBUG:SynCE:reporting success
    Member 1 of type synce-opensync-plugin just sent all changes
    All clients sent changes or error
    Member 1 of type synce-opensync-plugin committed all changes.
    Member 2 of type evo2-sync committed all changes.
    All clients have written
    DEBUG:SynCE:sync_done() called
    INFO:SynCE:initiating device synchronization
    Member 2 of type evo2-sync just disconnected
    INFO:SynCE:waiting for engine to complete sync
    INFO:SynCE:device synchronization complete
    DEBUG:SynCE:disconnect() called
    Member 1 of type synce-opensync-plugin just disconnected
    All clients have disconnected
    The sync was successful
    DEBUG:SynCE:finalize() called

    Ответить

  3. Евгений:

    Фразу
    “подозреваю что дело в вот в этом но как лечить не понятно”
    Читать как
    “подозреваю что дело в вот в этом ‘no changes for item type X’ но как лечить не понятно”

    Ответить

    Igorka Reply:

    Евгений, настраивая синхронизацию на одном из компьютеров (не помню домашний или рабочий) у меня была такая же проблема. Или похожая. Для меня ключевая фраза здесь - The previous synchronization was unclean. Slow-syncing. Эта надпись появлялась при каждой попытке синхронизироваться. Правда это было на Ubuntu 9.10. Мне помогло следующее. Удаление партнерства с помощью команды - synce-delete-partnership. Затем удаление созданной группы синхронизации (команда msynctool –delgroup). Затем повторение действий по установке партнерства и добавления группы синхронизации и т.д. Возможно еще, что-то делал, но уже не помню :( После этого синхронизация прошла успешно.
    Сделайте бэкап информации на коммуникаторе и поэкспериментируйте. Возможно найдете свое решение проблемы.

    Ответить

  4. Евгений:

    Поздно, бекап не сделал и остался без адресной книги, теперь броться не за что
    Ибо все мероприятие было затеяно из за того что телефон утопил, он заработал, но экран убит
    Хотел адресную книгу перекинуть. Все теперь буду брать Android, у него уже есть синхронизация с gmail

    Спасибо за участие, ваша статья очень полезна.

    Ответить

    Igorka Reply:

    То есть контакты на коммуникаторе удалились при синхронизации?

    Ответить

  5. Евгений:

    Да кстати, эту надпись The previous synchronization was unclean. Slow-syncing
    Я вызывал искуственно, надеясь что в медленном режиме все же синхронизация пройдет.

    Ответить

    Igorka Reply:

    В любом случае ситуация была похожа. Возможно The previous synchronization was unclean и Slow-syncing это у меня была причина и следствие. То есть из-за некорректной предыдущей синхронизации, автоматически запускалась синхронизация с ключом –slow-sync

    Ответить

  6. Raziel:

    Отличная статья, все работает так, как и описано.

    Правда возникла такая же проблема, как и у Anton’a:
    при вводе команды synce-pls вываливат ошибку:

    ** Message: Hal reports no devices connected
    ** Message: Odccm is not running, ignoring
    synce-pls: Could not find configuration at path ‘(Default)’

    Вылечил так:

    На коммуникаторе идем в Настройка -> Подключения -> USB to PC
    Проверяем чтобы был выставлен режим последовательной синхронизации.
    Далее идем Настройка -> Система -> Электропитание и в разделе Дополнительно выключаем автоматическое отключение питания.
    Подключаем коммуникатор, и ждем минут 5-7. (В таскбаре на коммуникаторе должен отобразиться значек синхронизации (две стрелки, направленные в разные стороны))
    После этого synce-pls должен отработать корректно. Если не отработал, то отключить коммуникатор, подключить опять и подождать минуту.
    Лично мне помогло.

    Еще раз спасибо.

    Ответить

    Igorka Reply:

    И вам спасибо за то, что нашли время отписаться и за совет. Надеюсь у других тоже получится.

    Ответить

  7. oxford:

    Огромное спасибо за полезную статью!
    Сихронизация действительно работает, делал всё как тут описано.

    Ответить

  8. cap511:

    Спасибо!
    Все отлично работает.

    Ответить

  9. bas:

    Была у меня такая ошибка:

    ** Message: Device /org/freedesktop/Hal/devices/usb_device_45e_437_noserial_if0_serial_usb_0 not fully set in Hal, skipping
    ** Message: Odccm is not running, ignoring
    synce-pls: Could not find configuration at path ‘(Default)’

    Отключил фаервол на время:

    sudo ufw disable:

    и она пропала, включить его потом можно так:

    sudo ufw enable

    Нужно правильно настроить фаервол но я пока этим не занимался.

    Далее у меня BenQ p50 с WM 2003 SE способ приведенный здесь мне не подошел с места
    synce-create-partnership “adm-ubuntu” “Contacts,Calendar,Tasks”

    Долго гуглил и на каком то франц узком форуме было сказано что это работает с WM 5 и выше.
    Обратился к официальной документации на http://www.synce.org нашел это http://www.synce.org/moin/SynceSetup/WindowsMobile2003 там все понятно.

    до установил «opensync-plugin-synce-rra»:

    sudo apt-get install opensync-plugin-synce-rra

    Создал партнерство:

    synce-matchmaker create

    Партнерство создается с именем «hostname» посмотреть командой «hostname» мой hostname bas-laptop

    ВНИМАНИЕ если смотреть партнерство командой «synce-list-partnerships» или выполнить команду «synce-create-partnership» партнерство для WM 2003 удалится.
    Можно это все сделать через synce-trayicon меню «synce-trayicon»:
    Pocket-PC->View device staus, вкладка «Partners», выбрать одно из двух и нажать кнопку «Create». Если оба заняты один удалить кнопка «Remove» и создать партнерство. Имя партнерства можно посмотреть в поле «Partner name» у меня bas-laptop. Для просмотра внесенных изменений жмем кнопку «Обновить».
    Далее:

    msynctool –groupadd bas-laptop

    msynctool –addmember bas-laptop evo2-sync
    msynctool –addmember bas-laptop synce-plugin

    Все можно выполнять синхронизацию:

    msynctool –sync bas-laptop

    Вместо bas-laptop ваш «Partner name».

    Проблемы: не синхронизируются поля с русским текстом в описании и подобном.
    Да и после синхронизации если удалить какой то контакт не важно где, он останется на второй копии в КПК или на ПК.

    А так в целом все пашет.

    Ответить

  10. PiG:

    Добрый всем день, кто нить может подсказать где взять этот пакет

    root@PC:/home/pig# sudo apt-get install multisync-tools
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    E: Не удалось найти пакет multisync-tools

    Ответить

    Igorka Reply:

    Добрый день
    Например, здесь https://launchpad.net/ubuntu/lucid/+package/multisync-tools

    Ответить

  11. avers:

    Настроил синхронизацию файлов, всё супер-пупер! Спасибо за статью.

    Ответить

Оставьте свой отзыв