Sincronizando iPAQ y Evolution
Wednesday, 18 July 2018
Inicio | Documentacion | Software | Acerca de

Documentación y Software
Inicio
Documentacion
Software
Acerca de


En este documento se explica cómo sincronizar los contactos, la agenda y las tareas de Evolution y una iPAQ HP 4150 usando el programa Multisync en Linux.

(c) Paco Brufal
Versión 0.1
Agosto 2004
Documento bajo licencia GPL.

Compilando el Kernel


Vamos a utilizar dos métodos para sincronizar: mediante cable USB (el soporte de la iPAQ) y mediante Bluetooth.

El sistema que vamos a utilizar es una Debian Sid (inestable) con kernel 2.6.7. En la iPAQ está instalado el Pocket Windows 2003. Las opciones que necesitamos compilar del kernel son las siguientes:

Networking support  --->

[*] Networking support

<M> Bluetooth subsystem support  --->
  <M>   L2CAP protocol support
  <M>   SCO links support
  <M>   RFCOMM protocol support
  [*]     RFCOMM TTY support
  <M>   BNEP protocol support
  [*]     Protocol filter support
      <M> HCI USB driver
      [*]   SCO (voice) support
      <M> HCI UART driver
      [*]   UART (H4) protocol support
      <M> HCI BCM203x USB driver
      <M> HCI BlueFRITZ! USB driver
      <M> HCI VHCI (Virtual HCI device) driver

<*>   PPP (point-to-point protocol) support
<M>     PPP support for async serial ports
<M>     PPP support for sync tty ports
<M>     PPP Deflate compression
<M>     PPP BSD-Compress compression

USB support  --->
  USB Serial Converter support  --->
    <M> USB Serial Converter support
    <M>   USB PocketPC PDA Driver

Las siguiente opciones deben ser puestas SOLO si no tienes el soporte USB activado en el kernel. Si ya tienes algún dispositivo USB funcionando no hace falta ponerlas, porque ya las tendrás.

<M> Support for Host-side USB
[*]   USB device filesystem
<M>   EHCI HCD (USB 2.0) support
<M>   OHCI HCD support
<M>   UHCI HCD (most Intel and VIA) support

Si tu iPAQ es una 5550 o una 4150 (como en mi caso) debes aplicar este parche
http://synce.sourceforge.net/synce/patches/ipaq-0.6-olivier.patch al fichero /usr/src/linux/drivers/usb/serial/ipaq.c. Este parche es necesario porque esos modelos de iPAQ pueden tener varios pares de conexiones USB.

Una vez compilado el kernel e instalados los módulos, debes añadir esta línea al fichero /etc/modutils/arch/i386:

options ipaq ttyUSB=1

y ejecutar el comando


# update-modules

para que se genere el fichero /etc/modules.conf de manera correcta.

Configurando la conexión por USB


Antes de nada, tenemos que añadir una linea al fichero /etc/apt/sources.list y después ejecutar apt-get update :

deb http://synce.sourceforge.net/debian/sid ./

En ése repositorio podemos encontrar los programas necesarios en paquetes Debian.

Instalaremos los programas con apt-get:

# apt-get install synce-dccm synce-rra synce-serial synce-multisync-plugin pppd libmultisync-plugin-evolution multisync hotplug

Una vez instalados, ejecutamos éste comando para crear la conexión:

# synce-serial-config ttyUSB0 IP_local:IP_ipaq Servidor_DNS

Con esto lo que hacemos es crear un fichero llamado synce-device dentro de /etc/ppp/peers/ que contiene los datos básicos para conectar por USB.
  • ttyUSB0 es el dispositivo de conexión (usa este antes de probar otro)
  • IP_local es la IP que tendrá nuestro PC en el enlace PPP
  • IP_ipaq es la IP que tendrá la iPAQ en el enlace PPP
  • Servidor_DNS es un servidor DNS para resolver nombres de hosts

Iniciando la conexión


Para iniciar la conexión, primero debemos ejecutar el comando dccm con la clave de entrada de nuestra iPAQ (en caso de tenerla). IMPORTANTE no ejecutar el comando dccm como root, hacerlo siempre como usuario.

dccm -p 1111

1111 es nuestra clave de entrada a la iPAQ. Una vez ejecutado, en el syslog veremos algo así:

