отсоединить устройство от usbhid и связать с вашим собственным драйвером

2587
Anton Rak

ОС: Debian 8

Проблема: я пишу модуль драйвера USB для моего микроконтроллера, пользовательский HID USB, но когда я подключаю его к ноутбуку, он привязывается к драйверу USB, если я это делаю, rmmod usbhidон также отключает мышь, и это не очень приятно) Я могу отменить его с помощью

sudo sh -c 'echo -n "1-3:1.0" > /sys/bus/usb/drivers/usbhid/unbind'

Однако делать это каждый раз, когда я подключаю свое устройство, неинтересно. Даже после того, как я написал скрипт, я понял, что запускать его снова и снова неинтересно. Можно ли автоматически отсоединить мое устройство от драйвера usbhid?

1
добавьте ваш скрипт в пользовательское правило udev, тогда udev будет запускать ваш скрипт на каждом плагине. Ipor Sircer 7 лет назад 1
@IporSircer, спасибо! я попробую Anton Rak 7 лет назад 0

2 ответа на вопрос

0
Anton Rak

Найти настоящее крутое решение было нелегко, но я это сделал. Решение не касается udev. Чтобы скрыть ядро, нужно сказать, что оно не должно касаться нашего устройства. Это можно сделать двумя способами, в зависимости от того, usbhid скомпилирован как модуль, или нет. Проверьте это:

https://unix.stackexchange.com/questions/55495/prevent-usbhid-from-claiming-usb-device

https://askubuntu.com/questions/605251/dkms-installed-kernel-module-but-not-working-after-reboot/606359#606359

PS «GRUB_CMDLINE_LINUX_DEFAULT содержит аргументы командной строки для ядра Linux. Вы можете поместить столько, сколько хотите, если они разделены пробелом ».

Надеюсь, это сэкономит кому-то время, так как я потратил много времени, чтобы найти это, я думаю, отличное решение.

С наилучшими пожеланиями, скоро

0
Kyle H

Вы можете занести драйвер в черный список, чтобы он не загружался и не связывался с устройством при загрузке. Если другие модули, которые зависят от него, они не смогут загрузить.

https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules

Да, но это скрытый драйвер по умолчанию, который управляет моими мышами, и подавлять скрытый драйвер вообще не очень хорошая идея. Anton Rak 7 лет назад 0
Согласен. Удев это путь. просто для тестирования и написания модуля драйвера USB вы можете пойти по этому пути, чтобы избежать кривой обучения, если вы не знали udev. Kyle H 7 лет назад 0
Спасибо за ответ) Я уже получил основы udev) и вообще я делал это кривые, так как я установил Linux: D Anton Rak 7 лет назад 0
Я уже решил это. В случае, если вы заинтересованы, проверьте решение ниже. Anton Rak 7 лет назад 0