大家好,我正在尝试在 Ubuntu 16.04 上通过蓝牙连接 Xbox 360 无线控制器。
首先,我确保我的平板被系统检测到并配对:
但是这些彩色条消失了然后又出现了,我不知道为什么...然后我找到了一个关于如何将控制器连接到 Ubuntu 的教程: 关联
但我根本无法启动这些服务:
sudo systemctl enable xboxdrv.service sudo systemctl start xboxdrv.service
当我输入时sudo systemctl enable xboxdrv.service
出现错误:
“无法执行操作:文件存在”
和“无法启动 xboxdrv.service:未找到单元 xboxdrv.service。”当我输入sudo systemctl start xboxdrv.service
运行xboxdrv
当然会产生错误:
“- [ 错误 ] ------------------------------------------------------ 未找到 Xbox 或 Xbox360 控制器”
我正在寻求帮助,我完全不明白问题是什么......
答案1
第一的关闭,没有蓝牙 Xbox 360 游戏手柄。您可能有一个“Xbox 无线控制器”,也称为“Xbox One S 控制器”。
第二,您不需要 XInput 驱动程序(如 xboxdrv 或 xpad)即可通过蓝牙使用 Xbox One 控制器。通过蓝牙连接时,它们被视为蓝牙 HID 设备,不需要驱动程序。因此,“未找到 Xbox 或 Xbox360 控制器”错误可能是正确的,并且不是让此设备通过蓝牙工作的问题。
第三,BlueZ 蓝牙堆栈(许多 Linux 发行版都在使用,包括 Ubuntu)存在问题,导致 Xbox One 控制器无法保持连接。设备将成功配对并似乎已连接,但会立即断开连接。作为解决方法,您可以将选项设置disable_ertm
为 1,这将允许设备保持连接。
https://bbs.archlinux.org/viewtopic.php?id=226610
这会导致与您描述的完全匹配的问题,即信号强度条消失,因此此修复很可能对您有用。(注意:每次重启后都需要执行此操作,因此如果有效,请将其放入启动脚本中。)
sudo echo 1 > /sys/module/bluetooth/parameters/disable_ertm
第四,如上文评论所述,存在固件版本问题。几年前这是一个大问题,但在 16.04 上可能仍会困扰您。基本上,微软决定更新控制器的固件,并更改蓝牙 HID 模式,使其与 Android 设备更兼容,同时保持 USB 模式不变。当他们这样做时,他们实际上使控制器在通过蓝牙连接时看起来像一个“新”设备,无法被任何驱动程序或游戏识别。直到开发人员使用“新”设备的信息更新他们的应用程序后,它才开始再次工作。让新设备得到正确支持始终是一个挑战,但在这种情况下,情况尤其糟糕,因为已经有这么多人拥有该设备,而且它是故意损坏的。目前,这不再是一个问题,因为大多数应用程序都支持这两个固件版本。