#1 Le 15/06/2009, à 16:53
- Akesh
[Resolu] Installation Polhemus Liberty sur Ubuntu 9.04 Jaunty
Bonjour,
Tout d'abord merci d'excuser le manque d'accent... clavier qwerty inside...
je me permet de poster un petit message sur l'installation d'un systeme de capteurs a 6 degres de liberte Polhemus liberty sur la version 9.04 d'Ubuntu (Jaunty Jackalope). Cela me servira de reminder et bien evidement j'espere que ce post servira a eviter certaines galeres a d'autres utilisateurs de Liberty (USB).
Step 1: Download
Pour commencer l’installation, il faut récupérer les fichiers nécessaires pour Liberty :
-Soit grâce au CD fourni avec le matériel
-Soit à l’adresse : http://www.polhemus.com/?page=Support_Drivers
Le dossier ainsi décompressé contient différents fichiers :
- a3load.hex
- liberty (script dont nous ne nous servirons pas ici)
- LibertyUSB.hex
- LinuxTerm.c, qui est un exemple d'utilisation du Polhemus (il nous servira pour vérifier que le Polhemus est bien accessible)
- readme qui explique l'installation si l'on dispose de "Hotplug" et non "Udev" (ce qui n'est pas le cas pour les versions de Linux relativement récentes)
Il vous faudra également récupérer le programme "fxload" si vous ne l’avez pas déjà. Pour le savoir, on peut lancer les commandes : "updatedb" suivie de " locate fxload". Si la deuxième commande ne retourne rien, c’est que vous n’avez pas "fxload". Dans ce cas, vous pouvez le récupérer grâce à la commande : " sudo apt-get install fxload".
Copiez les fichiers "a3load.hex" et "LibertyUSB.hex" dans le dossier /usr/share/usb (s'il n'existe pas créez-le). Remarque : Ce sera le chemin utilisé pour présenter l'installation du Polhemus. Libre à vous d'utiliser un autre chemin pour copier les fichiers, il faudra alors adapter le chemin du dossier utilisé pour le lancement de la commande "fxload" décrit plus loin.
Step 2: Modifier le grub
Editez le fichier /boot/grub/menu.lst (commande "sudo gedit /boot/grub/menu.lst") et ajoutez les lignes usbserial.vendor=0x0f44 usbserial.product=0xff12 a la fin de la ligne "kernel" de votre ubuntu par defaut.
Exemple:
## ## End Default Options ##
title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 7509623d-a2c2-4ed8-bfd8-789f57463be5
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=7509623d-a2c2-4ed8-bfd8-789f57463be5 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet
Modifiez pour obtenir:
## ## End Default Options ##
title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 7509623d-a2c2-4ed8-bfd8-789f57463be5
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=7509623d-a2c2-4ed8-bfd8-789f57463be5 ro quiet splash usbserial.vendor=0x0f44 usbserial.product=0xff12
initrd /boot/initrd.img-2.6.28-11-generic
quiet
De ce que j'ai compris, cela est du au module usbserial qui, dans la 9.04, n'est justement plus un module mais est integre au kernel. Il faut donc passer les parametres directement au kernel.
Redemarrez pour prendre en compte les options au kernel que vous venez de rajouter.
Step 3: Charger le firmware du Polhemus
Allumez le Polhemus avant de le brancher en USB sur le PC. Lorsque la diode a l'avant est stabilisee sur une couleur verte, branchez le cable USB a l'ordinateur.
Lancez la commande « lsusb ». Cette commande permet de voir les périphériques qui sont branchés en USB sur le PC.
Identifiez la ligne où est branché le Polhemus, c’est-à-dire celle dont l'ID commence par 0f44. Notez le numéro de Bus et de Device associés (OO2 et 004 par exemple) :
julien@julien-laptop:~$ lsusb
Bus 002 Device 004: ID 0f44:ff11
Bus 002 Device 003: ID 0b05:1712 ASUSTek Computer, Inc.
Bus 002 Device 002: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 174f:a311
Bus 001 Device 001: ID 0000:0000
Lancez la commande :
/sbin/fxload -t fx -D /dev/bus/usb/numero_de_bus/numero_de_device
-s /usr/share/usb/a3load.hex -I/usr/share/usb/LibertyUSB.hex
numero_de_bus et numero_de_device étant les numéros de bus et device correspondant au Polhemus, trouvés grâce à la commande « lsusb » précédemment éxécutée. Ceci aura pour effet de charger le firmware du Polhemus. Remarque : les chemins d'accès pour la commande « fxload » et les fichiers « a3load.hex » et « LibertyUSB.hex » pourront être différents suivant l'endroit où vous avez installé ces fichiers et programmes.
Step 4: Test
Pour tester que l'on peu communiquer avec le Polhemus, nous allons utiliser le fichier « LinuxTerm.c » fourni avec les drivers. Pour commencer, editez le fichier : « sudo gedit LinuxTerm.c »
Remplacez :
rdPort=open("/dev/usb/ttyUSB0",O_RDONLY|O_NDELAY);
wrPort=open("/dev/usb/ttyUSB0",O_WRONLY);
par :
rdPort=open("/dev/ttyUSB0",O_RDONLY|O_NDELAY);
wrPort=open("/dev/ttyUSB0",O_WRONLY);
En effet, le chemin donné dans l'exemple du fichier fourni n'est pas celui par défaut pour une installation du Polhemus sur Ubuntu (à voir avec d'autres distributions de Linux ...)
Sauvegardez, fermez et compilez le programme : « gcc -o test LinuxTerm.c »
Si la compilation s'est bien déroulée, lancez le programme : « ./test »
Vous devriez voir apparaître le message : « Connected to Liberty », puis un menu proposant 4 choix. Choisissez « v » et si vous voyez apparaître les informations de versions des composants du Polhemus, c'est que la communication entre le PC et le Polhemus est bien établie :
Polhemus Liberty HST
4 Stations
Bootloader Version: 1.0.1
System Controller Version: 2.0.2
Source Controller Version: 1.0.4
Sensor Processor Version: 2.0.2
I/O Processor Version: 2.0.1
Firmware Packet Load: SWD-23402-13-202
Essayez les autres choix (avec « p » et « b ») afin d'effectuer des captures de coordonnées, puis quittez avec « x ».
NOTA Il faut recharger le firmware (step 3) apres chaque redemarrage ou deconnexion/reconnexion du Polhemus.
En esperant que ca serve,
Alexis
#2 Le 25/06/2009, à 17:39
- Akesh
Re : [Resolu] Installation Polhemus Liberty sur Ubuntu 9.04 Jaunty
[UPDATE]
Avec le kernel vmlinuz-2.6.28-13 on ne peut plus passer d'options au kernel, usbserial est redevenu un module.
Il faut donc passer les paramètres au module en tapant la commande "sudo modprobe usbserial vendor=0x0f44 product=0xff12"
Ubuntu ne me demande d'ailleurs plus de charger le firmware a chaque redemarrage ou déconnection/reconnection du polhemus. J'imagine donc que le polhemus est donc reconnu automatiquement, et que toute la manip avec fxload devient inutile... ou alors il ne faut plus la faire qu'une fois au début.
Bref, Il suffit donc de passer les paramètres au module. Pour le faire au démarrage, cf ce topic:
http://forum.ubuntu-fr.org/viewtopic.php?id=4688
Cordialement,
alexis