Первая настройка - отказ в доступе к usb-порту - ubuntu 14.04
Я только что подключил свою Arduino, и индикатор горит, но тест мерцания не загружается. вот моя ошибка:
Arduino: 1.6.7 (Linux), плата: "Arduino/Genuino Uno"
Sketch использует 1030 байт (3%) места для хранения программ. Максимум 32 256 байт. Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байтов для локальных переменных. Максимум 2048 байт. avrdude: ser_open(): невозможно открыть устройство "/dev/ttyUSB0": разрешение отклонено ioctl("TIOCMGET"): недопустимый ioctl для устройства Проблема с загрузкой на плату. См. предложения по http://www.arduino.cc/en/Guide/Troubleshooting#upload.
В этом отчете будет больше информации с "Показать подробный вывод во время компиляции" активируется в меню «Файл» > «Настройки».
@, 👍27
Обсуждение5 ответов
Из документации:
Откройте Терминал и введите:
ls -l /dev/ttyACM*
вы получите что-то вроде:
crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0
"0" в конце ACM может быть другим числом или может быть возвращено несколько записей. Нам нужны данные "dialout" (группа-владелец файла).
Теперь нам просто нужно добавить нашего пользователя в группу:
sudo usermod -a -G dialout $USER
затем:
sudo chmod a+rw /dev/ttyACM0
Чтобы это изменение вступило в силу, вам потребуется выйти и снова войти в систему.
Обратите внимание, что это старые инструкции Ubuntu. В современных дистрибутивах, использующих ConsoleKit, создайте файл /etc/udev/rules.d/01-ttyusb.rules
, содержащий следующее, а затем перезагрузите правила udev и повторно подключите устройство Arduino:
SUBSYSTEMS=="usb-serial", TAG+="uaccess"
Отличный ответ. В новых установках вам не нужно перезагружать правила udev. Udev будет следить за изменениями в файле /etc/udev/rules.d. Вам нужно переподключить ардуино., @ppareit
@ppareit, что считается «новыми установками»? У меня это не работает в Ubuntu 16.04 с перезагрузкой правил или без нее (через sudo udevadm control --reload)., @Desty
Я думаю, что это не сработало, потому что плата идентифицируется как принадлежащая подсистеме «tty», а не «usb-serial». В любом случае, вместо этого мне помогло создание следующего правила udev:
SUBSYSTEM=="tty", ATTRS{idVendor}=="(поставщик)", ATTRS{idProduct}=="(продукт)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino ", GROUP="adm"
, где (vendor) и (product) взяты из lsusb
, а (serial) взяты из вывода udevadm info -a -n /dev/ttyACM0|grep '{serial} '|голова -n1
., @Desty
По крайней мере, в Ubuntu 16.04 я не видел этой проблемы в Mint 18.1. Рад слышать, что вы нашли решение!, @ppareit
УСПЕШНО СПРАВИЛСЯ!!!! ПРОголосовало ЗА. У меня дистрибутив 17.04, и первое решение не было постоянным!, @tony gil
Я следовал этим инструкциям, и у меня это не работает. Единственное отличие — мое устройство находится на /dev/ttyUSB0. Я использую Ubuntu 18 и Arduino Uno., @Caio Mar
@CaioCaio: Какие инструкции? Есть два набора., @Ignacio Vazquez-Abrams
@IgnacioVazquez-Abrams, я добавил своего пользователя в группу пользователей и изменил разрешения для /dev/ttyUSB0, @Caio Mar
@CaioCaio: Вы прочитали конец ответа и комментарии?, @Ignacio Vazquez-Abrams
@IgnacioVazquez-Abrams, я это сделал, но я неправильно понял, я прочитал «продолжение», а не «предыдущее», извините... позвольте мне попробовать, @Caio Mar
@IgnacioVazquez-Абрамс, да, второй набор инструкций тоже не сработал. Моя IDE Arduino (v1.6) была установлена через менеджер программного обеспечения Ubuntu, я удалил ее, а затем установил, загрузив пакет IDE с Arduino.cc (v1.8), и теперь она работает. Спасибо за помощь!, @Caio Mar
sudo chmod ug+rw,o-rw /dev/ttyACM0' или 'sudo chmod 660 /dev/ttyACM0' предоставляет доступ на чтение и запись только пользователю/владельцу (root в выводе ls выше) и группе (дозвон в ls вывод выше), в то время как другим _явно_ запрещен доступ на чтение и запись., @rcpa0
Или просто используйте команду chown.
sudo chown <username> /dev/ttyACM*
Это сработало для меня
Все, что вам нужно сделать, это добавить себя в группу дозвона, как описано в ответе Игнасио Васкес-Абрамса. Это делается в терминале, набрав:
sudo usermod -a -G dialout $USER
Вам не нужно использовать chmod
. Это дает доступ для чтения/записи всем пользователям, а не только членам группы. Однако перед попыткой подключения необходимо выйти и снова войти. После повторного входа в систему вы будете признаны членом группы дозвона и сможете открыть устройство.
В Ubuntu 18.04 единственный способ, которым я обнаружил, что установка Arduino IDE работает прямо из коробки, — это использование документации, описанной здесь:
https://www.arduino.cc/en/Guide/Linux/
Никакой смены групп и разрешений не требуется.
Ничто из вышеперечисленного мне не помогло. Когда я установил из файла с официального сайта, он даже не запускается. Затем я установил Arduino IDE из «магазина приложений Linux» и работал, но у меня возникла проблема, как у нашего друга сверху. Поэтому я удалил его и установил через терминал sudo apt install arduino
, и теперь он работает. Ура.
- Не удается подключиться через /dev/ttyACM0 (Ubuntu 18.04)
- Arduino Uno R3 не распознается Arduino IDE в Ubuntu 21.04
- Нет ttyACM0 с Pro Micro в Ubuntu 18.04
- Как получить данные с Arduino Uno на мой ноутбук через USB
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Может ли Arduino взаимодействовать с USB-устройствами без USB-хост-экрана?
- Если USB дает 5 В, как Arduino может подавать 5 В на контакт 5 В? (И еще вопрос)
- Максимальная последовательная скорость CH340
https://www.arduino.cc/en/Guide/Linux#toc9, @Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams - можете ли вы превратить это в ответ? Мы пытаемся получить наш процент ответов вверх. :) Может быть, с небольшим количеством копий и вставок, так что это не только ссылка., @Nick Gammon
Я сделал все шаги, и это сработало с первого раза. Теперь я пытаюсь загрузить свою вторую программу и получаю это сообщение «avrdude: ser_open(): не удается открыть устройство «/dev/ttyUSB0»: разрешение отклонено». Я сделал это: roquet@roquet-HP-ENVY-x360-m6-Convertible:~$ sudo adduser roquet dialout Пользователь
roquet' уже является членом
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 20 января 13:12 /dev/ttyUSB0 roquet@roquet-HP-ENVY-x360-m6-Convertible:~$, но все равно получаю «отказ в разрешении»., @Roque Zabalet