Geben Sie der Anwendung / dem Benutzer Zugriff auf das USB-Gerät

1164
GTHvidsten

Ich habe eine Mono-Anwendung, die auf Raspbian ausgeführt wird und ein bestimmtes USB-Gerät über libusb verwendet. Wenn ich die Anwendung normal starte, kann das Gerät nicht geöffnet werden. Wenn ich die Anwendung als Root (oder über Sudo) starte, öffnet die Anwendung das Gerät erfolgreich.

Wie kann ich der Anwendung oder dem Benutzer die richtigen Berechtigungen für das USB-Gerät erteilen, damit die Anwendung nicht als root gestartet werden muss?

3

1 Antwort auf die Frage

1
GTHvidsten

Um einer bestimmten Gruppe Zugriff auf ein USB-Gerät zu gewähren, müssen Sie eine Regel udevin hinzufügen /etc/udev/rules.d/. Ich habe eine Datei mit 50-MyDevice.rulesder folgenden Zeile hinzugefügt :

SUBSYSTEM=="usb",ATTRS=="abcd",ATTRS=="1234",MODE="0660",GROUP="mygroup",SYMLINK+="mydevice%n" 

Wo habe ich die Werte nach idVendor und idProduct durch die VID und PID des USB-Geräts ersetzt. Achten Sie besonders auf die Anzahl der Gleichheitszeichen nach jedem Parameter!

Danach habe ich Linux neu gestartet.

Nun, jedes Mal, wenn ich das USB-Gerät anstecke (oder wenn ich mehrere Geräte desselben Geräts anstecke), bekomme ich einen Symlink /dev/mydevice1oder /dev/mydevice2. Dies ist ein Symlink, der auf /dev/bus/usb/001/001(oder im zweiten Fall /dev/bus/usb/001/002) zeigt. Die Ziele dieser Symlinks haben die richtigen Modus- und Gruppenberechtigungen, die in der Regeldatei definiert sind.