Getestet auf Kubuntu 16.04 nur 64 Bit. Ich habe eine Anwendung, deren Quelle ich nicht kontrolliere. Es verwendet einige Libusb Anrufe, die in z endet .:libusb Anrufe ohne Sudo mit udev-Regeln
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/031: Permission denied
libusb: error [_get_usbfs_fd] libusb requires write access to USB device nodes.
Bei der Ausführung der obigen Anmeldung als Root erwähnt, ist es wie erwartet funktioniert. Wenn ich ändern Sie die Rechte der in Bezug auf Datei wie:
sudo chmod a+w /dev/bus/usb/001/031
dann wird die Anwendung mit Standard-Benutzerrechten arbeiten (bis ich trennen/mein USB-Gerät wieder an).
Jetzt suche ich nach einem Weg, z. automatisch das chmod a+w
jedes Mal, wenn das spezifische USB-Gerät eingesteckt ist. Könnte dies möglich sein, indem Sie eine bestimmte udev-Regel schreiben?
Vielleicht andere Lösungen die libusb Aufrufe ohne Root-Rechte?
Lösung: Basierend auf David Graysons Antwort hatte ich jetzt eine zusätzliche Zeile mit SUBSYSTEM=="usb"
zu meiner Regeldatei hinzugefügt. Meine Regeln Datei sieht nun endlich wie folgt aus:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666"
wie ich verstehe, die 'MODE =' ändert nur die Berechtigungen der '/ dev/ttyACM ...' Datei, aber nicht die der Einträge in '/ dev/bus/usb/...' – Joe
In der Unix-Welt, "Modus" ist ein allgemeiner Begriff und bezieht sich auf Dateiberechtigungen. Es bezieht sich nicht auf ACM-Geräte. Ich habe Regeln wie diese erfolgreich mit libusb benutzt. Hast du meine Regel versucht? –
Yeah, 'SUBSYSTEM ==" usb "' war der Trick, um folgendes 'MODE = ...' und 'GROUP = ...' effect auf '/ dev/bus/usb/...' zu machen. Bis vor kurzem hatte ich 'SUBSYSTEM ==" tty "' benutzt. – Joe