Как я могу связать драйвер с USB-устройством? - PullRequest
22 голосов
/ 16 октября 2010

Я пишу USB-накопитель для Linux. это для джойстика. каждый раз, когда он подключается, linux загружает скрытый драйвер. Есть ли способ сказать Linux, чтобы загрузить мой, когда я подключаю его? или хотя бы не загружать по умолчанию?

Я могу отобразить id в unbind драйвера по умолчанию и повторить в bind моего драйвера; но я хотел бы что-то более автоматическое .. спасибо

Ответы [ 3 ]

11 голосов
/ 07 мая 2015

Собственный драйвер USB имеет приоритет над usbhid

Если вы хотите предотвратить привязку к драйверу usbhid, вы можете использовать его настройку HID_QUIRK_IGNORE (= 4).Чтобы придерживаться примера, который использовал Карл Билефельдт, добавьте

options usbhid quirks=0x15c2:0x0043:0x04

в какой-нибудь файл /etc/modprobe.d/*.conf (и, возможно, воссоздайте ваши initramfs).Это скажет hid-core игнорировать это устройство.Так что usbhid рассмотрит его, но оставит его для другого драйвера.

Собственный драйвер HID имеет приоритет над hid-generic

Однако, если ваш другой драйвер является драйвером HIDне USB-драйвер, тогда вам потребуется usbhid для привязки к драйверу на уровне USB, и вам нужен собственный драйвер HID, чтобы иметь приоритет над hid-generic.Это проблема, с которой я сталкиваюсь, и для которой я еще не нашел решения, за исключением того, чтобы потом отсоединить и повторно привязать устройство.

4 голосов
/ 16 октября 2010

Вот ветка с исправлением аналогичной проблемы.Подводя итог, вы добавляете что-то вроде следующего в один из ваших /etc/udev/rules.d файлов:

SYSFS{idVendor}=="15c2", SYSFS{idProduct}=="0043", MODE="0666", PROGRAM="/bin/sh -c 'echo -n $id:1.0 >/sys/bus/usb/drivers/usbhid/unbind;\
echo -n $id:1.1 >/sys/bus/usb/drivers/usbhid/unbind'"
1 голос
/ 13 июня 2013

http://lwn.net/Articles/143397/ очень похож на приведенный выше ответ, может быть, еще некоторые детали.

...