![为什么当我尝试让我的 Xbox 控制器工作时会出现 LIBUSB_ERROR_ACCESS?](https://linux22.com/image/1042620/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E8%AE%A9%E6%88%91%E7%9A%84%20Xbox%20%E6%8E%A7%E5%88%B6%E5%99%A8%E5%B7%A5%E4%BD%9C%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%20LIBUSB_ERROR_ACCESS%EF%BC%9F.png)
我无法让 Xbox 控制器工作。它没有显示在 上jstest
。有人能帮忙吗?当我xboxdrv
在终端上输入时,我得到的是:
:user@ChrUbuntu:~$ xboxdrv
xboxdrv 0.8.5 - http://pingus.seul.org/~grumbel/xboxdrv/
Copyright © 2008-2011 Ingo Ruhnke <[email protected]>
Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain
conditions; see the file COPYING for details.
Controller: Power A Mini Pro Elite Glow
Vendor/Product: 24c6:5300
USB Path: 002:036
Controller Type: Xbox360
-- [ ERROR ] ------------------------------------------------------
USBController::USBController(): libusb_open() failed: LIBUSB_ERROR_ACCESS
答案1
使用命令sudo xboxdrv
并输入密码。这将授予您使用 USB 端口的权限。但是,到目前为止,我只在一个控制器上实现了此功能。
答案2
libusb 权限未为您设置,您必须进入用户和组设置来更改它或使用 sudo。但即便如此,根据您安装的 chrubuntu 版本,您仍然可能运气不佳,因为我在 c7 parrot 上使用 12.4,并且内核模块 uinput 未安装。而 xboxdrv 需要它。
答案3
从输出中我可以看到,您使用的是 Xbox Elite。它的支持最早由 SteamOS 开发人员于 2015 年底编写,并添加到 Linux 内核 4.7 中(写下这些文字尚未获释)2016 年 5 月 28 日。请参阅此内容了解详情。因此,获得支持的最简单的方法是安装 Linux-4.7(例如 PPA 发布后)。
责任在于该公司发布了游戏手柄。像大家一样使用游戏手柄的标准,他们决定重新发明轮子,并创建了自己的与世界不相容的协议。
微软——制造商——对自己的游戏手柄的支持实际上非常糟糕,以至于有传言称除了 Windows 10,它甚至不支持自己的操作系统 (我说“谣言”只是因为我既没有 Windows,也没有这个游戏手柄来验证这一点)。下次你想买游戏手柄时,在支持这样的制造商之前请三思。