Pertama kali mengatur- izin ditolak ke port usb- ubuntu 14.04

18

Saya baru saja menghubungkan arduino saya dan lampu menyala, tetapi tes kedip gagal untuk mengunggah. ini kesalahan saya:

Arduino: 1.6.7 (Linux), Papan: "Arduino / Genuino Uno"

Sketsa menggunakan 1.030 byte (3%) dari ruang penyimpanan program. Maksimum adalah 32.256 byte. Variabel global menggunakan 9 byte (0%) memori dinamis, menyisakan 2.039 byte untuk variabel lokal. Maksimal 2.048 byte. avrdude: ser_open (): tidak dapat membuka perangkat "/ dev / ttyUSB0": Izin ditolak ioctl ("TIOCMGET"): ioctl yang tidak sesuai untuk perangkat Masalah mengunggah ke papan. Lihat http://www.arduino.cc/en/Guide/Troubleshooting#upload untuk saran.

Laporan ini akan memiliki informasi lebih lanjut dengan "Tampilkan keluaran verbose selama kompilasi" diaktifkan di File> Preferensi.


sumber
arduino.cc/en/Guide/Linux#toc9
Ignacio Vazquez-Abrams
2
@ IgnacioVazquez-Abrams - dapatkah Anda mengubahnya menjadi jawaban? Kami berusaha agar persentase kami dijawab. :) Mungkin dengan sedikit salin dan tempel, jadi itu bukan tautan saja.
Nick Gammon
Saya melakukan semua langkah dan itu berhasil pertama kali. Sekarang saya mencoba mengunggah program kedua saya dan saya mendapatkan pesan ini 'avrdude: ser_open (): tidak dapat membuka perangkat "/ dev / ttyUSB0": Izin ditolak' saya melakukan ini: roquet @ roquet-HP-ENVY-x360-m6 -Convertible: ~ $ sudo adduser roquet Dialout Pengguna roquet' is already a member of dialout '. roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ ls -l / dev / ttyUSB * crw -rw-rw- 1 root dialout 188, 0 Jan 20 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible: ~ $ tetapi masih mendapatkan 'izin denie
Roque Zabalet

Jawaban:

25

Dari dokumentasi :

Buka Terminal dan ketik:

ls -l /dev/ttyACM*

Anda akan mendapatkan sesuatu seperti:

crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0

"0" di akhir ACM mungkin nomor yang berbeda, atau beberapa entri mungkin dikembalikan. Data yang kita butuhkan adalah "dialout" (adalah pemilik grup dari file).

Sekarang kita hanya perlu menambahkan pengguna kita ke grup:

sudo usermod -a -G dialout $USER

kemudian:

sudo chmod a+rw /dev/ttyACM0

Anda harus keluar dan masuk lagi agar perubahan ini berlaku.

Perhatikan bahwa sebelumnya adalah instruksi Ubuntu lama. Pada distro modern yang menggunakan ConsoleKit, buat file yang /etc/udev/rules.d/01-ttyusb.rulesberisi yang berikut ini dan kemudian muat ulang aturan udev dan ganti perangkat Arduino:

SUBSYSTEMS=="usb-serial", TAG+="uaccess"
Ignacio Vazquez-Abrams
sumber
Jawaban yang bagus Pada instalasi yang lebih baru Anda tidak perlu memuat ulang aturan udev. Udev akan menonton /etc/udev/rules.d untuk perubahan. Anda harus mengganti arduino.
ppareit
@ppareit apa yang dianggap sebagai "instalasi baru"? Ini tidak berfungsi untuk saya di Ubuntu 16.04 dengan atau tanpa memuat ulang aturan (via sudo udevadm control --reload).
Desty
1
Saya pikir itu tidak berhasil karena papan diidentifikasi sebagai milik subsistem "tty" daripada "usb-serial". Pokoknya, membuat aturan udev berikut bekerja untuk saya sebagai gantinya:, di SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"mana (vendor) dan (produk) diambil dari lsusbdan (serial) diambil dari output udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Desty
Setidaknya dengan Ubuntu 16.04, saya tidak melihat masalah ini pada Mint 18.1. Senang mendengar bahwa Anda menemukan solusinya!
ppareit
BERHASIL!!!! DIPERBARUI. Saya memiliki distro 17,04 dan solusi pertama tidak persisten!
tony gil
3

Yang perlu Anda lakukan adalah menambahkan diri Anda ke grup dialout seperti yang dijelaskan dalam jawaban oleh Ignacio Vazquez-Abrams. Ini dilakukan di terminal dengan mengetik:

sudo usermod -a -G dialout $USER

Anda tidak perlu menggunakan chmod. Ini memberikan akses baca / tulis ke semua pengguna dan bukan hanya anggota grup. Namun, sebelum mencoba terhubung, Anda harus keluar dan masuk kembali . Setelah Anda masuk kembali, Anda akan dikenali sebagai anggota grup panggilan keluar dan dapat membuka perangkat.

Luke Newmeyer
sumber
1

Di Ubuntu 18.04, satu-satunya cara saya menemukan instalasi Arduino IDE untuk langsung bekerja, menggunakan langkah-langkah dokumentasi yang dijelaskan di sini:

https://www.arduino.cc/en/Guide/Linux/

Tidak diperlukan perubahan grup atau izin.

Cagy79
sumber
0

Tidak ada yang membantu saya di atas. Ketika saya telah menginstal dari file, dari situs resmi, itu bahkan tidak dimulai. Kemudian saya telah menginstal Arduino IDE dari "linux app store" dan berfungsi tetapi ada masalah seperti teman kita dari atas. Jadi saya telah menghapus dan menginstal melalui terminal sudo apt install arduinodan sekarang berfungsi. Bersulang.

misha666
sumber
-1

Atau cukup gunakan perintah chown.

sudo chown <username> /dev/ttyACM*

Ini berhasil untuk saya

Harry
sumber
1
Pertanyaan ini telah ditanyakan berkali-kali di situs ini, dan jawaban yang sama telah diberikan oleh pengguna lain. Saya akan mengutip Chris Stratton tentang hal ini: Ini adalah ide yang buruk, khususnya pada linux yang dikonfigurasi secara dinamis khusus dengan udev atau mengelola / dev node serupa Anda harus melakukannya setiap kali Anda menghubungkan perangkat. Tambahkan pengguna Anda ke grup yang sesuai sebagai gantinya, yang merupakan perbaikan abadi.