Determinar qual módulo está vinculado a um dispositivo HID?

Determinar qual módulo está vinculado a um dispositivo HID?

Estou tendo um problema estranho. Eu fiz alguns hacks com base no trabalho de outra pessoa para suportar o suporte do teclado interno em um MacBook Pro 11,5 para o kernel 3.19.Minha fonte GitHub pode ser encontrada aqui.

Fiz tudo o que pude para garantir que ele estivesse o mais próximo possível do kernel 4.2, ao mesmo tempo em que ainda era capaz de compilar e funcionar conforme o esperado no 3.19.

No entanto, embora a inicialização no 4.2 me proporcione uma funcionalidade perfeita funcionando conforme o esperado, meu módulo parece não fazer nada. Os dispositivos Apple existentes funcionam conforme o esperado, mas ainda estou tendo os mesmos problemas com meu teclado integrado.

Os problemas baseiam-se no fato de que a tecla de função não funciona e, portanto, não consigo usar minhas teclas de mídia. Também fiz testes de sanidade para garantir que outros teclados Apple funcionem (testados com teclado Apple com e sem fio e ambos funcionam corretamente).

Existe uma maneira de validar se meu teclado está vinculado ao driver correto?

O ID USB do dispositivo é 05ac:0274e uma linha de configuração pode ser encontrada para esse dispositivo emescondeu-ids.h:147e emescondeu-apple.c:553-554. Estou convencido de que ele simplesmente não está pegando o dispositivo, porque mesmo com o módulo hid-apple removido, meu teclado embutido funciona, mas os outros não.

Como posso depurar o que está acontecendo e por que meu teclado integrado não está vinculado ao hid-applemódulo?


EDITAR: consegui vincular meu teclado ao driver correto usando o seguinte:

# 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

O problema permanece: como forçar a associação de um determinado ID USB a um determinado driver? Aceitarei a resposta abaixo, mas ainda estou procurando uma solução ...

Responder1

Existe uma excelente respostaaqui. A resposta curta é o comando usb-devices(disponível para a maioria das distros em um pacote chamado usbutilsou algo semelhante) que fornecerá as informações desejadas sobre o driver atual que cada dispositivo USB está usando.

informação relacionada