Mengunggah sketsa sederhana sepertinya berhasil ketika saya menjalankan program Arduino sebagai root ( sudo
). Saya ingin menjalankannya sebagai pengguna biasa. Adakah yang pernah mengalami masalah yang sama sebelumnya dan memperbaikinya?
Inilah yang saya peroleh dari lsusb
:
$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Dan program Arduino mengidentifikasinya sebagai /dev/ttyACM0
. Berikut ini izinnya:
$ ls -l /dev/ttyACM0
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0
Ini adalah keluaran dari id
groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)
Ketika saya mengunggah sketsa dari contoh, sebagai pengguna biasa, saya menemukan kesalahan ini:
avrdude:stk500_recv(): programmer not responding
Setiap saran dipersilahkan.
arduino-uno
arduino-ide
linux
demam
sumber
sumber
Preferences
menu.dmesg
untuk file perangkat yang terdaftar./dev/ttyACM0: USB ACM device
. Jadi, sepertinya tidak masalah bagi saya. Di sisi lain, log dari kompilasi dan pengunggahan (harus mengaktifkannya di Preferensi), tampak menjanjikan. Saya sepertinya tidak bisa menyalinnya dari program Arduino :(. (Mungkin mereka menulis ke file di suatu tempat?)Jawaban:
Solusi termudah adalah menambahkan diri Anda ke
dialout
grup.Pertama buat catatan dari output dari
id
. Simpan dalam file (bukan/tmp
karena dibersihkan pada reboot). Jika Anda melihat hasilnya, Anda akan melihat bahwa pengguna Anda terdaftar untuk beberapa grup dan grup-grup tersebut mewakili hak istimewa tambahan pada sistem. Secara default Arduino Anda ditetapkan ke grupdialout
karena terdaftar sebagai antarmuka serial dan pada masa lalu ini sering digunakan untuk ... keluar, menggunakan modem.Untuk menambahkan diri Anda ke
dialout
grup, keluarkan perintah berikut:Jangan lupa
-a
bendera (untuk menambahkan grup daripada mengganti) atau Anda akan memiliki masalah yang sama sekali berbeda. Ini adalah alasan untuk membuat salinanid
output ke file, jadi jika Anda mengacaukan setidaknya Anda tahu apa yang dikonfigurasi pengguna Anda seperti sebelumnya.Kemudian logout dan log in dan itu akan berfungsi sejak saat itu.
Secara opsional Anda dapat memeriksa ulang output
id
terhadap output yang Anda simpan sebelumnya.sumber
dialout
grup, tetapi masalahnya tampaknya masih berlanjut. Saya telah memodifikasi pertanyaan saya dengan output dariid
perintah.cat /dev/ttyACM0
? Apakah ada kesalahan?cat
itu.Saran yang sering diulang untuk "hanya tidak
sudo usermod -aG dialout <username>
pernah bekerja untuk saya, dan saya akhirnya menemukan alasannya. Di komputer saya,/dev/ttyUSB0
adalah dari grupserial
dan tidakdialout
, jadi menambahkan nama pengguna saya untukdialout
tidak melakukan apa-apa.Akhirnya:
sudo usermod -aG <group-name> <username>
perbaiki untuk saya.Yang memalukan, ini juga secara eksplisit disebutkan di sini di bawah "SET THE PERMISSION". Mendesah.
sumber
Ini terjadi pada saya. Dalam kasus saya, saya telah memutakhirkan versi arduino dan sepertinya file preferensi menyebabkan masalah. Hapus saja file ~ / .arduino / preferences.txt (dengan Arduino IDE ditutup).
Langkah:
jalankan ini:
rm ~ / .arduino / preferensi.txt
Luncurkan Arduino IDE
Ini bekerja untuk saya, semoga berhasil untuk orang lain. Saya menggunakan Linux Mint 17 dan saya memutakhirkan dari Arduino 1.05 ke Arduino 1.06 dengan mengekstraksi Arduino IDE, saya tidak menggunakan yang ada di repo. (Tentu saja, setelah menambahkan pengguna Anda ke grup yang sesuai seperti yang disebutkan oleh orang lain, tetapi jika itu tidak membantu Anda mencoba ini)
sumber