Загрузка простых набросков, кажется, работает, когда я запускаю программу Arduino от имени пользователя root ( sudo
). Я хотел бы запустить его как обычный пользователь. Кто-нибудь сталкивался с такой же проблемой раньше и исправлял?
Вот что я получил от lsusb
:
$ lsusb
Bus 002 Device 022: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
И программа Arduino идентифицирует это как /dev/ttyACM0
. Вот его разрешения:
$ ls -l /dev/ttyACM0
crw-rw---T 1 root dialout 166, 0 Mar 14 22:03 /dev/ttyACM0
Вот вывод из id
groups=1000(abhiram),20(dialout),24(cdrom),25(floppy),29(audio),
30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)
Когда я загружаю скетч из примеров, как обычный пользователь, я сталкиваюсь с этой ошибкой:
avrdude:stk500_recv(): programmer not responding
Любые предложения приветствуются.
arduino-uno
arduino-ide
linux
feverDream
источник
источник
Preferences
меню.dmesg
для файла устройства, который зарегистрирован./dev/ttyACM0: USB ACM device
. Так что для меня это не проблема. С другой стороны, журналы от компиляции и загрузки (должны были включить их в настройках), кажутся многообещающими. Я просто не могу скопировать их из программы arduino :(. (Может быть, они записывают в файл где-нибудь?)Ответы:
Самое простое решение - добавить себя в
dialout
группу.Сначала запишите вывод из
id
. Сохраните его в файле (а не в/tmp
том, что он очищается при перезагрузке). Если вы посмотрите на вывод, вы заметите, что ваш пользователь подписан на несколько групп, и эти группы представляют дополнительные привилегии в системе. По умолчанию ваш Arduino назначен группе,dialout
потому что он регистрируется как последовательный интерфейс, и в старые времена они часто использовались для ... набора номера с использованием модема.Чтобы добавить себя в
dialout
группу, введите следующую команду:Не забывайте
-a
флаг (для добавления групп, а не замены), иначе у вас будут совершенно другие проблемы. Это является причиной создания копииid
выходных данных в файл, поэтому, если вы все перепутаете, вы хотя бы знаете, как настраивался ваш пользователь ранее.Затем выйдите и войдите, и это должно работать с этого момента.
При желании вы можете дважды проверить вывод по
id
сравнению с сохраненным ранее.источник
dialout
группу, но проблема, похоже, сохраняется. Я изменил свой вопрос с выводомid
команды.cat /dev/ttyACM0
? Выдает ошибку?cat
его.Часто повторяемый совет «просто так
sudo usermod -aG dialout <username>
никогда не работал для меня», и я наконец понял, почему. На моей машине/dev/ttyUSB0
это группа,serial
а не ееdialout
, поэтому добавление моего имени пользователя вdialout
ничего не сделало.Наконец:
sudo usermod -aG <group-name> <username>
исправил это для меня.Смущающе, это также явно упомянуто здесь под «УСТАНОВИТЬ РАЗРЕШЕНИЕ». Вздох.
источник
Это происходит со мной. В моем случае я обновил версию arduino и, похоже, проблема связана с файлом настроек. Просто удалите файл ~ / .arduino / preferences.txt (с закрытой средой Arduino).
шаги:
выполнить это:
rm ~ / .arduino / preferences.txt
Запустите Arduino IDE
Это сработало для меня, надеюсь, что это работает для кого-то еще. Я использую Linux Mint 17, и я обновил Arduino 1.05 до Arduino 1.06 путем извлечения Arduino IDE, я не использую тот из репо. (Конечно, после добавления вашего пользователя в соответствующую группу, как уже упоминалось другими, но если это не поможет, попробуйте это)
источник