Купил геймпад. С ПК работает либо по проводу, либо через Bluetooth-донгл, что шел в комплекте (нельзя использовать как адаптер). Протестил на Windows, работает как надо, на сочетание клавиш есть переключение между режимами Xbox360 (2 led лампочки горят на геймпаде) и Bluetooth Gamepad (3led). Пошел в Arch Linux, где геймпад без всяких xpad
, xpadneo
, xboxdrv
определялся как MOBAPAD-M9s (3led) и не меняется сочетанием на Xbox360. Всё бы ничего, но не работает кнопка Home(Guide) и вибрация. Поэтому начал поочередно пробовать разные варианты драйверов, описанные выше. xpadneo и xpad вообще никак не воспринимают геймпад, а xboxdrv с параметрами
xboxdrv --evdev /dev/input/by-id/usb-SHANWAN_Android_Gamepad-event-joystick --mimic-xpad
создает геймпад /dev/input/js1 типа xbox360, который не видит никаких нажатий. js0 же, что работал, тоже перестает работать.
При подключении dmesg
пишет:
[< 5,622433>] usb 1-1: new full-speed USB device number 17 using xhci_hcd
[< 0,432074>] usb 1-1: unable to read config index 0 descriptor/start: -71
[< 0,000011>] usb 1-1: can't read configurations, error -71
[< 0,604570>] usb 1-1: new full-speed USB device number 18 using xhci_hcd
[< 0,397257>] usb 1-1: New USB device found, idVendor=0079, idProduct=181c, bcdDevice= 1.00
[< 0,000007>] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[< 0,000002>] usb 1-1: Product: MOBAPAD-M9s
[< 0,021041>] input: MOBAPAD-M9s as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.0/0003:0079:181C.0014/input/input51
[< 0,000189>] hid-generic 0003:0079:181C.0014: input,hidraw3: USB HID v1.10 Gamepad [MOBAPAD-M9s] on usb-0000:02:00.0-1/input0
[< 0,006393>] input: MOBAPAD-M9s System Control as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.1/0003:0079:181C.0015/input/input52
[< 0,054858>] input: MOBAPAD-M9s Consumer Control as /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-1/1-1:1.1/0003:0079:181C.0015/input/input53
[< 0,000114>] hid-generic 0003:0079:181C.0015: input,hidraw4: USB HID v1.01 Device [MOBAPAD-M9s] on usb-0000:02:00.0-1/input1
usb-devices:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 18 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0079 ProdID=181c Rev=01.00
S: Product=MOBAPAD-M9s
C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=350mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=10ms
E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl=8ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=83(I) Atr=03(Int.) MxPS= 32 Ivl=10ms
lsusb:
|__ Port 001: Dev 018, If 0, Class=Human Interface Device, Driver=usbhid, 12M
ID 0079:181c DragonRise Inc.
|__ Port 001: Dev 018, If 1, Class=Human Interface Device, Driver=usbhid, 12M
ID 0079:181c DragonRise Inc.
Пробовал различные махинации с /sys/module/usbhid/drivers/usb:usbhid/unbind
и /sys/module/xpad/drivers/usb:xpad/new_id
, но изменений не произошло.
Делал modprobe xpad
modprobe hid_xpadneo
и наоборот убирал их, ну, а геймпад как не работал в режиме xbox360, так и не работает.
Хочу уточнить, что vendorId и productId при подключении через донгл такой же, но название меняется с MOBAPAD-M9s на Shanwan Android Gamepad. Есть ли вообще вероятность как-то исправить ситуацию или лучше сразу отказаться от гейминга на данном геймпаде в Linux?
Нажал в браузере не кнопку Home геймпада и произошел переход на домашнуюю страницу. Посмотрел, что за кнопка нажимается через xev
и выдало:
KeyPress event, serial 44, synthetic NO, window 0x5200001,
root 0x1db, subw 0x0, time 2208415, (841,333), root:(891,457),
state 0x10, keycode 180 (keysym 0x1008ff18, XF86HomePage), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Перемещено Zhbert из games