Das Hochladen von Code auf arduino gibt mir den Fehler: "avrdude: ser_open (): Gerät kann nicht geöffnet werden" / dev / ttyACM0 ": Berechtigung verweigert"

13

Mein Betriebssystem ist Ubuntu 18.04 und Arduino hat bis jetzt funktioniert.

Obwohl es einige Lösungen gibt, scheint keine für mich zu funktionieren.

Ich habe diese Anweisungen auf der Arduino-Website befolgt.

Dann habe ich dies auf Arduino Stack Exchange versucht , was in Fällen funktionieren sollte, in denen die erste Lösung dies nicht tat. Die Antwort besagt, dass wir ein paar Regeln für den /etc/udev/ruled.d/Pfad erstellen sollten .

Aber keiner von ihnen hat für mich gearbeitet.

Ich habe auch Arduino in Windows 10 getestet, um festzustellen, ob es sich um ein Hardwareproblem handelt, aber es hat gut funktioniert.

Hat jemand andere Ideen, wie man dieses Problem lösen kann?

AKTUALISIEREN:

  • Mein Benutzername, sergio, ist Teil beider Gruppen (tty und dialout);
  • Ich habe mich abgemeldet und wieder angemeldet, wie das offizielle Arduino-Tutorial erklärt.
  • In der Arduino IDE sind die Konfigurationen korrekt: Arduino UNO und ttyACM0
  • Dies ist die Ausgabe von ll /dev/ttyACM0nach dem Ausführen der Tutorial-Befehle:

    crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
    

UPDATE 2:

Ich habe ein Skript erstellt, um dieses Problem zu lösen: https://github.com/sergiomafra/iniarduino

Sérgio Mafra
quelle
5
Mögliches Duplikat von Wie installiere ich die neueste Arduino IDE? Haben Sie vergessen, sich nach dem Ausführen abzumelden und erneut anzumelden usermod?
N0rbert
Nee. Zuerst habe ich versucht, mich ab- und anzumelden. Dann habe ich versucht, mein Notebook neu zu starten. Nichts scheint zu funktionieren ...
Sérgio Mafra
crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 / dev / ttyACM0 Login: sergio Name: Sérgio Mafra Verzeichnis: / home / sergio Shell: / bin / bash On seit Sun Jul 15 08:26 (- 03) ein: 0 von: 0 (Nachrichten aus) Keine Mail. Kein Plan.
Sérgio Mafra
Einwahl: x: 20: sergio. Als ich versuchte, den zweiten Befehl auszuführen, kehrte bash zu mir zurück. Keine solche Datei oder kein solches Verzeichnis
Sérgio Mafra
2
@ N0rbert Ich denke nicht, dass diese Frage als Duplikat von Wie installiere ich die neueste Arduino IDE? Geschlossen werden sollte . weil die akzeptierte Antwort auf diese Frage spezifischer für die gestellte Frage ist.
Karel

Antworten:

8

Installieren Sie Ihr im Ubuntu Software Center installiertes Arduino neu:

sudo apt install --reinstall arduino

Eine Neuinstallation ist erforderlich, da Ihr which avrdudeBefehl gemäß Ihrem Kommentar nichts zurückgibt, aber sein sollte /usr/bin/avrdude. Erneut überprüfen:

which avrdude

Führen Sie Ihre Arduino IDE nach der Neuinstallation aus und schließen Sie sie.

Überprüfen Sie Ihre Arduino-Konfiguration. /home/sergio/.arduino/preferences.txtDatei öffnen und dort serial.portOption aktivieren. Versuchen Sie es zu ändern /dev/ttyACM0. Öffnen Sie diese Datei:

sudo nano /home/sergio/.arduino/preferences.txt

und wenden Sie entsprechende Änderungen an, dh die Option sollte aussehen

serial.port=/dev/ttyACM0

Starten Sie den Computer anschließend neu.

Bob
quelle
1
Danke für all die Hilfe. Ich habe es vom Ubuntu Software Center deinstalliert und die Version von der Arduino-Website installiert und es hat funktioniert.
Sérgio Mafra
22

Ich hatte ein ähnliches Problem, als ich versuchte, eine Skizze auf Arduino hochzuladen. Das Problem war auf das Fehlen von Berechtigungen zum Lesen / Schreiben auf die serielle Schnittstelle zurückzuführen. Ich konnte das Problem mit dem folgenden Befehl beheben:

Um zu bestätigen, dass der Port vorhanden ist, geben Sie Folgendes aus dem Stammverzeichnis ein.

ls /dev/ttyACM0

Geben Sie Folgendes ein, um Lese- / Schreibberechtigungen festzulegen

sudo chmod a+rw /dev/ttyACM0
Adrian
quelle
Mein Problem wurde behoben. Vielen Dank!
FunkSoulBrother
Ich habe mein Problem gelöst.
Anuraag Tummanapally
3

Folgendes hat bei mir funktioniert:

  • Deinstallieren Sie die Version von Apt, es funktioniert nicht richtig ( sudo apt uninstall arduino; sudo apt autoremove)
  • Installieren Sie die Version von der Arduino-Website
  • sudo apt install avrdude da der von der Website es nicht enthält
  • sudo usermod -a -G dialout [your_username] da der von der Website dies nicht automatisch tut

Und jetzt funktioniert alles wieder!

Draconis
quelle
0

In Kombination mit allen Posts, die ich gelesen habe, habe ich Folgendes getan, um dieses Problem zu lösen, indem ich den Anweisungen in diesem Thread gefolgt bin.

In einem neuen Terminal habe ich Folgendes eingegeben, wie unten gezeigt.

https://i.stack.imgur.com/ifRmx.png

Bitte beachten Sie, dass fourplus mein Benutzername ist.

Arafat Mukasa
quelle
2
Willkommen bei Ubuntu. In Zukunft sollten Sie nach Möglichkeit Text anstelle von Bildern veröffentlichen.
Jeff
0

Ich habe eine Lösung.

  1. Finden Sie Ihren Port, an den das Arduino angeschlossen ist (zB meins war /dev/ttyUSB0). Möglicherweise finden Sie es in der Fehlermeldung in Arduino IDE erwähnt.

  2. Öffne das Terminal ( Ctrl+ Alt+ T).

  3. Im Terminallauf:

    sudo chmod 777 /dev/ttyUSB0
    

    Der obige Befehl legt die erforderlichen Berechtigungen fest.

Yugal Sharma
quelle
0

Ich sehe, dass die Frage bereits akzeptiert wurde, aber keine der Lösungen hat es für mich getan, also habe ich eine andere Lösung. Ich habe die Arduino IDE über das Ubuntu-Software-Installationsprogramm installiert. Was Sie tun müssen, ist.

  1. Gehen Sie zu Arduino IDE im Ubuntu Software Store
  2. Klicken Sie auf Berechtigungen
  3. Setzen Sie Access USB Hardware direkt auf
sjoerd hilhorst
quelle