Logitech Rumble Gamepad F510

Разбираемся с подключением и настройкой устройств ввода информации.

Модератор: Модераторы разделов

Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Добыл сей девайс, вот возникло ряд проблем:
1. Справедливо для всех XBox-подобных геймпадов - курки обнаруживаются как оси. В большинстве игр это перебивает их работу. Есть ли вариант настроить курки, чтобы работали, как кнопки, а не оси?
2. Имеется 2 режима XBox и DInput. При переключение в режим DInput происходит следующее:

Код: Выделить всё

usb 2-1.3: new full speed USB device using ehci_hcd and address 16
usb 2-1.3: New USB device found, idVendor=046d, idProduct=c218
usb 2-1.3: New USB device strings: Mfr=1, Product=9, SerialNumber=3
usb 2-1.3: Product: Logitech Rumblepad 2 USB
usb 2-1.3: Manufacturer: Logitech
usb 2-1.3: SerialNumber: 8B332424
input: Logitech Logitech Rumblepad 2 USB as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.3/2-1.3:1.0/input/input22
logitech 0003:046D:C218.0009: input,hidraw4: USB HID v1.11 Joystick [Logitech Logitech Rumblepad 2 USB] on usb-0000:00:1d.7-1.3/input0
logitech 0003:046D:C218.0009: Force feedback for Logitech Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>
usb 2-1.3: USB disconnect, address 16

и геймпад отрубается. Что можно предпринять?
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Logitech Rumble Gamepad F510

Сообщение flank'er »

недавно настраивал Logitech Cordless Rumblepad™ 2
здесь написано как ремапнуть оси или кнопки. я только не очень понял как это делать "на лету" при загрузке той или иной программы менять назначение клавиш/осей.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Вообще интересно.
Я так понаблюдал, под виндой в том числе, что при переключении в режим DirectInput, геймпад определяется, как Rumplepad 2. Он собственно таким и является, переделанным только.
Однако под линуксом он отрубается, с сообщением выше указанным. Никак не пойму, почему.

System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Logitech Rumble Gamepad F510

Сообщение flank'er »

причем сам Rumblepad 2 под Linux работает без проблем.
kernel 2.6.31.4

я бы для начала попробовал обновить ядро, ли проверить на системе с более высокой версий ядра. может на livecd федоры. возможно глюк происходит при переходе устройства из одного режима в другой. если есть возможность самостоятельно пересобрать ядро, сделать это с включенным debug режимом для usb/HID устройств.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Забыл новую конфигурацию написать, ядро 2.6.35.
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Logitech Rumble Gamepad F510

Сообщение flank'er »

после
usb 2-1.3: USB disconnect, address 16

lsusb не видит его ?
еще такая мысль. как определяется геймпад до переключения режима? может соответствующий модуль в blacklist занести имеет смысл?
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

До переключения на DirectInput:

Код: Выделить всё

$ lsusb
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 015: ID 046d:c21e Logitech, Inc.
Bus 002 Device 012: ID 03f0:5811 Hewlett-Packard PhotoSmart C5100 series
Bus 002 Device 009: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
Bus 002 Device 008: ID 09da:8090 A4 Tech Co., Ltd
Bus 002 Device 007: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
Bus 002 Device 006: ID 046d:c242 Logitech, Inc.
Bus 002 Device 004: ID 041e:4069 Creative Technology, Ltd
Bus 002 Device 003: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 002 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

После переключения на DirectInput:

Код: Выделить всё

$ lsusb
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 012: ID 03f0:5811 Hewlett-Packard PhotoSmart C5100 series
Bus 002 Device 009: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
Bus 002 Device 008: ID 09da:8090 A4 Tech Co., Ltd
Bus 002 Device 007: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
Bus 002 Device 006: ID 046d:c242 Logitech, Inc.
Bus 002 Device 004: ID 041e:4069 Creative Technology, Ltd
Bus 002 Device 003: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 002 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


При подключении в XInput режиме системное сообщение:

Код: Выделить всё

$ dmesg | tail
usb 2-1.3: new full speed USB device using ehci_hcd and address 15
usb 2-1.3: New USB device found, idVendor=046d, idProduct=c21e
usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.3: Product: Rumble Gamepad F510
usb 2-1.3: Manufacturer: Logitech
usb 2-1.3: SerialNumber: 8B332424
Registered led device: xpad2
input: Generic X-Box pad as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.3/2-1.3:1.0/input/input14

В блеклист занести не вариант, у меня Logitech Chillstream на xpad'е ещё.
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Logitech Rumble Gamepad F510

Сообщение flank'er »

В блеклист занести не вариант, у меня Logitech Chillstream на xpad'е ещё.

хотя бы просто проверить работает или нет, чтобы понять в какую сторону копать. и еще нужно посмотреть через lsmod загружены ли нужные для работы геймпада модули: hid, usbhid, hid_logitech, joydev.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Поставил блеклист

Код: Выделить всё

