D'abord, pourquoi ce modèle ? Garmin n'est en effet pas le constructeur le moins cher du marché, mais il jouit d'une bonne réputation et ne semble pas réticent à la communication. Ce qui explique en partie l'existence d'une communauté assez importante qui propose documentation, logiciels, cartes ou points d'intérêts pour ces produits. De plus, ce modèle bénéficie d'un large écran (4,3 pouces) bien lumineux sans être trop volumineux. La cartographie Navteq livrée en standard couvre toute l'Europe et s'avère de bonne qualité. Enfin, le support à vie de l'InfoTrafic est un plus certain dans la mesure où il s'interface bien avec le moteur de navigation. Comment je savais tout ça avant de l'acheter ? En fait j'ai triché: le GPS qu'on m'avait filé avec la voiture de location à Las Vegas était un Garmin que j'ai eu tout loisir de trifouiller et, en particulier, connecter à mon laptop à titre purement expérimental.

Une fois le nüvi connecté au bout de son câble USB et passée la satisfaction de voir la batterie se charger et ma couche USB détecter l'engin, trois problèmes majeurs allaient se poser :

  • mettre à jour le firmware ;
  • ajouter des points d'intérêts ou des cartes ;
  • récupérer ma position sur le PC.

Autant vous le dire tout de suite, le dernier est insoluble. Ce type d'équipement est fait pour fonctionner collé sur le tableau de bord d'une voiture, pas connecté avec votre laptop : la fonctionnalité n'est donc tout bonnement pas offerte. Dommage. Vraiment dommage... Il ne me reste donc plus que deux problèmes à résoudre ;)

Dans la pratique, l'appareil présente deux unités de stockage de masse :

usb-storage: device found at 10
usb-storage: waiting for device to settle before scanning
scsi 3:0:0:0: Direct-Access     Garmin   nuvi
            1.00 PQ: 0 ANSI: 5
