如何使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 / ttyUSB0ch341-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.** 

我也用umake安装了arduino 1.8.5 – 它可以通常的方式访问串口。

注意:我们这里已经有类似的问题 ,但解决方案是使用umake包 ,而不是修复Snap。

所以我的问题是:如何使Arduino(Snap)访问串口/ dev / ttyUSB0(或/ dev / ttyACM0)?

更新:将串行端口连接到快照失败,并显示以下消息

 $ 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 

使用sudo chmod 777 /dev/ttyUSB0将串口的权限更改为777无济于事。

以下不起作用(由于语法错误):

 $ 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-manifest的信息:

 $ 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 

以经典模式安装快照以允许访问端口

 $ snap install arduino-mhall119 --classic 

就这么简单。 您现在应该可以访问您的串口! 快乐黑客!

注意:旧的Arduino 1.6.10需要以下信息。



一些有趣的链接有助于找到答案

自动连接串口接口

Lundamar说:在改进串口小工具/接口以访问所有系统串行设备之前,您可以通过简单地安装它来实现快速工作,如下所示:

 $ snap install tio --classic 

它总比没有好,但肯定最好是通过允许访问串行tty设备来运行它。

接口 – serial-port

接口参考 :

serial-port
可以访问串口。 这是受限制的,因为它提供了配置串行端口硬件的特权访问。 请注意,插槽应由小工具快照实现 (核心快照不提供)。

小工具提供串口插槽