Stlink: [doc] Vérifier la configuration udev correcte pour l'accès au périphérique

Créé le 22 janv. 2019  ·  8Commentaires  ·  Source: stlink-org/stlink

Sur Ubuntu et les distributions dérivées, st-flash et st-util nécessitent sudo pour fonctionner correctement.
Les ajouter aux sudoers (via visudo) supprime le besoin de mot de passe mais pas pour sudo.
L'ajout de l'utilisateur au groupe de numérotation ne changera rien.
L'ajout d'une ligne GROUP="myusername",\ aux règles udev ne changera rien.
Il serait très apprécié de fournir une documentation sur la façon de supprimer ce besoin de sudo, afin que cela facilite beaucoup l'intégration avec les IDE (comme VSCode et autres).

generadocumention olinux question staturesolved

Tous les 8 commentaires

Comment as-tu installé stlink ?
Si vous procédez comme suit, vous ne devriez pas avoir besoin de sudo pour exécuter les commandes (tant qu'il n'est pas exécuté en tant que root) :

git clone https://github.com/texane/stlink.git
cd stlink/build
cmake ..
make && sudo make install

Notez que vous devrez peut-être également mettre à jour vos règles udev si vous ne l'avez pas déjà fait.
stlink_udev_rule.tar.bz2
sudo tar -xvf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

Bonjour et merci pour la réponse rapide
aujourd'hui, j'ai tiré le dernier git (6a9d390a729f381ecec45f212354bfe98e27790f)
puis dans la construction j'ai fait
make clean
cmake ..
make && sudo make install

J'ai également copié les règles udev dans /etc/udev/rules.d.
J'ai rendu la règle udev exécutable, puis je redémarre tout l'ordinateur

Cependant quand je fais
st-flash write main.bin 0x8000000
j'ai eu
st-flash 1.4.0-58-g6a9d390
2019-01-24T22:21:17 INFO usb.c: bus 483 dev 3748
2019-01-24T22:21:17 WARN usb.c: Couldn't find matched ST-Link/V2 devices
Si par contre je fais
sudo st-flash write main.bin 0x8000000
Ça fonctionne bien.

Juste pour informations
lsb_release -a && uname -a
prends moi
No LSB modules are available.
Distributor ID: neon
Description: KDE neon User Edition 5.14
Release: 18.04
Codename: bionic
Linux zalman 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Avez-vous une idée, ce que je dois faire ?
Sincères salutations

Cela fonctionne bien pour moi sous Ubuntu 18.04.

Pour enquêter, commencez par brancher votre appareil STLINK sur le port USB. Ensuite, exécutez lsusb . Vous devriez voir une entrée semblable à celle-ci :

Bus 005 Device 017: ID 0483:374b STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB)

Notez le numéro de bus (005) et l'appareil (017). Vous devez alors faire :
ls -l /dev/bus/usb/005/017 (en remplaçant 005 et 017 de manière appropriée).

Sur mon système, je vois ce qui suit :

crw-rw-rw- 1 root root 189, 528 Jan 24 17:52 /dev/bus/usb/005/017

qui est accessible en écriture au monde (ceci provient du MODE:="0666" ci-dessous). J'ai plusieurs fichiers dans mon répertoire /etc/udev/rules.d. Dans ce cas particulier, le fichier 49-stlinkv2-1.rules contient les éléments suivants :

# stm32 nucleo boards, with onboard st/linkv2-1
# ie, STM32F0, STM32F4.
# STM32VL has st/linkv1, which is quite different

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
    MODE:="0666", \
    SYMLINK+="stlinkv2-1_%n"

# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.

et l'idVendor od 0483 et l'idProduct de 374b correspondent à l'identifiant du fournisseur de la sortie lsusb.

Assurez-vous d'avoir les 3 fichiers d'ici : https://github.com/texane/stlink/tree/master/etc/udev/rules.d dans votre répertoire /etc/udev/rules.d. Après avoir copié de nouveaux fichiers ou modifié des fichiers existants dans /etc/udev/ruled.d, vous devez exécuter la commande suivante :

sudo udevadm control --reload-rules
sudo udevadm trigger

pour s'assurer que les règles prennent effectivement effet. L'utilisation de la commande de déclenchement signifie que vous ne devriez pas avoir besoin de débrancher et de rebrancher l'appareil, mais vous pouvez également essayer cela pour faire bonne mesure.

Si le VID:PID de votre appareil ne correspond à ceux d'aucun des 3 fichiers, vous devrez peut-être créer un fichier de règles personnalisé pour correspondre à votre VID:PID.

bonjour et merci pour ta reponse
j'ai fait tout ça
ls -l /dev/bus/usb/001/011 crw-rw-rw-+ 1 root root 189, 10 Jan 25 19:56 /dev/bus/usb/001/011
C'est encore le même.
En ajoutant la commande dans sudo visudo, je n'ai plus besoin de saisir de mot de passe mais j'ai toujours besoin de sudo.
C'est étrange

@dhylands souhaitez-vous mettre à jour la documentation avec la description détaillée ? Sur https://github.com/texane/stlink/blob/master/doc/compiling.md#permissions -with-udev.

@dhylands : Puis-je copier-coller votre description dans notre documentation ?

@Nightwalker-87 Par tous les moyens - n'hésitez pas.

@davehylands : Merci pour votre contribution et vos commentaires utiles.

Fermez ceci avec commit d3c11fbef6d8205742152f646b223323dc4c0913 car nous savons maintenant que la configuration udev est fonctionnelle.
Je peux également le confirmer avec un système Debian récent.

Le problème semble être un problème isolé sur une installation locale que nous ne pouvons pas reproduire.
Un conseil de conclusion est de réessayer avec une installation propre (système) avec les autorisations utilisateur par défaut.

Cette page vous a été utile?
0 / 5 - 0 notes