LINUX.ORG.RU

gentoo xbox 360 gamepad/controller

 , ,


0

1

Добрый день, хочу подключить геймпад от xbox 360 через Wireless Receiver. Пересобрал ядро, включив joystick interface и в joysticks/gamepads включил x-box gamepad support. Добавил пользователя в input группу. Установил xboxdrv. При запуске выдало:

 * Caching service dependencies ...
 * Starting xboxdrv ...
[ERROR] XboxdrvDaemon::run(): fatal exception:
Error: No stuitable uinput device found, tried:

  /dev/input/uinput: No such file or directory
  /dev/uinput: No such file or directory
  /dev/misc/uinput: No such file or directory

Troubleshooting:
  * make sure uinput kernel module is loaded
  * make sure joydev kernel module is loaded
  * make sure you have permissions to access the uinput device
  * start the driver with ./xboxdrv -v --no-uinput to see if the driver itself works

Добавил в ядре User level driver support.

sudo rc-service xboxdrv start
 * Starting xboxdrv ...                                                                              [ ok ]
[ERROR] USBController::on_read_data(): USB read failure: 32: LIBUSB_TRANSFER_CANCELLED
[ERROR] XboxdrvDaemon::process_match(): failed to launch ControllerThread:  Error couldn't claim the USB interface: LIBUSB_ERROR_BUSY
Try to run 'rmmod xpad' and then xboxdrv again or start xboxdrv with the option --detach-kernel-driver.

xpad не установлен, lsmod | grep xpad ничего не выдал

sudo xboxdrv --detach-kernel-driver
xboxdrv 0.8.8.20190118-gentoo - http://pingus.seul.org/~grumbel/xboxdrv/
Copyright © 2008-2011 Ingo Ruhnke <grumbel@gmail.com>
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:        Xbox 360 Wireless Receiver (XBOX)
Vendor/Product:    045e:0291
USB Path:          001:010
Wireless Port:     0
Controller Type:   Xbox360 (wireless)

Your Xbox/Xbox360 controller should now be available as:
  /dev/input/js1
  /dev/input/event21

Press Ctrl-C to quit, use '--silent' to suppress the event output

При этом индикаторы и на геймпаде и на ресивере мигают, то есть они друг друга не видят. evtest /dev/input/event21 ничего не фиксирует.



Последнее исправление: ReiB0T (всего исправлений: 1)

Народ говорит что нужен xpad

В новых ядрах скорее всего даже не нужен внешний драйвер xpad, достаточно будет того, что идет с ядром (опция CONFIG_JOYSTICK_XPAD)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte
CONFIG_JOYSTICK_XPAD=y
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y

Удалил xboxdrv, xpad не устанавливал, ресивер видно.

lsusb
Bus 001 Device 010: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows

В /dev/input/ ничего не поменялось перевоткнул ресивер, сейчас 19 eventов с установленным xboxdrv было 21

ReiB0T
() автор топика
Последнее исправление: ReiB0T (всего исправлений: 3)

Если нужен нормально работающий без проводов контроллер под линукс, то Dualshock 4 без вариантов. Ну, может, ещё 8bitdo. Xbox, похоже, рекомендуют те, кому провода кажутся нормой :/

anonymous
()
Ответ на: комментарий от Pinkbyte

C xpad какая-то лажа, убрал его из ядра, также заметил что при установке xboxdrv выходила ошибка о том что xpad есть. Теперь:

xbox gamepad (userspace driver) (js) (16089/40535) не настроен
xbox gamepad (userspace driver) (event) (0/0) не настроен, используется резерв

В /dev/input появились js0 и event20 но они ничего не пишут при нажатиях на геймпад.

ReiB0T
() автор топика
Последнее исправление: ReiB0T (всего исправлений: 2)
Ответ на: комментарий от ReiB0T

Решил все таки попробовать разобраться с xpad, вернул в ядре поддержку и удалил xboxdrv. cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
P:  Vendor=045e ProdID=0291 Rev= 1.07
C:* #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=260mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=81 Driver=xpad
E:  Ad=81(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
E:  Ad=01(O) Atr=03(Int.) MxPS=  32 Ivl=8ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=82 Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=  32 Ivl=2ms
E:  Ad=02(O) Atr=03(Int.) MxPS=  32 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=81 Driver=xpad
E:  Ad=83(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
E:  Ad=03(O) Atr=03(Int.) MxPS=  32 Ivl=8ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=82 Driver=(none)
E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=2ms
E:  Ad=04(O) Atr=03(Int.) MxPS=  32 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=81 Driver=xpad
E:  Ad=85(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
E:  Ad=05(O) Atr=03(Int.) MxPS=  32 Ivl=8ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=82 Driver=(none)
E:  Ad=86(I) Atr=03(Int.) MxPS=  32 Ivl=2ms
E:  Ad=06(O) Atr=03(Int.) MxPS=  32 Ivl=4ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=81 Driver=xpad
E:  Ad=87(I) Atr=03(Int.) MxPS=  32 Ivl=1ms
E:  Ad=07(O) Atr=03(Int.) MxPS=  32 Ivl=8ms
I:* If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=5d Prot=82 Driver=(none)
E:  Ad=88(I) Atr=03(Int.) MxPS=  32 Ivl=2ms
E:  Ad=08(O) Atr=03(Int.) MxPS=  32 Ivl=4ms

ReiB0T
() автор топика
Ответ на: комментарий от ReiB0T

я уже не понимаю что происходит, xpad собрал как модуль. Выполнил rmmod xpad, установил xboxdrv, запустил из под рута sudo xboxdrv. Steam уловил его, retroarch написал:

xbox gamepad (userspace driver) (event) (0/0) не настроен
xbox gamepad (userspace driver) (js) (16089/40535) не настроен
microsoft x-box 360 pad (event) (10462/4607) не настроен, используется резерв
microsoft x-box 360 pad (js) (10462/4607) не настроен, используется резерв

Диод на геймпаде потух, но похоже что теперь система видит и рисивер и сам геймпад.

crw-rw----+ 1 root input 13, 84 июл 27 01:59 event20
crw-rw----+ 1 root input 13, 85 июл 27 01:59 event21
crw-rw-r--+ 1 root input 13,  0 июл 27 01:59 js0
crw-rw-r--+ 1 root input 13,  1 июл 27 01:59 js1
ReiB0T
() автор топика
Последнее исправление: ReiB0T (всего исправлений: 1)
Ответ на: комментарий от ReiB0T

Да, где-то пробегало, что если драйвер xpad собирать монолитно, то бывает такая шляпа, я думал починили уже, но похоже что нет(навскидку помню 3-4 подобных модуля ядра, которые использовать лучше именно как модули, а не вкомпиливать намертво)

У меня, увы, беспроводного контроллера нет, проводной в свое время работал на xboxdrv, но потом, в один прекрасный(нет) момент перестал. Тогда я и перекатился на xpad

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Все стало еще «лучше», до этого геймпад работал на raspberry pi и синхронизировался сам и все было хорошо. Сейчас подключил ресивер обратно и они не синхронизируются.

ReiB0T
() автор топика

когда они уже допилят и уберут дебильное вечное мигание проводного гейпада

мимопроводной, все пашет.

deity ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.