更改串口的权限
我在Ubuntu中使用Arduino IDE,并且遇到串口问题。 它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。
这使IDE正常工作,但我失去了使用正确串口的能力。 在dev文件夹中,我需要的端口被列为权限166.有人(不再在该区域内帮助我)将权限交换为666,这使得它全部工作得非常好。
但是,一旦我重新启动计算机,它就会恢复原状,如果我现在尝试使用该命令:
sudo chmod 666 ttyACM0
什么都没发生。 没有错误消息,但也没有权限更改。
如何更改它,以及如何永久更改它。
如果这个问题过于简单或不清楚,我很抱歉,我是一个ubuntu noob,我不会吝惜反馈!
可以通过将自己添加到dialout
组来永久解决/dev/ttyACM0
权限的问题。 您必须注销,然后在识别组更改之前重新登录。
您可以使用sudo usermod -a -G dialout $USER
执行此操作
我无法得到Rinzwind的建议 ,因为它抱怨用户帐户已经存在。 相反,我使用此命令将现有用户( terrik
)添加到现有组( dialout
),如Ubuntu帮助Wiki中所述 。
sudo adduser terrik dialout
此命令也可用于列出您当前的组,尽管正如Rinzwind所说,您必须在串口开始让您进入之前注销并登录。
groups terrik
我无法让Terrik的答案奏效,但如果我对ttyACM0
的路径进行了这么小的调整,我就可以了。
sudo chmod 666 /dev/ttyACM0
会发表评论,但我还没有特权……
另一种可能性是在/etc/udev/rules.d/
目录中/etc/udev/rules.d/
规则文件。 我有类似的问题,我在上面的目录中创建了50-myusb.rules
文件,内容如下:
KERNEL=="ttyACM[0-9]*",MODE="0666"
请注意,这将为任何设备连接到ttyACM套接字读/写权限。 如果只需要特定设备来获取读/写权限,则还必须检查idProduct
和idProduct
。 你可以通过两次运行lsusb
命令找到它们,一次没有你的设备连接,一次连接,然后观察输出中的附加行。 你会看到Bus 003 Device 005: ID ffff:0005
。 在这种情况下, idProduct = 0005
idVendor = ffff
和idProduct = 0005
。 你的不同。 比你修改规则文件到:
ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
现在只有这个设备获得权限。 阅读本文以了解有关编写udev规则的更多信息。
尝试进入系统/用户和组,并在TTY组中的用户名上打开方框。