Przesyłanie prostych szkiców wydaje się działać, gdy uruchamiam program Arduino jako root ( sudo
). Chciałbym uruchomić go jako zwykły użytkownik. Czy ktoś napotkał wcześniej ten sam problem i go naprawił?
Oto, co otrzymałem z lsusb
:
$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Program Arduino identyfikuje to jako /dev/ttyACM0
. Oto jego uprawnienia:
$ ls -l /dev/ttyACM0
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0
Oto dane wyjściowe z id
groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)
Gdy przesyłam szkic z przykładów, jako zwykły użytkownik napotykam ten błąd:
avrdude:stk500_recv(): programmer not responding
Wszelkie sugestie są mile widziane.
arduino-uno
arduino-ide
linux
gorączka
źródło
źródło
Preferences
menu.dmesg
zarejestrowanego pliku urządzenia./dev/ttyACM0: USB ACM device
. Więc nie wydaje mi się to problemem. Z drugiej strony dzienniki kompilacji i przesyłania (musiały włączyć je w Preferencjach), wydają się obiecujące. Po prostu nie mogę skopiować ich z programu arduino :(. (Może gdzieś piszą do pliku?)Odpowiedzi:
Najłatwiejszym rozwiązaniem jest dodanie się do
dialout
grupy.Najpierw zanotuj dane wyjściowe z
id
. Zapisz go w pliku (nie w,/tmp
ponieważ jest czyszczony po ponownym uruchomieniu). Jeśli spojrzysz na dane wyjściowe, zauważysz, że użytkownik jest zarejestrowany w kilku grupach i te grupy reprezentują dodatkowe uprawnienia w systemie. Domyślnie twoje Arduino jest przypisane do grupy,dialout
ponieważ rejestruje się jako interfejs szeregowy, aw dawnych czasach były one często używane do ... wybierania numeru za pomocą modemu.Aby dodać się do
dialout
grupy, wydaj następujące polecenie:Nie zapomnij
-a
flagi (do dodawania grup zamiast zastępowania), bo będziesz mieć zupełnie inne problemy. To jest powód, aby wykonać kopięid
pliku wyjściowego do pliku, więc na wypadek, gdybyś coś popsuł, przynajmniej wiesz, jak skonfigurowano wcześniej użytkownika.Następnie wyloguj się i zaloguj i od tego momentu powinno działać.
Opcjonalnie możesz dwukrotnie sprawdzić dane wyjściowe w
id
porównaniu z danymi zapisanymi wcześniej.źródło
dialout
grupy, ale problem nadal się utrzymuje. Zmodyfikowałem moje pytanie za pomocą danych wyjściowychid
polecenia.cat /dev/ttyACM0
? Czy to powoduje błąd?cat
to robię .Często powtarzana rada „po prostu
sudo usermod -aG dialout <username>
nigdy nie działała dla mnie, i w końcu zorientowałem się, dlaczego. Na mojej maszynie/dev/ttyUSB0
należy do grupy,serial
a niedialout
, więc dodanie mojej nazwy użytkownikadialout
nic nie dało.Wreszcie:
sudo usermod -aG <group-name> <username>
naprawiłem to dla mnie.Żenujące jest to również wyraźnie wymienione tutaj w „USTAW ZEZWOLENIE”. Westchnienie.
źródło
To mi się przydarza. W moim przypadku zaktualizowałem wersję arduino i wydaje się, że przyczyną problemu był plik preferencji. Wystarczy usunąć plik ~ / .arduino / preferences.txt (z zamkniętym Arduino IDE).
Kroki:
wykonaj to:
rm ~ / .arduino / preferences.txt
Uruchom Arduino IDE
To działało dla mnie, mam nadzieję, że zadziała dla kogoś innego. Używam Linux Mint 17 i zaktualizowałem Arduino 1.05 do Arduino 1.06 poprzez wyodrębnienie Arduino IDE, nie używam tego w repozytorium. (Oczywiście po dodaniu użytkownika do odpowiedniej grupy, jak wspomniali inni, ale jeśli to nie pomoże, spróbuj tego)
źródło