Ich versuche, mit einem Arduino von Ubuntu 12.04 aus zu kommunizieren. Beim Einstecken des USB-Kabels erscheint der serielle Port des Arduino als /dev/ttyUSB0. Wenn ich versuche, eine Verbindung mit ihm herzustellen,Abonnieren, ich erhalte die Fehlermeldung "Gerät /dev/ttyUSB0 konnte nicht geöffnet werden", aber nicht beim StartenAbonnierenmitsudo. Was muss ich konfigurieren, um das serielle Gerät als normaler Nicht-Root-Benutzer zugänglich zu machen?
Antwort1
Sie haben mehrere Möglichkeiten:
Automatische ACL-Zuweisung
Sie haben höchstwahrscheinlich systemd-logind oder ConsoleKit in Ubuntu ausgeführt. Diese können automatisch ACLs auf Geräteknoten konfigurieren, basierend darauf, welches Benutzerkonto aktuell an der Konsole angemeldet ist. Diese ACLs gewähren zusätzlich zu den üblichen Berechtigungen Zugriff und können mithilfe von angezeigt werden getfacl
.
Um dies zu verwenden, fügen Sie Folgendes zu /etc/udev/rules.d/60-extra-acl.rules
1 hinzu :
KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess"
( 1 Ja, erstellen Sie die Datei. Sie existiert standardmäßig nicht; das gesamte Verzeichnis ist für Administratoranpassungen vorgesehen.)
Gruppenbasierter Zugriff
Die TTY-Geräte sind normalerweise lesbar/beschreibbar durch einen bestimmtenGruppewie "dialout" oder "uucp". Fügen Sie sich dieser Gruppe hinzu, um Zugriff zu erhalten aufalleserielle Ports:
# gpasswd -a YourUsername dialout
Vergessen Sie nicht, sich ab- und erneut anzumelden, damit die Gruppenänderungen übernommen werden.
Berechtigungs- oder Eigentümerwechsel
Udev-Regeln ähnlich den oben genannten können auch verwendet werden, um den „Haupt“-Eigentümer und die Hauptgruppe sowie die Berechtigungen festzulegen (so wurde die Standardgruppe ursprünglich festgelegt). Beispiel:
KERNEL=="ttyUSB[0-9]*", OWNER="YourUsername"
or: KERNEL=="ttyUSB[0-9]*", GROUP="users", MODE="0660"
or: KERNEL=="ttyUSB[0-9]*", MODE="0666"
Sie können den Parametern OWNER, GROUP und MODE Zuweisungen geben.
Vorübergehende manuelle Änderung
Um eineeinmaländern, verwenden Sie einfach chmod
und/oder chown
wie gewohnt.
# chown YourUsername /dev/ttyUSB0
or: # chmod a+rw /dev/ttyUSB0