Aug  8 10:55:29 servitux dccm[1854]: Forking into background
Aug  8 10:55:29 servitux dccm[1855]: Listening for connections on port 5679

Y ahora solo nos queda insertar la iPAQ en el soporte. Automáticamente, el demonio hotplug cargará los módulos necesarios, y el pppd se iniciará:

Aug  8 17:44:34 servitux kernel: usb 2-2.1: new full speed USB device using address 4
Aug  8 17:44:35 servitux kernel: usbcore: registered new driver usbserial
Aug  8 17:44:35 servitux kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
Aug  8 17:44:35 servitux kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
Aug  8 17:44:35 servitux kernel: drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5
Aug  8 17:44:35 servitux kernel: ipaq 2-2.1:1.0: PocketPC PDA converter detected
Aug  8 17:44:35 servitux kernel: usb 2-2.1: PocketPC PDA converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Aug  8 17:44:35 servitux kernel: usbcore: registered new driver ipaq
Aug  8 17:44:35 servitux usb.agent[3841]:      ipaq: loaded successfully
Aug  8 17:44:35 servitux synce-serial-start: Executing '/usr/sbin/pppd call synce-device'
Aug  8 17:44:35 servitux pppd[3907]: pppd 2.4.2 started by root, uid 0
Aug  8 17:44:36 servitux pppd[3907]: Serial connection established.
Aug  8 17:44:36 servitux pppd[3907]: Using interface ppp0
Aug  8 17:44:36 servitux pppd[3907]: Connect: ppp0 <--> /dev/ttyUSB0
Aug  8 17:44:37 servitux pppd[3907]: kernel does not support PPP filtering
Aug  8 17:44:37 servitux kernel: PPP BSD Compression module registered
Aug  8 17:44:37 servitux kernel: PPP Deflate Compression module registered
Aug  8 17:44:37 servitux pppd[3907]: Cannot determine ethernet address for proxy ARP
Aug  8 17:44:37 servitux pppd[3907]: local  IP address 192.168.131.102
Aug  8 17:44:37 servitux pppd[3907]: remote IP address 192.168.131.201
Aug  8 17:44:38 servitux dccm[1855]: accepted connection with file descriptor 5
Aug  8 17:44:38 servitux dccm[1855]: Connection from 192.168.131.201 accepted
Aug  8 17:44:38 servitux dccm[1855]: this is a password challenge
Aug  8 17:44:38 servitux dccm[1855]: Talking to 'iPAQ', a PocketPC device of type hp iPAQ h4150
Aug  8 17:44:38 servitux dccm[1855]: password reply = 0x0001 (1)
Aug  8 17:44:38 servitux dccm[1855]: Password was correct!

Si todo ha funcionado bien, tendremos un nuevo interfaz de red:

# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.131.102  P-t-P:192.168.131.201  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:70 errors:0 dropped:0 overruns:0 frame:0
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:4016 (3.9 KiB)  TX bytes:4155 (4.0 KiB)

Una vez establecida la conexión, ya se puede sincronizar. Si no deseas configurar la sincronización por bluetooth sáltate el siguiente punto y ves al último, "Sincronizando"

Configurando la conexión por Bluetooth


Primero instalamos los paquetes necesarios:

# apt-get install bluez-hcidump bluez-pin bluez-utils

Para configurar la conexión por Bluetooth debemos editar el fichero /etc/bluetooth/hcid.conf y dejarlo más o menos así:

options {
        autoinit yes;
        security auto;
        pairing multi;
        pin_helper /usr/bin/bluez-pin;
}

device {
        name "%h-%d";
        class 0x108;
        iscan enable;
        pscan enable;
        lm accept,master;
        lp rswitch,hold,sniff,park;
        auth enable;
}

En el fichero /etc/bluetooth/pin debemos poner el número secreto de acceso a la iPAQ.

Ahora vamos a configurar el fichero /etc/bluetooth/rfcomm.conf. Este podría ser un ejemplo:

rfcomm0 {
        bind yes;
        device 08:00:28:A8:58:10;
        channel 1;
        comment "Serial Port 1";
}

Veamos de dónde salen esos parámetros:
  • La linea "device" especifica la MAC de la iPAQ
  • La linea "channel" especifica el canal de la iPAQ en el que se encuentra el puerto serie.
Para averiguar los datos necesarios hay que encender el bluetooth en la iPAQ, y desde el Linux ejecutar el comando sdptool browse:

