2015-11-29 1 views
2

У меня есть rf-ридер с ftdio usb для последовательного чипа. Я смог написать программу для управления ею с помощью библиотеки ftdi d2xx. Все идет нормально.ftdi d2xx конфликт с ftdi_sio на linux - Как удалить ftdi_sio автоматически

Вопрос заключается в том, что, когда читатель повторного подключения к ПК я должен удалить ftdi_sio и usbserial модов с помощью этой команды:

sudo rmmod ftdi_sio 
sudo rmmod usbserial 

Я не могу использовать FTDI D2XX библиотеку для подключения к читателю, если я не запускайте код.

Я хочу, чтобы иметь возможность добавлять правила Udev поэтому, когда читатель подключается ядро ​​выгрузить ftdi_sio и usbserial (или не загружать их в первую очередь)

Я добавил новый Udev RUL в/и т.д. /udev/rules.d с именем 99-FTDI-sio.rule

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

, но это не работает. У кого-нибудь есть идеи, как решить эту проблему?

ответ

0

Я смог исправить проблему, используя другую библиотеку. Вместо библиотеки d2xx я начал использовать pylibftdi, который основан на libftdi и не чувствителен к ftdi_sio.

1

является 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'" 
+0

Не повезло. Я добавил, что к '99-ftdi-sio.rule', затем попробовал правила перезагрузки с помощью' sudo udevadm control --reload-rules', а затем снова подключил устройство, 'lsmod | grep ftdi' по-прежнему показывает загруженные ftdi_sio и usbserial моды. –

+0

Кроме того, я получил поставщика и продукт от lsusb: 'Bus 002 Device 006: ID 0403: 6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC ' 0403 для поставщика, 6001 для продукта. –

+0

Файл следует называть _somename.rules_ not _.rule_ Сначала попробуйте выгрузить только ftdi_sio. Это сработало для меня. Также отображается ** rmmod ** или должен быть **/sbin/rmmod **? – GLampros

-1

InstEd добавления нового .rules файлов, я добавил, что новое правило линии в 70-persistent-ipoib.rules уже существуют и работают для меня. :)