我有一个射频读取器,带有usb到串行芯片。我能够用ftdi d2xx库编写一个程序来控制它。到目前一切尚好。
问题是,当读取器重新连接到PC时,我必须使用以下命令删除ftdi_sio和and串行mods:
sudo rmmod ftdi_sio
sudo rmmod usbserial如果不运行代码,我就不能使用ftdi d2xx库连接到读取器。
我希望能够添加一个udev规则,这样每当连接到读取器时,内核就会卸载ftdi_sio和usbserial (或者不首先加载它们)
我添加了一个新的udev到/etc/udev/rues.d,名称为99-ftdi-sio.rule
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", RUN+="/bin/sh -c 'rmmod ftdi_sio && rmmod usbserial'"但这不管用。有谁有办法解决这个问题吗?
发布于 2016-05-18 15:47:01
我可以通过使用不同的库来解决这个问题。我不再使用d2xx库,而是开始使用基于libftdi的pylibftdi,它对ftdi_sio不敏感。
发布于 2015-12-01 13:35:25
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'"发布于 2015-12-03 12:14:56
在添加一个新文件.rules的过程中,我在已经存在的70持久性ipoib.Rule中添加了新的规则行,并为我工作。:)
https://stackoverflow.com/questions/33981056
复制相似问题