我正在使用 Ubuntu GNOME 16.10 64 位。
在 Steam 上,我注意到一种奇怪的行为。如果我的 Sixaxis 用 USB 线连接,一切都会正常,但如果通过蓝牙连接,游戏要么无法识别它,要么输入很奇怪(SELECT 变成 X)
我该如何修复此问题?
答案1
我碰巧也有一个六轴控制器,并且最初遇到了和你同样的问题。
当设备插入 USB 模式时,它会按预期运行,大多数游戏都会将其识别为正确的设备。在蓝牙上,它以不同的规范运行,大多数游戏在 Linux 上都不能很好地支持它。
这里的基本问题是,当控制器位于 USB 上时,它会作为 HID 设备注册到 Linux 内核,并附带其所有代码(例如产品和制造商 ID)。这样游戏就可以快速准确地识别控制器并加载其配置。
当您通过蓝牙连接时,无论您使用哪种蓝牙驱动程序,都会尝试通过 Xserver 或用户空间桌面管理器将设备作为 HID 连接。这会掩盖游戏或应用程序关于该设备的大部分信息,而且由于 Linux 支持与 Windows 相比通常被遗忘,游戏开发者或引擎不会花时间添加这种级别的兼容性,因为它不是很好标准化。
修复/解决方法:
简单:
由于游戏中的“操纵杆”现在是虚拟设备而不是 USB 设备,因此它们将被识别为完全不同的设备。如果游戏支持,您可以将重新映射控件的自定义配置添加到游戏中。
中等:
您可以通过方便的 GUI 重新映射操纵杆控件,也许jstest-gtk
,jscalibrator
或者jscal
可能有效。您也可以尝试其他非官方工具来重新映射操纵杆,尽管我还没有找到任何可以通过蓝牙完美运行的工具。
困难:
可以xboxdrv
用来将控制器重新映射到 Xbox,尽管这个解决方案可能不是最简单的。
另一个解决方案是研究其他具有更好支持的蓝牙驱动程序(尽管我不推荐这样做)。就我个人而言,我发现该程序blueman
非常有用,无需重新安装蓝牙驱动程序。
希望我的经历能有所帮助。