Ich versuche, einen Mikrocontroller über einen virtuellen USB-COM-Anschluss an einen Host-Computer anzuschließen. Ich habe jedoch keine Root-Rechte auf dem Host-Computer. Der Controller wird als / dev / ttyACM0 angezeigt.
Wenn ich versuche, über das Pyserial- Modul eine Verbindung herzustellen , wird der Fehler "Berechtigung verweigert" angezeigt .
Gibt es eine Möglichkeit, dies zu umgehen, ohne irgendwelche sudo-Befehle zu verwenden? Vielleicht zwingt sich der Mikrocontroller irgendwie nicht als ACM anzumelden ? Konnte das Berechtigungsproblem auf diese Weise vermieden werden?
$ ls -l /dev/ttyACM0
crw-rw----. 1 root dialout 166, 0 Apr 4 13:44 /dev/ttyACM0
$ id
uid=1003(mri) gid=1001(nmruser) groups=1001(nmruser),100(users),1000(nmrsu) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Leider kann ich die Berechtigungen nicht ändern. Der Host ist der Computer eines MRT-Scanners. Das System wird vom Hersteller des Scanners gewartet. Ich habe überlegt, Ethernet zu verwenden, aber ich hatte gehofft, dass es einen Weg gibt, dies zu vermeiden.
Bitten Sie die Person, die über Root-Zugriff verfügt, eine
udev
Regel einzurichten , die dem aktuellen Status einen benutzerdefinierten Namen, eine Gruppe und Gruppen-R / W-Berechtigungen zuweist/dev/ttyACM0
. Sie sollten auch Mitglied dieser Gruppe werden.Danach können Sie das Gerät öffnen, ohne root zu sein.
Sie können diese Änderung nicht vornehmen, ohne über Root-Rechte oder physischen Zugriff zu verfügen, sodass Sie aus diesem Grund einmal Root werden können.
quelle
/dev/ttyACM0
? Ich habe verwendetSUBSYSTEMS=="usb", ATTRS{idVendor}=="f055", MODE="0666", GROUP="groupname"
. Dies ändert nur die Gruppe von/dev/bus/usb/x/y
.