drivers/hid/usbhid/hid-core.c: can't reset device, 0000:00:1d.7-1.3/input0, status -32
drivers/hid/usbhid/hid-core.c: can't reset device, 0000:00:1d.7-1.3/input0, status -32
drivers/hid/usbhid/hid-core.c: can't reset device, 0000:00:1d.7-1.3/input0, status -32
usb 2-1.3: USB disconnect, address 11
usb 2-1.3: new full speed USB device using ehci_hcd and address 12
usb 2-1.3: New USB device found, idVendor=046d, idProduct=c21e
usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.3: Product: Rumble Gamepad F510
usb 2-1.3: Manufacturer: Logitech
usb 2-1.3: SerialNumber: 8B332424

Питание подаётся на оба геймпада, но модуль не подключен - поэтому не работают.
А вот когда я включаю DirectInput режим - геймпад отключается и вот что в dmesg:

Код: Выделить всё

$ dmesg | tail
usb 2-1.3: new full speed USB device using ehci_hcd and address 13
usb 2-1.3: New USB device found, idVendor=046d, idProduct=c218
usb 2-1.3: New USB device strings: Mfr=1, Product=9, SerialNumber=3
usb 2-1.3: Product: Logitech Rumblepad 2 USB
usb 2-1.3: Manufacturer: Logitech
usb 2-1.3: SerialNumber: 8B332424
input: Logitech Logitech Rumblepad 2 USB as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.3/2-1.3:1.0/input/input11
logitech 0003:046D:C218.0007: input,hidraw4: USB HID v1.11 Joystick [Logitech Logitech Rumblepad 2 USB] on usb-0000:00:1d.7-1.3/input0
logitech 0003:046D:C218.0007: Force feedback for Logitech Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>
usb 2-1.3: USB disconnect, address 13


И lsmod:

Код: Выделить всё

$ lsmod | grep hid
hid_logitech            6622  0
ff_memless              3075  1 hid_logitech
usbhid                 26219  1 hid_logitech
hid                    51645  2 hid_logitech,usbhid
bront@bront:~$ lsmod | grep hid_logitech
hid_logitech            6622  0
ff_memless              3075  1 hid_logitech
usbhid                 26219  1 hid_logitech
hid                    51645  2 hid_logitech,usbhid
$ lsmod | grep usbhid
usbhid                 26219  1 hid_logitech
hid                    51645  2 hid_logitech,usbhid
$ lsmod | grep joydev
joydev                  6697  0
$

System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Logitech Rumble Gamepad F510

Сообщение flank'er »

видимо устройство не полностью отвечает спецификации Rumblepad 2. имхо проще продать/поменять на оригинальный Rumblepad 2, который нормально держится Linux даже на ядре 2.4, чем тратить на него время.
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Подожду ядрышка нового, он под XInput в принципе неплохо робит.
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
Аватара пользователя
BrONtOSAUR
Сообщения: 421
ОС: Debian Sid

Re: Logitech Rumble Gamepad F510

Сообщение BrONtOSAUR »

Решил проблему с курками несколько специфично, может кому пригодится:
1. Берем исходники ядра, а конкретно в них файл /usr/src/linux/drivers/input/joystick/xpad.c. Это собственно модуль xpad для XBox-подобных геймпадов.
2. Начиная со строки 105 (у меня по крайней мере) видим такое:

Код: Выделить всё

