我有一个自制的设备,我编写了一个程序来从中获取数据。但每次插入设备时,我都必须更改的权限/dev/ttyACM0
,以便端口可用于数据传输。我怎样才能使此设备默认具有读/写权限。lsusb
此设备的输出为:
Bus 003 Device 005: ID ffff:0005
答案1
如果您是该组的成员,dialout
您可以访问串行设备,包括ttySx
、ttyUSBx
和ttyACMx
设备,而无需更改权限。
$ sudo adduser myusername dialout
或者,您可以创建 udev 规则来设置设备连接时的权限。请参阅https://askubuntu.com/a/112573/471836
答案2
我将为我自己的问题添加答案,以供将来需要的人使用。我遵循了@Adam Lussier 的回答,并创建了/etc/udev/rules.d/50-ttyusb.rules
包含以下内容的文件(由@Sneetsher 提出):
ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
像这样只有这个特定的设备被赋予读/写权限。参考对于想要了解更多有关编写规则文件的人来说。