Как автоматически связать или автоматически назначить мой драйвер USB на устройство USB? - PullRequest
0 голосов
/ 16 января 2019

Я пишу очень простой драйвер USB-устройства для джойстика. LKM работает отлично, это просто набор отпечатков с функциями регистрации и отмены регистрации. Когда я загружаю модуль и подключаю USB-устройство (джойстик), оно не связывается автоматически с моим драйвером. Он используется только драйвером usbhid. поэтому мне пришлось написать правило, чтобы отсоединить устройство от этого драйвера и связать его с моим драйвером. это мое правило:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0079", ATTRS{idProduct}=="0006", RUN="/bin/sh -c 'if [ -d /sys/bus/usb/drivers/usbhid/$id:1.0 ]; then echo -n $id:1.0 > /sys/bus/usb/drivers/usbhid/unbind; fi && echo -n $id:1.0 > /sys/bus/usb/drivers/joystick_driver/bind'"

это отлично работает. просто посмотрите, есть ли устройство в подсистеме usbhid. если да, просто отвяжите его, а затем привяжите мой драйвер к этому устройству. но я не уверен, что то, что я делаю, - правильный путь. Интересно, есть ли они в модуле ядра (код драйвера), который назначает или связывает драйвер с устройством джойстика без написания каких-либо правил. потому что, как выяснилось у моих исследователей, модуль ядра (драйвер устройства) не может привязывать или назначать устройство себе, он просто сообщает системе, что он может поддерживать это устройство, но не связываться с ним. Надеюсь, я понял, что я ищу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...