( Présentation ,  installation , configuration , utilisation )

Dernière modification 1 avril 2007

Assistant personnel (PDA)

Présentation

Cette page montre comment piloter le PDA via KDE avec une configuration basée sur kubuntu, pour cela on utilise SynCE qui va permettre de:
- de naviguer dans l'arborescence interne du PDA et transférer des fichiers dans les deux sens (du PDA vers le poste linux et vice-versa)
- d'installer des softs sur le PDA (fichier CAB uniquement)
- d'avoir une image miroir du PDA pour pouvoir le piloter à distance
- de connecter plusieurs PDA en même temps
- de donner un accès internet au PDA
- de faire une synchro avec AvantGo qui permet de récupérer sur le net des articles de sites (Le Monde, Eurosport, ...) pour une lecture offline
- de faire une synchro de l'agenda, des contacts et des tâches avec la suite korganizer

Pour mes manips j'utilise un Acer n30 doté de Windows Mobile 2003 avec un processeur ARM.

Pour une intégration sous gnome avec evolution, j'ai trouvé la page suivante http://forum.ubuntu-fr.org/viewtopic.php?id=44245


[Retour haut de la page ]

Installation

Pour l'installation on peut se contenter d'installer les packages officiels de l'ubuntu mais ils sont désespérément bogués, pas moyen de configurer le PDA, j'ai une erreur du style Wrong library dès qu'on cherche à synchroniser les contacts. Du coup j'ai du réinstaller à partir des sources, on installera d'abord les bibliothèques suivantes


sudo apt-get install libunshield-dev
sudo apt-get install libdynamite-dev
sudo apt-get install liborange-dev
sudo apt-get install libmimedir-dev
sudo apt-get install kdepim-dev
sudo apt-get install python-pyrex
sudo apt-get install dbus
sudo apt-get install libdbus-glib-1-dev
sudo apt-get install libhal-dev libusb-dev


avec les dépendances cela permet d'installer les bibliothèques qui vont bien. On veillera à installer la suite korganizer qui nous permettra sur le PC de stocker nos contacts, nos tâches et notre agenda.

tar xvfz synce-serial-0.10.0.tar.gz
tar xvfz synce-libsynce-0.10.0.tar.gz
tar xvfz synce-librapi2-0.10.0.tar.gz
tar xvfz synce-librapi2-0.10.0.tar.gz
/etc/ld.so.conf
/usr/local/lib/python2.5/site-packages
tar xvfz synce-odccm-0.10.0.tar.gz

tar xvfz synce-usb-rndis-lite-0.10.0.tar.gz
make
tar xvfz synce-usb-rndis-ng-0.10.0.tar.gz
./autogen.sh
./configure --enable-hal


Maintenant on doit définir la connexion entre le PC et le PDA en tapant

synce-serial-config /dev/ttyUSB0 192.168.131.102:192.168.131.201 212.27.54.252

Avec dans l'ordre le fichier spécial du port USB, la première adresse 192.168.131.102 est l'adresse PPP du PC et 192.168.131.201 l'adresse du PDA on trouve ensuite l'adresse IP du serveur DNS, je n'ai pas réussi à trouver la syntaxe pour saisir deux serveurs DNS. 

Pour info ces informations vont se retrouver dans le fichier /etc/ppp/peers/synce-device, voici son contenu

# Modifications to this file will be lost next time you run synce-serial-config
/dev/ttyUSB0 115200
connect '/usr/local/libexec/synce-serial-chat'
nodefaultroute
noauth
local
192.168.131.102:192.168.131.201
ms-dns 212.27.54.252
crtscts
linkname synce-device

Ensuite sur cette page http://synce.sourceforge.net/synce/kde/synce-kde-install-source.php on récupérera le plugin pour AvantGo qu'on décompresse en tapant

tar xvfz agsync-0.2-pre.tgz

Cela donne le répertoire agsync-0.2-pre dans lequel on tape tout simplement

make

Maintenant toujours à partir de la même page on récupère synce-kde qu'on décompresse en tapant

tar xvfz synce-kde-0.9.1.tar.gz

Cela donne le répertoire synce-kde-0.9.1 dans lequel on tape

./configure --with-agsync=/usr/local/linux/pda/agsync-0.2-pre

vous devez indiquer le chemin absolu du module AvantGo, on tape ensuite

make

Puis en tant que root

make install

Sur la même page on récupère syncekonnector, qu'on décompresse en tapant

tar xvfz syncekonnector-0.3.2.tar.gz

Cela donne le répertoire syncekonnector-0.3.2 dans lequel on tape successivement

./configure
make

j'ai droit à l'erreur suivante

./synceengine.h:89: error: extra qualification 'KSync::SynCEEngine::' on member 'templateSyncee'

Il suffit d'éditer le fichier ./librakikpimsync/synceengine.h à la ligne 89 au lieu

    template<class T> T  *SynCEEngine::templateSyncee(SynceeList *synceeList) const;

