linux - /dev/ttyACM0:openSUSE 权限被拒绝
问题描述
我正在尝试使用基于 Arduino Leonardo 的“Arduboy”和 Arduino IDE。但是,由于以下错误,我无法上传示例代码:
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。
解决方案
在上传过程中,基于 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。
推荐阅读
- vbscript - Active Directory vbscript 大小写转换
- java - 当通过的线程数量小于屏障限制时,屏障(例如 CyclicBarrier)是否会导致死锁?
- json - 缓存来自简单 ruby 脚本的 API 响应
- ios - 如何使用 MacBook A1181 将 iOS 应用程序提交到 App Store?
- android - 计划的 JobIntentService 永远不会在 API >= 27 Oreo 上启动
- meteor - Meteor 1.7 ecmascript 和 babel-compiler 包错误
- mysql - MySQL:扩展 DATE 表
- c# - MultiBinding 作为资源而不是 XAML 中的样式
- c# - LINQ:IAsyncGrouping 和 IGrouping 冲突(二)
- .net - 我可以在 Openedge/ABL 代码中使用 .net 身份验证调用吗?