Ich verwende die Arduino-IDE in Ubuntu und habe Probleme mit der seriellen Schnittstelle. Es hat in der Vergangenheit funktioniert, aber aus Gründen, die möglicherweise unnötig sind, hatte ich das Bedürfnis, den Besitz einiger Dateien vom Root-Besitz in den Besitz meiner Benutzer zu ändern.
Dadurch funktionierte die IDE ordnungsgemäß, aber ich konnte den richtigen seriellen Anschluss nicht mehr verwenden. Im dev-Ordner ist der Port, den ich benötige, als Erlaubnis 166 aufgeführt. Jemand (der nicht mehr in der Nähe ist, um mir zu helfen) hat die Erlaubnis gegen 666 ausgetauscht, wodurch alles wunderbar funktioniert hat.
Es wurde jedoch zurückgesetzt, sobald ich meinen Computer neu gestartet habe und jetzt versuche, den Befehl zu verwenden:
sudo chmod 666 ttyACM0
nichts passiert. Keine Fehlermeldungen, aber auch keine Berechtigungsänderung.
Wie kann ich es ändern und wie kann ich es dauerhaft ändern.
Ich entschuldige mich, wenn diese Frage zu simpel oder unklar ist, ich ein Ubuntu Noob bin und ich würde Feedback nicht missbilligen!
quelle
Antworten:
Das Problem mit den Berechtigungen für
/dev/ttyACM0
kann dauerhaft gelöst werden, indem Sie sich derdialout
Gruppe hinzufügen . Sie müssen sich abmelden und dann wieder anmelden, bevor die Gruppenänderung erkannt wird.Sie können dies mit tun
sudo usermod -a -G dialout $USER
quelle
Ich konnte Rinzwinds Vorschlag nicht zum Laufen bringen , weil er sich darüber beschwerte, dass das Benutzerkonto bereits existiert. Stattdessen habe ich diesen Befehl verwendet, um einen vorhandenen Benutzer (
terrik
) zu einer vorhandenen Gruppe (dialout
) hinzuzufügen , wie im Ubuntu-Hilfe-Wiki beschrieben .Dieser Befehl ist auch nützlich, um Ihre aktuellen Gruppen aufzulisten, obwohl Sie sich, wie Rinzwind sagt, abmelden und anmelden müssen, bevor die serielle Schnittstelle Sie einlässt.
quelle
Ich konnte Terriks Antwort nicht zum Laufen bringen , aber ich könnte es, wenn ich den Pfad für etwas anpasse
ttyACM0
.Würde als Kommentar posten, aber ich habe noch nicht die Privilegien dafür ...
quelle
sudo chmod 666 /dev/ttyACM0
und es funktioniert nicht beim erneuten Starten. Hat jemand eine Lösung?Eine andere Möglichkeit besteht darin, eine Regeldatei im
/etc/udev/rules.d/
Verzeichnis zu erstellen . Ich hatte ein ähnliches Problem und habe50-myusb.rules
im obigen Verzeichnis eine Datei mit folgendem Inhalt erstellt:Beachten Sie, dass dies jedem Gerät, das mit dem ttyACM-Socket verbunden ist, Lese- / Schreibrechte gewährt. Wenn Sie nur ein bestimmtes Gerät benötigen, um Lese- / Schreibberechtigungen zu erhalten, müssen Sie auch
idVendor
und aktivierenidProduct
. Sie können diese finden, indem Sie denlsusb
Befehl zweimal ausführen, einmal ohne angeschlossenes Gerät und einmal, wenn es angeschlossen ist, und dann die zusätzliche Zeile in der Ausgabe beobachten. Dort wirst du sowas sehenBus 003 Device 005: ID ffff:0005
. In diesem FallidVendor = ffff
undidProduct = 0005
. Dein wird anders sein. Dann ändern Sie die Regeldatei in:Jetzt erhält nur dieses Gerät die Berechtigungen. Lesen Sie dies , um mehr über das Schreiben von udev-Regeln zu erfahren.
quelle
Versuchen Sie, unter System / Benutzer und Gruppen das Kontrollkästchen für Ihren Benutzernamen in der TTY-Gruppe zu aktivieren.
quelle
[Errno 13] Permission denied: '/dev/ttyACM0'
. Neben dertty
Gruppe ist der Benutzer auch in derdialout
Gruppe. Linux Mint 17.1.sudo chmod a+rw /dev/ttyACM0