Подтвердить что ты не робот

Как связать драйвер с USB-устройством?

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

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

4b9b3361

Ответ 1

Собственный драйвер 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. Это проблема, с которой я столкнулся сам, и для которой я еще не нашел решение, не отвлекаясь и не переустанавливая устройство позже.

Ответ 2

Вот поток с исправлением для аналогичной проблемы. Подводя итог, вы добавляете что-то вроде следующего в один из ваших файлов /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'"

Ответ 3

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