使用操纵杆时,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 设备。
然而,这似乎不是正确的做法。因为那时我在蒸汽和铬中检测游戏手柄时遇到问题。