static const struct xpad_device {
    u16 idVendor;
    u16 idProduct;
    char *name;
    u8 mapping;
    u8 xtype;
} xpad_device[] = {
    { 0x045e, 0x0202, "Microsoft X-Box pad v1 (US)", 0, XTYPE_XBOX },
    { 0x045e, 0x0289, "Microsoft X-Box pad v2 (US)", 0, XTYPE_XBOX },
    { 0x045e, 0x0285, "Microsoft X-Box pad (Japan)", 0, XTYPE_XBOX },
    { 0x045e, 0x0287, "Microsoft Xbox Controller S", 0, XTYPE_XBOX },
    { 0x045e, 0x0719, "Xbox 360 Wireless Receiver", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W },
    { 0x0c12, 0x8809, "RedOctane Xbox Dance Pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
    { 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX },
    //{ 0x046d, 0xc242, "Logitech Chillstream Controller", 0, XTYPE_XBOX360 },
    { 0x046d, 0xc242, "Logitech Chillstream Controller", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
    { 0x046d, 0xca84, "Logitech Xbox Cordless Controller", 0, XTYPE_XBOX },
    { 0x046d, 0xca88, "Logitech Compact Controller for Xbox", 0, XTYPE_XBOX },
    { 0x05fd, 0x1007, "Mad Catz Controller (unverified)", 0, XTYPE_XBOX },
    { 0x05fd, 0x107a, "InterAct 'PowerPad Pro' X-Box pad (Germany)", 0, XTYPE_XBOX },
    { 0x0738, 0x4516, "Mad Catz Control Pad", 0, XTYPE_XBOX },
    { 0x0738, 0x4522, "Mad Catz LumiCON", 0, XTYPE_XBOX },
    { 0x0738, 0x4526, "Mad Catz Control Pad Pro", 0, XTYPE_XBOX },
    { 0x0738, 0x4536, "Mad Catz MicroCON", 0, XTYPE_XBOX },
    { 0x0738, 0x4540, "Mad Catz Beat Pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
    { 0x0738, 0x4556, "Mad Catz Lynx Wireless Controller", 0, XTYPE_XBOX },
    { 0x0738, 0x4716, "Mad Catz Wired Xbox 360 Controller", 0, XTYPE_XBOX360 },
    { 0x0738, 0x4738, "Mad Catz Wired Xbox 360 Controller (SFIV)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
    { 0x0738, 0x6040, "Mad Catz Beat Pad Pro", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
    { 0x0c12, 0x8802, "Zeroplus Xbox Controller", 0, XTYPE_XBOX },
    { 0x0c12, 0x880a, "Pelican Eclipse PL-2023", 0, XTYPE_XBOX },
    { 0x0c12, 0x8810, "Zeroplus Xbox Controller", 0, XTYPE_XBOX },
    { 0x0c12, 0x9902, "HAMA VibraX - *FAULTY HARDWARE*", 0, XTYPE_XBOX },
    { 0x0e4c, 0x1097, "Radica Gamester Controller", 0, XTYPE_XBOX },
    { 0x0e4c, 0x2390, "Radica Games Jtech Controller", 0, XTYPE_XBOX },
    { 0x0e6f, 0x0003, "Logic3 Freebird wireless Controller", 0, XTYPE_XBOX },
    { 0x0e6f, 0x0005, "Eclipse wireless Controller", 0, XTYPE_XBOX },
    { 0x0e6f, 0x0006, "Edge wireless Controller", 0, XTYPE_XBOX },
    { 0x0e6f, 0x0006, "Pelican 'TSZ' Wired Xbox 360 Controller", 0, XTYPE_XBOX360 },
    { 0x0e8f, 0x0201, "SmartJoy Frag Xpad/PS2 adaptor", 0, XTYPE_XBOX },
    { 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX },
    { 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX },
    { 0x102c, 0xff0c, "Joytech Wireless Advanced Controller", 0, XTYPE_XBOX },
    { 0x12ab, 0x8809, "Xbox DDR dancepad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
    { 0x1430, 0x4748, "RedOctane Guitar Hero X-plorer", 0, XTYPE_XBOX360 },
    { 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
    { 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 },
    { 0x045e, 0x028e, "Microsoft X-Box 360 pad", 0, XTYPE_XBOX360 },
    { 0x1bad, 0x0003, "Harmonix Rock Band Drumkit", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
    { 0x0f0d, 0x0016, "Hori Real Arcade Pro.EX", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
    { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
    //{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
    { 0x0000, 0x0000, "Generic X-Box pad", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }
};

3. Ищем название соответстующее тому, как в вашей системе геймпад определился и меняем два параметра. У меня F510 определился как Generic X-Box pad, Chillstream же есть в списке.

Код: Выделить всё

{ 0x046d, 0xc242, "Logitech Chillstream Controller", 0, XTYPE_XBOX360 },
{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }

Я, как видно, поменял это на

Код: Выделить всё

{ 0x046d, 0xc242, "Logitech Chillstream Controller", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
{ 0x0000, 0x0000, "Generic X-Box pad", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }

закомментировав старый вариант на всякий случай.
4. Всё - собираем ядро и получаем курки в виде кнопок вместо осей.
Не знаю, насколько правильным будет такое решение, но мне помогло.
System: Debian GNU/Linux Sid + kernel 2.6.35 + gcc 4.4.5 + X.org 2:1.7.7-2 + KDE 4.4.5
Config: Asus P5B + Intel Core 2 Duo E6750 2.66 Mhz + GIGABYTE GeForce 9600GT 1GB (260.19.29 drv.) + 4GB RAM + Creative Audigy SE
Спасибо сказали:
Robert
Сообщения: 1
ОС: ddd

Re: Logitech Rumble Gamepad F510

Сообщение Robert »

можно ли узнать у автора топика - fx510 в итоге работает хоть в каком-то из режимов в убунте или нет?
Спасибо сказали:
test666
Сообщения: 11

Re: Logitech Rumble Gamepad F510

Сообщение test666 »

Купил вчера сабж. Оказывается, он согласен работать в dinput режиме. Для этого достаточно в drivers/hid/hid-lg.c исправить

Код: Выделить всё

<    { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2),
<        .driver_data = LG_FF2 },
---
>    { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2),
>        .driver_data = LG_FF2 | LG_NOGET },

и пересобрать соответствующий модуль hid-logitech.ko

#!/bin/sh

make modules_prepare make M=drivers/hid cp drivers/hid/hid-logitech.ko /lib/modules/`uname -r`/kernel/drivers/hid rmmod hid-logitech

Спасибо сказали: