20.04 Xbox One 控制器无法通过蓝牙工作?

20.04 Xbox One 控制器无法通过蓝牙工作?

我正在尝试将 Xbox One 控制器连接到我的 Ubuntu 机器。当我尝试通过蓝牙配对时会发生什么:

  1. 我在 Ubuntu 中打开蓝牙设备面板
  2. 我按住控制器顶部的按钮,直到指示灯开始快速闪烁
  3. 我与 Ubuntu 中的控制器配对

问题是,即使它在 Ubuntu 中显示为已连接,控制器上的灯也不会停止闪烁,并且无法在 HTML5 游戏中识别它。

有人能提供建议吗?

编辑:我在 Ubuntu 20.04.3 LTS 上

答案1

  1. 安装XBox驱动程序:sudo apt install xboxdrv

  2. 启用驾驶员服务:sudo systemctl enable xboxdrv.service && sudo systemctl start xboxdrv.service

答案2

我遇到了类似的问题,并找到了建议禁用 ERTM 的资源,这需要超级用户权限。

按照这些步骤后,我就能够让控制器保持连接。

不过,我并没有对我系统上的任何游戏进行深入测试。(有一款游戏 Delver 运行得不是太好,但我不确定是游戏还是输入的问题。)

此命令:

echo 1 > /sys/module/bluetooth/parameters/disable_ertm

我发现我无法使用 sudo 本身来运行它,所以我必须运行它以便允许我以提升的权限运行它。

sudo -s

这是我找到有关 ERTM 的初始信息的地方https://wiki.debian.org/Gamepad

还有另一个资源为我提供了 sudo 建议!https://www.addictivetips.com/ubuntu-linux-tips/xbox-one-controllers-over-bluetooth-linux/

(我对终端还不太熟悉,这就是我了解 sudo 功能的方式。)

答案3

我按照@ChanganAuto 的步骤操作,有关 Xbox One 控制器和蓝牙的帮助。出于某种原因,它对我来说仍然不起作用。

我正在双重启动 Windows。所以我在 Windows 安装上测试了控制器是否可以在 Windows 操作系统上连接(也可以通过在虚拟机上测试来完成)。Xbox 控制器通过蓝牙在该环境中连接。完成此操作后,当我在 Linux 上再次尝试时,它对我有用。不知道为什么,但也许这对那些双重启动的人来说是独一无二的。

答案4

在网上找不到解决办法后,我花了好几天时间修改蓝牙配置文件,终于解决了问题。我在这里分享我的解决方案:首先,如果您使用的是第一方控制器,请使用外部 USB 蓝牙,它应该无需任何修改即可连接。然后转到下面的解决方案(这不仅适用于 xbox,还适用于第三方通用蓝牙游戏手柄、中国蓝牙游戏手柄、具有 Nintendo Switch 控制器模式的 EasySMX 游戏手柄和一些蓝牙键盘)编辑 /etc/bluetooth/input.conf(如果不可用,请创建一个)并编辑选项以匹配以下配置:

# Configuration file for the input service

# This section contains options which are not specific to any
# particular interface
[General]

# Set idle timeout (in minutes) before the connection will
# be disconnect (defaults to 0 for no timeout)
#IdleTimeout=30

# Enable HID protocol handling in userspace input profile
# Defaults to false (HIDP handled in HIDP kernel module)
UserspaceHID=true

# Limit HID connections to bonded devices
# The HID Profile does not specify that devices must be bonded, however some
# platforms may want to make sure that input connections only come from bonded
# device connections. Several older mice have been known for not supporting
# pairing/encryption.
# Defaults to true for security.
ClassicBondedOnly=false

# LE upgrade security
# Enables upgrades of security automatically if required.
# Defaults to true to maximize device compatibility.
LEAutoSecurity=false

现在,即使未交换配对密钥或蓝牙适配器无法交换密钥,您的设备也将连接。

相关内容