Загрузка / Arduino получает ошибку: в Ubuntu 16.04 отказано в разрешении - PullRequest
0 голосов
/ 10 января 2019

Я сталкивался с этой проблемой несколько лет назад и решил ее в Ubuntu 14.04, но не знаю, почему мое решение сейчас не работает в Ubuntu 16.04

Ошибка:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Я использую то же решение из Руководство , ища решение на сайтах Stack и многое другое ...

Вот что я сделал:

ls -l /dev/ttyACM*

из результата: владелец root и группа с доступом dialout

Тогда я применил:

sudo usermod -a -G dialout <username>
sudo chmod a+rw /dev/ttyACM0 

Наконец вышли из системы и вошли в систему.

Sompe люди сказали, что решили это, удалив modemmanager, поэтому я тоже попробовал:

sudo apt-get remove modemmanager

Но ведь проблема еще не решена

Примечание: Arduino Uno с Ubuntu 16.04

Отредактировано: После подачи заявления:

ls -l /dev/ttyACM*

Результат:

crw-rw---- 1 root dialout 166, 0 Jan 10 13:33 /dev/ttyACM0

1 Ответ

0 голосов
/ 10 января 2019

Проблема (как вы уже поняли) в том, что ваш пользователь не имеет доступа к устройству /dev/ttyACM0. У вас есть несколько возможностей:

  1. временно исправить проблему для вашего текущего сеанса

    sudo chown <user>:<group> /dev/ttyACM0
    

    Это изменяет владельца файла на пользователя , а группы на группу ( примечание: вам придется сделать это снова, как только вы подключите свой Arduino)

  2. навсегда решить проблему для каждого сеанса

    вы создаете правило udev для вашего arduino и помещаете его в /etc/udev/rules.d (вы должны быть в состоянии найти правильное правило udev для вашего arduino при поиске в Google).

    Тривиальным подходом будет следующее правило udev:

    99-arduino.rules

    KERNEL=="ttyACM0",GROUP="plugdev"
    

    Обратите внимание, что теперь каждое устройство /dev/ttyACM0 будет принадлежать группе "plugdev" (или любой другой группе, которую вы укажете). Это может быть не то, что вы действительно хотите. Поэтому, пожалуйста, прочтите в правилах udev, как указать ваше arduino-устройство исключительно (подсказка: vendorID и productID)

...