IUT GEII Toulon
Philippe Arlotto

Accueil > Arduino > Crééz des règles udev pour retrouver votre arduino

Crééz des règles udev pour retrouver votre arduino

mercredi 13 mai 2015, par philippe Arlotto

Avec les règles udev on peut facilement créer des liens symboliques pour attribuer un nom constant aux différents ports séries créés automatiquement lorsque l’on branche un périphérique USB série.
On peut par exemple attribuer le périphérique /dev/arduino à votre arduino quelque soit le périphérique /dev/ttyACMx créé automatiquement.
Pour cela :
-* Trouver le vendor-id et le product-id de vote arduino avec la commande lsub :

$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
....
Bus 005 Device 017: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
....
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

On relève pour cet arduino, le product-id 0043 et le vendor-id 2341 (dans cet ordre).

-* créez un fichier /etc/udev/rules/99-arduino.rules (en sudo)

$ sudo mousepad /etc/udev/rules.d/99-arduino.rules

  • Y mettre la ligne suivante en modifiant si nécessaire avec les valeurs déterminées précédemment (sur une seule ligne) :
  • SUBSYSTEMS=="usb", ATTRS{idProduct}=="0043", ATTRS{idVendor}=="2341", SYMLINK+="arduino"
  • Relancer le démon udev :

$ sudo udevadm control --reload

  • Maintenant quand vous branchez l’arduino deux devices vont apparaître :
    /dev/ttyACMx et /dev/arduino qui est un lien qui pointe vers /dev/ttyACMx

Exemple :

$ ls /dev/ttyACM* -l /dev/ard*
lrwxrwxrwx 1 root root 7 mai 13 14:16 /dev/arduino --> ttyACM1
crw-rw---- 1 root dialout 166, 1 mai 13 14:16 /dev/ttyACM1
  • Malheureusement ni l’IDE arduino et ni NeatBeans ne permettent d’ouvrir un nom de périphérique arbitraire. Donc ce ne sera guère utile avec ces logiciels. Mais bien pratique pour des scripts python par exemple.
  • Pour le terminal série de NeatBeans vous pouvez rajouter la règle :

SUBSYSTEMS=="usb", ATTRS{idProduct}=="0043", ATTRS{idVendor}=="2341", SYMLINK+="ttyUSB1%n"

qui crée un lien vers un ttyUSB1x pointant vers ttyACMx et qui permet à l’arduino d’être vu par le plugin RS2332 de NeatBeans.

On aura alors :

$ ls /dev/ttyACM* /dev/ttyUSB* -l /dev/ard*
lrwxrwxrwx 1 root root 7 mai 13 14:22 /dev/arduino --> ttyACM1
crw-rw---- 1 root dialout 166, 1 mai 13 14:22 /dev/ttyACM1
lrwxrwxrwx 1 root root 7 mai 13 14:22 /dev/ttyUSB11 --> ttyACM1

Pour plus de précision voir [->http://playground.arduino.cc/Linux/All]

SPIP | Se connecter | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © Andreas Viklund sous Licence free for any purpose