on écrit

    template<class T> T  *templateSyncee(SynceeList *synceeList) const;

On retape make puis en tant que root make install

[Retour haut de la page ]

Configuration

On va faire en sorte que le PDA soit monté à chaud, on crée le fichier suivant

/etc/udev/rules.d/10-ipaq.rules

dans lequel on va trouver

# udev rules file for SynCE
BUS!=="usb", ACTION!=="add", KERNEL!=="ttyUSB*", GOTO=="synce_rules_end"
# Establish the connection
RUN+="/usr/bin/synce-serial-start"
LABEL="synce_rules_end"

Maintenant on doit indiquer le type du PDA dans le fichier /etc/modprobe.d/synce pour cela si on tape lsusb on obtient

Bus 002 Device 002: ID 0502:16e3 Acer, Inc.

0502 correspond à la marque (vendeur), et 16e3 au type (produit) du matériel, voilà donc ce qu'on indiquera dans le fichier synce

options ipaq vendor=0502 product=16e3

Sur le PDA on se contentera d'aller dans le menu

Démarrer->Paramètres->Onglet Connexions->Connexions->Onglet Avancés->Bouton Sélectionner des réseaux, on doit avoir Réseau de bureau sélectionné que ce soit pour "les programmes qui se connectent à internet automatiquement" et "les programmes qui se connectent automatiquement à un réseau privé".

on relance udev en tapant

sudo /etc/init.d/udev restart

Pour AvantGo, créer un compte sur le site, récupérer l'exécutable, malheureusement pour la configuration du client AvantGo sur le PDA vous êtes obligés d'aller sous windows.

Maintenant on va activer l'IP forwarding sur le PC pour permettre l'accès à internet au PDA, on va créer le fichier /etc/init.d/rc.firewall qui contiendra

#!/bin/sh
# Load the NAT module (this pulls in all the others).
modprobe iptable_nat

# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

# In the NAT table (-t nat), Append a rule (-A) after routing (POSTROUTING)
# which says to MASQUERADE the connection (-j MASQUERADE).
iptables -t nat -A POSTROUTING -s 192.168.131.201 -j MASQUERADE

# Allows forwarding specifically to our LAN
iptables -A FORWARD -s 192.168.131.201 -j ACCEPT

Donnez des droits d'exécution

chmod 755 /etc/init.d/rc.firewall

pour que ce fichier soit appelé à chaque boot du PC, il faut rajouter tout à la fin du fichier /etc/rc.local (avant le exit)

/etc/init.d/rc.firewall

Executez le fichier rc.firewall. On va taper maintenant la commande visudo et rajouter la ligne suivante au fichier /etc/sudoers

olivier mobile= NOPASSWD:/sbin/iptables

Au lieu d'olivier vous devez mettre votre login courant (obtenu avec whoami) et au lieu de mobile le nom de votre machine (obtenu avec localhost)

maintenant on va lancer dans un shell la commande raki, raki est une applet de synce qui s'intègre dans l'environnement KDE. Branchez maintenant votre PDA, voilà le résultat dans le fichier /var/log/syslog

