domingo, 7 de septiembre de 2008

Sincronizar HTC Diamond con Evolution.... ahora si!

Hola.

Hoy planteo mi ultima batalla.
Me he comprado una HTC Touch Diamond, después de muchos quebraderos de cabeza he conseguido sincronizarla con Evolution y también acceder a los datos de la misma sin tener que montarla como unidad externa.

Las instrucciones que doy son para Ubuntu 8.04.1, que es la distribución de GNU/Linux que uso actualmente, pero es posible que os resuelvan dudas a los usuarios de otras distribuciones.

El primer punto es conectar la PDA y que nuestro SO la reconozca perfectamente y nos deje acceder a sus datos.





Conectar la HTC Diamond a Ubuntu mediante SYNCE.


Vale, yo doy por supuesto que tenéis vuestro Ubuntu totalmente actualizado, de manera que tenéis la ultima versión de Kernel, librerías, etc...
Si no es así deberíamos actualizarlo para que mi manual sea al 100% funcional para vosotros.

Empezamos quitamos los módulos de ipaq:
rmmod ipaq
Lo metemos en el blacklist, editando el fichero/etc/modprobe.d/blacklist

sudo gedit /etc/modprobe.d/blacklist
Agregamos esta linea al final:

blacklist ipaq

Los paquetes que yo estoy usando son los oficiales de Synce y Opensync, así que agregar estas lineas a vuestro sources.list. Lo abrimos como root:


sudo gedit /etc/apt/sources.list

Agregamos estas lineas al final:

# SYNCE
deb http://ppa.launchpad.net/synce/ubuntu hardy main
deb-src http://ppa.launchpad.net/synce/ubuntu hardy main

# Opensync
deb http://opensync.gforge.punktart.de/repo/opensync-0.21/ sid main
deb-src http://opensync.gforge.punktart.de/repo/opensync-0.21/ sid main

Guardamos el fichero. Descargamos e instalamos las firmas de los repositorios de Opensync:


gpg --keyserver hkp://subkeys.pgp.net/ --recv-keys CB210090B029CB84
gpg --export CB210090B029CB84 | sudo apt-key add -

Actualizamos los repositorios:

sudo aptitude update

Para que todo vaya debemos instalar los paquetes de Synce y Opensync necesarios.
Tener en cuenta que esto no sirve para todas las PDAs ya que si es Windows Mobile 6 si funcionará pero las versiones antiguas pueden necesitar otro plugin de opensync o otra versión de los mismos.
Este problema ya lo sufrí yo ya que en un principio estaba utilizando el plugin para WM5.

sudo aptitude install multisync-tools multisync0.90 opensync-module-python opensync-plugin-evolution opensync-plugin-google-calendar opensync-plugin-synce python-opensync synce-gnomevfs synce-gvfs synce-hal synce-sync-engine synce-trayicon

Una vez hacemos esto yo aconsejo reiniciar, no se bien porque pero el demonio synce-sync-engine (synce-hall) en mi caso no arrancó correctamente al conectar la PDA hasta que no reinicié. Lo podéis probar y si se os conecta correctamente no reinicies, pero tal vez por ejemplo el acceso a ficheros no os funcione hasta reinicia.

Una vez reiniciado, entramos con nuestro usuario y arrancamos la aplicación synce-trayicon.




Si conectamos nuestra PDA por USB ahora, y todo sale bien, nos saldrá un precioso mensaje diciendo que ha detectado nuestra Touch_Diamond.




En el menú de la aplicación podremos acceder a las unidades de memoria de nuestra HTC y también a ver el estado de la PDA, tanto memoria, como batería, etc...

Bueno ya tenemos la PDA accesible desde Ubuntu, podemos ver sus unidades de disco y ver datos de la misma. Vamos a siguiente paso, que es sincronizar los datos con Evolution.





La sincronización con Evolution mediante Opensync.

Si hemos sincronizado antes nuestra PDA en Windows (traidores) debemos borrar el perfil creado en la PDA y crear uno nuevo.

Esto ocasiona un problema y es que se pierden datos, todos los contactos (incluido favoritos del TouchFloo), los elementos del calendario... osea todo lo que habiamos sincronizado en Windows.

Ignoro si esto le pasará a todo el mundo, es muy posible que me pasara solo a mi porque trasteé mucho para poder configurarlo correctamente, casi seguro. Pero yo aviso...

