Stlink: [doc] Überprüfen Sie die korrekte udev-Konfiguration für den Gerätezugriff

Erstellt am 22. Jan. 2019  ·  8Kommentare  ·  Quelle: stlink-org/stlink

Auf Ubuntu und deirvierten Distributionen erfordern st-flash und st-util sudo, um ordnungsgemäß zu funktionieren.
Wenn Sie sie zu Sudoern (über Visudo) hinzufügen, ist kein Passwort erforderlich, aber kein Sudo.
Das Hinzufügen des Benutzers zur Dialout-Gruppe ändert nichts.
Das Hinzufügen einer GROUP="myusername",\-Zeile zu den udev-Regeln ändert nichts.
Es wäre sehr wünschenswert, eine Dokumentation zur Verfügung zu stellen, wie diese Notwendigkeit für sudo beseitigt wird, damit die Integration mit IDEs (wie VSCode und anderen) sehr viel einfacher wird.

generadocumention olinux question staturesolved

Alle 8 Kommentare

Wie hast du stlink installiert?
Wenn Sie Folgendes tun, sollten Sie sudo nicht benötigen, um die Befehle auszuführen (sofern es nicht als Root ausgeführt wird):

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

Beachten Sie, dass Sie möglicherweise auch Ihre udev-Regeln aktualisieren müssen, falls Sie dies noch nicht getan haben.
stlink_udev_rule.tar.bz2
sudo tar -xvf stlink_udev_rule.tar.bz2 -C /etc/udev/rules.d

Hallo und danke für die schnelle Antwort
heute habe ich den letzten git gezogen (6a9d390a729f381ecec45f212354bfe98e27790f)
dann habe ich es im Build gemacht
make clean
cmake ..
make && sudo make install

Ich habe auch die udev-Regeln in /etc/udev/rules.d. kopiert
Ich habe die udev-Regel ausführbar gemacht und dann den gesamten Computer neu gestartet

Aber wenn ich es tue
st-flash write main.bin 0x8000000
ich habe
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
Wenn ich es andererseits tue
sudo st-flash write main.bin 0x8000000
Es funktioniert gut.

Nur zur Information
lsb_release -a && uname -a
Fang mich
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

Hast du eine Idee, was ich tun soll?
mit bestem Gruß

Bei mir funktioniert es unter Ubuntu 18.04 einwandfrei.

Um dies zu untersuchen, schließen Sie zunächst Ihr STLINK-Gerät an den USB-Anschluss an. Führen Sie dann lsusb . Sie sollten einen Eintrag wie den folgenden sehen:

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

Notieren Sie die Busnummer (005) und das Gerät (017). Sie sollten dann Folgendes tun:
ls -l /dev/bus/usb/005/017 (ersetzt 005 und 017 entsprechend).

Auf meinem System sehe ich folgendes:

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

die weltweit beschreibbar ist (dies ist aus dem MODE:="0666" unten). Ich habe mehrere Dateien in meinem Verzeichnis /etc/udev/rules.d. In diesem speziellen Fall enthält die Datei 49-stlinkv2-1.rules Folgendes:

# 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.

und idVendor od 0483 und idProduct von 374b stimmt mit der Hersteller-ID aus der lsusb-Ausgabe überein.

Stellen Sie sicher, dass Sie alle 3 Dateien von hier haben: https://github.com/texane/stlink/tree/master/etc/udev/rules.d in Ihrem /etc/udev/rules.d-Verzeichnis. Nachdem Sie neue Dateien kopiert oder vorhandene Dateien in /etc/udev/ruled.d bearbeitet haben, sollten Sie Folgendes ausführen:

sudo udevadm control --reload-rules
sudo udevadm trigger

um sicherzustellen, dass die Regeln tatsächlich in Kraft treten. Die Verwendung des Trigger-Befehls bedeutet, dass Sie das Gerät nicht trennen und wieder anschließen müssen, aber Sie sollten dies auch zur Sicherheit versuchen.

Wenn die VID:PID Ihres Geräts nicht mit denen in einer der drei Dateien übereinstimmt, müssen Sie möglicherweise eine benutzerdefinierte Regeldatei erstellen, die Ihrer VID:PID entspricht.

Hallo und danke für deine Antwort
Ich habe das alles gemacht
ls -l /dev/bus/usb/001/011 crw-rw-rw-+ 1 root root 189, 10 Jan 25 19:56 /dev/bus/usb/001/011
Es ist immer noch dasselbe.
Durch das Hinzufügen des Befehls in sudo visudo muss ich kein Passwort mehr eingeben, brauche aber immer noch sudo.
Das ist komisch

@dhylands möchten Sie die Dokumentation mit der ausführlichen Beschreibung aktualisieren? Unter https://github.com/texane/stlink/blob/master/doc/compiling.md#permissions -with-udev.

@dhylands : Darf ich Ihre Beschreibung kopieren und in unsere Dokumentation einfügen?

@Nightwalker-87 Auf jeden Fall - fühlen Sie sich frei.

@davehylands : Vielen Dank für Ihren hilfreichen Beitrag und Ihr Feedback.

Schließen Sie dies mit Commit d3c11fbef6d8205742152f646b223323dc4c0913, da wir inzwischen wissen, dass die udev-Konfiguration funktioniert.
Ich kann dies auch mit einem neueren Debian-System bestätigen.

Das Problem scheint ein isoliertes Problem bei einer lokalen Installation zu sein, das wir nicht reproduzieren können.
Ein abschließender Hinweis ist, es mit einer sauberen (System-)Installation mit Standardbenutzerberechtigungen erneut zu versuchen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen