LE 3COM PALMPILOT ET LINUX

Parmi les divers PADs comme le Newton, les Pocket-computers sous Windows CE ou les Psion, l'un d'entre eux se place un peu à part : le Palm Pilot de 3Com/US Robotics. Sa grande popularité est dûe entre autre à son prix moins élevé, sa petite taille (4,7x3,2x0,7 pouces) et surtout au nombre important de logiciels fonctionnant avec. Il n'est donc pas étonnant que le PalmPilot bénéficie de l'intérêt des utilisateurs/développeurs Linux.

 

LE MATERIEL

Un PalmPilot se présente sous la forme d'un écran tactile monochrome à cristaux liquides rétro-éclairé. Il est équipé en plus, de huit boutons permettant de l'allumer, d'appeler des applications favorites et de faire défiler les choix à l'écran. Dans sa configuration d'origine, il intègre diverses applications, un carnet d'adresses, un gestionnaire de rendez-vous, un bloc note, une calculatrice, etc... Mais par le biais d'InterNet, il est possible de lui adjoindre tout un tas d'utilitaires divers. A l'heure où nous écrivons ses lignes, il se décline en deux versions. La première, le PalmPilot Personnel, possède 512 Ko de mémoire et la version Professionnelle en possède 1Mo. C'est là, la seule différence entre les deux versions. A l'achat, le PalmPilot est livré avec un socle permettant l'échange de données avec un ordinateur de bureau via un port série. Ce socle n'est, en fait, qu'un simple câble nul modem modifié. De ce fait, il n'est pas inexacte de dire que le connecteur présent en bas du PalmPilot est un port série puisqu'en outre, il permet la connexion d'un modem standard via un câble spécial. Les logiciels fournis dans la boîte par le constructeur sont exclusivement pour un environnement MS Windows. Les utilisateurs d'autres systèmes devront télécharger les programmes sur InterNet.

La variété d'applications pour PalmPilot disponibles sur le Net est énorme. Ces applications couvrent des domaines comme les mathématiques, l'électronique, la gestion, l'informatique, etc...

Les informations sur le produit et la manière de développer des applications sont également très présentes. On peut facilement trouver un grand nombre de documentations techniques sur le PalmPilot dans divers formats (DVI, PDF, PS, Text, etc...). Par là même, on peut dire que le PalmPilot, et en particulier PalmOS, est un système ouvert.

LOGICIELS LINUX

La personne possédant à la fois un PalmPilot et une machine de bureau sous Linux, cherchera en premier lieu un utilitaire de transfert. Ce logiciel, existe bien sûr et il se nomme Pilot-link. Il vous permettra, entre autre, de transférer des données entre PC et PalmPilot. Après compilation du package, vous trouverez une douzaine de programmes. Mais le plus utilisé est sans doute pilot-xfer pour ajouter et supprimer des "fichiers" dans la mémoire du PalmPilot. Le périphérique par défaut de ce package est /dev/pilot. Il est donc fortement conseillé de créer un lien symbolique entre /dev/cua1 (COM2) et /dev/pilot. Ceci vous évitera de définir systématiquement /dev/cua1 comme paramètre pour chaque programme. L'option -l de pilot-xfer vous permettra de lister les "fichiers" présents sur le PalmPilot. Les options -i et -d suivies du nom du fichier vous permettrons respectivement d'installer et de supprimer un "fichier".

PROBLEME DE PORT

Qu'arrive-t-il lorsqu'une souris est présente sur cua0 et un modem sur cua1 ? Une telle configuration oblige une gymnastique incessante entre les câbles. La meilleure solution est donc d'ajouter un port série à la machine. On peut trouver ce genre de chose sous la forme d'une carte ISA pour une centaine de francs. Une fois la carte enfichée dans son slot, il vous faudra la configurer sous Linux à l'aide de la commande setserial. Exemple :

setserial /dev/cua2 port 0x2E8 irq 10

Ceci paramétrera le device cua2 (COM3) avec une adresse en hexadécimale de 2E8 et une irq 10. Attention cependant à bien utiliser les mêmes paramètres que ceux définis à l'aide des cavaliers sur la carte ISA. Dans le cas contraire, votre nouveau port ne fonctionnera pas.

DEVELOPPEMENT

Le PalmPilot, dans sa boîte d'origine, est fourni avec une petite publicité pour des accessoires. Parmi eux, on pourra trouver un kit de développement en... Visual C++ (MS) et Metrowerks CodeWarrior pour Mac.

Heureusement, les gourous de la programmation libre se sont penchés sur le Palm OS et ont crée un cross-compilateur gcc. L'équipe de Jeff Dionne a crée un package nommé prc-tools. Nous avons testé la version 0.5.0. Celle-ci nécessite les packages GNU binutils-2.7.tar.gz, gcc-2.7.2.2.tar.gz et gdb-4.16.tar.gz. Le langage Perl et la bibliothèque libiberty.a sont également nécessaires pour un parfait fonctionnement des fichiers Make. Les packages cités plus haut seront décompactés par le Makefile, patchés, compilés et enfin, installés. De ce fait, il vous faudra quelques dizaines de mégaoctets disponibles.

Après compilation et installation par un make doeverything, vous trouverez, entre autre, les programmes suivants :

- obj-res prendra un exécutable mk68k-palmos-coff et créera le code, les données et les préférences qui seront inclus au fichier .prc
- pilrc convertit un fichier texte et produit une ressource binaire
- build-prc permettra de concaténer les différents fichiers de ressource binaire dans un fichier exécutable par le PalmPilot
- txt2bitm utilise une description d'un bitmap et en fera une ressource binaire de type icône
- libc.a et libc.sa. Des bibliothèques C standards (en version statique et partagée).
- libm.a est la bibliothèque mathématique en simple précision.
- libGlib.a est la bibliothèque de chargement dynamique

Nous avons fait sommairement le tour du package. Pour plus de renseignements sur le développement d'applications, vous trouverez un formidable tutorial sur le GNU Pilot SDK écrit par Andrew Howlett (voir référence InterNet).

EMULATEUR

Tout le monde n'est pas susceptible de vouloir dépenser les quelques 1500 francs nécessaires à l'acquisition d'un PalmPilot. Pour régler ce problème sans se priver de Palm OS, Ivan Curtis à créé Xcopilot.
Il s'agit d'un émulateur PalmPilot pour Xwindow. Attention cependant, à l'heure où nous écrivons ces lignes l'émulateur (v0.4) est encore en version Alpha et ne doit donc pas être considéré comme une application stable (voir README inclus au tar.gz).
Il vous permettra d'utiliser un PalmPilot virtuel à condition de se procurer une image binaire de la ROM d'un véritable PalmPilot.
Xcopilot sert également au test du package le plus étonnant :

µCLINUX
Sous ce nom se cache ni plus, ni moins un système Linux pour PalmPilot ! Il vous faudra les sources d'un kernel (ici 2.0.33), ainsi qu'une version du cross-compilateur gcc décrit plus haut.
Une fois les sources du kernel décompactées, il faudra les patcher avec le fichier diff fourni dans le package (attention : utilisez l'option -p0). Enfin, compilez les trois éléments du package (uC-libc, genromfs-kja-0.2 et xcopilot-v0.4-gdb) et vous pourrez tester µClinux avec xcopilot. Si, lors de la compilation vous rencontrez des erreurs, vérifiez les chemins dans les fichiers Makefile (nous avons eu le problème).
Si les travaux vont bon train, peut être que le PalmPilot sera le premier PAD sous Linux...

CONCLUSION

La preuve est faite qu'un produit intéressant pour l'utilisateur est immédiatement supporté par Linux. Les constructeurs comme 3Com semblent avoir compris que ce n'est pas en entourant leurs produits d'un flou commercial qu'ils deviennent populaires... a bon entendeur...
 

Online

ftp://ryeham.ee.ryerson.ca/pub/PalmOS/

ftp://ns1.pfnet.com/pub/PalmOS/

http://www.usr.com/palm

http://www.pilot.org/

http://www.inforamp.nety/~adam/pilot/

http://www.pilotgear.com/

http://member.aol.com/aslan/index.html

http://www.iosphere.net/~howlett/pilot/GNU_Pilot.html

 


© Copyright 2000 Diamond Editions/Linux magazine France - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".