Как заставить Arduino (Snap) получить доступ к последовательному порту / dev / ttyUSB0 (или / dev / ttyACM0)?

У меня установлена ​​Ubuntu 18.04 LTS.

Я установил Arduino IDE v1.8.5 как оснастку с

snap install arduino-mhall119

Я добавил своего пользователя в группу удаленного доступа и перезагрузил:

sudo usermod -a -G dialout $USER

$ groups 
username adm dialout cdrom sudo dip plugdev lpadmin sambashare

Я подключил свой Arduino Nano к ноутбуку он обнаружен в порту / dev / ttyUSB0 ( ch341-uart ).

$ ls /dev/ttyUSB0 -al
crw-rw---- 1 root dialout 188, 0 авг 13 11:59 /dev/ttyUSB0

Я попытался загрузить самый простой эскиз Blink и получить следующие ошибки в терминале:

$ arduino-mhall119.arduino 


avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied  
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.**

Также я установил arduino 1.8.5 с помощью umake. - он может получить доступ к последовательному порту обычным способом.

Примечание: у нас уже есть подобный вопрос здесь, но решение было использовать пакет из umake , а не исправление для Snap.

Итак, мой вопрос: как заставить Arduino (Snap) получить доступ к последовательному порту / dev / ttyUSB0 (или / dev / ttyACM0)?

Обновление: подключение последовательного порта к Snap завершается ошибкой со следующим сообщением

$ snap connect arduino-mhall119:serial-port 
error: snap "core" has no "serial-port" interface slots

Текущие интерфейсы:

$ snap interfaces | grep arduino
:home                            arduino-mhall119,gedit,organize-my-files,vlc
:network                         arduino-mhall119,gedit,organize-my-files,pulsemixer,vlc
:unity7                          arduino-mhall119,gedit,organize-my-files,vlc
:x11                             arduino-mhall119,organize-my-files,pulsemixer,vlc
-                                arduino-mhall119:serial-port

Изменение разрешений последовательного порта на 777 с sudo chmod 777 /dev/ttyUSB0 не помогает.

Следующие элементы также не работают (из-за синтаксических ошибок):

$ sudo snap connect arduino-mhall119:arduino
error: snap "arduino-mhall119" has no plug named "arduino"

$ snap connect arduino-mhall119:/dev/ttyUSB0
error: snap "arduino-mhall119" has no plug named "/dev/ttyUSB0"

$ snap connect arduino-mhall119
error: cannot resolve connection, plug snap name is empty

Информация о YAML-манифесте:

$ ls -l /snap/arduino-mhall119/current/meta/snap.yaml
-rw-r--r-- 1 root root 353 июл 28 00:20 /snap/arduino-mhall119/current/meta/snap.yaml

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 12 slots

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 5 plug
    plugs:
    - x11
    - unity7
    - home
    - network
    - serial-port
8
задан 13 August 2018 в 12:14

3 ответа

Снап arduino-mhall119 устарел и больше не должен использоваться. Используйте вместо этого оснастку arduino . :

snap install arduino

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

sudo usermod -a -G dialout $USER

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

2
ответ дан 5 January 2021 в 22:11

Решение Джошуа больше не работало для меня, так как я получил ошибку:

Предупреждение: флаг --classic игнорируется для строго ограниченной оснастки arduino-mhall119

Однако при использовании вместо этого devmode он работал нормально:

$ snap install arduino-mhall119 --devmode

Не уверен, есть ли какие-либо дальнейшие последствия с devmode ..

1
ответ дан 13 August 2018 в 12:14

2020 update

Snap arduino-mhall119 устарел и не должен можно больше использовать. Вместо этого используйте arduino snap .

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

Старые инструкции

Установите оснастку в классическом режиме, чтобы разрешить доступ к портам

$ snap install arduino-mhall119 --classic

Все очень просто. Теперь у вас должен быть доступ к вашим последовательным портам! Удачного взлома!

Примечание: информация ниже необходима для старого Arduino 1.6.10.



Некоторые интересные ссылки, которые помогли найти ответ

Автоматически подключаемый интерфейс последовательного порта

Ландамар говорит: Пока гаджет / интерфейс последовательного порта не будет улучшен, чтобы предоставить доступ ко всем системным последовательным устройствам, вы можете заставить свою оснастку работать, просто установив ее без ограничений следующим образом:

$ snap install tio --classic

Это лучше, чем ничего, но, безусловно, было бы лучше запустить его ограничен разрешенным доступом к последовательным устройствам tty.

Интерфейсы - последовательный порт

Ссылка на интерфейсы :

последовательный порт
Может иметь доступ к последовательным портам. Это ограничено, поскольку обеспечивает привилегированный доступ для настройки оборудования последовательного порта. Обратите внимание, что слот предназначен для реализации с помощью оснастки гаджета (это не обеспечивается оснасткой ядра).

Устройство, обеспечивающее слот последовательного порта

11
ответ дан 23 November 2019 в 06:25

Другие вопросы по тегам:

Похожие вопросы: