处理 HID_MAX_USAGES 内核错误的最佳方法?

处理 HID_MAX_USAGES 内核错误的最佳方法?

这是我现在第二次遇到的问题:基本上,基于 USB 的设备会报告一些错误的“HID_MAX_USAGES”数字,导致内核给出错误消息并且设备无法工作。几年前,我在使用 Sharkoon Drakonia 鼠标时遇到了这个问题,虽然 Linux 内核现在支持该鼠标,但我的新 Medion P2213T 的可拆卸键盘却不支持。但是有各种各样的设备都存在这个问题,看看错误报告以获取更多详细信息。

从我现在读到的内容来看,有不同的方法可以解决这个问题:大多数人似乎使用的一种方法是在将“include/linux/hid.h”中的“HID_MAX_USAGES”更改为更高的值后重建内核(大部分在 64k 左右)。虽然这工作得很好,但我上面链接的错误报告中的指定开发人员指出,这会增加内存使用量,这将导致性能不佳,尤其是在低端平板电脑设备上。另外,每次需要安全更新时,您都必须重建内核,并且无法使用发行版自动内核更新系统(这确实是最糟糕的部分)...

第二种方法是考虑修复 USB HID 报告描述符,因为通常这些高值无论如何都是不合理的。我认为有两种方法可以解决这个问题,将其修复在设备固件本身上,或者将其添加到内核源代码中的某种白名单中以覆盖该值。但很难找到有关这两种方式的更多信息。

所以归结为这些问题:

我在哪里要求将可拆卸键盘添加到此“白名单”?我应该附上什么数据?我知道这应该是可能的,因为我的 Sharkoon 鼠标现在已经得到了最新内核的支持。

是否有其他方法使内核支持我的设备,而不禁用自动内核更新?

谢谢!

相关内容