$ sdptool browse
Inquiring ...
Browsing 08:00:28:A8:58:10 ...
Service Name: Generic Serial
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Serial Port" (0x1101)
    Version: 0x0100
[...]

Y ahora configuramos la conexión PPP. Para ello creamos un fichero llamado /etc/ppp/peers/dun que contiene esto:

nodefaultroute
noauth
local
192.168.131.102:192.168.131.201
ms-dns 192.168.131.102
linkname synce-device

Cambia las IPs si lo ves necesario.

Por último solo nos queda activa el servicio de sincronización en la máquina Linux, con los comandos:

# dund --listen --msdun call dun
# sdptool add SP

Y como usuario ejecutamos el demonio que controla las conexiones:

$ dccm -p XXXX

Recuerda, XXXX es la clave de acceso a la iPAQ.

Configurando la iPAQ


Para configurar la iPAQ debemos seguir estos pasos:
  • Activa el bluetooth
  • Ir a "Bluetooth Manager"
  • Pulsa en "New"
  • Pulsar en "ActiveSync via Bluetooth"
  • Leemos y le damos a "Next"
  • Volvemos a leer y le damos otra vez a "Next"
  • Ahora veremos una lista de sistemas remotos que permiten sincronizar. Debe salir el PC que hemos configurado. Pulsamos en él.
  • La iPAQ se conectará y nos dará opción de crear una conexión segura. Marcamos la casilla.
  • Pulsamos en "Finish". Ya tenemos la conexión configurada.
Veremos que sale algo así en el /var/log/syslog

Aug 15 11:28:42 servitux hcid[1831]: link_key_request (sba=00:80:5A:20:69:1F, dba=08:00:28:A8:58:10)
Aug 15 11:28:44 servitux dund[2547]: New connection from 08:00:28:A8:58:10
Aug 15 11:28:44 servitux pppd[2552]: pppd 2.4.2 started by root, uid 0
Aug 15 11:28:44 servitux pppd[2552]: Using interface ppp0
Aug 15 11:28:44 servitux pppd[2552]: Connect: ppp0 <--> /dev/rfcomm1
Aug 15 11:28:47 servitux pppd[2552]: kernel does not support PPP filtering
Aug 15 11:28:47 servitux kernel: PPP BSD Compression module registered
Aug 15 11:28:47 servitux kernel: PPP Deflate Compression module registered
Aug 15 11:28:48 servitux pppd[2552]: Cannot determine ethernet address for proxy ARP
Aug 15 11:28:48 servitux pppd[2552]: local  IP address 192.168.131.102
Aug 15 11:28:48 servitux pppd[2552]: remote IP address 192.168.131.201
Aug 15 11:28:49 servitux dccm[1886]: accepted connection with file descriptor 5
Aug 15 11:28:49 servitux dccm[1886]: Connection from 192.168.131.201 accepted
Aug 15 11:28:49 servitux dccm[1886]: this is a password challenge
Aug 15 11:28:49 servitux dccm[1886]: Talking to 'iPAQ', a PocketPC device of type hp iPAQ h4150
Aug 15 11:28:49 servitux dccm[1886]: password reply = 0x0001 (1)
Aug 15 11:28:49 servitux dccm[1886]: Password was correct!

Sincronizando


El programa multisync sirve para sincronizar mediante USB o Bluetooth.

Ahora que ya tenemos conexión, ejecutamos el comando multisync desde un xterm , y lo configuramos:
  • Pulsamos en "New"
  • En la pestaña "Plugins" seleccionamos "Synce Plugin" como primer plugin, y "Evolution Plugin" como segundo plugin.
  • En "Display Name" escribimos una palabra que defina esa conexión, por ejemplo "Conexión IPAQ"
  • En la pestaña "Syncronize options" podemos bajar el tiempo entre actualizaciones, ya que por defecto es cada 60 minutos.
  • El resto de opciones las dejamos por defecto y pulsamos "Aceptar"
Una vez hecho esto, pulsamos el botón "Sync" y se debe sincronizar la iPaq y el Evolution.

Para terminar, cerraremos el multisync, y en la iPAQ ejecutamos el "ActiveSync" y pulsamos en "Stop". Así se cerrará la conexión de manera correcta.

Enlaces de interés

  Last modified: Thu, 22 December 2016  Contenidos © ServiTux Servicios Informáticos