Ubuntu 16.04软件中心安装的Arduino IDE报告错误 – avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

最近要使用Arduino开发一个读取电压的装置,新电脑上没有安装Arduino IDE,因此,从Ubuntu 16.04软件中心中搜索找到一个名为arduino-mhall119的软件,如下图所示:


安装完成后,在运行时候提示如下错误:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

在使用如下命令赋予权限之后,依旧不能解决问题:

$ sudo usermod -a -G dialout `whoami`

$ sudo chmod a+rw /dev/ttyACM0

使用

$ dmesg

观察到如下错误信息:

[10809.069431] audit: type=1400 audit(1529994719.990:104552): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS21" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069442] audit: type=1400 audit(1529994719.990:104553): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS11" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069495] audit: type=1400 audit(1529994719.990:104554): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS8" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069542] audit: type=1400 audit(1529994719.990:104555): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS6" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069543] audit: type=1400 audit(1529994719.990:104556): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS28" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069584] audit: type=1400 audit(1529994719.990:104557): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS18" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069586] audit: type=1400 audit(1529994719.990:104558): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS4" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069632] audit: type=1400 audit(1529994719.990:104559): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS26" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069634] audit: type=1400 audit(1529994719.990:104560): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS16" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0
[10809.069700] audit: type=1400 audit(1529994719.990:104561): apparmor="DENIED" operation="open" profile="snap.arduino-mhall119.arduino" name="/dev/ttyS2" pid=22855 comm="java" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=0

网上查询很久,才发现是由于软件中心安装的是基于snap管理的版本,权限是由于snap默认会被apparmor管理权限,而基于snap版本的Arduino IDE并没有正确配置串口操作权限,而导致错误。

解决方法就是安装apt管理的版本:

$ sudo apt-get install arduino

不过,上面安装的版本比较老旧,如果希望安装最新的版本,还是需要从官网下载手工安装才行。

可以参考如下命令:

$ wget http://www.mobibrw.com/wp-content/uploads/2018/06/arduino-1.8.5-linux64.tar.xz

$ sudo tar -xvf arduino-1.8.5-linux64.tar.xz -C /usr/local/

$ cd /usr/local/arduino-1.8.5

$ sudo ./install.sh

最近从Arduino官方下载最新的IDE会非常的缓慢,可以本站下载:
arduino-1.8.5-linux64.tar
arduino-1.8.5-macosx

参考链接


发布者

《Ubuntu 16.04软件中心安装的Arduino IDE报告错误 – avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied》上有1条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注