При загрузке кода в arduino выдается сообщение об ошибке: «avrdude: ser_open (): не удается открыть устройство» / dev / ttyACM0 «: разрешение запрещено»


13

Моя ОС - Ubuntu 18.04, и Arduino работал до сих пор.

Хотя есть несколько решений, ни одно из них мне не подходит.

Я следовал этим инструкциям на сайте Arduino.

Затем я попробовал это на Arduino Stack Exchange , который должен работать в тех случаях, когда первое решение не сработало. Ответ говорит, что мы должны создать несколько правил на /etc/udev/ruled.d/пути.

Но никто из них не работал для меня.

Я также протестировал Arduino в Windows 10, чтобы увидеть, была ли это аппаратная проблема, но она работала нормально.

У кого-нибудь есть еще идеи как решить эту проблему?

ОБНОВИТЬ:

  • Мое имя пользователя, sergio, является частью обеих групп (tty и dialout);
  • Я вышел из системы и вернулся, как объясняется в официальном руководстве Arduino;
  • В Arduino IDE правильные конфигурации: Arduino UNO и ttyACM0
  • Это результат ll /dev/ttyACM0выполнения команд обучения:

    crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
    

ОБНОВЛЕНИЕ 2:

Я создал скрипт для решения этой проблемы: https://github.com/sergiomafra/iniarduino


5
Возможный дубликат Как установить последнюю версию Arduino IDE? Вы забыли выйти из системы и войти снова после запуска usermod?
Норберт

Нет. Сначала я попытался выйти и войти. Затем я попытался перезагрузить свой ноутбук. Ничто, похоже, не работает ...
Сержио Мафра

crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 / dev / ttyACM0 Логин: sergio Имя: Sérgio Mafra Каталог: / home / sergio Оболочка: / bin / bash Включено с Вс 15 июля 08:26 (- 03) вкл .: 0 с: 0 (сообщения выключены) Нет почты. Нет плана.
Сержио Мафра

DialOut: х: 20: Серджио. Когда я попытался запустить вторую команду, bash вернул мне Нет такого файла или каталога
Sérgio Mafra

2
@ N0rbert Я не думаю, что этот вопрос должен быть закрыт как дубликат Как установить последнюю версию Arduino IDE? потому что принятый ответ на этот вопрос более конкретен для вопроса, который был задан.
Карел

Ответы:


9

Переустановите arduino, установленный из программного центра Ubuntu:

sudo apt install --reinstall arduino

Переустановка необходима, поскольку ваша which avrdudeкоманда согласно вашему комментарию ничего не возвращает, но должна быть /usr/bin/avrdude. Проверить снова:

which avrdude

Запустите Arduino IDE после переустановки и закройте его.

Проверьте вашу конфигурацию arduino. Откройте /home/sergio/.arduino/preferences.txtфайл и проверьте там serial.portвариант. Попробуйте изменить это на /dev/ttyACM0. Откройте этот файл:

sudo nano /home/sergio/.arduino/preferences.txt

и применить соответствующие изменения, т.е. вариант должен выглядеть

serial.port=/dev/ttyACM0

Перезагрузите компьютер после этого.


1
Спасибо за помощь. Я удалил его из Ubuntu Software Center и установил версию с сайта Arduino, и это сработало.
Сержио Мафра

23

У меня была похожая проблема, когда я пытался загрузить эскиз в Arduino. Проблема была связана с отсутствием разрешений на чтение / запись на последовательный порт. Мне удалось исправить с помощью следующей команды:

Чтобы подтвердить, что порт существует, введите следующее из корневого каталога.

ls /dev/ttyACM0

Чтобы установить разрешения на чтение / запись, введите следующее

sudo chmod a+rw /dev/ttyACM0

Решил мою проблему. Спасибо!
FunkSoulBrother

Решил мою проблему ..
anuraag tummanapally

3

Вот что сработало для меня:

  • Удалите версию с Apt, она не работает должным образом ( sudo apt uninstall arduino; sudo apt autoremove)
  • Установите версию с сайта Arduino
  • sudo apt install avrdude так как тот, что на сайте не включает его
  • sudo usermod -a -G dialout [your_username] так как тот с сайта не делает это автоматически

И теперь все снова работает!


0

В сочетании со всеми сообщениями, которые я прочитал, это то, что я сделал, чтобы решить эту проблему, следуя инструкциям из этой темы.

В новом терминале я набрал следующее, как показано ниже.

https://i.stack.imgur.com/ifRmx.png

Обратите внимание, что fourplus - это мое имя пользователя.


2
Добро пожаловать, чтобы спросить Ubuntu. В будущем вы должны публиковать текст, а не изображения, где это возможно.
Джефф

0

Я получил решение.

  1. Найдите свой порт, к которому подключен Arduino (например, мой был /dev/ttyUSB0). Вы можете найти это упомянутое в сообщении об ошибке в Arduino IDE.

  2. Откройте терминал ( Ctrl+ Alt+ T).

  3. В терминале запускаем:

    sudo chmod 777 /dev/ttyUSB0
    

    Приведенная выше команда устанавливает необходимые разрешения.



0

Я вижу, что вопрос уже принят, но ни одно из решений не сделало это для меня, поэтому у меня есть другое решение. Я установил IDE Arduino через установщик программного обеспечения Ubuntu. Что вам нужно сделать, это.

  1. Зайдите в Arduino IDE в магазине программного обеспечения Ubuntu
  2. разрешения для кликов
  3. установить доступ к USB-оборудованию напрямую

0

Ха, я новичок, и я сделал несколько ошибок)) Не делай так, как я.

  1. Во-первых, в моей книге была плохая картина о схеме подключения светодиодов. Я нашел новый и переподключил провода. Теперь они подключены правильно.
  2. Затем я подключил Arudino к компьютеру (это важно).
  3. Затем я выполнил следующие команды:

    • ls -l / dev / ttyACM0
    • sudo usermod -a -G dialout [my_username]
    • sudo chmod a + rw / dev / ttyACM0

Когда я искал доску в меню программы Arduino (Инструменты -> Доска), я не нашел «Arduino / Genuino Uno», просто был «Arduino Uno» (думаю, все в порядке)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.