更改串口的权限

我在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套接字读/写权限。 如果只需要特定设备来获取读/写权限,则还必须检查idProductidProduct 。 你可以通过两次运行lsusb命令找到它们,一次没有你的设备连接,一次连接,然后观察输出中的附加行。 你会看到Bus 003 Device 005: ID ffff:0005 。 在这种情况下, idProduct = 0005 idVendor = ffffidProduct = 0005 。 你的不同。 比你修改规则文件到:

 ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666" 

现在只有这个设备获得权限。 阅读本文以了解有关编写udev规则的更多信息。

尝试进入系统/用户和组,并在TTY组中的用户名上打开方框。