如何让 Arduino(Snap)访问串行端口 /dev/ttyUSB0(或 /dev/ttyACM0)?

如何让 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

我尝试上传最简单的sketch 并在终端中出现以下错误:

$ 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使用 umake 安装了 1.8.5 - 它可以以通常的方式访问串行端口。

注意:我们已经有了类似问题但解决方案是使用包裹来自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

将串行端口的权限更改为 777sudo 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-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

答案1

2020 年更新

arduino-mhall119snap 包已过时,不应再使用。使用arduino啪的一声反而。

这个答案了解有关如何使用 snap 进行串行工作的最新信息arduino

旧指令

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

$ snap install arduino-mhall119 --classic

就这么简单。现在您应该可以访问串行端口了!祝您黑客愉快!

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



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

自动连接串口接口

Lundamar 说:在串行端口小工具/接口得到改进以允许访问所有系统串行设备之前,您可以通过简单地非受限安装来使您的 snap 工作,如下所示:

$ snap install tio --classic

这总比没有好,但最好是在允许访问串行 tty 设备的情况下运行它。

接口 -serial-port

接口参考

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

提供串行端口插槽的小工具

答案2

arduino-mhall119snap 程序已经过时并且不应再使用。使用arduino捕捉。

snap install arduino

使用该快照,您唯一需要做的就是将您自己的用户添加到dailout组中:

sudo usermod -a -G dialout $USER

此后,重新启动设备并打开 Arduino IDE。

答案3

Joshua 的解决方案对我来说不再起作用,因为我收到了错误:

Warning: flag --classic ignored for strictly confined snap arduino-mhall119

但是,当使用 devmode 时,它​​工作正常:

$ snap install arduino-mhall119 --devmode

但不确定 devmode 是否会带来进一步的后果...

相关内容