Linux 5.16 某些游戏手柄连接异常

2022-01-20 245点热度 0人点赞 0条评论

Linux 内核 5.16 版本于前几天正式发布了,小山用的是 ArchLinux,自然是第一时间升级了内核。Linux 5.16 加入了很多令人兴奋的特性,比如帮助 Wine 更好的运行 Windows 游戏的 FUTEX2 系统调用。

还有一个针对游戏显著的变化是加入了 Nintendo Switch 系列手柄的支持,不需要第三方驱动便可以在 Linux 上使用 NS 的手柄。但就是这个功能,影响了那些即支持 PC,又支持 NS 的游戏手柄。

linux-516-game-controller

因为这些多平台支持的游戏手柄一般是先用 NS 手柄的协议进行通信协商,如果协商失败,再回退到传统的 Xbox 360 协议。由于 Linux 现在原生支持 NS 游戏手柄,当这些手柄连接到运行 Linux 5.16 内核的设备时,它们就会被系统识别为 NS 游戏手柄,因为 NS 协议协商成功了。虽然说识别为 NS 手柄并不影响这些手柄的使用,但是某些手柄可能会有些奇奇怪怪的问题,比如小山手里的北通宙斯精英版,被识别为 NS 手柄后,摇杆会一直偏移在左下角,这就导致无法正常使用它游玩游戏。

解决方法也很简单,只需把支持 NS 手柄的内核模块hid_nintendo加入黑名单,防止系统自动加载该模块,这样游戏手柄进行协议协商时就会回退到传统的 Xbox 360 协议。

如果你需要同时连接 NS 原生手柄和第三方手柄,可以先连接第三方手柄,当第三方手柄连接成功后,再手动加载hid_nintendo模块,然后连接 NS 原生手柄即可,因为连接成功后是不会再切换协议的,除非重新连接。

操作命令如下所示:

加入黑名单:echo "blacklist hid_nintendo" | sudo tee /etc/modprobe.d/no_ns_controllers.conf

移出黑名单:sudo rm /etc/modprobe.d/no_ns_controllers.conf

手动加载模块:sudo modprobe hid_nintendo

手动卸载模块:sudo modprobe -r hid_nintendo


如果有其他的问题,欢迎加入 QQ 群 与我探讨。

微信公众号二维码

微信扫描二维码关注我们

如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。

小山

一个什么都不会但要装作很厉害的人

文章评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据