linux - 上传/Arduino 出错:Ubuntu 16.04 上的权限被拒绝
问题描述
几年前我就遇到过这个问题,我在 Ubuntu 14.04 上解决了这个问题,但我不知道为什么我的解决方案现在在 Ubuntu 16.04 上不起作用
错误:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
我正在使用The guide中的相同解决方案,通过在 Stack 网站上搜索解决方案等等......
这是我所做的:
ls -l /dev/ttyACM*
结果:所有者是root,具有访问权限的组是拨出
然后我申请了:
sudo usermod -a -G dialout <username>
sudo chmod a+rw /dev/ttyACM0
最后注销并登录。
Sompe 人说他们已经通过删除 modemmanager 解决了这个问题,所以我也尝试过:
sudo apt-get remove modemmanager
但毕竟问题还没有解决
注意:带有 Ubuntu 16.04 的 Arduino Uno
编辑:应用后:
ls -l /dev/ttyACM*
结果是:
crw-rw---- 1 root dialout 166, 0 Jan 10 13:33 /dev/ttyACM0
解决方案
问题是(正如您已经发现的那样),您的用户不允许访问该/dev/ttyACM0
设备。你有几种可能性:
暂时解决当前会话的问题
sudo chown <user>:<group> /dev/ttyACM0
这会将文件的所有权更改为用户并将组更改为组 (注意:您必须再次执行此操作,只要您重新插入您的 arduino)
永久解决每个会话的问题
您为您的 arduino 创建一个udev 规则并将其放入
/etc/udev/rules.d
(在谷歌搜索时,您应该能够为您的 arduino 找到正确的 udev 规则)。简单的方法是以下 udev 规则:
99-arduino.rules
KERNEL=="ttyACM0",GROUP="plugdev"
请注意,现在每个
/dev/ttyACM0
设备都归组“plugdev”(或您指定的任何组)所有。这可能不是你真正想要的。所以请阅读 udev-rules 如何专门指定您的 arduino-device(提示:vendorID 和 productID)
推荐阅读
- javascript - Html Quiz不起作用js问题没有出现
- excel - 使用 DAX 计算带有数字和特定文本的行
- excel - 删除 SUMIF 值中的字符串
- c# - 有没有办法在链接到数组时参数化 Linq 的包含部分
- javascript - javascript/css - 防止在 span 中复制文本
- mysql - 基于变量添加和删除角色
- xcode - Flutter App、Xcode 不关注 generated.xcconfig。找不到 main.dart
- vba - 如何在 word 文档中创建一个自动填充字段,该字段根据第一个实例的内容进行更新
- node.js - Nodejs https.request 和 axios
- python - Plotly Distplot 子图