我已经安装了 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
我尝试上传最简单的眨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-mhall119
snap 包已过时,不应再使用。使用arduino
啪的一声反而。
看这个答案了解有关如何使用 snap 进行串行工作的最新信息arduino
。
旧指令
以经典模式安装 snap 以允许访问端口
$ snap install arduino-mhall119 --classic
就这么简单。现在您应该可以访问串行端口了!祝您黑客愉快!
注意:旧版 Arduino 1.6.10 需要以下信息。
一些有趣的链接有助于找到答案
Lundamar 说:在串行端口小工具/接口得到改进以允许访问所有系统串行设备之前,您可以通过简单地非受限安装来使您的 snap 工作,如下所示:
$ snap install tio --classic
这总比没有好,但最好是在允许访问串行 tty 设备的情况下运行它。
接口参考:
serial-port
可以访问串行端口。这是受限制的,因为它提供配置串行端口硬件的特权访问权限。请注意,该插槽旨在由小工具快照(核心快照不提供此功能)。
答案2
该arduino-mhall119
snap 程序已经过时并且不应再使用。使用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 是否会带来进一步的后果...