Определите, к какому модулю привязано HID-устройство?

Определите, к какому модулю привязано HID-устройство?

У меня странная проблема. Я сделал хакерский взлом на основе работы другого человека, чтобы портировать поддержку встроенной клавиатуры на MacBook Pro 11,5 в ядро ​​3.19.Мой исходный код GitHub можно найти здесь.

Я сделал все возможное, чтобы обеспечить максимальное соответствие ядру 4.2 и при этом обеспечить возможность компиляции и работы в версии 3.19.

Однако, хотя загрузка в 4.2 дает мне идеальную функциональность, работающую как и ожидалось, мой модуль, похоже, ничего не делает. Существующие устройства Apple работают как и ожидалось, но у меня все еще те же проблемы со встроенной клавиатурой.

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

Есть ли способ проверить, привязана ли моя клавиатура к правильному драйверу?

USB-идентификатор устройства — 05ac:0274, а строку конфигурации для этого устройства можно найти вскрытый-ids.h:147И вскрытый-apple.c:553-554. Я убежден, что он просто не распознает устройство, потому что даже при удалении модуля HID-Apple моя встроенная клавиатура работает, а другие — нет.

Как мне отладить происходящее и почему моя встроенная клавиатура не привязывается к модулю hid-apple?


РЕДАКТИРОВАТЬ: Мне удалось привязать клавиатуру к нужному драйверу, используя следующее:

# unbind everything matching 05AC:0274 from hid-generic
for dev in `ls /sys/bus/hid/drivers/hid-generic/ | egrep 05AC\:0274`; do
    echo -n $dev | sudo tee /sys/bus/hid/drivers/hid-generic/unbind
done
# bind everything matching 05AC:0274 to hid-apple
for dev in `ls /sys/bus/hid/devices/ | egrep 05AC:0274` ; do
    echo -n $dev | sudo tee /sys/bus/hid/drivers/hid-apple/bind
done

Проблема остается: как заставить данный идентификатор USB ассоциироваться с данным драйвером? Я приму данный ниже ответ, но я все еще ищу решение...

решение1

Есть отличный ответздесь. Короткий ответ — команда usb-devices(доступная для большинства дистрибутивов в пакете под названием usbutilsили как-то похоже) должна предоставить вам необходимую информацию о текущем драйвере, используемом каждым USB-устройством.

Связанный контент