Przesyłanie kodu do arduino powoduje błąd: „avrdude: ser_open (): nie można otworzyć urządzenia” / dev / ttyACM0 „: Odmowa uprawnień”

13

Mój system operacyjny to Ubuntu 18.04 i arduino działało do tej pory.

Chociaż istnieje kilka rozwiązań, żadne z nich nie wydaje mi się skuteczne.

Postępowałem zgodnie z tymi instrukcjami na stronie arduino.

Potem wypróbowałem to na arduino Stack Exchange , która powinna działać w przypadkach, w których pierwsze rozwiązanie nie zadziałało. Odpowiedź mówi, że powinniśmy stworzyć kilka zasad na /etc/udev/ruled.d/ścieżce.

Ale żaden z nich nie działał dla mnie.

Przetestowałem także arduino w systemie Windows 10, aby sprawdzić, czy był to problem sprzętowy, ale działał dobrze.

Czy ktoś ma jakieś pomysły na rozwiązanie tego problemu?

AKTUALIZACJA:

  • Moja nazwa użytkownika, sergio, jest częścią obu grup (tty i dialout);
  • Wylogowałem się i wróciłem, jak wyjaśnia oficjalny samouczek arduino;
  • W Arduino IDE konfiguracje są poprawne: Arduino UNO i ttyACM0
  • Oto dane wyjściowe ll /dev/ttyACM0po uruchomieniu poleceń samouczka:

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

AKTUALIZACJA 2:

Stworzyłem skrypt, aby rozwiązać ten problem: https://github.com/sergiomafra/iniarduino

Sérgio Mafra
źródło
5
Możliwy duplikat Jak zainstalować najnowszy Arduino IDE? Czy zapomniałeś się wylogować i zalogować ponownie po uruchomieniu usermod?
N0rbert
Nie. Najpierw próbowałem się wylogować i zalogować. Następnie próbowałem ponownie uruchomić notebooka. Wydaje się, że nic nie działa ...
Sérgio Mafra,
crw-rw-rw- 1 root dialout 166, 0 lip 15 05:41 / dev / ttyACM0 Login: sergio Nazwa: Sérgio Mafra Katalog: / home / sergio Shell: / bin / bash Włączony od niedz 15 lip 08:26 (- 03) wł .: 0 od: 0 (wiadomości wyłączone) Brak poczty. Brak planu.
Sérgio Mafra
dialout: x: 20: sergio. Kiedy próbowałem uruchomić drugie polecenie, bash wrócił do mnie Brak takiego pliku lub katalogu
Sérgio Mafra
2
@ N0rbert Nie sądzę, że to pytanie powinno zostać zamknięte jako duplikat Jak zainstalować najnowszą wersję Arduino IDE? ponieważ zaakceptowana odpowiedź na to pytanie jest bardziej szczegółowa dla zadanego pytania.
karel

Odpowiedzi:

9

Ponownie zainstaluj swoje arduino zainstalowane w centrum oprogramowania Ubuntu:

sudo apt install --reinstall arduino

Ponowna instalacja jest konieczna, ponieważ twoje which avrdudepolecenie zgodnie z komentarzem nic nie zwraca, ale powinno być /usr/bin/avrdude. Sprawdź ponownie:

which avrdude

Uruchom Arduino IDE po ponownej instalacji i zamknij go.

Sprawdź swoją konfigurację arduino. Otwórz /home/sergio/.arduino/preferences.txtplik i zaznacz tam serial.portopcję. Spróbuj to zmienić na /dev/ttyACM0. Otwórz ten plik:

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

i zastosuj odpowiednie zmiany, tzn. opcja powinna wyglądać

serial.port=/dev/ttyACM0

Następnie uruchom ponownie komputer.

Kok
źródło
1
Dzięki za wszelką pomoc. Odinstalowałem go z Centrum Oprogramowania Ubuntu i zainstalowałem wersję ze strony arduino i działało.
Sérgio Mafra
24

Miałem podobny problem, gdy próbowałem wgrać szkic do Arduino. Problem związany był z brakiem uprawnień do odczytu / zapisu do portu szeregowego. Byłem w stanie to naprawić za pomocą następującego polecenia:

Aby potwierdzić, że port istnieje, wprowadź następujące dane z katalogu głównego.

ls /dev/ttyACM0

Aby ustawić uprawnienia do odczytu / zapisu, wprowadź następujące dane

sudo chmod a+rw /dev/ttyACM0
Adrian
źródło
Rozwiązany mój problem. Dzięki!
FunkSoulBrother
Rozwiązałem mój problem ..
anuraag tummanapally
3

Oto, co zadziałało dla mnie:

  • Odinstaluj wersję z Apt, nie działa ona poprawnie ( sudo apt uninstall arduino; sudo apt autoremove)
  • Zainstaluj wersję ze strony Arduino
  • sudo apt install avrdude ponieważ ten ze strony internetowej go nie zawiera
  • sudo usermod -a -G dialout [your_username] ponieważ ten ze strony internetowej nie robi tego automatycznie

A teraz wszystko znów działa!

Draconis
źródło
0

W połączeniu ze wszystkimi postami, które czytam, to właśnie zrobiłem, aby rozwiązać ten problem, postępując zgodnie ze wskazówkami z tego wątku.

W nowym terminalu wpisałem następujące, jak pokazano poniżej.

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

Pamiętaj, że fourplus to moja nazwa użytkownika.

Arafat Mukasa
źródło
2
Witamy w pytaniu o Ubuntu. Jeśli to możliwe, w przyszłości powinieneś publikować tekst zamiast obrazów.
Jeff
0

Mam rozwiązanie.

  1. Znajdź swój port, do którego podłączono Arduino (np. Mój był /dev/ttyUSB0). Można go znaleźć w komunikacie o błędzie w Arduino IDE.

  2. Otwórz terminal ( Ctrl+ Alt+ T).

  3. W biegu terminalowym:

    sudo chmod 777 /dev/ttyUSB0
    

    Powyższe polecenie ustawia wymagane uprawnienia.

Yugal Sharma
źródło
0

Widzę, że pytanie jest już zaakceptowane, ale żadne z rozwiązań tego nie zrobiło, więc mam inne rozwiązanie. Zainstalowałem arduino IDE za pomocą instalatora oprogramowania Ubuntu. Musisz tylko to zrobić.

  1. Przejdź do arduino IDE w sklepie z oprogramowaniem Ubuntu
  2. uprawnienia do klikania
  3. Ustaw dostęp do sprzętu USB bezpośrednio na
sjoerd hilhorst
źródło
0

ha jestem nowicjuszem i popełniłem kilka błędów)) Nie rób tak, jak robię.

  1. Po pierwsze, w mojej książce był zły obraz schematu połączeń led. Znalazłem nowy i ponownie podłączyłem przewody. Teraz są poprawnie podłączone.
  2. Następnie podłączyłem arudino do komputera (to ważne).
  3. Następnie wykonałem następujące polecenia:

    • ls -l / dev / ttyACM0
    • sudo usermod -a -G dialout [moja_nazwa_użytkownika]
    • sudo chmod a + rw / dev / ttyACM0

Kiedy szukałem płyty w menu programu arduino (Narzędzia -> Płyta), nie znalazłem „Arduino / Genuino Uno”, tylko „Arduino Uno” (myślę, że jest OK)

Nefedova Oxana
źródło