/dev/ttyACM0:openSUSE 权限被拒绝

Posted

技术标签:

【中文标题】/dev/ttyACM0:openSUSE 权限被拒绝【英文标题】:/dev/ttyACM0: permission denied on openSUSE 【发布时间】:2019-07-16 15:45:05 【问题描述】:

我正在尝试在 Arduino IDE 中使用基于 Arduino Leonardo 的“Arduboy”。但是,由于以下错误,我无法上传示例代码:

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

在将其标记为重复之前,这是我尝试过的所有内容

将我自己添加到dialout 可以修改/dev/ttyACM0 的组 每次插上板子都运行chmod a+rw /dev/ttyACM0 制定这条 udev 规则:KERNEL=="ttyACM0", MODE="0666"

这些都不起作用。 所做 的工作是使用xdg-su 运行它,如下所示:xdg-su -c ./arduino。但是,我认为每次都以 root 身份运行它并不是最好的主意。有什么我可以做的吗?

我正在运行 openSUSE Tumbleweed。

【问题讨论】:

添加用户后是否退出登录? @Juraj 完全是,甚至在 udev 之后重新启动 对以下命令的响应是什么:(a) ls -l /dev/ttyACM* 和 (b) groups ? 【参考方案1】:

在上传过程中,基于 Arduino Leonardo 的开发板会在短时间内中断与 ttyACM* 的通信(例如登录和退出)。由于某种原因,在此过程中权限会发生变化。在上传失败期间查看重复的ls -l --full-time /dev/ttyACM0 的输出:

crw-rw-rw- 1 root dialout 166, 0 2019-08-11 17:28:31.974025089 +0200 /dev/ttyACM0
ls: cannot access '/dev/ttyACM0': No such file or directory
crw------- 1 root root 166, 0 2019-08-11 17:42:15.523439213 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-11 17:42:16.083442857 +0200 /dev/ttyACM0

我也使用风滚草。我目前知道的唯一解决方法是以 root 身份启动 Arduino IDE。

【讨论】:

【参考方案2】:

转到您的 arduino 的程序目录。在目录中打开终端。然后输入./arduino-linux-setup.sh $USER。重启之后。您可以将代码上传到您的 arduino。

【讨论】:

以上是关于/dev/ttyACM0:openSUSE 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

OSError: [Errno 13] Permission denied: '/dev/ttyACM0' - using pyserial from Python to Arduino

avrdude:ser_open():无法打开设备“/dev/ttyACM0”:设备或资源忙

如何避免docker主机和docker容器同时访问串口?

在 openSUSE 13.2 中运行的 Android Studio Workspace 中的设备权限不足

file_put_contents Opensuse 权限问题

Kubernetes节点设备端口(USB)映射到POD?或者 Swarm 服务——设备映射