Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Синхронизация Windows Mobile 5 устройств с линуховой машиной.  (Прочитано 55755 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
    Итак, свершилось. Синхронизация контактов, задач и встреч у меня наконец заработала. Спешу подилиться этой хорошей новостью. Хотя сказать по правде, пишу я это в первую очередь для себя. Во-первых, чтоб систематизировать свои знания по этому вопросу, которые нажиты методом проб, ошибок и чтения мануалов вечерами. Во-вторых, мне передстоит повторить своё достижение на работе, и не очень хочется вновь наступать на грабли.

Что было:
    В качестве большого брата, ноутбук с KUbuntu 7.04, ядро 2.6.20-16. В качестве меньшего - E-Ten X500 c WM5
Чего мы добиваемся:
    Синхронизация контактов, задач и встреч. Базовый функциональный набор пресловутого ActiveSync. Желательно свести весь процесс к нажатию одной кнопки.
   
Что получилось у меня:
    Сразу скажу, что разработчики не врали, когда говорили, что продукт ещё на стадии разработки и возможны глюки. Так и есть, глюки имеют место. Правда к потери информации вроде не приводило, но я ещё особенно не копал. У меня по крайней мере телефон синхронизирован с телефоном жены, а она в свою очередь бекапится на виндовую машину, поэтому в случае глобального креша смогу поднять базу. Если у вас в наладоннике база телефонов всех партнёров по бизнесу, да ещё и в единственном экземпляре, то я вам советую крепко подумать. Заранее предупреждаю - вы рискуете.
    С GUI  у меня почему-то не сложилось. Во-первых он почему-то регулярно вылетает, а во-вторых у него очень ограниченная функциональность. С консоли у меня всё вроде бы работает. Впринципе лицезреть процесс не особо надо, можно при особом желании что нибудь и написать, для упрощения себе жизни. На первое время думаю ограничусь одним скриптом, который будет делать всю грязную работу гамузом.
    Особенность синхронизации в том, что материться при случае конфликта по теме, а не так, как это делает ActiveSync: " У вас случилась херня, примите меры", и кнопка ОК. Этот вываливает в консоль оба обьекта на счёт которых он сомнивается и предлагает пользователю решить, что с ним делать. Варианты: Оставить тот, что новее, оставить оба, Юзать первый, второй, третий (а я так понял, что в одну песочницу можно усадить сразу несколько точек. Т.е. если мне сильно приспичит, я могу синхронизировать телефон с KDE_pim и SunBird одновременно). Огорчило то, что нет кнопки делать "что-то" для всех конфликтов. Это достаёт, потому, что если телефон за время синхронизации уйдёт в слип, то когда дело доходит до применения изменений multysynk падает с ошибкой, а при повторной синхронизации он заявляет, что предыдушая синхронизация была окончена некоректно поэтому синхронизируемся полностью заново. Когда у вас в телефонной книге болеше сотни контактов, отвечать на каждый " 1,Enter " запаривает. Ещё следует сказать, что синхронизирует, как и ожидалось, не всё. Картинки из контактов не переносятся и боюсь список непереносимых полей на этом не заканчивается. Подозреваю, что кастомные рингтоны идут туда-же. Да и всяких дней рождения я не заметил, хотя судя по той информации, которую он выдаёт в случае конфликта, могу сказать, что synce-plugin предоставляет всю информацию. Скорее всего обламывается kdepim-plugin. С кирилическими именами и адресами проблем нет, а вот кирилические Notes прикрепленные к контакту отображаются не корректно. Тут надо проверять, потому как эта хрень у меня и под виндой переодически глючила. На большом брате обнаружены переодические косяки с сетью во время подключения PDA, а именно слетает ресолв доменных имён, хотя роутинг не слетает. Задолбало уже. Смотреть надо. В целом, для начала совсем не плохо.
   
Что нам предстоит сделать в Linux
    Вобщем, всё совершенно не так, как мне казалось вначале. Первое, что мне приходило в голову, при слове синхронизация, это некоторая софтинка, аналого ActiveSync, которая выступает посредником между WM устройством и базой контактов. В windows базой контактов и прочего был Outlook - ненавистная любому "нормальному" человеку гениальное творение мелкомягких, которое я хотел поменять ещё во времена использования Windows. А роль устройства, в винде, по моему разумению должен был выполнять некоторый драйвер WM5 устройства, который поставлялся вместе с ActiveSync.
    Так действительно было до появления WinMobile 5. А в нём всё по другому хотя для виндового пользователя ничего не поменялось. На деле начал использоваться для связи TPC-IP и ActiveSync стал лазить через него. Вобщем в Линухе это выливается в длинную последовательность драйверов, демонов и плагинов, которые вместе приводят нас к заветной цели, но требуют кучу времени для настройки. К слову в Windows ActiveSync приспокойно соединяется и со старыми устройствами и с новыми. Ва деле для этого служат абсолютно разные модули. В линухе всё это приходится настраивать, и причём по разному. Это я к тому, что если у вас на устройстве Windows Mobile 2003, то вам не сюда. Вам нужно искать как настраивать Raki а описано это тут http://www.synce.org/index.php/Installation_Guides#Current_Status_of_Support_2. Этот мануал работает только на WM5 и выше. Нам предстоит настроить сетевой интерфейс к подключенному устройству, поднять демона WM5-устройства. Настроить движок синхронизации от SynCE написанный на питоне, потом установить MultySync и настроить SynCE плаг для него. Вот этот винегрет нам прийдётся заставить работать. Если я вас ещё не напугал то можно начинать.
   
Поехали:
    Итак, Raki нам не помошник. Он работает только со старыми CE2 и CE3 устройствами. Сами разработчики SynCE предлагают успользовать MultiSync написав для этого специальный плагин. Те же разработчики настоятельно рекомендуют синхронизировать устройство с виндовой машиной стандартным образом, т.к. всё может быть и они не дают никакой гарантии, что вам не прийдётся восстанавливать всю свою телефонную базу. Хороший совет. Бекапы это всегда хороший совет, самое время им воспользоваться.
   
    В общем и целом настройка SynCE  делалась по родному мануалу, которые можно найти по ссылке ниже.  Всё что вы тут можете найти так или иначе взято оттуда, поэтому на авторство я не претендую.
   
      http://www.synce.org/index.php/Windows_Mobile_2005_Support
 
   
Ставим базовый набор SynCE

    Забегая вперёд, скажу, что от идеи последовательного доставания из их SVN необходимых модулей мне пришлось отказаться потому, как кое-что разработчики просто забыли и для того, чтоб найти это мне пришлось утянуть весь их trunk и там искать. Учитывая, что понадобится практически всё рекомендую сразу так и сделать. Заходим в каталог, где будут лежать ваши исходники. Практически всё потом можно будет грохнуть за исключением sync-engine, который написан на Питоне и соответственно прямо оттуда и работает.
   
      mkdir SynCE
      cd SynCE
      svn checkout https://synce.svn.sourceforge.net/svnroot/synce/trunk
   

    У меня всё компилировалось нормально и без проволочек. Если у кого-то не компилится, оригинал находится тут: http://www.synce.org/index.php/Building_SynCE_with_Windows_Mobile_2005_support_from_Subversion
    В целом помогает следующий алгоритм. Если на этапе ./configure вылезает нехватка библиотек, лезем уровнем выше в основной каталог SynCE и ищем там то, чего не хватает. Если не находим там, то ищем в основном репозитарии Ubuntu. Делаем именно в такой последовательности, а не наоборот. т.к. в репозитарии это всё тоже скорее всего есть, но не той версии. Подобный алгоритм помог мне скомпилить synce-kde, а в последствии уже узнал, что он на самом деле вообще работает только со старыми девайсами и нафиг не нужен.
   
    Перед началом компиляции убеждаемся, что у нас есть все депенденсы из тех, которые заявляет разработчик.
   
      sudo apt-get install libglib2.0-dev libusb-dev build-essential autoconf automake1.9 libtool libgnet-dev libhal-dev libhal-storage-dev libdbus-glib-1-dev python-sip4-dev python-pyrex python-dev
   

    Дальше. Компилим libsynce
   
      cd libsynce/
      ./bootstrap
      ./configure --enable-desktop-integration
      make
      sudo make install
      cd ..
 
   
    Как я понял ключик --enable-desktop-integration обязательный, даже учитывая то, что мы не будем пользоваться родными средствамии синхронизации.
   
    Компилим librapi2

      cd librapi2/
      ./bootstrap
      ./configure
      make
      sudo make install
      cd ..
     
      echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf
      sudo ldconfig

    Компилим odccm

      cd odccm/
      ./bootstrap
      ./configure
      make
      sudo make install
      sudo cp data/dbus/odccm.conf /etc/dbus-1/system.d/
      cd ..
     
     

    Дальше приступаем к настройки соединения с WM-устройством. Тут выбираем в зависимости от типа. Сначала я пытался подключить через BlueTooth, но, честно говоря, не осилил. Работает это так. Через синий зуб получаем Serial-соединение, на него натравляем ppp и получаем сетевой интерфейс. Это геморойнее чем поставить USB, но в принципе абсолютно реально. Благо мануал имеется тут.
   
      http://www.synce.org/index.php/Connecting_your_Windows_Mobile_2005_device_via_Bluetooth_using_Bluetooth
   
 
    Но там есть дополнительный подводный камень в том, что мало научить линух создавать необходимый интерфейс. Важно, чтоб PDA этим интерфейсом начал пользоваться. Фактически необходимо чтоб он поверил, что сетефой интерфейс создан ActiveSync-ом, а не линуксом. Мой пока не верит. Возможно я был не достаточно обаятелен, но буду стараться. И когда у меня получится, пробел в мануале заполнится, а пока могу посоветовать настроить через USB  или читать самостоятельно предыдущий мануал.
    Для соединения через USB, настраиваем RNDIS драйвер. Метод зависит от версии ядра. Если у вас Ubuntu 7.04 или более старые, то надо идти по пути самостоятельной компиляции драйвера. В 7.10 ядро версии 2.6.22 и в него уже встроен необходимый нам драйвер. Всё бы ничего, да работает он не так как надо. На работе уже проапдейтился до Гатси, и там подключение PDA к компу приводит к появлению вожделенного интерфейса, но сам PDA начинает дико тормозить. Вытаскивание шнурка USB мгновенно оживляет зверька. Так что дело именно в нём.
   
    Для ядер 2.6.22 (такое как в Гатси Гиббон) разработчики предлагают следующее лекарство:

      patch -p1 < /path/to/SynCE/patches/linux-2.6.22-rndis_host-wm5.patch

    Потом необходимо установить следующие опции в конфигурации ядра:

      CONFIG_USB_USBNET=y
      CONFIG_USB_NET_CDCETHER=y
      CONFIG_USB_NET_RNDIS_HOST=y

    Затем компилировать это дело как модуль, обычным образом и т.д. Я это буду в последствии делать, поэтому детали этого процесса появятся позже. А сейчас просто ограничусь прозвучавшим пересказом мануала.

    Для ядер 2.6.20 (Такое как в Фести Фавн) и ниже поступать надо по другому. Штатного модуля в ядре нет, однако разработчики нам его любезно предоставили. Они у вас уже благополучно лежат в папке SynCE
   
      cd usb-rndis-lite/
      make
      sudo ./clean.sh
      sudo make install
         

    Вот собственно и всё. На этом этапе можно проверить, что у нас получилось, чтоб быть уверенным, что мы на верном пути. Подключаем девайс к USB и смотрим, что появляется в логах
   
      dmesg | grep "rndis[0-9]: register" | grep "rndis_host" | tail -1

    Хорошим знаком можно считать, если вы увидите нечно вроде этого

      rndis0: register 'rndis_host' at usb-0000:00:10.1-2.1, RNDIS device, 80:00:60:0f:e8:00
 
   
    Если этого нет, дальше идти пока рано. Следует обратиться в мануалу по следующей ссылке. Там этот вопрос описан шире.
   
      http://www.synce.org/index.php/Connecting_your_Windows_Mobile_2005_device_via_USB_%28usb-rndis-lite%29
 
     
Двигаемся дальше.
    Теперь нам нужен демон WM устройства. Он у нас уже есть и называется он odccm. Его надо пускать от рута. В принципе сейчас самое время вписать его в /etc/rc.local
   
      /usr/local/sbin/odccm
   

    Для тестов же можно пока выделить консольку и запустить его там не в режиме демона.
   
      sudo odccm -f

   После запуска он должен найти rndis интерфейс и зацепиться за него. Вы должны увидить, что-то вроде этого:
       
       ** (process:13124): DEBUG: running mainloop
       ** (process:13124): DEBUG: PDA network interface discovered! udi='/org/freedesktop/Hal/devices/net_80_00_60_0f_e8_00', device='rndis0'
       ** (process:13124): DEBUG: device_info_received: registering object path '/org/synce/odccm/Device/_7A37B965_2F39_EAE1_17C6_9D5F3FD484DC_'
 
     
    У меня этого не произошло сразу. Помогло отключение зверька и подключение его заново. Демон позволяет нам выполнять некоторые команды для доступа к ресурсам подключенного PDA. Команды доступа уже установлены вами вместе с базовым набором SynCE их можно просто вводить с консоли. Сейчас самое время попробовать.
     
      pls
 
   
    Вы должны увидеть содержимое корневого каталога WM5-устройства. Что-то вроде этого
       
       Directory               2006-03-01 11:00:16  My Pictures/
       Directory               2006-03-01 11:00:20  My Music/
       Directory               2006-03-01 11:00:20  My Videos/
       Directory               2006-06-20 23:41:24  Notes/
 
   
    Если вы это увидели - принимайте поздравления. Вы успешно прошли очередной milestone по подключению.
« Последнее редактирование: 31 Октябрь 2007, 18:25:59 от Elf »

Оффлайн danilevsky

  • Новичок
  • *
  • Сообщений: 34
  • N/A
    • Просмотр профиля
определенно, очень интересно!
огромное спасибо за такой материал.
появится время буду пробовать.

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
 Дальнейшая настройка будет происходить несколько в другой плоскости. Sync-Engune, а именно его нам предстоит поставить, написан на питоне поэтому было бы не плохо, если бы вы в нём хотя бы немного разбирались. Разработчики явно по сей день сидят на питоне2.4 в то время, когда в Ubuntu всё повязано на python2.5 Хорошие новости в том, что нам это не помешает. Вопреки опасениям под 2.5 тоже всё работает. Поэтому смело тянем модули для него. Со старта надо доставить из репозитариев:


      python-dbus
      python-notify
      python-gobject
      python-pyrex
      python-xml
      libxml2-dev
      libexpat1-dev
      python-dev
      swig
      libsqlite3-dev

    Номера версий из названия модулей я специально убрал, доставляйте последнее, из того, что вы найдёте и соответственно под тот питон, который используете именно вы. А вот дальше начинаются танцы с бубном. Кое что разработчики упомянуть забыли, но обо всём по порядку.
   
    Сначала создаём переменную PYTHONPATH. Имейте в виду, если питон 2.5, то и писать надо будет соответственно.
    
      export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.4/site-packages
   
    Дальше. По очереди ставим библиотеки из базы SynCE. Сначала pyrapi2

      cd pyrapi2/
      ./bootstrap
      ./configure
      make
      sudo make install

   Для тех, кто получит сообщение: No package 'librapi2' found, нужно сделать ещё и вот это. Мне не понадобилось, Возможно это нужно в других дистрибутивах.

      echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf
      sudo ldconfig
     

    Следующий на очереди wbxml2. Он есть в репозитариях, но ставить его оттуда не стоит, т.к. его надо пропатчить. Разработчики предлогают его утянуть в исходниках. Прямо в директории SynCE выполняем следующий кусок.
   
      wget http://prdownloads.sourceforge.net/wbxmllib/wbxml2-0.9.2.tar.gz
      tar zxf wbxml2-0.9.2.tar.gz
      cd wbxml2-0.9.2
      bzcat ../patches/wbxml2-0.9.2-anonymous-support-and-misc-fixes.patch.bz2 | patch -p1
      cat ../patches/wbxml2-0.9.2-namespaces.patch | patch -p1
      chmod +x bootstrap
      ./bootstrap
      ./configure
      make
      sudo make install
      cd ..

    По идее никаких проволочек на этом этапе быть не должно. У меня всё нормально поставилось.
    Далее, pywbxml. С ним тоже всё достаточно банально
   
      cd pywbxml/
      ./bootstrap
      ./configure
      make
      sudo make install
      cd ..

    На этом список доустановок от разработчика заканчивается. Но на самом деле это оказалось неверно. У меня всё заработало только после того, как я доставил в общей сложности 4 пакета не считая стандартных:
       
        pyrapi2
        pyrra
        pyrtfcomp
        pywbxml

    Первый и последний должны были поставиться сами в ходе наших предыдущих действий. pyrra я доставлял сам ещё когда мучался с настройкой sync-kde и sync-gnome Тогда я ещё не знал, что они мне не помогут. Уж не знаю, работает без него sync-engine или нет. После повторной установи этого добра на работе я смогу ответить точно. А вот pyrtfcomp нужен точно. И с ним связано было у меня куча мистики, хотя ставится он обычным образом.
   
      cd librtfcomp/
      ./bootstrap
      ./configure
      make
      sudo make install
      cd ..
 
 
    Всё ставится легко и без проволочек, но только не работает. Пробуем. Запускать sync-engine надо при подключеном WM5 устройстве и работающем правильно odccm. Разработчики ещё сами ковыряют этот продукт, поэтому дополнительными проверками и вразумительными советами он себя не обременяет. Есле не получится добраться к odccm он не будет его ждать, а просто свалится с ощибкой.
    
      cd /sync-engine
      ./sync-engine.py
   

    Разумеется проверьте предварительно, а есть ли флажок executable у этого файла. При правильной работе мы должны увидеть длиннющий лог произведенных операций, который через некоторое время замирает и его надо оставить в таком виде. У меня сначала этого не происходило. Материлось сначала не нехватку модулей, а потом, когда я все модули доставил, на то, что не может прочитать файл librtfcomp.so.0 Расследование показало, что файл такой есть. Он добросовестно был установлен во время установки соответствующего пакета. Лежит он в /usr/local/lib но имеет имя librtfcomp.so.0.0.0 а также имеет две символические ссылки на себя с именами librtfcomp.so и librtfcomp.so.0 По идее на вторую ссылку должно было цепляться, но не цеплялось. В общем я переименовал librtfcomp.so.0.0.0 в librtfcomp.so.0 старые ссылки удалил и сделал 2 новые, librtfcomp.so и librtfcomp.so.0.0.0 которые ссылаются на переименованый файл. Делу это не помогло. Потом я тупо скопировал этот файл в каталог sync-engine. Не помагало. Потом я через 2 дня решил показать этот глюк своим Python-гуру на работе. И что вы думаете? Всё просто заработало. Мистика. Вобщем я так и не понял, что именно помогло. Вполне возможно, что у вас всё просто заработает без лишних танцев с бубном.
   
    Начинаем читать дальше, после того, как sync-engine таки начнёт запускаться. Проверяем его следующим образом:
       
        cd sync-engine/tools/
        ./list_partnerships.py

    Если вы последовали совету и забекапили все данные с PDA то у в его ActiveSync-e должно быть уже создано как минимум одно партнёрство PDA-PC, поэтому вы должны увидеть нечто вроде.
     
      ID: 0x3bfa63e8
      Name: 'Sony'
      Host: 'SONY'
      Items: [ Calendar Tasks Notes Contacts ]
      1 partnership
   

    Если вы бекапились другим образом или успели удалить информацию о партнёрстве с PDA, то результат может быть другой. Тут главное, чтоб ответ было нормальный и содержательный, а не падение с ошибкой. В любом случае все существующие партнёрства разработчики предлагают удалять и создавать одно новое. Во первых старое партнёрство просто не подойдёт даже если это синхронизация была на этом же самой машине загруженой под Windows. Под партнёрством понимается несколько больше, чем просто имя хоста и что синхронизировать. Это и есть носитель информации о синхронизированых обьектах. Каждый раз при синхронизации происходит сохранение информации о базе обоих устройств с тем, чтоб при следующей синхронизации можно было однозначно сказать какие изменения произошли в промежутке времени между синхронизациями на обоих сторонах и обменяться изменениями. А во вторых, разработчики ещё сами не уверены, что эта хрень у них работает правильно. По крайней мере, по их отзывам заранее неизвестно, какое из партнёрств будет использовано при следующей синхронизации. Т.е. существует опасность того, что при очередной синхронизации линуховая система прицепится к партнёрству другого компьютера и синхронизация будет ошибочной. Можно при этом потерять данные, поэтому сами же разработчики рекомендуют пока ограничится одним партнёрством, а значит не синхронизироовать PDA больше чем с одним компьютером во избежании ошибок. Безусловно это плохая новость, потому как очень хотелось бы при помощи PDA синхронизировать базы на работе и дома, что я раньше и делал используя Windows. Постараюсь со временем разобраться в том, как именно глючит их модуль и возможно ли его использовать "на благо родины". Но я отвлёкся. Удаляем все партнёрства при помощи delete_partnership.py параметром передаём ID нашего партнёрства. Для случая приведенного выше пишем.
   
      delete_partnership.py 0x3bfa63e8
   

    Далее создаём новое партнёрство
   
      ./create_partnership.py "SynCE" "Contacts,Calendar,Tasks"
   

    Первый параметр, это название, которое будет видно с PDA оно не должно быть длиннее 20 символов. Стоит ли напоминать, что все перечисленные операции нужно производить при подключенном зверьке и поднятом odccm и sync-engine. Если все перечисленное работает, то проблем быть не должно.
    На этот момент мы практически закончили все танцы вокруг SynCE. Остался последний рывок. Но для начала надо установить OpenSync и MultiSync-gui.
   
    Как ни странно, но толковый букварь по их установке находится как раз не на сайте OpenSync а в том же WiKi по SynCE
   
      http://www.synce.org/index.php/Syncing_via_OpenSync
     

    Хотя дальше всё несколько не так, как в нём написано. По старой привычке народ советует тянуть исходники с официального сайта и компилить. Можно безусловно последовать из совету, но если вы не фанат компиляции можно этого и не делать. Во первых есть некоторая разница в версиях. На момент написания статьи текушая версия уже перевалила за 0.33 хотя и на OpenSync и на SynCE её использовать не советуют, а рекомендуют использовать 0.21 Ребята из OpenSync оказались акуратными и уже подготовили различные варианты предварительно скомпилированых пакетов для различных дистрибутивов.
    
      http://opensync.gforge.punktart.de/repo/opensync-0.21/
   

    Если вам не хочется ковыряться в поисках именно вашего варианта, могу сказать что для Feisty нужно вписать следуюшую строчку в /etc/apt/sources.list и разрешить использование бекпортов. Думаю, что и для Гатси он подойдёт.
   
      deb http://opensync.gforge.punktart.de/repo/opensync-0.21/ feisty main

    Каково же было моё удивление, когда вместо версии 0.21 которая открытым текстом написана в ссылке у меня начала затягиваться 22-я. Я проверил, действительно лежит 22-я разработчики интересно шутят. Забегая вперёд могу сказать, что нашему делу это не вредит. Итак, что нам нужно?
   
      libopensync
      libopensync-plugin-python
      msynctool
      multisync-gui

    Кроме того нам нужны плаги под тот пакет, с которым мы будем синхронизироваться, например libopensync-plugin-evolution2 или libopensync-plugin-kdepim. Очень важный момент: libopensync-plugin-synce НЕ СТАВИМ. Он входит в состав sync-engine т.е. у нас он уже есть, только установленый MultiSync об этом ещё не знает. Для того, чтобы привязать наш synce плаг к поставленному софту, ищем каталог с питоновскими плагинами opensynk-a. Разработчики SynCE предлагают искать в /usr/local/lib/opensync/python-plugins/ однако у меня он оказался в /usr/lib/opensync/python-plugins/ скорее всего это особенность Ubuntu. Итак, создаём ссылку в этом каталоге на файл opensync-plugin.py который находится в SynCE/sync-engine для этого пишем следующее, предварительно поправив пути, чтоб соответствовали вашему случаю.
   
      sudo ln -sf /path/to/sync-engine/opensync-plugin.py /usr/lib/opensync/python-plugins/synce.py
   

    для проверки того, что мы всё правильно сделали пишем
   
      msynctool --listplugins:

    Если всё в порядке, то мы должны увидет synce-plugin среди установленных плагинов. Полученный список может отличаться в зависимости от того, какие именно плагины вы ставили.
   
      Available plugins:
      kdepim-sync
      testmodule
      synce-plugin
      sunbird-sync
      evo2-sync

    Всё. Теперь самое страшное позади. Вы выполнили весь набор всей фигни. Подготавливаем MultySync для работы. Для этого нужно создать группу синхронизации и внести в неё два члена, synce-plugin и тот плаг, который мы будем использовать. Вот пример для kde_pim
   
      msynctool --addgroup MyKDE_Sync
      msynctool --addmember MyKDE_Sync kdepim-sync
      msynctool --addmember MyKDE_Sync synce-plugin

    Теперь осталось проверить всё ли включено. Напоминаю. Поднимаем odcmm, подключаем зверька. запускаем sync-engine. Теперь можно пробовать.
    
      msynctool --sync MyKDE_Sync

    Всё. Хепи энд. Надеюсь у вас получилось. Осталось теперь понять, как пользоваться MultySync-ом через GUI и научить Sync-Engine самостоятельно подниматься при подключении PDA. Открытым вопросом осталось подключение через BlueTooth,   Я сам в понедельник буду пробовать настраивать по данному мануалу на Ubuntu 7.10. Постараюсь описать новые ньюансы если они будут. В завершении напомню, что данный опус является по сути пересказом Wiki на который я уже неоднократно ссылался. Его можно найти тут. В принципе там есть необходимый и достаточный набор всех операций связанных с настройкой.

      http://www.synce.org/index.php/Installation_Guides#Current_Status_of_Support_1

----------   

Итак, начал на работе настраивать аналогичное безобразие.
Ubuntu 7.10 + KDE, в качестве подопытного зверька всё тот же X500.

LibSynce,
LibRapi2
Odccm, до этого момента, всё штатно.

С pyrapi2 вышел косяк, довольно приятный, как оказалось. Нету его, в смысле пакета этого. Разработчики не дремлют и теперь он оказывается входит в состав librapi2 и ставится прямо с ним. Иными словами этот пункт можно просто вычеркнуть - это рудимент.

wbxml2 сразу ставиться не захотел. Просто забыл проинсталить депенденсы, которые сам же и написал. С ними всё работает.

С ядрёным модулем rndis_host как то сразу в лоб не сложилось, но зато выяснилось, что старый метод работающий в Feisy приспокойно работает в Гатси. Отсюда мораль - горе от ума. Позже поудаляю все эти косяки и сведу всё в общий мануал.

Теперь о модулях, которые использует sync-engine.
rra таки нужен, как оказалось. Для его установки нужно доставить libmimedir-dev. В репозитарии он есть и с ним работает.
Кроме того надо доставить

      python-libxslt1[\b]
...
« Последнее редактирование: 01 Ноябрь 2007, 04:31:06 от Elf »

Оффлайн WinnieThePooh

  • Участник
  • *
  • Сообщений: 125
  • Ubuntu Dapper Drake
    • Просмотр профиля
хороший материальчег, спасиба...!
сконектил правда чуть по другому мануалу, но все же...

единственная разница у меня вин7да 2003 в мобиле..
вот только не понял как контакты синхронизировать... :(

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
хороший материальчег, спасиба...!
сконектил правда чуть по другому мануалу, но все же...

единственная разница у меня вин7да 2003 в мобиле..
вот только не понял как контакты синхронизировать... :(

И правильно сделал, что юзал другой мануал. Ибо, цититую:
Цитировать
Это я к тому, что если у вас на устройстве Windows Mobile 2003, то вам не сюда. Вам нужно искать как настраивать Raki а описано это тут http://www.synce.org/index.php/Installation_Guides#Current_Status_of_Support_2. Этот мануал работает только на WM5 и выше.
Для wm2003 юзается демон vdccm который цепляется к девайсу. Для него написан Raki который, по идее должен с ним работать. С WM2005 устройствами он не работает. Надо юзать новый odccm.

В принципе ничто не мешает с wm2003 отказаться от Raki и тоже заюзать MultiSync благо соответствующий плаг для него должен быть в репозитарии.


Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Почему-то модераторы удалили вторую половину текста. На сколько я понимаю, это очередной глюк при попытке редактирования большого сообщения. Если не будет возражения с их стороны, я восстановлю вторую половину отдельным сообщением.

Оффлайн victor53p

  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 300
    • Просмотр профиля
    • Ubuntu в Воронежской области
Была попытка подправить название первого сообщения. И все.
Продолжаем работать!
Victor53p.

Оффлайн kastigar

  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Нужен совет. У меня стоит гатси. Пользовался этим руководством, но не смог заживить.
1) небольшое отличие. При подключении КПК dmesg выдает:
[10095.684328] usb 4-1: new full speed USB device using uhci_hcd and address 8
[10095.870576] usb 4-1: configuration #1 chosen from 1 choice
[10095.964525] eth1: register 'rndis_host' at usb-0000:00:1d.3-1, RNDIS device, 80:00:60:0f:e8:00
Вот отличие заключается  в том что у меня поднялся eth1 а не rndis0. Но я на это забил.
2)собрал, опять же по руководству, все либы и odccm.
#sudo odccm -f
** (odccm:25263): DEBUG: PDA network interface discovered! udi='/org/freedesktop/Hal/devices/net_80_00_60_0f_e8_00'
и все, остальных строчек нет. Соответственно pls выдает:
# pls

** (process:25400): WARNING **: No devices connected to odccm
pls: Could not find configuration at path '(Default)'
В чем может быть проблема?

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Да. Да. Буквально вчера решал эту проблему. Это проблема rndis-host посмотри внимательно, у появившегося интерфейса постоянно инкрементятся ошибочные пакеты. Отличительная черта - при подключенном usb-кабеле КПК начинает жутко тормозить.

А то что eth1 вместо rndis0 абсолютно не важно. У меня на работе тоже получился eth1. Так Гатси сконфигурён.
Видно ж, что при запуске odccm, что интерфейс она находит. Там по каналу бред всякий идёт.

У меня это тоже было до тех пор пока использовал родной rndis от Гатси. Я снёс родной и заинсталил rndis-host-lite из официального SynCE репозитария. У меня заработало, хотя разработчики уверяют, что такой подход неверен и предлогают патч для исходников ядра 2.6.22 он у меня скомпилился, но я так и не проверил, потому, что лайт версия заработала.

Кстати. Только сейчас пришло в голову. Под виндой подобное встречалось, и лечилось поиском в настройках КПК галочки. Что-то вроде "Юзать раширенные свойства RNDIS". На WinMobile форумах, народ напрополую советовал ей играться. Предложение дурное, но кто знает.
« Последнее редактирование: 01 Ноябрь 2007, 19:09:11 от Elf »

Оффлайн WinnieThePooh

  • Участник
  • *
  • Сообщений: 125
  • Ubuntu Dapper Drake
    • Просмотр профиля
хороший материальчег, спасиба...!
сконектил правда чуть по другому мануалу, но все же...

единственная разница у меня вин7да 2003 в мобиле..
вот только не понял как контакты синхронизировать... :(

И правильно сделал, что юзал другой мануал. Ибо, цититую:
Цитировать
Это я к тому, что если у вас на устройстве Windows Mobile 2003, то вам не сюда. Вам нужно искать как настраивать Raki а описано это тут http://www.synce.org/index.php/Installation_Guides#Current_Status_of_Support_2. Этот мануал работает только на WM5 и выше.
Для wm2003 юзается демон vdccm который цепляется к девайсу. Для него написан Raki который, по идее должен с ним работать. С WM2005 устройствами он не работает. Надо юзать новый odccm.

В принципе ничто не мешает с wm2003 отказаться от Raki и тоже заюзать MultiSync благо соответствующий плаг для него должен быть в репозитарии.



так а у кого получилось синхронизировать контакты?
и еще вопрос на аналогичную тему...:
у меня есть вторая трубка СМАРТ NOKIA E50 так вот вопрос состоит в том, как симбиан синхронизировать с линуксом?

обмен файлами есть, в автономном режиме (но это не совсем удобно)
в режиме синхронизации юзаю трубу как модем.. это нормально, и удобно...
осталось добиться опять же синхронизации контактов.. и обмена файлами между компом и смартом в режиме синхронизации...

Оффлайн Eldev

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
мда...
после начала установки (на этапе сборки pywbxml) Х сервер повис (клавиатура перрестала отвечать, мышь периодичесик зависала) после хардресета Х сервер перестал отвечать монитору (он вроде бы запускается, но картинки на мониторе нет, не отвечает на Альт+Ктрл+Фн).  Что делать не знаю...
OS: Kubuntu 17.10

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
так а у кого получилось синхронизировать контакты?
и еще вопрос на аналогичную тему...:
у меня есть вторая трубка СМАРТ NOKIA E50 так вот вопрос состоит в том, как симбиан синхронизировать с линуксом?

обмен файлами есть, в автономном режиме (но это не совсем удобно)
в режиме синхронизации юзаю трубу как модем.. это нормально, и удобно...
осталось добиться опять же синхронизации контактов.. и обмена файлами между компом и смартом в режиме синхронизации...
Дык, для того я этот опус  написал, чтоб народ сумел настроить синхроннизацию. У меня она работает. С WM2003 проверить не могу, извините. Потому как поставил WM5 даже на MPx200 жены. По идее должно настраиваться одинаково - только демон другой.
По поводу нокии, опять же не проверял, но на OpenSync написало, что для єтого дела надо пользовать SyncML соответствующий плаг есть в репозитариях. Итого всю синхронизацию можно настроить под MultiSync
Возможно 2 варианта. С одной группой на троих и с двумя парными группами. По мне, так второй вариант удобрее ибо если все трое входят в одну группу, то пока оба телефона не подключеш работать не будет. Лучше вариант синхронизации поочереди. Да и не будеш ты их вместе подключать. Наверняка один и тот же кабель для обоих телефонов юзаеш.

Оффлайн ade

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
>patch -p1 < /path/to/SynCE/patches/linux-2.6.22-rndis_host-wm5.patch

у меня на этом затык
что патчить?

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
мда...
после начала установки (на этапе сборки pywbxml) Х сервер повис (клавиатура перрестала отвечать, мышь периодичесик зависала) после хардресета Х сервер перестал отвечать монитору (он вроде бы запускается, но картинки на мониторе нет, не отвечает на Альт+Ктрл+Фн).  Что делать не знаю...
Это вы батенька что-то ещё сделали, окромя этого мануала, потому, что все вышеперечисленные либы к иксам вообще никакого отношения не имеют. В принципе если исключить установленный multisync-gui, то все остальное должно вообще преспокойно работать в консоле.
А что делать? Читать xorg.log или постить его в форум вместе в описание железок. Наверняка народ подскажет. Только это выходит за рамки subj-a поэтому создайте другую тему или найдите подходяшую.

Оффлайн Elf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
>patch -p1 < /path/to/SynCE/patches/linux-2.6.22-rndis_host-wm5.patch

у меня на этом затык
что патчить?

    А тут есть два метода. Простой и правильный. Если не сильны в компиляции ядер, то лучше простой.
Простой:
    Прикинуться чайником и сделать вид, что мы не заметили, что у нас ядро 2.6.22 и делаем всё так, как будто у нас ядро 2.6.20 В этом случае во время команды ./clean родной rndis-host замочат и дальше поставится облегчённая версия. Как не странно, но оно работает.

Правильный:
    Патчить надо исходники ядра.  Они должны быть с каталоге /usr/src/linux-source-2.6.22-16 (на счёт последнего числа я не уверен) Если нет, то надо ставить пакет linux-source-2.6.22-generic в случае если используете generic ядро. Если ядро другое, то соответственно меняем название пакета. Тут надо быть внимательным, потому, что в гатси есть милая нескладуха с ядрами. Их два: generic и i386. Я не скоро пойму смысл сего гения. Имхо, народ прогнал. А может быть, это только у меня такой дурдом с ядрами, потому, что я в своё время подключал репозитарии от UbuntuStudio, а там есть ядро с уменьшенным временем отклика. Возможно именно его мне при апгрейде и проинсталило. Ну то такое. После установки пакета с исходниками ядра, вам поставится на самом деле один tar c архивом этого добра. Его надо распаковать туда же.
Дальше смотрим содержимое патча

-- linux-2.6.22-rc3-orig/drivers/net/usb/rndis_host.c  2007-05-25 22:55:14.000000000 -0400
+++ linux-2.6.22-rc3/drivers/net/usb/rndis_host.c       2007-05-27 17:06:16.000000000 -0400
@@ -499,8 +499,7 @@
        net->hard_header_len += sizeof (struct rndis_data_hdr);
        dev->hard_mtu = net->mtu + net->hard_header_len;

-       dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1);
-       dev->rx_urb_size &= ~(dev->maxpacket - 1);
+       dev->rx_urb_size = (dev->udev->speed == USB_SPEED_FULL) ? 16384 : 8192;
        u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);

        net->change_mtu = NULL;


Видим в первой же строчке имя файла

      /drivers/net/usb/rndis_host.c

Добавляем в начале путь к исходникам ядра и получаем что-то вроде

      /usr/src/linux-source-2.6.22-16/drivers/net/usb/rndis_host.c

Вот эту хрень и вводим в ответ на запрос имени файла, который возникает при вводе нашей команды patch -p1..........

Дальше лезем в каталог boot и ищем настройки ядра, которое юзается. Это файл с названием, что-то вроде config-2.6.22-16-generic
Опять, же циферки ваши.
Копируем этот файл в корень исходников ядра. После этого можно считать, что ядро мы уже сконфигурили. Компилим только модули, само ядро не меняется.

      make modules
      sudo make modules-instal


Учтите, что если вы докомпиливали какие-то самопальные модули для ядра, то они могут после этой операции слететь и их прийдётся ставить заново. Лучше вместо последней команды, найдите в исходниках файл rndis-host.ko и скопируйте его руками в соответствующий каталог в /lib/modules вместо старого. Не забудте выгрузить этот модуль из памяти.

 

Страница сгенерирована за 0.068 секунд. Запросов: 24.