Posted on

Attribuer des noms de port USB fixes à votre Raspberry Pi

Raspberry Pi Fixed USB port name

Lorsque vous avez plusieurs périphériques connectés aux ports USB de votre Raspberry PI, les noms USB attribués automatiquement peuvent changer de manière inattendue après un redémarrage et risquent de créer de la confusion lorsque vous utilisez ce nom de port USB dans vos scripts ou flux Node-RED. Votre périphérique assigné à ttyUSB1 pourrait se voir attribuer le nom du port ttyUSB0 par exemple. Dans ce tuto, nous allons apprendre à attribuer un nom de port USB fixe à chaque périphérique connecté. Une fois ce didacticiel terminé, vous pourrez attribuer un nom de port USB fixe à chaque périphérique connecté et éliminer toute disparité éventuelle. Cela vous permettra ensuite d’utiliser ce nouveau nom dans vos scripts ultérieurement.

Ce dont vous aurez besoin pour ce tutoriel

Pour ce tutoriel, votre Raspberry Pi est supposé utiliser le système d’exploitation Raspbian.

Déterminer les appareils connectés

Premièrement, nous devons savoir quel périphérique a été affecté à quel numéro de port USB. Le moyen le plus simple de savoir cela consiste à déconnecter tous les périphériques et à redémarrer votre Pi. Une fois que votre Pi est opérationnel, connectez le premier appareil et ouvrez le Terminal.

Sur la ligne de commande, nous entrons :

dmesg | grep ttyUSB

ttyUSB0

 

Faites vous une petite liste manuscrite et notez les informations de votre premier appareil:

  • le nom de votre périphérique (vous ne le trouvez pas dans la fenêtre du terminal, mais vous lui donnez un nom vous-même qui vous permettra de le reconnaître ultérieurement): dans notre cas: DEVICE1
  • les caractères après “usb”: dans notre cas: 1-1.2
  • le port USB attribué automatiquement: dans notre cas: ttyUSB0

Maintenant, branchez votre deuxième appareil et encodez la même commande :

ttyUSB1

 

Examinez la nouvelle ligne de votre terminal et ajoutez les informations suivantes à la liste que vous venez de créer:

  • le nom de votre second appareil : dans notre cas: DEVICE2
  • les caractères après “usb”: dans notre cas: 1-1.3
  • le port USB attribué automatiquement: dans notre cas: ttyUSB1

Continuez ce processus en branchant un par un chaque périphérique supplémentaire à votre Pi si vous avez plus que  deux appareils.

Rechercher les attributs de vos périphériques

Pour pouvoir reconnaître un périphérique connecté ultérieurement, nous allons utiliser certains attributs spécifiques de ce périphérique. Nous recherchons les attributs qui ont des propriétés uniques. Généralement, ces attributs sont les suivants: identifiant du fournisseur, identifiant du produit, numéro de série.

En utilisant les noms de port USB attribués automatiquement que nous avons notés précédemment, nous sommes en mesure de trouver les attributs de tous nos périphériques. Pour le périphérique connecté à ttyUSB0 par exemple, nous devons entrer la commande suivante dans le terminal :

udevadm info --name=/dev/ttyUSB0 --attribute-walk

Les informations que nous obtenons ici, sont tous les attributs de la chaîne complète de périphériques liés au port USB spécifié. Nous devons maintenant prendre notre liste précédemment écrite et rechercher les caractères après “usb”. Dans notre cas, nous recherchons: “1-1.2” .

 

Dans la liste des attributs, nous devons maintenant choisir des propriétés uniques du périphérique. Dans notre cas, nous prenons les 2 attributs suivants:

  • idProduct : 7523
  • idVendor : 1a86

Notez le nom et la valeur de l’attribut, car nous en aurons besoin plus tard.

Répétez la même commande dans le Terminal pour vos autres noms de port USB: ttyUSB1, … et notez à nouveau les attributs et les valeurs affichées. Assurez-vous qu’au moins une valeur est différente entre tous vos appareils. Si nécessaire, pour pouvoir distinguer vos appareils, vous pouvez choisir des attributs additionnels.

Créez le fichier avec les règles de nom de port USB

Il est temps maintenant de créer le lien entre les ports USB et les périphériques. Pour cela, nous allons créer un fichier qui spécifiera la règle pour chaque périphérique USB en fonction des propriétés uniques que nous venons de noter. Dans le terminal, entrez la commande suivante pour accéder au fichier avec les règles :

sudo nano /etc/udev/rules.d/10-usb-serial.rules

Un fichier vide devrait apparaître sur votre écran. Pour chaque périphérique, nous écrivons une ligne avec la règle. À la fin de la ligne, tapez le nom de périphérique que vous avez choisi précédemment. Dans notre cas “ttyUSB_DEVICE1” par exemple. Remplacez le code ci-dessous par les attributs et les valeurs par ceux de votre  liste écrite. Dans notre exemple, ça se présente comme suit:

SUBSYSTEM=="tty", ATTRS{idProduct}=="7523", ATTRS{idVendor}=="1a86", SYMLINK+="ttyUSB_DEVICE1"
SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="ttyUSB_DEVICE2"

Après avoir fini d’encoder les règles, utilisez Ctrl + x pour quitter. Et enregistrez les modifications en entrant “Y”.

Chargement des nouvelles règles

Entrez la commande suivante dans le terminal pour que les règles prennent effet:

sudo udevadm trigger

Vérification des nouveaux noms de port USB

 

Vous pouvez vérifier les nouveaux noms que vous venez de créer en entrant la commande suivante dans le terminal :

ls -l /dev/ttyUSB*

 

Comme indiqué dans la fenêtre ci-dessus, vous devriez voir les nouveaux noms (en bleu clair) des ports USB. Vous pouvez utiliser ces noms dans vos scripts ou flux Node-RED. Même après le redémarrage ou lorsque l’appareil a été déconnecté, le nom reste identique et il n’y a plus de risque de confusion.

Remarque: Si un nom de port USB attribué par vous-même n’apparaît pas, il y a forte chance d’avoir fait une faute de frappe dans le fichier avec les règles. Vérifiez et corriger vos noms et valeurs d’attribut.

Génial! Vous avez rendu beaucoup plus stable l’accès aux périphériques de votre Raspberry Pi

Raspberry Pi GPIO discovery kit

Et si cela vous intéresse d’apprendre à programmer des composants électroniques avec votre Raspberry Pi, n’hésitez pas à visiter notre boutique. Nous avons un kit bien conçu contenant toutes les pièces dont vous avez besoin pour démarrer. Avec nos tutoriels en ligne, vous progresserez très vite.

découvrez ici plus de produits

Abonnez-vous à notre newsletter

En vous abonnant, vous acceptez notre politique de protection de la vie privée.