如何强制 evdev API 代替 Joystick 旧版 API?

如何强制 evdev API 代替 Joystick 旧版 API?

使用操纵杆时,Steam 仅支持 evdev 驱动程序,因此,借助“wii-u-gc-adapter”工具,我有一个很酷的 wii u“usb 适配器”和 2 个 gamecube 控制器,可以在 Steam 中正常工作。

我还有 2 个 Wiimote(带有经典控制器),工作得很好(带有模拟器),但在旧版操纵杆 API 中,它恰好在/dev/input/js0和中创建了 2 个文件(每个操纵杆) /dev/input/event11

我已经安装了“hid-wiimote”模块(理论上是 evdev wiimote 驱动程序),但仍然无法被 steam 识别,甚至无法使用 sdl2-jstest 实用程序(sdl2-jstest --list)识别,但文件上有“evtest” /dev/input/event11/dev/input/by-id/或中没有符号链接/dev/input/by-path

重点是我想知道是否有办法强制在这些 API 之间进行更改。任何想法将不胜感激。

答案1

我可以通过将 Joystick API 的内核模块列入黑名单来摆脱它。
运行sudo rmmod joydev以卸载内核模块。
检查它是否未加载:lsmod | grep joydev不应打印任何内容。
将模块列入黑名单以防止其加载:将blacklist joydev行添加到/etc/modprobe.d/blacklist.conf
Now 当您插入游戏手柄时,您应该只能在 /dev/input/by-id 中看到 evdev 的 API 设备。

然而,这似乎不是正确的做法。因为那时我在蒸汽和铬中检测游戏手柄时遇到问题。

相关内容