最近要使用Arduino
开发一个读取电压的装置,新电脑上没有安装Arduino IDE
,因此,从Ubuntu 16.04
软件中心中搜索找到一个名为arduino-mhall119
的软件,如下图所示:
安装完成后,在运行时候提示如下错误:
1 |
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied |
在使用如下命令赋予权限之后,依旧不能解决问题:
1 2 3 |
$ sudo usermod -a -G dialout `whoami` $ sudo chmod a+rw /dev/ttyACM0 |
使用
1 |
$ dmesg |
观察到如下错误信息:
1 2 3 4 5 6 7 8 9 10 |
[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
管理的版本:
1 |
$ sudo apt-get install arduino |
不过,上面安装的版本比较老旧,如果希望安装最新的版本,还是需要从官网下载手工安装才行。
可以参考如下命令:
1 2 3 4 5 6 7 8 |
$ wget https://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
感謝分享, 網路上有很多針對權限設定的方式皆無效。
只有依照您的流程,才解決我在Linux下的問題。