Estoy teniendo un problema extraño. Hice algunos hacks basados en el trabajo de otra persona para respaldar el soporte para el teclado interno en una MacBook Pro 11,5 al kernel 3.19.Mi fuente de GitHub se puede encontrar aquí.
He hecho todo lo posible para asegurarme de que esté lo más cerca posible del kernel 4.2 y al mismo tiempo poder compilar y trabajar como se esperaba en 3.19.
Sin embargo, aunque iniciar en 4.2 me brinda una funcionalidad perfecta y funciona como se esperaba, mi módulo no parece hacer nada. Los dispositivos Apple existentes funcionan como se esperaba, pero sigo teniendo los mismos problemas con mi teclado integrado.
Los problemas se basan en el hecho de que la tecla de función no funciona y, por lo tanto, no puedo usar mis teclas multimedia. También realicé pruebas de cordura para asegurarme de que otros teclados de Apple funcionen (probados con teclados inalámbricos y con cable de Apple y ambos funcionan correctamente).
¿Hay alguna manera de validar que mi teclado esté vinculado al controlador correcto?
La identificación USB para el dispositivo es 05ac:0274
y se puede encontrar una línea de configuración para ese dispositivo enhid-ids.h:147y enhid-apple.c:553-554. Estoy convencido de que simplemente no capta el dispositivo, porque incluso con el módulo oculto de Apple retirado, mi teclado incorporado funciona, aunque los demás no.
¿Cómo puedo depurar lo que está sucediendo y por qué mi teclado integrado no se vincula al hid-apple
módulo?
EDITAR: Pude vincular mi teclado al controlador correcto usando lo siguiente:
# 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
El problema persiste: ¿cómo fuerzo que una identificación USB determinada se asocie con un controlador determinado? Aceptaré la respuesta dada a continuación, pero todavía estoy buscando una solución...
Respuesta1
Hay una excelente respuesta.aquí. La respuesta corta es que el comando usb-devices
(disponible para la mayoría de las distribuciones en un paquete llamado usbutils
o algo similar) debería brindarle la información que desea sobre el controlador actual que utiliza cada dispositivo USB.