我有一个带有ftdio usb到串行芯片的RF阅读器。我能够编写一个程序来使用ftdi d2xx库对其进行控制。到现在为止还挺好。

问题是当阅读器重新连接到PC时,我必须使用以下命令删除ftdi_sio和usbserial mod:

sudo rmmod ftdi_sio
sudo rmmod usbserial

如果我不运行代码,则无法使用ftdi d2xx库连接到阅读器。

我希望能够添加udev规则,以便无论何时连接阅读器,内核都将ftdi_sio和usbserial卸载(或不首先加载它们)

我在/etc/udev/rules.d中添加了一个新的udev rul,名称为99-ftdi-sio.rule
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001",  RUN+="/bin/sh -c 'rmmod ftdi_sio && rmmod usbserial'"

但它不起作用。任何人都有解决该问题的想法吗?

最佳答案

idVendor和idProduct是否正确?

然后尝试:

ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666",  RUN+="/bin/sh -c 'rmmod ftdi_sio && rmmod usbserial'"

如果您知道设备号,则可以尝试以下脚本:
RUN+="/bin/sh -c 'echo -n 1-1:1.0 > /sys/bus/usb/drivers/ftdi_sio/unbind'"

09-27 20:51