Apr  1 10:10:06 mobile kernel: [17188937.148000] usb 2-1: new full speed USB device using uhci_hcd and address 2
Apr  1 10:10:06 mobile kernel: [17188937.376000] usb 2-1: configuration #1 chosen from 1 choice
Apr  1 10:10:07 mobile kernel: [17188938.004000] usbcore: registered new driver usbserial
Apr  1 10:10:07 mobile kernel: [17188938.008000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Apr  1 10:10:07 mobile kernel: [17188938.008000] usbcore: registered new driver usbserial_generic
Apr  1 10:10:07 mobile kernel: [17188938.008000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
Apr  1 10:10:07 mobile kernel: [17188938.016000] drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
Apr  1 10:10:07 mobile kernel: [17188938.016000] drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5
Apr  1 10:10:07 mobile kernel: [17188938.020000] ipaq 2-1:1.0: PocketPC PDA converter detected
Apr  1 10:10:07 mobile kernel: [17188938.020000] usb 2-1: PocketPC PDA converter now attached to ttyUSB0
Apr  1 10:10:07 mobile kernel: [17188938.020000] usbcore: registered new driver ipaq
Apr  1 10:10:08 mobile kernel: [17188939.120000] ip_tables: (C) 2000-2006 Netfilter Core Team
Apr  1 10:10:08 mobile synce-serial-start: Executing '/usr/sbin/pppd call synce-device'
Apr  1 10:10:08 mobile last message repeated 4 times
Apr  1 10:10:08 mobile pppd[14954]: pppd 2.4.4 started by root, uid 0
Apr  1 10:10:09 mobile pppd[14954]: Serial connection established.
Apr  1 10:10:09 mobile pppd[14954]: Using interface ppp0
Apr  1 10:10:09 mobile pppd[14954]: Connect: ppp0 <--> /dev/ttyUSB0
Apr  1 10:10:10 mobile kernel: [17188941.212000] PPP BSD Compression module registered
Apr  1 10:10:10 mobile kernel: [17188941.288000] PPP Deflate Compression module registered
Apr  1 10:10:10 mobile pppd[14954]: Cannot determine ethernet address for proxy ARP
Apr  1 10:10:10 mobile pppd[14954]: local  IP address 192.168.131.102
Apr  1 10:10:16 mobile kernel: [17188947.100000] Netfilter messages via NETLINK v0.30.
Apr  1 10:10:16 mobile kernel: [17188947.132000] ip_conntrack version 2.4 (4094 buckets, 32752 max) - 224 bytes per conntrack

à noter que j'ai le module ipaq qui s'est chargé automatiquement, d'ailleurs quand je tape lsmod j'obtiens

ipaq                   33940  1
usbserial              34152  3 ipaq
usbcore               134912  6 ipaq,usbserial,usbhid,ehci_hcd,uhci_hcd

et voilà le résultat dans le shell de raki

raki: IP: 192.168.131.201
raki: OsVersion: 5380
raki: RRA-Connect
raki: Ende PDA::init()
raki: Connecting to the device ...
raki: Matchmaker-Connect
raki: success
raki: Reading from device ....
raki:     get partnership with index 1 ...
raki:     success
raki:         matching!
raki: finished
raki: Matching partnership found ...
raki:     Trying to make it valid on the Device ...
raki:         success!
raki: Matchmaker-Disconnect
raki: Nom : AvantGo Synchronizer; Library: rakiagsync
raki: Nom : Appointment Synchronizer; Library: librakikpimsync
raki: ... init
raki: Subscribing Events ...
raki: Nom : Contact Synchronizer; Library: librakikpimsync
raki: ... init
raki: Subscribing Contacts ...
raki: Nom : Task Synchronizer; Library: librakikpimsync
raki: ... init
raki: Subscribing Todos ...
raki: End PDA::syncronizationTasks()
kresources: ERROR: ManagerImpl::readResourceConfig: mFactory is 0. Did the app forget to call readConfig?
raki: ERROR: Received DCOP: resource added for unknown resource 2zr6OjuMqa
raki: Masqueraded route created

vous noterez la petite icône  dans la barre de tâche, elle est multicolore quand le PDA est branché et grise s'il est déconnecté. Pour configurer raki, cliquer avec le bouton droit puis Configure




Il faut cocher la case pour lancer vdccm qui est un daemon qui pilote la connexion avec le PDA, il faut également bien saisir le chemin d'iptables.

On  va configurer maintenant le PDA lui même pour paramètrer ce qu'on veut synchroniser, en cliquant sur l'icône de raki->pocket_pc->Configurer pocket_pc



Cliquez sur Enable Masquerading pour pouvoir se connecter sur internet et permettre l'utilisation d'AvantGo.
Cochez ensuite Appointement (agenda), Contact et Task (tâche), pour chacun de ces trois types de synchronisation, vous devez cliquer en plus sur le bouton Config



Il suffit de cliquer sur Select from Existing, il trouvera de lui même le fichier qui va bien. Chez moi la synchronisation d'AvantGo ne fonctionne pas, j'ai l'erreur suivante

raki: Failed to retrieve device information!
raki: Beginning synchonization attempt on server.

du coup j'ai décoché la case AvantGo connect et je lance la synchronisation du PDA et cela marche.

Pour terminer à noter la commande synce-pstatus qui permet d'avoir des infos sur le PDA, voilà le résultat

Version
=======
Version:    4.21.1088 (Microsoft Windows Mobile 2003 Pocket PC Phone Edition)
Platform:   3 (Windows CE)
Details:    ""

System
======
Processor architecture: 5 (ARM)
Processor type:         2577 (StrongARM)
Page size:              0x10000

Power
=====
ACLineStatus: 00 (Offline)

Status for main battery
=========================
Flag:          1 (High)
LifePercent:   74%
LifeTime:      Unknown
FullLifeTime:  Unknown

Status for backup battery
=========================
Flag:          255 (Unknown)
LifePercent:   Unknown
LifeTime:      Unknown
FullLifeTime:  Unknown

Store
=====
Store size: 28766208 bytes (27 megabytes)
Free space: 28160596 bytes (26 megabytes)

Memory for storage: 28835840 bytes (27 megabytes)
Memory for RAM:     28835840 bytes (27 megabytes)

C'est fait nous avons terminé la configuration !

[Retour haut de la page ]

Utilisation

Voilà quelques screenshots de l'utilisation de l'ensemble, KCeMirror permet d'avoir une image miroir du PDA, voilà une page d'AvantGo



Et voilà quand on surfe avec le net sur funix !



Voilà quand on se balade dans l'arborescence (icône raki->pocket_pc->Open rapip://pocket_pc/)



pour synchroniser il suffit de cliquer sur l'icône raki->pocket_pc->Synchronize
 
[Retour page d'accueil FUNIX] [Retour haut de la page ]