Linux内核USB HID游戏摇杆20年来都存在按键数量限制
本来是奎克质造生产的模拟飞行设备QMCP737C
https://x-plane.vip/quickmade/qmcp737c/
我在写软件,支持全平台win/lin/mac,和模拟飞行平台X-Plane 11保持一致。结果WIN/MAC对设备支持没问题,插上就可以用。
但是Linux,插上也可以用,但是只剩80个按键,明明我的设备是104个按键,结果只识别出80个按键。
然后用各种关键字max USB HID button number之类一顿GOOGLE搜索,无果。
我记得Linus说过,你不要以为所谓别人会解决问题,如果问题是你发现的,那么你就是解决问题的最佳人选。此话值得回味。
好吧先看看Linux内核代码,这个神奇的数字80到底来自何方?
一顿内核搜索,无果。
80=0x50,再是一顿代码搜索,同样无果。
终于读了一下逻辑,发现80确实有来头,下载ubuntu内核代码,经过几个小时的下载,编译,再修改编译,然后奇迹发生了。104个按键全部出来。
提交代码给内核社区,未来受益全人类了
https://patchwork.kernel.org/patch/11655815/