更改串行端口的权限

更改串行端口的权限

我在 Ubuntu 中使用 Arduino IDE,但串行端口出现问题。以前它一直正常工作,但出于可能不必要的原因,我觉得需要将某些文件的所有权从 root 所有权更改为我的用户所有权。

这使得 IDE 正常工作,但我失去了使用正确串行端口的能力。在 dev 文件夹中,我需要的端口被列为权限 166。有人(不再在该地区帮助我)将权限交换为 666,这使一切都顺利运行。

但是,当我重新启动计算机时,它就恢复了,如果我现在尝试使用该命令:

sudo chmod 666 ttyACM0

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

我怎样才能改变它,怎样才能让它永久改变。

如果这个问题过于简单或不清楚,我深感抱歉,我是一名 ubuntu 新手,我不会吝惜反馈!

答案1

通过将您自己添加到该组/dev/ttyACM0可以永久解决权限问题。dialout

您可以使用以下方式执行此操作:

  1. sudo usermod -a -G dialout $USER

  2. 注销然后重新登录以使组更改生效。

答案2

我无法得到Rinzwind 的建议无法正常工作,因为它抱怨用户帐户已经存在。相反,我使用此命令将现有用户 ( terrik) 添加到现有组 ( dialout),如Ubuntu 帮助维基

sudo adduser terrik dialout

此命令还可用于列出您当前的组,尽管正如 Rinzwind 所说,您必须先注销并登录,然后串行端口才开始让您进入。

groups terrik

答案3

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

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

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

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

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

答案4

尝试进入系统/用户和组并选中 TTY 组中您的用户名的复选框。

相关内容