Программа Arduino работает только при запуске от имени root
Загрузка простых скетчей, кажется, работает, когда я запускаю программу 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
Любые предложения приветствуются.
@feverDream, 👍20
1 ответ
Самое простое решение — добавить себя в группу dialout
.
Сначала запишите вывод из id
. Сохраните его в файле (не в /tmp
, так как он очищается при перезагрузке). Если вы посмотрите на вывод, вы заметите, что ваш пользователь зарегистрирован в нескольких группах, и эти группы представляют дополнительные привилегии в системе. По умолчанию ваш Arduino назначен в группу dialout
, потому что он регистрируется как последовательный интерфейс, и в старые времена они часто использовались для ... исходящих звонков с использованием модема.
Чтобы добавить себя в группу dialout
, введите следующую команду:
sudo usermod -a -G dialout $USER
Не забудьте флаг -a
(для добавления групп, а не для замены), иначе у вас будут совершенно другие проблемы. Вот почему нужно копировать вывод id
в файл, чтобы в случае, если вы все-таки ошибетесь, вы хотя бы знали, как был настроен ваш пользователь раньше.
Затем выйдите из системы и войдите в систему, и с этого момента все должно заработать.
При желании вы можете дважды проверить вывод для id
по сравнению с выводом, который вы сохранили ранее.
- Arduino IDE Отказано В Разрешении На Загрузку, Ubuntu
- avrdude ser_open() can't set com-state
- Float печатается только 2 десятичных знака после запятой
- ошибка: espcomm_upload_mem failed при загрузке скетча
- Печать массива байтов на экране последовательного монитора Arduino IDE
- Разные и самые быстрые способы вычисления синусов и косинусов в Arduino
- Нет заголовочных файлов (.h) в Documents\Arduino\libraries\arduino_144469 с демонстрационным кодом
- Связь Arduino master/slave с использованием RS485