Para esto usaremos synce-trayicon que ya hemos explicado como acceder a el.
Desplegamos el menú de la aplicación y vamos a Touch_Diamond > View device status
Aquí nos aparecerá una lista de los perfiles creados para sincronizar.

Si existe uno, solo debemos seleccionarlo y picar en 'Remove'. Nos saldrán varios avisos de seguridad, que debemos aceptar, explicando lo que he dicho antes de la perdida de datos.


Una vez hacemos esto debemos hacer lo contrario, creamos un nuevo perfil, esto es bastante lógico, voy a obviar los pasos.

El ultimo paso y en el que tuve problemas en un principio, es crear los pares de sincronización entre Evolution y Synce.
Para que nadie tenga los problemas que yo tuve, aseguraros que no tener los repositorios PPA de KDE 4.1 en el sources.list, este repositorio contiene una versión 0.33 de un plugin y esto da problemas al ser una versión no estable.


Lo primero será crear un grupo de sincronización y agregarle los miembros, que son los plugins que vamos a usar. Lo podemos hacer por linea de comandos.
Para ello debemos ejecutar estos comandos:

msynctool --addgroup htc-evolution
msynctool --addmember htc-evolution synce-opensync-plugin
msynctool --addmember htc-evolution evo2-sync

Y para sincronizar debemos ejecutar el comando:


msynctool --sync htc-evolution

Pero como yo soy amigo de hacer las cosas fáciles, o al menos que lo parezcan.
Lo vamos a hacer desde multisync0.90, que para algo lo hemos instalado antes.
Vamos al menú de Gnome > Aplicaciones > Accesorios > Multisync-qad




Agregamos el grupo picando en el botón 'Añadir', le ponemos un nombre al grupo y agregamos los dos plugins que vamos a usar:

- synce-opensync-plugin
- evo2-sync

Si picamos en cada uno de los plugins podremos ver la configuración de ellos.
En el evo2-sync podemos ver con que Addressbook, Calendar y Tasks queremos sincronizar los datos.
En synce-opensync-plugin debemos tener una estructura xml que dictamina como se tratan los datos, esto:


<config>

<contact></contact>

<todos></todos>

<calendar></calendar>

<file>/My Documents/</file>

</config>




El problema, creo que es un bug, es que en algunos casos no nos aparece contenido alguno en este plugin. Pues nada, como ya lo he puesto yo aquí solo debemos copiar y pegar.

Una vez hecho todo esto solo tenemos que cerrar y después le damos a 'Refrescar'
Veremos que los plugins recogen información, la contrastan y en caso de conflicto nos consultara si queremos conservar la ficha que existe en la PDA o en Evolution.

Abracadabra!!!! Ya tenemos nuestra HTC Diamond accesible desde Ubuntu 8.04.1 y sincronizada con Evolution.

Agradecería comentarios de quien lo hizo, y dudas y criticas también, por supuesto.


Saludos.

32 comentarios:

Unknown dijo...

Hola!

Segui tu post al pie de la letra, incluso perdi mi agenda (con backup) ;) .
Todo parece funcionar correctamente salvo porque no sincroniza absolutamente nada!
El HTC muestra que esta haciendo el proceso de sincronizacion, y el muntizync tambien da como "The sync was successful" tengo 1 contacto en el evolution (no lo usaba, pero mi idea principal es solo utilizarlo para backup de la agenda telefonica y el calendario) y tengo otro en la Agenda del telefono (en la HTC, no en el SIM), luego de cada sincronizacion exitosa (o por lo menos eso dice) sigo teniendo un contacto en cada agenda, alguna idea?

Ivan Martinez dijo...

Hola.

Deberías usar multisync0.90, entrar en las propiedades del grupo que tengas creado y mirar si los plugins (synce-opensync-plugin
y evo2-sync) están correctamente configurados.

Es posible que el plugin synce-opensync-plugin no tenga contenido xml o que el plugin evo2-sync no apunte a ningún calendario.

Saludos.

Unknown dijo...

Antes que nada, gracias por la respuesta.

