我正在尝试设置从亚马逊购买的第三方 xbox 360 控制器,但没有任何效果。它向操作系统报告为官方 360 控制器,但似乎都无法使用xpad
。xboxdrv
当它连接到计算机时,绿色 LED 会一直闪烁。
连接设备时,我在 dmesg 中收到以下信息:
[84734.680617] usb 1-3: new full-speed USB device number 12 using xhci_hcd
[84735.042706] usb 1-3: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
[84735.042708] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[84735.042710] usb 1-3: Product: Controller
[84735.042711] usb 1-3: Manufacturer: ©Microsoft Corporation
[84735.042712] usb 1-3: SerialNumber: A0BD0B52
[84735.093762] usb 1-3: can't set config #1, error -71
尝试xpad
通过运行手动加载sudo modprobe xpad
没有任何效果。我听说这xpad
可能有点不稳定,所以我尝试使用用户空间xboxdrv
程序,但以标准用户身份运行时失败,并出现以下情况:
$ xboxdrv --quiet
-- [ ERROR ] ------------------------------------------------------
USBController::USBController(): libusb_open() failed: LIBUSB_ERROR_ACCESS
以 root 身份运行它会出现以下消息,即使xpad
确认已从内核中删除:
$ sudo xboxdrv --quiet
-- [ ERROR ] ------------------------------------------------------
Error couldn't claim the USB interface: LIBUSB_ERROR_NOT_FOUND
Try to run 'rmmod xpad' and then xboxdrv again or start xboxdrv with the option --detach-kernel-driver.
在调试时,我注意到了 中的几个奇怪的错误usb-devices
。我不太清楚该如何解决。(输出有所删节)
$ usb-devices
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 12 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs= 1
P: Vendor=045e ProdID=028e Rev=01.10
S: Manufacturer=©Microsoft Corporation
S: Product=Controller
S: SerialNumber=A0BD0B52
C: #Ifs= 0 Cfg#= 0 Atr= MxPwr=
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bInterfaceNumber': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bAlternateSetting': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bNumEndpoints': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bInterfaceClass': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bInterfaceSubClass': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-3/1-*:?.*/bInterfaceProtocol': No such file or directory
/usr/bin/usb-devices: 76: printf: (none): expected numeric value
I: If#=0x Alt= 0 #EPs= 0 Cls=() Sub= Prot= Driver=
我在搜索时发现一个网站建议usbcore.autosuspend=-1
通过 grub 添加到内核命令行,但似乎没有效果。这是我购买的第二个第三方 xbox 360 控制器,它显示了此类问题,我只是想弄清楚这是否是因为某些奇怪的软件配置,或者我只是有两个坏设备。
正如在类似的文章中所建议的那样,我在运行时插入设备$ journalctl --follow
并得到以下输出,其中似乎不包含任何新的有用信息。
Oct 16 02:36:54 waffle kernel: usb 1-8.4: new full-speed USB device number 121 using xhci_hcd
Oct 16 02:36:55 waffle kernel: usb 1-8.4: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
Oct 16 02:36:55 waffle kernel: usb 1-8.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 16 02:36:55 waffle kernel: usb 1-8.4: Product: Controller
Oct 16 02:36:55 waffle kernel: usb 1-8.4: Manufacturer: ©Microsoft Corporation
Oct 16 02:36:55 waffle kernel: usb 1-8.4: SerialNumber: A0BD0B52
Oct 16 02:36:55 waffle kernel: usb 1-8.4: can't set config #1, error -32
Oct 16 02:36:55 waffle mtp-probe[97045]: checking bus 1, device 121: "/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8.4"
Oct 16 02:36:55 waffle mtp-probe[97045]: bus: 1, device: 121 was not an MTP device
Oct 16 02:36:55 waffle mtp-probe[97048]: checking bus 1, device 121: "/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8.4"
Oct 16 02:36:55 waffle mtp-probe[97048]: bus: 1, device: 121 was not an MTP device