SCSI device sda: 3935744 512-byte hdwr sectors (2015 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 3935744 512-byte hdwr sectors (2015 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
 sda:
sd 3:0:0:0: Attached scsi removable disk sda
sd 3:0:0:0: Attached scsi generic sg0 type 0
scsi 3:0:0:1: Direct-Access     Garmin   nuvi SD
         1.00 PQ: 0 ANSI: 5
SCSI device sdb: 2012160 512-byte hdwr sectors (1030 MB)
sdb: Write Protect is off
sdb: Mode Sense: 23 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 2012160 512-byte hdwr sectors (1030 MB)
sdb: Write Protect is off
sdb: Mode Sense: 23 00 00 00
sdb: assuming drive cache: write through
 sdb: sdb1
sd 3:0:0:1: Attached scsi removable disk sdb
sd 3:0:0:1: Attached scsi generic sg1 type 0
usb-storage: device scan complete

Pourquoi deux ? Une (/dev/sda) pour le GPS lui-même et l'autre (/dev/sdb) pour la SDCard, ce qui vous permet de vous en servir au passage comme lecteur de carte. Encombrant comme lecteur me direz-vous, mais considérant qu'il lit les images, cela vous permet de visionner les photos que la carte pourrait contenir. Plus intéressant déjà, non ? Une fois monté, vous avez naturellement accès à son arborescence :

/mnt/nuvi$ ls
Audible/  autorun.inf*  Garmin/  jpeg/  mp3/
nuvi_610-660_OM_EN.pdf*
/mnt/nuvi$ ls Garmin/
006B047800.bin*  GarminDevice.xml*  gmapprom.sum*
Help/            RemoteSW/          006B048201.bin*
gmapbmap.img*    gpx/               nuvi_drive.ico*
vehicle/         fs_image.ver*      gmapprom.img*
gupdate.gcd*     poi/               Voice/

La première idée qui m'est venue a été d'utiliser Wine pour lancer les programmes proposés. Globalement, ça marche très bien, à condition de récupérer au préalable le fichier msvcp60.dll et de le déposer dans le sous-répertoire windows/system de son installation Wine. Et aussi de monter correctement son nüvi avec les droits qui vont bien pour écrire dedans, forcément. Passée la phase d'observation, il s'avère que l'update n'est qu'une simple copie de fichiers. Chouette. Je devais découvrir par la suite un HOWTO Gentoo sur la question qui ne fera que confirmer mes constatations.

Pour l'insertion de points d'intérêts, dits POIs[1], je n'ai malheureusement pas trouvé de solution native 100% GNU/Linux. Il semble falloir se contenter du programme fourni par Garmin, POI Loader, de préférence la version beta, pour s'acquitter de cette tâche. Pourvu que msvcp60.dll soit présent, l'installation se déroule parfaitement sous Wine. Il suffit alors de monter le GPS, s'assurer qu'il est visible dans Wine et lancer POI Loader. Le reste, c'est du Next-Next-Next sans aucun soucis particulier. Les POIs sont généralement fournis sous forme de fichiers CSV qu'on peut trouver un peu partout sur le web. Le format est assez simple et la documentation ne manque pas. Une entrée est de cette forme :

lattitude,longitude,Nom_unique@vitesse

À l'usage, on regrettera l'absence de vecteur d'orientation permettant d'associer un sens de circulation, fort utile dans la cadre de l'application mentionnée plus bas.

La version beta de POI Loader vous permet d'organiser vos POIs en catégories matérialisées par des sous répertoires et d'associer une icône personnalisée à chaque fichier CSV. Application directe ne manquant pas de popularité : les radars. Avant toute chose, ce qui suit ne constitue en aucun cas une incitation à la vitesse, puisque contrairement à ce que vous raconte Jean-Pierre Pernaut et ses sbires, le meilleur moyen de ne pas perdre ses points et son argent en conduisant n'est pas de refiler 3500 euros à un avocat, mais bien de respecter le code de la route. Par contre, le GPS vous signalera sympathiquement tout dépassement malencontreux de vitesse à l'approche d'un de ces engins, fonctionnalité intéressante pour les étourdis... Passée la lecture de ces lapalissades grossières, vous pouvez aller récupérer gratuitement une liste de radars fixes et mobiles mise à jour tous les mois sur AlerteGPS.com. Cette liste se présente sous la forme de quatre fichiers CSV contenant les radars fixes, les feux qu'il ne faut surtout pas griller, les radars mobiles probables et quelques zones dangereuses, accompagnés chacun d'une icône propre.

~$ unzip Garmin.zip
Archive:  Garmin.zip
   creating: Mes POIs/
   creating: Mes POIs/Garmin/
  inflating: Mes POIs/Garmin/RF.bmp
  inflating: Mes POIs/Garmin/RF.csv
  inflating: Mes POIs/Garmin/RFR.bmp
  inflating: Mes POIs/Garmin/RFR.csv
  inflating: Mes POIs/Garmin/RM.bmp
  inflating: Mes POIs/Garmin/RM.csv
  inflating: Mes POIs/Garmin/ZD.bmp
  inflating: Mes POIs/Garmin/ZD.csv
~$ cd Mes\ POIs/Garmin/
~$ ls
RF.bmp  RF.csv  RFR.bmp  RFR.csv  RM.bmp  RM.csv
ZD.bmp  ZD.csv

On peut jouer un peu avec. On pourrait par exemple vouloir éclater ces fichiers par vitesse pour qu'ils soient joliment classés ou tout simplement associés à une icône adaptée à chaque vitesse.

~$ mkdir RF RFR RM ZD
~$ for i in *.csv; do for j in `seq 30 10 130`; \
 do grep @$j $i > ${i/.csv/}/${i/.csv/}_$j.csv; done; done

On sépare alors toutes les entrées dans les répertoires qui vont bien. Dans RF, on trouvera par exemple RF_110.csv qui contiendra alors les positions des radars fixes contrôlant une limitation à 110km/h. On pourra alors lui associer une image particulière[2] qu'il suffira de nommer RF_110.bmp. À propos des images, j'ai trouvé plusieurs fois mentionnée la possibilité d'obtenir de la transparence en utilisant la couleur magenta. Mes nombreux essais se sont malheureusement révélés infructueux.

Les POIs, c'est marrant, mais au bout d'un temps relativement court, ça lasse. L'exercice consistant à produire des cartes personnelles est nettement plus intéressant, mais semble difficile et de longue haleine. On trouve assez simplement de la documentation, mais les logiciels mentionnés sont parfois commerciaux et tournent souvent sous Windows. Cependant, un des outils de référence, cGPSmapper est disponible sous GNU/Linux. Mais la difficulté ne se situe pas dans le fait de caller une carte sur des coordonnées géographiques, ou même d'y positionner des points. Il s'agit surtout d'obtenir des cartes permettant la navigation. C'est alors autant d'informations comme les intersections, les sens de circulation, les limitations de vitesse, diverses restrictions de circulation, etc. qu'il s'agit d'ajouter et dont le nombre explose avec l'augmentation de la surface à couvrir[3]. Notez l'existence de Mapcenter, un site qui vous permet de partager vos propres cartes avec d'autres. Intérêt particulier ? Il propose la génération en ligne de vos carte avec cGPSmapper. Un autre site vous permettra de rechercher des cartes gratuites en jouant en cliquant sur une carte Google Maps qui vous indiquera leur zone de couverture. Ceci étant, je n'ai pas testé d'uploader des cartes pour le moment et me suis peu documenté sur la question. J'ai peur qu'il faille recourir au coûteux logiciel MapSource pour cela. J'espère me tromper...

Enfin, concernant la lecture des MP3, des images et autres fichiers "Audio Book" au format Audible.com, il suffit évidemment de les copier dans le répertoire adhoc de l'appareil ou sur une SDCard.

Dès que j'aurais un peu plus de temps libre, je résumerai tout ça sur une page de mon Wiki, éventuellement avec des screenshots[4] et des exemples de fichiers customs que j'aurais pu faire.


PS: je précise que je n'accepterai aucun commentaire désobligeant de la part des conducteurs de poussettes rouge vinasse...

Notes

[1] Points Of Interest

[2] On pourrait, muni de son Gimp, modifier les images fournies par AlerteGPS.com dans la mesure où l'archive ne contient pas de licence restreignant leur utilisation (mais je ne suis pas juriste)...

[3] À moins que vous vous lanciez dans la cartographie routière ou marine du Sahara...

[4] Oui, oui, le nüvi sait aussi s'auto-screenshoter.