Ich habe ein seltsames Problem. Ich habe auf der Grundlage der Arbeit einer anderen Person einige Hacks durchgeführt, um die Unterstützung für die interne Tastatur eines MacBook Pro 11,5 in Kernel 3.19 zurückzuportieren.Meine GitHub-Quelle finden Sie hier.
Ich habe alles getan, um sicherzustellen, dass es so nah wie möglich an Kernel 4.2 ist und gleichzeitig weiterhin wie erwartet auf 3.19 kompiliert werden kann und funktioniert.
Während beim Booten in 4.2 die Funktionalität wie erwartet einwandfrei funktioniert, scheint mein Modul nichts zu tun. Vorhandene Apple-Geräte funktionieren wie erwartet, aber ich habe immer noch die gleichen Probleme mit meiner integrierten Tastatur.
Die Probleme beruhen darauf, dass die Funktionstaste nicht funktioniert und ich deshalb meine Medientasten nicht verwenden kann. Ich habe auch Plausibilitätstests durchgeführt, um sicherzustellen, dass andere Apple-Tastaturen funktionieren (getestet mit kabelgebundenen und kabellosen Apple-Tastaturen und beide funktionieren ordnungsgemäß).
Gibt es eine Möglichkeit für mich zu überprüfen, ob meine Tastatur an den richtigen Treiber gebunden ist?
Die USB-ID für das Gerät ist 05ac:0274
, und eine Konfigurationszeile für dieses Gerät finden Sie inhid-ids.h:147und inhid-apple.c:553-554. Ich bin überzeugt, dass es einfach daran liegt, dass das Gerät nicht erkannt wird, denn selbst wenn das HID-Apple-Modul entfernt ist, funktioniert meine integrierte Tastatur, obwohl die anderen nicht funktionieren.
Wie kann ich debuggen, was passiert und warum meine integrierte Tastatur nicht an das hid-apple
Modul gebunden wird?
BEARBEITEN: Ich konnte meine Tastatur wie folgt an den richtigen Treiber binden:
# 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
Das Problem bleibt bestehen: Wie erzwinge ich die Verknüpfung einer bestimmten USB-ID mit einem bestimmten Treiber? Ich akzeptiere die unten angegebene Antwort, suche aber immer noch nach einer Lösung ...
Antwort1
Es gibt eine ausgezeichnete AntwortHier. Die kurze Antwort ist, dass der Befehl usb-devices
(für die meisten Distributionen in einem Paket namens usbutils
oder so ähnlich verfügbar) Ihnen die gewünschten Informationen zum aktuellen Treiber geben sollte, den jedes USB-Gerät verwendet.