我得到了一个xbox Elite v2 控制器
我遵循了这种技术(如最初在这里看到的):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 accessories”应用程序,该应用程序首先更新我的控制器,然后我才能进行映射。
我成功映射了我想要的内容,但现在回到 ubuntu 中,连接对于控制器的触发器来说功能较差,这似乎是由于控制器固件更新的结果:
- 右触发器不发送任何输入。
- 左触发器输入作为右触发器
- 从控制器配对到解除配对,计算机不断接收左触发器输入。
- “查看按钮”(X/home 左侧)不发送任何输入
我该如何解决?
答案1
尝试在 Ubuntu 中用列出所有正确输入映射的文本文件专门映射控制器,这可以通过修改 X-Input 的通用控制器映射文件来完成(我相信这是所有 Microsoft 控制器使用的)EX> LB =“4”或其他什么的,就像您说的那样,它不会触发某些按钮的输入,也不会错误触发其他按钮,所以您遇到的是一个基本的配置错误问题,可能是由 Windows 试图将其映射到新的控制器架构引起的(可能与 Series X 有关,不知道为什么,但有可能)。
如果控制器具有该功能,我建议首先尝试完全重置控制器,因为如果它以前可以运行,那么根本没有理由更新它。
其次,我会尝试查找或创建该映射文件,使用直接解释 X-Input 调用的程序或通过终端执行此操作。JStest 似乎是 Xbox360 控制器的一个,尽管功能有限,但它可以帮助测试触发器等,以确保您的控制器确实为它们发送信号。(假设它连接正确,它应该正确,或者您可以在测试时简单地连接,然后在确保它确实没有因任何奇怪的原因而被锁定后通过蓝牙连接。)
第三,在 Ubuntu 中获取正确的映射,无论是通过我之前提到的文件,还是通过您希望与其一起使用的程序。并且不要将其重新连接到您的 Windows 分区或 PC,除非您希望再次为 Windows 设置重新配置它并更改您的映射。(不知道它为什么会这样做,通常控制器根本不携带任何映射信息,而是由操作系统决定如何读取该信息,但仍然如此。)
希望这能让您对该过程有所了解并有所帮助!我曾经遇到过类似的情况,尝试在甚至没有 GUI 的模拟器中设置控制器,并且需要为输入创建一个 txt 文件,所有这些都没有文档,这非常烦人,但这是一个很好的起点。
需要注意的是:您说您使用顶部的代码让它工作了,将它重新连接到 Windows,然后它就坏了。所以我也会尝试(如果您还没有)做您在开始时所做的事情,然后弄清楚如何在没有 Windows 的情况下映射底部按钮,我相信如果有其他人发送,您也可以读取这些输入调用。
答案2
最后更新到 ubuntu 20.04 解决了我的问题。
我使用火箭联盟和质子,延迟可以接受。