我遵循了这种技术(最初在这里看到):Xbox One 控制器 Ubuntu 18.04 ...让控制器运行。
该技术似乎是 Xbox One S 和 Xbox One X 控制器的功能解决方案,因此我认为它适用于精英控制器。在大多数情况下,我是对的。
以下是我按顺序采取的步骤:
sudo apt install -y sysfsutils
echo '/module/bluetooth/parameters/disable_ertm=1' | sudo tee /etc/sysfs.conf
sudo reboot
然后我打开我的精英控制器并开始扫描它和我的电脑并成功地将两者配对。
这导致我的控制器功能齐全(并通过蓝牙!)。
然后我想更改底部按钮的默认映射。为此,我必须进入 Windows 并运行“xbox 配件”应用程序,该应用程序首先更新了我的控制器,然后才能进行映射。
我成功地映射了我想要的东西,但现在回到 ubuntu,连接对于控制器的触发器来说功能较少,这似乎是控制器固件更新的结果:
- 正确的触发器不发送任何输入。
- 左触发器输入作为右触发器
- 从控制器配对到未配对的那一刻,计算机不断接收左触发器输入。
- “查看按钮”(X/home 左侧)不发送任何输入
我该如何解决?
尝试在 Ubuntu 中专门映射控制器,使用列出所有正确输入映射的文本文件,这可以通过修改 X-Input 的通用控制器映射文件来完成(我相信这是所有 Microsoft 控制器使用的)EX> LB = “4”或其他什么等等,就像你说的那样,它不会触发某些按钮的输入,而不会触发其他按钮,所以你所拥有的是一个基本的错误配置问题,由 Windows 可能试图将其映射到新控制器架构(可能与 X 系列有关,不知道为什么,但它可能)。
如果控制器具有该功能,我建议首先尝试完全重置控制器,因为如果它以前可以正常工作,则根本没有理由对其进行更新。
其次,我会尝试使用直接解释 X-Input 调用或通过终端执行的程序来查找或创建该映射文件。JStest 似乎是用于 Xbox360 控制器的一种,尽管它有限,但可以帮助测试触发器等,以确保您的控制器实际为这些控制器发送信号。(假设它正确连接,它应该,或者你可以在测试时简单地连接连接,然后在确保它确实没有因为任何奇怪的原因被锁定后通过蓝牙连接。)
第三,在 Ubuntu 中获得正确的映射,无论是通过我之前提到的文件,还是通过您希望与它一起使用的程序。并且也不要将它连接回您的 Windows 分区或 PC,除非您希望它再次针对 Windows 设置重新配置并更改您的映射。(不知道为什么会这样做,通常控制器不携带映射任何信息及其在操作系统上以确定如何读取该信息,但仍然如此。)
希望这可以让您对流程有所了解并提供帮助!我经历过类似的情况,试图在一个甚至没有 GUI 的模拟器中设置控制器,并且需要为输入创建一个 txt 文件,所有这些都没有文档,这很烦人,但是这是一个很好的起点。
注意:你说你让它在顶部使用该代码,将它重新连接到 Windows,然后它就坏了。所以我也会尝试(如果你没有)做你一开始做的事情,然后弄清楚如何在没有 Windows 的情况下映射底部按钮,我相信如果有其他人正在发送,你也可以阅读这些输入调用。
最后更新到 ubuntu 20.04 解决了我的问题。
我使用带有可接受延迟的质子火箭联盟。