juergen-rocks / raumklima

Die berühmte Raumklimastation RS 500 von ELV Elektronik unter Linux mit einem Raspberry Pi auslesen.
MIT License
17 stars 13 forks source link

Tipp, UDEV Regel gegen dem Bedarf des root users #4

Open MaStr opened 6 years ago

MaStr commented 6 years ago

Hoi, da ich ungern solche Dinge direkt mit root laufen lasse, dachte ich mir, dass man dem Device doch auch eine passende Berechtigung geben kann.

In meinem Fall habe ich jetzt "einfach" alles die Schreibrechte auf beide HID devices gegeben. Das ganze Ding funktioniert so, dass man eine '''/etc/udev/rules/99-hid.rules''' anlegt und dort folgende Werte einträgt:

KERNEL=="hiddev0",    SUBSYSTEM=="usbmisc", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="0483" , MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="0483", MODE="0666"

Vermutlich ist sogar nur die untere Zeile nötig, aber da war ich nun zu Faul das nochmal gegen zu testen.

Die ganz saubere Lösung wäre, eine neue Gruppe einzurichten "hiduser". und dann die Gruppe den Geräte zuzuordnen:

KERNEL=="hiddev0",    SUBSYSTEM=="usbmisc", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="0483" , GROUP="hiduser",  MODE="0660"
SUBSYSTEM=="usb", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="0483", GROUP="hiduser",  MODE="0660"

Dem entsprechenden user weißt man die Gruppe später zu (achtung neuanmeldung ggf. notwendig) und damit kann er das Gerät auch ohne root Rechte nutzen.

Hierzu etwas lesefoo: http://www.reactivated.net/writing_udev_rules.html https://puredata.info/docs/faq/how-can-i-set-permissions-so-hid-can-read-devices-in-gnu-linux anderes Beispiel: https://raw.githubusercontent.com/trezor/trezor-common/master/udev/51-trezor.rules

edelbluth commented 6 years ago

Ich habe in der Tat das Skript auch nicht als Root laufen, allerdings mit einem etwas anderen Ansatz. Ich wühle mich bei Gelegenheit da nochmal durch und ergänze das in der Doku.

edelbluth commented 2 years ago

https://github.com/trezor/cython-hidapi#udev-rules

MaStr commented 2 years ago

Ich kann meine aktuelle udev Regel vom armbian als sample einstellen. Leider scheinen sich die Namen der Subsysteme (hidraw/ hid...) irgendwie in dem Verlauf der Kernel Versionen zu ändern, sodass ich vorsichtig wäre ein generelles Beispiel anzupreisen 🤔

Liebe Grüße Matthias