9

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

 2 years ago
source link: https://www.mivm.cn/linux-516-game-controller
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

2022-01-20 52点热度 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 群 与我探讨。

微信公众号二维码

微信扫描二维码关注我们

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

本作品采用 知识共享署名 4.0 国际许可协议 进行许可

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK