当前位置: 首页>>技术问答>>正文


更改串口的权限

, , , ,

问题描述

我在Ubuntu中使用Arduino IDE,并且遇到串口问题。它过去一直有效,但由于可能不必要的原因,我觉得有必要将一些文件的所有权从root所有权更改为我的用户所有权。

这使IDE正常工作,但我失去了使用正确串口的能力。在dev文件夹中,我需要的端口被列为权限166.有人(不再在该区域帮助我)将权限交换为666,这使得它全部工作得非常好。

但是,一旦我重新启动计算机,它就会恢复原状,如果我现在尝试使用该命令:

sudo chmod 666 ttyACM0

什么都没发生。没有错误消息,但也没有权限更改。

如何更改它,以及如何永久更改它。

如果这个问题过于简单或不清楚,我很抱歉,我是一个ubuntu noob,我不会吝惜反馈!

最佳解决办法

通过将您自己添加到dialout组,可以永久解决/dev/ttyACM0权限的问题。您必须注销,然后在识别组更改之前重新登录。

您可以使用sudo usermod -a -G dialout $USER执行此操作

次佳解决办法

我无法使Rinzwind’s suggestion工作,因为它抱怨用户帐户已经存在。相反,我使用此命令将现有用户(terrik)添加到现有组(dialout),如Ubuntu Help Wiki中所述。

sudo adduser terrik dialout

此命令也可用于列出您当前的组,尽管正如Rinzwind所说,您必须在串口开始让您进入之前注销并登录。

groups terrik

第三种解决办法

我无法使Terrik’s answer正常工作,但如果我对ttyACM0的路径稍作调整,我就可以了。

sudo chmod 666 /dev/ttyACM0

会发表评论,但我还没有特权……

第四种办法

另一种可能性是在/etc/udev/rules.d/目录中创建规则文件。我有类似的问题,我在上面的目录中创建了50-myusb.rules文件,内容如下:

KERNEL=="ttyACM[0-9]*",MODE="0666"

请注意,这将为任何设备连接到ttyACM套接字读/写权限。如果只需要特定设备来获取读/写权限,则还必须检查idVendoridProduct。您可以通过运行lsusb命令两次找到它们,一次没有连接设备,一次连接时,然后观察输出中的附加行。你会看到像Bus 003 Device 005: ID ffff:0005这样的东西。在这种情况下,idVendor = ffffidProduct = 0005。你的不同。比你修改规则文件到:

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

现在只有这个设备获得权限。 Read this了解有关编写udev规则的更多信息。

第五种办法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1982.html,未经允许,请勿转载。