Das Hochladen einfacher Skizzen scheint zu funktionieren, wenn ich das Arduino-Programm als root ( sudo
) ausführe . Ich möchte es als normaler Benutzer ausführen. Hat jemand vor dem gleichen Problem gestanden und es behoben?
Folgendes habe ich erhalten lsusb
:
$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Und das Arduino-Programm identifiziert es als /dev/ttyACM0
. Hier sind die Berechtigungen:
$ ls -l /dev/ttyACM0
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0
Hier ist die Ausgabe von id
groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)
Wenn ich als normaler Benutzer eine Skizze aus den Beispielen hochlade, tritt dieser Fehler auf:
avrdude:stk500_recv(): programmer not responding
Anregungen sind willkommen.
arduino-uno
arduino-ide
linux
Fiebertraum
quelle
quelle
Preferences
Menü aktivieren .dmesg
registrierten Gerätedatei überprüfen ./dev/ttyACM0: USB ACM device
. Es scheint mir also kein Problem zu sein. Auf der anderen Seite scheinen die Protokolle vom Kompilieren und Hochladen (mussten in den Einstellungen aktiviert werden) vielversprechend. Ich kann sie einfach nicht aus dem Arduino-Programm kopieren :(. (Vielleicht schreiben sie irgendwo in eine Datei?)Antworten:
Die einfachste Lösung besteht darin, sich der
dialout
Gruppe hinzuzufügen .Notieren Sie sich zuerst die Ausgabe von
id
. Speichern Sie es in einer Datei (nicht in,/tmp
da dies bei einem Neustart bereinigt wird). Wenn Sie sich die Ausgabe ansehen, werden Sie feststellen, dass Ihr Benutzer für mehrere Gruppen angemeldet ist und diese Gruppen zusätzliche Berechtigungen auf dem System darstellen. Standardmäßig ist Ihr Arduino der Gruppe zugewiesen,dialout
da er als serielle Schnittstelle registriert ist und in der Vergangenheit häufig verwendet wurde, um ... über ein Modem zu wählen.Geben Sie
dialout
den folgenden Befehl ein, um sich der Gruppe hinzuzufügen :Vergessen Sie nicht das
-a
Flag (zum Anhängen von Gruppen anstatt zum Ersetzen), da Sie sonst ganz andere Probleme haben. Dies ist der Grund, warum Sie eine Kopie derid
Ausgabe in eine Datei erstellen. Wenn Sie also Fehler machen, wissen Sie zumindest, wie Ihr Benutzer zuvor konfiguriert wurde.Dann melden Sie sich ab und wieder an und es sollte von diesem Punkt aus funktionieren.
Optional können Sie die Ausgabe doppelt mit der
id
zuvor gespeicherten Ausgabe vergleichen.quelle
dialout
Gruppe hinzugefügt , aber das Problem scheint immer noch zu bestehen. Ich habe meine Frage mit der Ausgabe desid
Befehls geändert .cat /dev/ttyACM0
? Wirft es einen Fehler?cat
es.Der oft wiederholte Rat, "einfach
sudo usermod -aG dialout <username>
nie für mich gearbeitet zu haben, und ich habe endlich herausgefunden, warum. Auf meinem Computer/dev/ttyUSB0
ist von der Gruppeserial
und nichtdialout
, also hat das Hinzufügen meines Benutzernamensdialout
nichts zu tun.Endlich:
sudo usermod -aG <group-name> <username>
Repariert es für mich.Peinlich, dies auch ausdrücklich erwähnt hier unter „SET DER GENEHMIGUNG“. Seufzer.
quelle
Das passiert mir. In meinem Fall hatte ich die Version von Arduino aktualisiert und scheint, dass die Voreinstellungsdatei das Problem verursacht hat. Löschen Sie einfach die Datei ~ / .arduino / preferences.txt (bei geschlossener Arduino IDE).
Schritte:
führe dies aus:
rm ~ / .arduino / preferences.txt
Starten Sie Arduino IDE
Das hat bei mir funktioniert, hoffe es funktioniert bei jemand anderem. Ich verwende Linux Mint 17 und habe ein Upgrade von Arduino 1.05 auf Arduino 1.06 durch Extrahieren der Arduino IDE durchgeführt. Ich verwende nicht die im Repo enthaltene. (Natürlich, nachdem Sie Ihren Benutzer der entsprechenden Gruppe hinzugefügt haben, wie von anderen erwähnt, aber wenn das nicht hilft, versuchen Sie es)
quelle