Palm et Linux II :Synchroniser son Visor sous Linux sur USB
v1.0 - mar 2001 v1.1 - juin 2001
federico GONZALEZ
gonzalez.federico@free.fr
Ou quoi faire pour synchroniser son palm sous GNU/Linux
Remarque préalable : Ce document s'intéresse à
la synchronisation d'une machine tournant sous Palm OS ( ie : Visor DeLuxe,
Visor Prism, Visor Platinum; etc... ) et branchée sur un port USB
( remarque : les palm m500 et m505 ne sont pas supportés encore
sur le port USB mais en passant par un craddle série, tout marche
correctement ). Pour les machines branchées sur port série,
veuillez cliquer sur le lien suivant :
machines
sur port série et Linux
NB : afin de nous mettre d'accord et que les commandes soient claires
pour vous, je précise que l'invite de l'ordinateur sera unix$.
Dans mon ordinateur, lorsque je suis dans mon répertoire personnel
(/home/federico) alors l'invite unix$ correspond à [federico@ouranos
federico] $.
Rappel : pour connaitre le chemin exact du répertoire courant,
la commande pwd vous permet d'afficher ce chemin.
Nous ferons aussi la différence entre l'utilisateur normal unix$
qui a un accès réduit à la machine et le super-utilisateur
(root) qui a droit de vie et de mort sur la machine unix#.
Remarque importante : Sur le CD de la distribution mandrake, les paquetages
se trouvent dans le répertoire :
/mnt/cdrom/Mandrake/RPMS ( pour le CD1 ) et /mnt/cdrom/Mandrake/RPMS2
( pour le CD 2 ).
ajout 15/06/2001 : Je précise que le matériel testé
ici est le suivant : un ordinateur portable Toshiba© satellite Pro
4290, un visor DeLuxe (PalmOS 3.1.H3) sur craddle USB, un visor Platinum
(PalmOS 3.5.2H) sur craddle USB ( le même que le DeLuxe ) et GNU/Linux
Mandrake 7.2. - Ce Document a été en partie réalisé
sous Netscape Composer et sous Gvim le tout sous XFCE3/ICEWm. Dans ce document
je ne traite pas du Visor Prism ni du Edge puisque je ne les ai pas. Par
contre, si un lecteur a quant à lui un tel Visor et le synchronise
par cette méthode, alors il peut m'envoyer un petit mail pour me
prévenir, j'ajouterai à ce document son expérience...
ajout du 24/12/2001 : Etant passé à une mandrake 8.1 (
ça m'évite d'avoir à transporter un CD rien que pour
le serveur graphique SVGA qui supporte ma carte graphique ), je me suis
trouvé confronté à devfs et à l'impossibilité
de synchoniser mon visor autrement qu'en étant root. J'ai cherché
( et trouvé ) la solution en errant dans le répertoire /etc.
Tout ce qu'il faut savoir ( après avoir lu cette page ci ) afin
de synchroniser un visor sur le port usb lorsque devfsd ( le démon
de devfs ) est activé en cliquant ici
!
0 - Préalable
Au préalable, il faut d'abord vérifier que le système
contient les éléments suivants :
-
Un PC tournant sous Linux et ayant un port USB libre
-
Un organiseur tournant sous PalmOS de marque HANDSPRING ( Visor DeLuxe
ou Platinum
-
Une station d'accueil sur port USB
-
Le CD#1 de la distribution Mandrake 7.2, distribution avec laquelle j'ai
fait mes tests, et qui contient le kernel 2.2.17.
1 - Vérification du matériel
Il faut avoir le matériel suivant :
-
Un ordinateur avec Linux dessus et un port USB libre
-
Une version de linux avec un noyau ( kernel ) supérieur ou égale
à 2.2.17
-
Un organiseur de poche sous PalmOS (exepté les m50x) se connectant
avec une station d'accueil sur port USB.
-
Une station d'accueil USB.
2 - Configuration du noyau
Avant toute chose il faut aller voir dans le répertoire /lib/modules/2.yy.xx/usb
si les modules suivant sont disponibles :
-
usbcore.o
-
usb-uhci.o
-
usbserial.o
-
visor.o
En effet ce seront les modules que nous devront charger dans le noyau pour
que la synchronisation puisse fonctionner.
Pour cela logguons nous en tant que root :
unix$ su
et on obtient ( après entrée du mot de passe de root
) :
unix#
puis tapons la commande lsmod pour savoir quels sont les modules
déjà chargés en mémoire ( NB : il se peut qu'il
y en ait beaucoup, donc redirigeons la sortie de la commande vers l'éditeur
less
afin de pourvoir scroller verticalement avec les flèches haut/bas
)
unix# lsmod | less
la liste des modules s'affiche alors, pour exemple, voici ce que j'obtiens
sur le portable à partir duquel je fait mes tests :
Module
Size Used by
serial_cs
5456 0 (unused)
irda
80304 1
autofs
9456 2 (autoclean)
snd-pcm-oss
16848 0
snd-pcm-plugin
13040 0 [snd-pcm-oss]
snd-mixer-oss
4288 0 [snd-pcm-oss]
snd-card-ymfpci
3872 0
snd-mpu401-uart
2368 0 [snd-card-ymfpci]
snd-rawmidi
9728 0 [snd-mpu401-uart]
snd-seq-device
3488 0 [snd-rawmidi]
snd-ymfpci
34688 0 [snd-card-ymfpci]
snd-pcm
29792 0 [snd-pcm-oss snd-pcm-plugin snd-ymfpci]
snd-ac97-codec
24032 0 [snd-ymfpci]
snd-mixer
23536 0 [snd-mixer-oss snd-ymfpci snd-ac97-codec]
snd-opl3
4336 0 [snd-card-ymfpci]
snd-timer
8192 0 [snd-pcm snd-opl3]
snd-hwdep
3056 0 [snd-opl3]
snd
37008 1 [snd-pcm-oss snd-pcm-plugin snd-mixer-oss snd-card-ymfpci
snd-mpu401-uart snd-rawmidi snd-seq-device snd-ymfpci snd-pcm snd-ac97-codec
snd-mixer snd-opl3 snd-timer snd-hwdep]
soundcore
2800 6 [snd]
ds
6448 2 [serial_cs]
i82365
22928 2
pcmcia_core
45984 0 [serial_cs ds i82365]
nls_cp437
3952 2 (autoclean)
vfat
9408 1 (autoclean)
fat
30432 1 (autoclean) [vfat]
supermount
14224 2 (autoclean)
visor
6464 0 (unused)
usbserial
18544 0 [visor]
usb-uhci
19184 0 (unused)
usbcore
43632 1 [visor usbserial usb-uhci]
comme vous pouvez le constater ( caractères gras ) les modules
sont déjà installés dans mon cas. Maintenant nous
allons voir comment charger ces mêmes modules dans vos noyaux. Pour
ce, nous allons les charcher dans l'ordre ( NB : si certains de ces modules
sont déjà installés, il n'est pas la peine de les
réinstaller ). Commençons par celui qui va prendre en charge
le bus usb :
unix# modprobe usbcore
puis celui qui transforme le port usb en port série pour communiquer
avec la machine sous PalmOS :
unix# modprobe usb-uhci et
unix# modprobe usbserial
puis le module spécifique pour communiquer avec le visor
unix# modprobe visor
vous remarquerez que bien que chaque module porte l'exension .o lorsque
l'on tape la commande, on ne l'écrit pas. Dès lors, ces modules
sont intégrés et chargés dans le noyau. On peut donc
maintenant communiquer avec le Visor.
Remarques : Dans la distribution mandrake j'ai fait exactement ceci
et quelle ne fut pas ma surprise lorsqu'au redémarrage suivant,
ces modules n'étaient pas intégrés au noyau ! Lecture
de la documentation, divers essais, et j'ai finalement vu que certains
modules étaient chargés dans un fichier spécial afin
que le système les réintègre dans le noyau à
chaque demarrage.
Ce fichier est /etc/modules. Il suffit donc d'ouvrir ce fichier
avec un éditeur ( emacs ou vi ) et d'écrire ne nom de chaque
module dans l'ordre d'installation :
exemple de fichier /etc/modules
bttv
usbcore
usb-uhci
usbserial
visor
rappel : ce fichier étant dans le répertoire /etc/, seul
root y a accès.
PS : n'oubliez pas de vous renseigner sur comment utiliser emacs ou
vi avec les pages de manuel.
NB : si le module est usb-ohci, alors il faut vous adresser à
d'autres pages en plus de la mienne si jamais cela ne marche pas.
Une fois ces modules chargés, il suffit de continuer la configuration
du système.
3 - Configuration du système
La distribution que j'utilise est ici la Mandrake 7.2. A l'heure où
vous lirez ces pages, il est plus que possible que les distributions dans
le commerce commencent à intégrer le noyau 2.4.3 ( j'entends
parler de la MDK 8.0 (traktopel) ou de la SuSE 7.1 ). En effet, dans cette
distribution , les ports usb sont désigné dans le répertoire
/dev par /dev/ttyUSB* avec * variant de 0 à 15. Dans les noyaux
2.4.X il est possible d'utiliser un autre système de fichier nommé
devfs
qui est complètement différent et que je n'ai jamais utilisé
pour l'heure.
Mais contrairement à ce qui se passe pour les ports séries
où /dev/ttyS0 = COM 1, ici le port /dev/ttyUSB0 désigne un
port générique. Si bien qu'aucune synchronisation ne se fera
sur ce port. Si votre Visor est sur le port USB1, alors sous linux, il
sera accessible par le port /dev/ttyUSB1.
Autorisons donc tous les utilisateurs(trices) à écrire
sur ce port, il faut faire cette maniupulation sour l'identité root
:
unix# chmod 666 /dev/ttyUSB1
4 - vérification de la communication
Première chose à faire : vérifier l'installation du
paquetage pilot-link
unix$ rpm -q pilot-link
si la réponse est négative, il faut l'installer :
rpm -ivh /mnt/cdrom/Mandrake/RPMS/pilot-link-xxxx.rpm
PS : pour les utilisateurs de debian le paquetage est donc pilot-link****.deb
et s'installer par
unix# apt-get install
pilot-link
ou par
dpkg pilot-link
NB : Le paquetage pilot-link contient de nombreux outils de communication
entre les machines sous palm et linux. Pour plus d'informations unix$
man pilot-link
En tant que simple utilisateur, il faut maintenant vérifier que
la connexion s'effectue sans aucun problème. Comme nous avons un
peu de temps ( à perdre ? ) autant faire un backup complet ! Restons
dans ( ou ouvrons ) un terminal, et en mode texte :
N'oubliez pas de remplacer "Mon_Login" par votre propre login.
unix$ mkdir /home/Mon_Login/MonVisor
puis tapez la seconde ligne sans valider la commande :
unix$ pilot-xfer -p /dev/ttyUSB1 -b /home/Mon_Login/MonVisor
Une fois cette commande tapée mais
non validée, appuyez sur le bouton HotSync et attendez 2 secondes
avant de valider la ligne ci-dessus. Et voilà, le backup
s'initialise.
PS : Cette sauvegarde peut être longue ( car la valeur par défaut
de la variable PILOTRATE=9600 ) et même s'interrompre en cours de
route ou afficher des codes Hexa à l'écran. Mais en tout
cas, si elle s'effectue, cela prouvera que la communication est établie.
Pour modifier la valeur de la vitesse de transfert, il suffit de taper
la commande :
unix$ export PILOTRATE=XXXXX où XXXXX est la
vitesse de transfert des données ( personnellement j'utilise 57600
).
Pour la suite, il s'agit de configurer J-Pilot
5 - configuration de l'interface graphique de synchronisation.
Arrivé(e) ici, il nous faut choisir et configurer notre interface
graphique. Je vous propose parmi les choix suivants :
-
kpilot
-
jpilot
-
gnome-pilot
-
pilot manager
d'installer jpilot pour plusieurs raisons :
-
il est très semblable à Palm Desktop.
-
Les plug-in mail et syncMAL pour la synchronisation AvantGo
-
il n'est lié qu'à GTk+ et la Glibc, mais en aucun cas à
gnome ou kde
-
bien qu'en version 0.98.1 sur ma machine, il n'a (presque) jamais planté
B^) ( Pour les possesseurs de la Mandrake 8.0 version download, jpilot
y est en version 0.99, mais les plug-in n'y sont pas, il vous faudra les
télécharger à http://www.rpmfind.net
par exemple.
Aussi regardons de près les autres paquetages à installer
puisque le fait d'installer sans que cela provoque d'erreurs.
En mode console :
linux$ su
linux# rpm -ivh jpilot-0.98.1-5mdk.rpm
linux# rpm -ivh jpilot-Mail-0.0.3-1mdk.rpm
linux# rpm -ivh jpilot-syncmal-0.52-2mdk.rpm
quittons :
linux# exit
linux$ exit
lançons ensuite l'interface graphique ( si elle ne l'est pas
déjà ).
là lançons jpilot
-
soit dans le menu : Programmes/Applications/Communication/jpilot
-
soit depuis une console en tapant : linux$ jpilot &
Voilà l'interface qui se lance. Commençons par la configurer.
(Menu File > Preferences )
là une fenêtre s'ouvre, elle laisse les choix suivants
:
( Notons que les dates et heures prises comme exemple sont les dates
et heures actuelles )
-
Short date format : format de date court, j'ai laissé 18/04/01
-
Long date format : format de date long, j'ai mis 19 avril 2001
-
Time format : format de l'heure, là c'est le choix 15:05
-
The first day of the week is : choix du 1er jour de semaine, moi c'est
Monday B^)
-
My GTK colors file is : choix de l'apparence ( gris = jpilotrc.default;
métal=jpilotrc.steel; pourpre=jpilotrc.purple; vert=jpilotrc.green;
bleu=jpilotrc.blue ) Notons aussi que ce changement de couleur ne s'applique
que lorsque l'on redémarre jpilot !
-
Serial Port : choix du port. Voir note plus haut, pour moi c'est USB1 donc
j'ai marqué /dev/ttyUSB1
-
Serial Rate : vitesse de communication, ici j'ai pris 57600 bps, mais le
choix varie en fonction du BIOS, sur mes machines cela va de 300 bps à
460800 bps.
-
Number of backups to be archived : nombre de backups archivés. Jpilot
lorsqu'on utilise le bouton "Backup" de l'interface commence par faire
une synchronisation puis un backup complet des bases de données
du palm en les stockant dans /home/MonLogin/.jpilot/XXXXXXX où XXXXXXX
est un numéro qui augmente au cours du temps. Le dernier backup
est quant à lui repéré par un lien backup qui se trouve
dans /home/MonLogin/.jpilot/backup
Puis viennent une série de cases à cocher ou non ( ils sont
assez clair à mon avis et en plus je n'y ai jamais touché
:
-
Show deleted records ( default NO )
-
Show modified deleted records ( default NO )
-
coché = Highlight calendar days with appointments, très pratique
dans l'agenda pour savoir si un jour contient ou non des rendez-vous.
-
Use DateBk3 note tags
-
Enfin la touche "Done" pour valider vos choix !
Nous sommes prêts à utiliser jpilot ! Vous avez ensuite la
liberté d'utiliser les différents plug-in qui sont accessible
dans le menu Plugins (qui apparaît si vous en installez. Celui
que j'utilise actuellemnt est le plugin syncMAL ( pour la
synchronisation des channels AvantGo ) mais il existe le plug-in mail
et aussi le plug-in expense si je ne me trompe.
5 - liens utiles et remerciements
Ce mini document est tiré de mon expérience personnelle,
il est librement redistribuable selon les termes de la licence
GNU. Je vous recommande également vivement la lecture des (mini-)HOWTO
concernant ce sujet. Si des erreurs sont présentes dans ce document,
vous êtes chaudement invité à me le faire savoir grâce
à ce
lien.
Dernière astuce : lorsque vous voudrez synchroniser
votre visor sous linux, n'oubliez pas d'appuyer sur le bouton de hotsync
3 ou 4 secondes avant de valider la commande de synchronisation, ou de
backup ou de communication. De même sous jpilot, il faut toujours
appuyer sur le hotsync 2 ou 3 secondes avant d'appuyer sur "sync" ou sur
"backup" ! ( mais pas 6 ou 7 secondes après, vous obtiendriez
une erreur ! )
Bonnes synchros ! Et bon nux.
fede. B^)
Modification #1 : Ce document ne fonctionne pas pour les m50x comme
me l'a confirmé un mail de XXXXX. Je suppose fortement que cela
provient du fait que le module visor.o de la distribution mandrake 7.2
n'est écrit que pour les machines de Handspring. Deux possibilités
s'offrent à nous : soit passer par un craddle série ( donc
revoir la page sur palm et linux ) soit trouver sur le net un module plus
récent gérant les nouvelles machines de palmOS (m100 / m105
/ m500 / m505 ) qui se branchent sur les port séries.
Modification #2 : Les discussions que j'ai pu avoir sur le channel irc.openprojects.net:6667#palmchat
m'ont renseigné sur le pourquoi de la non synchronisation des m50x
avec Linux : ces deux modèles ne sont pas supportés. Cependant
des essais fructueux ont été réalisés avec
un craddle série ( acheté à Palmshop - rue Brey à
Paris ) il suffit simplement de brancher le Palm sur le port série
et ( astuce ) d'appuyer sur le bouton hotsync 1 petite seconde avant de
valider la commande quelle qu'elle soit !