Configurar/Sincronizar dispositivos con Windows Mobile en Kubuntu

Existe una amplia gama de dispositivos móviles con diferentes propiedades, sin embargo, es cada vez más frecuente que los teléfonos inteligentes y PDAs funcionen con Windows Mobile. Estos dispositivos suelen tener características interesantes que los asemejan mucho a pequeñas (y limitadas) computadoras completas, pues permiten productivos creando muchos tipos de archivos mientras estamos lejos de una computadora, caminando o viajando. Suelen estar basados en arquitectura ARM ó MIPS. Incluso, es posible montar una imágen de Linux en algunas de ellas (Véase, por ejemplo, http://handhelds.org/moin/moin.cgi/SupportedHandheldSummary)

Sin embargo, para la mayoría de los dispositivos (y usuarios), la completa funcionalidad sólo se logra usando el sistema de fábrica (Windows Mobile(R), anteriormente, WindowsCE(R)). Aquí se explicará como sacarle el provecho máximo a estos dispositivos desde Kubuntu. Este CÓMO se centrará en la combinación Windows Mobile 5/6 + Kubuntu 8.10 Intrepid. (los Dispositivos con WM2003 se configuran usando paquetes anteriores. Véase http://www.synce.org/moin/LegacyDevices/Ubuntu)

El hecho de que podamos utilizar estos dispositivos desde Linux se lo debemos al proyecto SynCE (www.synce.org), y al proyecto OpenSync. La guía oficial que aparece en el proyecto SynCE está muy bien escrita y detallada, sobre todo para Ubuntu. Lo que pongo a continuación fue extraído en parte de la guía oficial de configuración en Ubuntu:

Configuración en el dispositivo:

1. Asegúrese de usar el modo de conexión "Funcionalidad de Red Avanzada" de su dispositivo con Windows Mobile 5/6/6.1.
Esto se hace yendo a 'Inicio>Configuración>Conexiones>USB a PC' en algunos dispositivos. Otros pueden tener diferencias menores. Marque la casilla "Activar Funcionalidad de Red Avanzada".
Esta función hace referencia al uso de la conexión USB como enlace Ethernet con la computadora, permitiendo tener acceso a Internet de alta velocidad desde la PocketPc, mediante el controlador RNDIS.
2. Vaya a 'Inicio>Programas>ActiveSync>Conexiones' y seleccione 'USB (O algo que haga referencia a USB) en "Sincronizar todas los PC utilizando esta conexión:".

No conectéis el dispositivo Windows Mobile hasta que se diga explícitamente

Agregar repositorios

Agregamos las siguientes líneas al archivo /etc/apt/sources.list:

Donde intrepid puede reemplazarse por hardy o jaunty
y actualizamos

sudo aptitude update

Si obtenemos un mensaje como el siguiente:

W: Error de GPG: http://ppa.launchpad.net jaunty Release Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY B152F042D246C25D

Agregamos la llave mediante el comando

gpg --keyserver keyserver.ubuntu.com --recv-keys D246C25D && gpg --export -a D246C25D | sudo apt-key add -

Observando que el código D246C25D corresponde a los últimos 8 dígitos del número en el mensaje de aviso: B152F042D246C25D
Volvemos a ejecutar

sudo aptitude update

Alternativamente, podemos teclear Alt+F2, escribir

kdesudo adept manager

y una vez en Adept, vamos a "Fuentes>Editar Fuentes de Software>Software de Terceros (Third Party Software)>Añadir" y escribimos

Aplicamos y nuevamente en la ventana principal de Adept, en Fuentes, seleccionamos "Conseguir la lista de paquetes actual".
También es necesario agregar las llaves GPG justo como en el método anterior.

Instalar los paquetes de SynCE

La forma más sencilla de instalar los paquetes es abriendo una consola (Alt+F2: konsole) y escribiendo

sudo aptitude install synce-hal librra0-tools librapi2-tools

Todo debería transcurrir normalmente. Para probar si todo ha salido bien, conectamos la PocketPC o Smartphone y escribimos en la consola

synce-pls

Y nos debe salir una lista de archivos del directorio /My Documents del dispositivo. Si no ocurre así, podemos comenzar checando la salida del comando synce-pls y también del comando

dmesg

y comparando si nuestro problema corresponde con alguno de los que se mencionan en SynCE-Problemas de Conexión. También podemos recurrir a foros y otros HOWTOs, como por ejemplo, el de Ubuntuforums.

Si todo ha salido bien, ya podemos realizar algunas operaciones con nuestra pocket PC, como copiar, mover y borrar archivos desde la consola, entre otras cosas, usando los siguientes comandos:

  • synce-pcp - Copia archivos
  • synce-pls - Muestra el contenido de un directorio
  • synce-pmkdir - Crea un directorio
  • synce-pmv - Mueve o renombra archivos
  • synce-prm - Borra archivos
  • synce-prmdir - Remueve un directorio vacío
  • synce-prun - Ejecuta un programa en el dispositivo remoto (PocketPC o Smartphone)
  • synce-pstatus - Muestra el estado del dispositivo remoto
  • synce-install-cab - Instala un archivo .cab

Podemos obtener información específica de cada comando escribiendo en la consola

man synce-*

*=pcp, pls, pmkdir, etc...

Integración con el escritorio

Existen dos paquetes que los usuarios de KDE4 (Y los de GNOME tal vez podrían interesarse también) podemos instalar para "integrar" un poco estas herramientas con nuestro entorno. Estas son synce-kpm y synce-kio-rapip-kde4 (Usuarios de KDE3.x: synce-kio-rapip).

sudo aptitude install synce-kpm synce-kio-rapip-kde4

Además una herramienta alternativa a synce-kpm es synce-trayicon, diseñada para GNOME, pero que funciona muy bien también. Ambas pueden coexistir pacíficamente. La última se queda minimizada en la bandeja del sistema y nos avisará cuando conectemos nuestra pocket PC, al puro estilo ActiveSync(R).
Un vídeo demostrativo del uso de synce-kpm se encuentra en el sitio de su creador: Guido Diepen.
Podemos hacer que synce-kpm se ejecute cada que iniciemos sesión, podemos ir a preferencias del sistema > avanzado > autoarranque y en agregar programa introducimos

synce-kpm -i

Lo cual iniciará kpm en la bandeja del sistema.

Ahora, podemos "navegar" en el sistema de archivos de nuestro dispositivo móvil escribiendo ya sea en Konqueror o en Dolphin

synce:/

o, indistintamente,

rapip:/

en la barra de dirección.
Incluso podemos hacer click derecho en un espacio en blanco de la barra de marcadores de Dolphin/Konqueror y agregar uno a nuestro dispositivo.
El programa synce-kio-rapip(-kde4) es un "esclavo de KIO", que hace referencia a la parte de KDE que interfasa las entradas y salidas. Véase KIO, de Wikipedia.

Sincronización con Evolution

La sincronización, como ya sabrán, se refiere a la acción de mantener actualizados los datos (calendario, notas, tareas, archivos, correo, etc) entre nuestra computadora y nuestro dispositivo móvil mediante un Gestor de Información Personal (PIM). En Windows(R), este programa es MS Outlook(R) y la sincronización se realiza mediante MS ActiveSync(R). En Linux, tenemos excelentes alternativas libres, como por ejemplo, Evolution (Parte de GNOME) y Kontact-Korganizer, etc (Parte de KDE [KDE-PIM]).
El programa que utilizaremos para sincronizar es OpenSync (www.opensync.org), sucesor del proyecto Multisync. Este programa crea asociaciones entre gestores de información personal y permite sincronizarlos. Para crear estas asociaciones es necesario conseguir el plugin correspondiente. Desafortunadamente, por el momento no existe ninguno de estos plugins para KDE4, sólo es posible sincronizar con KDE3 y GNOME. Es por eso que en este momento me centraré en la configuración usando Evolution. Primero, instalamos evolution:

sudo aptitude install evolution

Nos instalará un montón de librerías de GNOME si no habíamos instalado otros programas GNOME previamente.

A continuación instalamos los siguientes paquetes:

sudo aptitude install multisync0.90 multisync-tools opensync-plugin-synce synce-sync-engine opensync-plugin-evolution

(Si tenemos KDE3, podemos instalar también el plugin de KDE:

opensync-plugin-kdepim

)

Ahora podemos crear una asociación entre nuestro dispositivo y nuestra PC. Esto hace referencia básicamente a un conjunto de reglas que necesita nuestro dispositivo para realizar la sincronización. Podemos usar alguna de las herramientas que instalamos anteriormente (synce-kpm ó synce-trayicon) para crear esta asociación. Windows Mobile es Windows al fin, y restringe el número de asociaciones a 2 mas un servidor de intercambio (?), por lo que necesitamos que a lo más haya una asociación previamente en nuestro dispositivo. Esto lo podemos checar desde los programas anteriores (en Partnership Manager de Synce-KPM por ejemplo) y borrar en su caso, la asociación que no nos interese.

Podemos también realizar ésto desde consola mediante el comando

synce-list-partnerships

Si ya hay 2 asociaciones, podemos borrar alguna mediante el comando

synce-delete-partnership

Donde se nos preguntará cuál de las asociaciones deseamos eliminar.
Finalmente, creamos la asociación mediante el comando

synce-create-partnership "Escritorio Kubuntu" "Contacts,Calendar"

Donde la cadena "Escritorio Kubuntu" puede tener a lo mucho 20 caracteres, y la cadena que le sigue puede contener cualquiera de los siguientes "tipos" separados por comas:

  • Contacts
  • Calendar
  • Tasks
  • Files

Finalmente podemos verificar que se haya creado correctamente la asociación ejecutando de nuevo el comando

synce-list-partnerships

A continuación tenemos que crear un "grupo de sincronización" de OpenSync.
Usaremos multisync0.90 para realizar esto.
Para ello, vamos a 'K>Aplicaciones>Utilidades>Multisync-gui'.
Seleccionamos "Añadir"
Escribimos "synce-sync" (sin comillas) en el diálogo "Enter group name".
Nos aparece el grupo synce-sync vacío en la interfaz, y hacemos click en el boton "Editar".
Seleccionamos los tipos de datos que NO queremos que se sincronicen (Yo no escogería los archivos ("data")). Esto no es realmente muy importante, pues aún sin dejar nada seleccionado, sólo se sincronizará lo que hayamos especificado al crear la asociación.
Hacemos click en "Add Member" (Agregar Miembro).
Nos aparecerá una lista de "plugins". Primero seleccionamos el que dice "Plugin to synchronize with Windows CE device"
Agregamos otro miembro, en este caso, el que dice "Evolution 2.x".
Cerramos el diálogo y estamos listos para sincronizar.

**ADVERTENCIA**: Algunos usuarios han reportado pérdida de información (contactos, calendario, etc) al realiza el siguiente paso. Respalde toda su información antes de proceder. Puede usar un programa como PIM Backup si su dispositivo no dispone previamente de un programa de respaldo. Para tratar de evitar esto, desconecte el dispositivo antes de la sincronización, vaya a Inicio>Programas>ActiveSync>Menú>Opciones y seleccione la asociación que recientemente creó, haga click en Configuración y en la parte que dice "Si hay un conlficto:" seleccione "Mantener el elemento en mi dispositivo".

Conectamos nuestro dispositivo móvil si no estaba conectado ya, y en la ventana de multisync0.90 hacemos click en "Refrescar". ¡La sincronización comenzará! Observad los "mensajes" que aparecen en la interfaz de multisync0.90, no siempre nos dicen lo que realmente está ocurriendo. A final de cuentas, uno debe verificar lo que ha ocurrido entrando en Evolution.
('K>Aplicaciones>Oficina>Suite de trabajo en grupo')

Una forma alternativa a Multisync0.90 es a través de la consola, usando msync-tools.
Para verificar que tenemos los plugins necesarios, escribimos

msynctool --listplugins

Y buscamos synce-opensync-plugin. No debemos usar el plugin synce-plugin porque es para dispositivos con Windows Mobile 2003.
Una vez comprobado que tenemos los plugins adecuados (synce-opensync-plugin + evo2-sync), procedemos a crear el grupo de OpenSync y los miembros mediante los comandos siguientes:

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

Si todo salió bien hasta aquí, sincronizamos introduciendo

msynctool --sync synce-sync

Referencias:
SynCE.org - Guía Oficial (en Inglés)
Ubuntuforums - Windows Mobile sync with Intrepid
Synce-OpenSUSE

ACTUALIZACIÓN: Innecesaria, pues funciona igualmente en Jaunty ;)