PDA Assistant personnel
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
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
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
![](images/palm/raki.jpg)
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 !
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