![内核无法识别 DKMS 模块中的新设备?](https://linux22.com/image/76563/%E5%86%85%E6%A0%B8%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%20DKMS%20%E6%A8%A1%E5%9D%97%E4%B8%AD%E7%9A%84%E6%96%B0%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
hid-apple
我已经做了一些向后移植内核模块的工作bcm5974
(在西克沃罗)并为它们编写 DKMS 脚本,以便我可以在内核升级之间保持兼容性:
这些补丁非常简单,它们只是添加了对这些新 USB 产品 ID 的支持。
我遇到的问题是,即使使用 DKMS 安装这些新的内核模块后,我的设备仍然绝不绑定到正确的驱动程序,它们总是绑定到usbhid
,然后绑定到hid-generic
,它们应该分别由键盘和触控板绑定hid-apple
和。bcm5974
变化是真的简单,据我所知,他们应该告诉内核足够多的信息绑定正确的设备到正确的司机。
为了告诉内核它确实应该将这些设备绑定到这些驱动程序,我是否缺少一个步骤?我是否将模块安装在 DKMS 中的错误位置?
如果我经历了将设备重新绑定到正确的驱动程序的麻烦(即:定位、查找、取消绑定、绑定),它们会很好地工作,并且补丁会按预期运行。但是我如何让内核以正确的方式绑定事物默认情况下?
答案1
我的问题是我将软件包安装到了 DKMS 中的错误目录中。
DEST_MODULE_LOCATION
设置为指向模块所在的内核驱动程序中的目录非常重要。我正在安装/updates
,但这是错误的地方。我必须把它移到才能/kernel/drivers/hid
被识别。
奇怪的是,/extras
无论您在此处传递什么内容,DKMS 似乎仍然会将驱动程序安装到其中,但不知何故,这修复了它。