FTDI 的 UDEV 规则尚未完全发挥作用

FTDI 的 UDEV 规则尚未完全发挥作用

我知道这个问题已经被问过很多次了,但我无法让它发挥作用。我有一个 FTDI 串行-USB 转换器。我已经生成10-fhss-usb.rules/etc/udev/rules.d/

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTTA5DMA", SYMLINK+="fhss", GROUP="dialout", MODE="0777", RUN+="echo USB CONNECTED!"

我还将我的用户添加到dialout组:

sudo usermod -a -G dialout $USER

groups $USER返回:

jvgomez : jvgomez adm dialout sudo plugdev lpadmin sambashare

(plugdev 组是在另一篇文章之后创建的)现在,当我连接 USB 时,运行时ls -al我可以看到:

$ ls -al /dev/fhss
lrwxrwxrwx 1 root root 7 Jun  4 17:13 /dev/fhss -> ttyUSB0

$ ls -al /dev/ttyUSB0 
crw-rw-r-- 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

消息echo USB CONNECTED!从未显示。当我使用screen /dev/fhss/它时,它立即显示[screen is terminating]。为了使其工作,我仍然必须运行chmod

$ sudo chmod a+rwx /dev/fhss 

现在:

$ ls -al /dev/ttyUSB0 
crwxrwxrwx 1 root dialout 188, 0 Jun  4 17:13 /dev/ttyUSB0

SUBSYSTEM=="tty"1) 我遗漏了什么?我仍然必须运行 chmod,而这正是我试图避免的。 2) 使用和有什么区别SUBSYSTEM=="usb"

欢迎任何帮助!

编辑:按照建议添加 NAME="my_device"Usb udev 规则对我来说从来没起作用沒有改變任何内容。

答案1

我在 Bit Bang 模式下使用 FT232RL 芯片,遇到了同样的权限问题。由于我不明白的原因,上面建议的规则对我来说不起作用。不过,经过一些修改,我让它工作了。

希望这可以帮助到别人:

$ lsusb

Bus 001 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

如上所述,我将用户添加到dialouttty $ sudo usermod -aG dialout $USER $ sudo usermod -aG tty $USER

但是,中的一行/etc/udev/rules.d/99-libftdi.rules有所不同:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS={idProduct}=="6001", OWNER="user", MODE="0777", GROUP="dialout"

关键的区别可能在于SUBSYSTEM=="usb"

答案2

要使 FTDI 分线在 Ubuntu 上工作:

使用 root 权限打开文件 /etc/group:

sudo nano /etc/group

之后,搜索tty:x5:dialout:x20:

将您的用户添加到此组并在每行前面输入您的用户名:

tty:x5:<user>

dialout:x20:<user>

您还可以使用接下来的两个命令来避免搜索文件:

sudo usermod -aG tty <user>
sudo usermod -aG dialout <user>

其中<user>, 是您的用户名。

最后,重新启动计算机。

如果要使用 udev 规则,请连接 FTDI 模块,然后运行:

lsusb

这将显示供应商 ID 和产品 ID。例如:

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

其中 8087 是供应商 ID,0024 是产品 ID。

然后,创建如下规则:

ATTRS{idVendor}="8087", ATTRS{idProduct}="0024", MODE="0660", GROUP="dialout"

相关内容