I've done some work backporting the kernel modules for hid-apple and bcm5974 (with lots of help from SicVolo) and writing DKMS scripts for them so I can maintain compatibility across kernel upgrades:rfkrocktk/hid-apple-3.19rfkrocktk/bcm5974-3.19The patches are pretty straightforward, they just add support for these new USB product ids. The problem I'm having is that even after installing these new kernel modules using DKMS, my devices are never bound to the right drivers, they're always bound to usbhid and then to hid-generic, where they should be going to be bound by hid-apple and bcm5974 for the keyboard and trackpad respectively.The changes are really simple and as far as I can tell, they should tell the kernel enough to bind the right devices to the right drivers.Is there a step I'm missing in order to tell the kernel that it really should bind these devices to these drivers? Am I installing the modules in the wrong place in DKMS? If I go through the hassle of rebinding the devices to the right drivers (ie: locate, lookup, unbind, bind), they work great and the patches are functioning as expected. But how do I get the kernel to bind things the right way by default?
Kernel not recognizing new devices from DKMS module?
linux;usb;kernel modules;hid
My problem was that I was installing the packages into the wrong directories in DKMS. It's important to set DEST_MODULE_LOCATION to point to the directory within the kernel drivers in which your module is supposed to live. I was installing into /updates, but this was the wrong place. I had to move it to /kernel/drivers/hid to get it recognized.The weird thing is that DKMS seems to still install the driver into /extras no matter what you pass here, but somehow this fixes it.