我刚刚购买了一个非品牌操纵杆“Esperanza”,并且在过去的一个小时里一直在尝试设置它。
每次插入时,xpad
模块都会启用。这是针对 Xbox 支持的控制器的,但这个控制器肯定不是 Xbox 控制器。
在 中lsusb
,该控制器甚至被命名为 Xbox 控制器:
Bus 001 Device 006: ID 045e:028e Microsoft Corp. Xbox360 Controller
当我运行evtest
并选择控制器时,它无法识别任何按键。
我尝试查看它是否通过 USB 端口传输任何数据。我启用了模块usbmon
并运行:
sudo cat /sys/kernel/debug/usb/usbmon/0u > /tmp/1.mon.out | tail -f /tmp/1.mon.out
(记录所有 USB 输入)然后...什么都没有。只有当我插入或拔出 USB 时才会显示一些内容,但当我按下某些键时什么也没有发生。
不过,我可能知道为什么...当我运行时cat /var/log/syslog
,它显示以下内容:
Apr 27 22:48:53 banana-pc systemd-udevd[24319]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0/0003:2563:0575.0016
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0/0003:2563:0575.0016
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0
Apr 27 22:48:53 banana-pc upowerd[1615]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4
Apr 27 22:48:53 banana-pc kernel: [40974.817229] usb 1-4: new full-speed USB device number 36 using xhci_hcd
Apr 27 22:48:54 banana-pc kernel: [40974.987630] usb 1-4: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
Apr 27 22:48:54 banana-pc kernel: [40974.987635] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr 27 22:48:54 banana-pc kernel: [40974.987638] usb 1-4: Product: Controller
Apr 27 22:48:54 banana-pc kernel: [40974.987640] usb 1-4: Manufacturer: SHANWAN
Apr 27 22:48:54 banana-pc kernel: [40975.007946] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0/input/input55
Apr 27 22:48:54 banana-pc mtp-probe: checking bus 1, device 36: "/sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4"
Apr 27 22:48:54 banana-pc mtp-probe: bus: 1, device: 36 was not an MTP device
Apr 27 22:48:54 banana-pc systemd-udevd[24329]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
Apr 27 22:48:54 banana-pc upowerd[1615]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4/1-4:1.0
Apr 27 22:48:54 banana-pc upowerd[1615]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:08.1/0000:02:00.3/usb1/1-4
有任何想法吗?
编辑
所以,我想问题可能出在这upowerd: unhandled action 'bind'
上面。但我的 Akai MPK Mini 也显示同样的消息,但运行正常。
答案1
嗯,解决方案其实非常简单。
这段时间控制器里有些东西被禁用了。我按住“ANALOG”按钮 5 秒钟,它神奇地开始工作了。这没有在任何地方记录下来……
所以如果你也遇到了同样的问题,而且你使用的是廉价的中国操纵杆,那就试试这个吧。谁知道呢,也许它能解决问题。
答案2
可能是 jscal 错误出现,导致设备被控制
在网上查找,jscal-restore 是 Ubuntu 的操纵杆配置设置器,它似乎是在插入时由 udev 规则启动的。您可能需要设置配置jscal-restore 才能顺利运行。
还值得确保插入时/dev/input/js0
指向硬件设备,因为ls -lga
jscal 正在尝试在其上运行。您可能需要将其设为实际硬件的符号链接才能欺骗它
它看起来也被设置为 udev 规则,所以如果这个软件与你的硬件冲突,你可以尝试找到并禁用它的 udev 规则,看看 Linux 是否可以很好地处理它,而无需 jscal,或者在最坏的情况下卸载它,看看是否有其他方法可行
答案3
当我尝试连接 Microsoft XBox 360 无线控制器时,我也遇到了同样的错误。通常我可以找到操纵杆设备/dev/input/js0
,但它突然消失了。
在 中/var/log/syslog
,我发现了这些错误。
Feb 15 16:05:06 dudley kernel: [ 631.355686] input: Xbox 360 Wireless Receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.2/1-11.2:1.0/input/input29
Feb 15 16:05:06 dudley systemd-udevd[3040]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
- 重新启动电脑并没有解决。
- 拔下并插入无线接收器(USB)并未解决。
- 通过取出并重新安装电池来重新启动控制器,然后按住模拟按钮几秒钟重新启动它,但这并没有解决问题。
- 最后,我可以通过将接收器和控制器配对来解决这个问题。