Первая установка - отказано в доступе к USB-порту - Ubuntu 14.04

18

Я только что подключил свой Arduino, и свет горит, но тест мигания не удалось загрузить. вот моя ошибка:

Arduino: 1.6.7 (Linux), плата: "Arduino / Genuino Uno"

Sketch использует 1030 байт (3%) памяти для хранения программ. Максимум составляет 32 256 байт. Глобальные переменные используют 9 байтов (0%) динамической памяти, оставляя 2039 байтов для локальных переменных. Максимум 2048 байт. avrdude: ser_open (): не удается открыть устройство "/ dev / ttyUSB0": Отказано в доступе. См. Http://www.arduino.cc/en/Guide/Trou устранение неполадок# upload для предложений.

В этом отчете будет больше информации с включенным «Показать подробный вывод во время компиляции» в меню «Файл»> «Настройки».


источник
arduino.cc/en/Guide/Linux#toc9
Игнасио Васкес-Абрамс
2
@ IgnacioVazquez-Abrams - ты можешь превратить это в ответ? Мы пытаемся ответить на наш процент. :) Может быть, с небольшим количеством копирования и вставки, так что это не только ссылка.
Ник Гэммон
Я сделал все шаги, и это сработало с первого раза. Теперь я пытаюсь загрузить свою вторую программу и получаю это сообщение 'avrdude: ser_open (): не могу открыть устройство "/ dev / ttyUSB0": в доступе отказано ", я сделал это: roquet @ roquet-HP-ENVY-x360-m6 Конвертируемый: ~ $ sudo adduser roquet dialout Пользовательский roquet' is already a member of набор '. 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: ~ $, но по-прежнему получите разрешение на отказ
Roque Zabalet

Ответы:

26

Из документации :

Откройте Терминал и введите:

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. Вы должны подключить Arduino.
ppareit
@ppareit, что считается "более новыми установками"? Это не работает для меня в Ubuntu 16.04 с или без перезагрузки правил (через sudo udevadm control --reload).
Дести
1
Я думаю, что это не сработало, потому что плата идентифицируется как принадлежащая подсистеме "tty", а не "usb-serial". В любом случае, создание следующего правила udev работало для меня вместо этого:, SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"где (поставщик) и (продукт) взяты из, lsusbа (серийный) взят из вывода udevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1.
Дести
По крайней мере, в Ubuntu 16.04 я не видел этой проблемы на Mint 18.1. Рад слышать, что вы нашли решение!
ppareit
УСПЕШНО СПРАВИЛСЯ!!!! UPVOTED. У меня есть дистрибутив 17.04, и первое решение не было постоянным!
Тони
3

Все, что вам нужно сделать, это добавить себя в группу дозвона, как описано в ответе Игнасио Васкеса-Абрамса. Это делается в терминале, набрав:

sudo usermod -a -G dialout $USER

Вам не нужно использовать chmod. Это дает доступ на чтение / запись всем пользователям, а не только членам группы. Однако, прежде чем пытаться подключиться, вы должны выйти и снова войти в систему . После входа в систему вы будете признаны участником группы дозвона и сможете открыть устройство.

Люк Ньюмейер
источник
1

В Ubuntu 18.04 единственный способ, с помощью которого я установил установку Arduino IDE прямо из коробки, - это использовать описанные здесь шаги документации:

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

Не нужно менять группы или разрешения.

Cagy79
источник
0

Ничто из вышеперечисленного не помогло мне. Когда я установил из файла, с официального сайта, он даже не запускается. Затем я установил Arduino IDE из «магазина приложений Linux» и работал, но у меня возникла проблема, как у нашего друга сверху. Итак, я удалил его и установил через терминал, sudo apt install arduinoи теперь он работает. Приветствия.

misha666
источник
-1

Или просто используйте команду chown.

sudo chown <username> /dev/ttyACM*

Это сработало для меня

Гарри
источник
1
Этот вопрос задавался много раз на этом сайте, и тот же ответ давал другой пользователь. Я процитирую Криса Страттона на эту тему: это плохая идея, в частности, для типичного динамически настроенного linux с udev или аналогичными управляющими / dev узлами, вам придется делать это каждый раз, когда вы подключаете устройство. Вместо этого добавьте своего пользователя в соответствующую группу, что является долговременным исправлением.