Tengo la version 0.90, y ambos plug-ins creo que estan bien configurados, la agenda es la personal (la unica que me aparece en el evolution y el synce-opensync-plugin tiene el codigo xml (un copiar y pegar de lo que tu pusistes) y lo mismo, muestra tanto la HTC como el programa que esta haciendo la sincronizacion y luego, nada!

Unknown dijo...

Hola Ivan, he seguido tus indicaciones y todo me ha funcionado perfectamente, pero al final cuando me detecta la htc me da el siguiente error
"Failed to retrieve partnership information: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken."
A partir de aqui no me sincroniza nada.
Donde me equivoco?
Saludos
Marc

Ivan Martinez dijo...

Puedes ejecutar este comando y pasarme un pastebin de lo que te retorna?

dpkg -l |grep sync

Unknown dijo...

portatil@portatil-marc:~$ dpkg -l |grep sync
ii libatm1 2.4.1-17.1build1 shared library for ATM (Asynchronous Transfer Mode)
ii libopensync0 0.22-2 Synchronisation framework for email/pdas/and more
ii libpisync0 0.12.2-9ubuntu3 synchronization library for PalmOS devices
ii libpisync1 0.12.3-4ubuntu1 synchronization library for PalmOS devices
ii librra0 0.12-0ubuntu0~ppa1 Library for synchronisation with Windows Mobile devices
ii librtfcomp0 1.1-hardy1-synce1 Library to read compressed RTF files
ii libsynce0 0.12-0ubuntu0~ppa1 Helper library for SynCE, a tool to sync Windows Mobile devices
ii mozilla-bookmarksftp 1.0.2-6ubuntu1 Iceweasel/Firefox extension to synchronize bookmarks
ii multisync-tools 0.91.0-4.1ubuntu1 PIM Synchronization Command Line Tools
ii multisync0.90 0.91.0-4.1ubuntu1 PIM Synchronization Tool
ii opensync-module-python 0.22-1 Python module for OpenSync
ii opensync-plugin-evolution 0.22-2ubuntu1 Evolution plugin for opensync
ii opensync-plugin-google-calendar 0.22-6 Opensync Google Calendar plugin
ii opensync-plugin-synce 0.12-0ubuntu0~ppa3 SynCE plugin for OpenSync
ii python-opensync 0.22-2 Python bindings to the opensync synchronisation engine
ii python-rra 0.12-0ubuntu0~ppa1 Library for syncing with Windows Mobile devices (Python bindings)
ii python-rtfcomp 1.1-hardy1-synce1 Library to read compressed RTF files (python bindings)
ii synce-gnomevfs 0.12-0ubuntu0-ppa1 SynCE plugin for Gnome VFS
ii synce-gvfs 0.1-0ubuntu0~ppa2 GIO/GVFS backend for synCE
ii synce-hal 0.2-0ubuntu0~ppa3 Daemon to maintain a connection to Windows Mobile devices via hal
ii synce-sync-engine 0.12-0ubuntu0~ppa3 Synchronization engine for Windows Mobile devices
ii synce-trayicon 0.12-0ubuntu0~ppa3 GNOME system tray application for SynCE
portatil@portatil-marc:~$

Unknown dijo...

El problema está en la conexión ya que da elerror anterior como si en la htc tienes que desbloquear alguna cosa...

Unknown dijo...

Muy buenas

Sin hacer ningun cambio, ninguna modificacion de sistema (actualizaciones o instalacion de ningun programa) todo comenzo magicamente a funcionar al tercer reinicio de la maquina y al segundo reinicio del HTC..... durante mis pruebas habia reiniciado mas de una vez ambos dispositivos, por lo que no tengo ninguna explicacion de porque ahora si y antes no....

Ivan, gracias nuevamente....

Una ultima pregunta:
se puede configurar para que sincronice con el thunderbird?
Y con los contactos de Google?
Yo intente con el calendario de Google pero no lo logro hacer funcionar aun..

Un saludo.

Ivan Martinez dijo...

Hola.

Desconozco si se puede sincronizar con thunderbird, pero es posible.
Mira si existe el plugin de Opensync para sincronizar synce con thunderbird.

Sobre lo de google, los contactos los podrás sincronizar con la aplicación Conduit, yo la uso para diferentes funciones.

Sobre Google Calendar, hay una forma, pero aun no te puedo asegurar al 100%.
Con Evolution puedes usar la cuenta de Coogle Calendar,pero solo volcar las citas en tus agendas, tanto la de Evolution como la de la HTC, pero no al contrario (al menos no te puedo confirmar hasta terminar de configurar lo que te comento)

Saludos.

AbahataR dijo...

Excelente post!! Me ha venido de perlas para sincronizar la PDA ( HTC Touch) lo malo es que solo me funcionó una vez. Ahora lo intento hacer y por terminal me responde después de hacer el correspondiente msynctool --sync htc-evolution

Member 2 of type evo2-sync just sent all changes
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
Error synchronizing: Unable to read from one of the members
Pipe closed! Exiting.
Pipe closed! Exiting.


Por lo que veo falla el paquete de sincronización opensync.
Qué puedo hacer, no encuentro ninguna respuesta.

Unknown dijo...

Hola, por mi parte ya no llego ni al mensaje de conexión. Googleando no he llegado a ninguna conclusión válida. Haciendo un "synce-pls" en un terminal me sale el siguiente error:

** (process:11426): CRITICAL **: synce_info_from_hal: Failed to obtain property pda.pocketpc.name for device /org/freedesktop/Hal/devices/net_80_00_60_0f_e8_00: org.freedesktop.Hal.NoSuchProperty: No property pda.pocketpc.name on device with id /org/freedesktop/Hal/devices/net_80_00_60_0f_e8_00

** (process:11426): WARNING **: synce_info_from_odccm: Failed to get devices: The name org.synce.odccm was not provided by any .service files
synce-pls: Could not find configuration at path '(Default)'

Alguna idea? Gracias.

Mienra dijo...

A mi me pasa como a turcko. Sí que puedo explorar por la PDA, pero no me sincroniza ni la agenda, ni los contactos

AbahataR dijo...

Claramente es un problema del plug de sync-synce.

Mienra dijo...

Y cómo se arregla eso? Es que soy un poco novato por estos anudrriales. Gracias

Unknown dijo...

Sigo sin poderme sincronizar
Hola a todos, he conseguido conectar lahtc i me la identifica, puedo desinstalar programas mirar la version pero cuando voy a view device status, en el apartado de Partners me da el siguiente error: Failed to retrieve partnership information: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken."
En cambio si hago un synce-pls si que me lee las notas que tengo en mi htc.
Puede ser que sea la version del evolution (que es la 2.22.3.1?)
Saludos

Mienra dijo...

Estoy desesperado ahora no puedo sincronizar ni con Ubuntu ni con Windows.

Ayuda por favor.

Miguel Enrque

Unknown dijo...

Muy interesante vuestro método. No se cuantas horas pude llegar a pasar intentando hacer eso hasta que me rendí con la documentación tan pobre que encontraba de Synce.

No obstante yo no utilizo Evolution, me gusta más manejar todo con Google, en este caso Gmail. Yo he conseguido sincronizarla con los contactos de Gmail de la manera que pongo aquí en mi blog, y funciona a las mil maravillas. Espero que os resulte de interés.

A copas o bastos dijo...

A mi me ha sincronizado los contactos después de muchas vueltas, al borrar el archivo XML del plugin synce-opensync-plugin. Espero que le sea de utilidad a alguien más.

Unknown dijo...

Hola!! Muchas gracias por el post, está genial, pero tengo un pequeño problema, uso una htc p3300 con WM5 y necesito otro plugin de opensync u otra versión diferente del que pones tu, he estado buscando, pero no encuentro nada, si alguien me pudiese ayudar seria genial, por fin tendria mi htc en linux completamente operativa.

Un saludo!!

trial dijo...

Saludos.
He seguido los pasos a rajatabla en una Ubuntu 8.10 y una HTC Touch.
Se consigue conectar, y la Touch sale como sincronizada en el Activesync.
Pero cuando le doy a "Explore With FileManager" me sale el siguiente error:

Error: DBus error org.freedesktop.DBus.Error.InvalidArgs: Argument 5 is specified to be of type "s", but is actually of type "b"

Seleccioneu un altre visualitzador i torneu-ho a intentar.


Tengo los repositorios actualizados, y todos los pasos que has indicado no me han dado ningun problema.

Alguna idea?

Ivan Martinez dijo...

Tengo que actualizar esta entrada.
Yo he tenido que reinstalar synce y el resto de herramientas y he actualizado los repos y cambiado alguna cosa.

Si tengo tiempo en un par de días tenéis otro manual para Ubuntu 8.10

Saludos.

Anónimo dijo...

Ivan, primero que nada muchas gracias por el tutorial porque, en principio, el ordenador por lo menos reconoce que tiene la pda conectada - cosa que yo no conseguía ni a tiros-. Ahora el problema que tengo tiene que ver con que si intento entrar con Explore with filemanager me dice que nones. Lo que me pone, textual, es:

No se pudo mostrar «synce://Pocket_PC/».
Error: DBus error org.freedesktop.DBus.Error.InvalidArgs: Argument 5 is specified to be of type "s", but is actually of type "b"

Seleccione otro visor e inténtelo de nuevo.


Vamos, una tocada de...

No sé si es que estoy haciendo algo mal o qué.

Un saludo.

Ôo-~

Acido 69 dijo...

Hola, por fin puedo acceder al móvil. Yo tengo esto:

Ubuntu 8.04
htc Tyni II
Windows Mobile 5.0

al final lo conseguí con la ayuda de esta otra pagina:
http://www.synce.org/moin/SynceInstallation/Ubuntu/ModernDevice

Basicamente cambia esto:
deb http://ppa.launchpad.net/synce/ubuntu intrepid main
deb-src http://ppa.launchpad.net/synce/ubuntu intrepid main

(con Intrepid funciona bien)

para renovar la clave:

sudo apt-key adv --recv-keys --keyserver subkeys.pgp.net 7D2C7A23BF810CD5

añade dos librerías más:

sudo apt-get install librra-tools librapi2-tools

Y funciona perfecto.
gracias

Diego dijo...
Este comentario ha sido eliminado por el autor.
Diego dijo...

Muy buen manual, pero tengo una duda:
Es posible con esta sincronización ejecutar aplicaciones .exe, para instalar programas que requieren de la sincronización? por ejemplo para instalar el hard spl..

Ivan Martinez dijo...

Hola.

Por desgracia no, pero por suerte casi todo el mundo ya distribuye su software en .cab, o la mayoria.

Tengo entendido que existe alguna herramienta para extraer el .cab del .exe, pero no he indagado mas.

Unknown dijo...

Gracias, me ha ido perfecto, tengo una htc touch y la sincronización es total, y no se me han borrado los contactos ni nada

Guillem Nicolàs i Larruy dijo...

Gracias! Por fin he conseguido sincronizar la HTC touch con Evolution. Lo único que no he podido pasar de momento han sido las "notas". Si alguien ha tenido ese mismo problema y lo ha podido resolver, agradeceré la ayuda.while

MacchinaQV dijo...

Bueno muchacho, Eres el único que ha conseguido publicar una forma decente que de verdad funciona sobre esta dichosa comunicación y sincronización, Te lo agradezco en el alma

Saludos

manuel dijo...

Segui el post hasta:
sudo aptitude update
pero me da este error:
W: Error de GPG: http://ppa.launchpad.net hardy Release Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY B152F042D246C25D
Si hay alguna idea lo agradeceré

Unknown dijo...

Hola.

El error que te da es un error que se da cuando no tienes las keys GPG de alguna entrada de tu sources.list.

Pégate una vuelta por google y facilmente localizaras la solución.

Saludos.

jofial dijo...

Hola Iván, todo iba bien hasta que actualice a Debian Squeeze. Me sincroniza la primera vez que creo un grupo de sincronizacion pero luego me rebota un error y no consigo ver cual pueda ser la causa: El error de Multisync-gui (v0.90) es "Error synchronizing: Unable to read from one of the members"

y arrancando en consola: nos da esto en el punto que veo la palabra "error"
-----inicio pego-----
TypeError: in method 'OSyncChange_set_uid', argument 1 of type 'OSyncChange *'
Member 2 of type synce-opensync-plugin had an error while getting changes: Error during get_changeinfo() method
DEBUG:SynCE:disconnect() called
Member 2 of type synce-opensync-plugin just disconnected
Member 1 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
All conflicts have been reported
----fin pego----

Me he revisado no se cuantas paginas y al final un mareo...pero no soy capaz de hallar una solucion. Y la verdad es que necesito sincronizar mi HTC con evolution por cuestiones laborales.

¿Alguna sugerencia?.