LINUX.ORG.RU

Проблема с определением геймпада через ds4drv

 , ,


2

1

У меня есть геймпад Sven GC-400, вроде как проводной клон Dualshock 4. Работает в трёх режимах: Xbox360, PS3 и PS4. Режимы переключаются зажатием кнопок SHARE и OPTIONS. Дело в том, что в режиме PS3 не работает тачпад, а он прям сильно нужен…

Стим определяет геймпад в четырёх режимах:

  1. Xbox360
  2. Playstation 3 controller
  3. SZMY-POWER PC gamepad (определяется как PS3, но в стиме как кастом)(Можно получить такой режим, если подключить геймпад, выключить ПК, снова включить и войти в стим)
  4. Inn ds4 wired controller (Показывается на долю секунды в момент подключения USB кабеля, после чего переходит в режим PS3)

Скорее всего геймпад может работать в DS4 режиме только, если подключён к Playstation 4, я не могу это проверить. В интернете инфы также нет…

Я нашёл такую вещь, как Ds4drv, думал поможет… не помогло. Программа заточена чисто на беспроводные контроллеры с Bluetooth, а у меня чистый провод. При вводе ds4drv --daemon пишет следующее:

tyseex@tyseex-desktop:~$ ds4drv --daemon
[error][daemon] 'hcitool clock' returned error. Make sure your bluetooth device is powered up with 'hciconfig hciX up'.

Сам же hciconfig hciX up без sudo работать не хочет, а при запуске через sudo молчит… Ds4drv это всё ещё не устраивает.

На гитхабе я нашёл такую команду $ds4drv --hidraw, которая должна искать геймпады PS4, подключённые по USB. Результат:

tyseex@tyseex-desktop:~$ sudo ds4drv --hidraw
[sudo] пароль для tyseex: 
[info][controller 1] Created devices /dev/input/js1 (joystick) /dev/input/event21 (evdev) 
[info][hidraw] Scanning for devices
[info][hidraw] Scanning for devices
[info][hidraw] Scanning for devices

При каждом переподключении геймпада, либо смене режима(только на PS3), он повторяет сообщение о сканировании устройств. Не может остановиться…

Помогите кто-нибудь… Этот драйвер вроде как должен заставить геймпад думать, что он подключён к PS4, а не к ПК…

Система: Ubuntu 22.04 LTS Ядро: x86_64 Linux 6.2.11-x64v1-xanmod1 Оболочка: XFCE

Работает в трёх режимах: Xbox360, PS3 и PS4. Режимы переключаются зажатием кнопок SHARE и OPTIONS.

А что показывается в системе при переключении в режим ps4?

Покажи что пишет dmesg.

Я нашёл такую вещь, как Ds4drv, думал поможет… не помогло.

Ds4drv просто отказывается цеплять геймпады в режиме hidrav. При чем я видел жалобы даже от обладателей оригинального дулшока v2.

Vochatrak-az-ezm ★★
()
Ответ на: комментарий от Vochatrak-az-ezm

В режиме PS4 опознаётся как Inn DS4 Wired Controller ID поставщика: 0x7545 ID продукта: 0x104 Пришлось ловить очень быстро, поэтому скину видео https://youtu.be/4rKW9lrMiH8

Вывод Dmesg: https://docs.google.com/document/d/1-SAWNVYeQAZb3LoSEPI84Iax6DDKBXowKMWdSfEUdpE/edit?usp=sharing

Tyse_EX
() автор топика
Ответ на: комментарий от Vochatrak-az-ezm

Естественно не весь. С момента втыкания геймпада.

Если вас интересует момент, когда геймпад подключается в режим DS4, то подскажите, как его поймать…

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

Чего его ловить? Dmesg пишет все системные события по порядку. Воткни, переключи, выполни dmesg и внизу и будет то что надо. Вот и скопируй весь выхлоп, с момента втыкания геймпада в usb.

Vochatrak-az-ezm ★★
()
Ответ на: комментарий от Vochatrak-az-ezm

Что-то вот такое… я думаю. Вывод при переходе в режим SZMY powerPC gamepad(третий режим)

[  198.965527] usb 2-1.3: USB disconnect, device number 3
[  198.965632] xpad 2-1.3:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19
[  199.667056] usb 2-1.3: new full-speed USB device number 5 using ehci-pci
[  199.756149] usb 2-1.3: New USB device found, idVendor=7545, idProduct=1122, bcdDevice= 1.00
[  199.756160] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  199.756165] usb 2-1.3: Product: PC Gamepad
[  199.756169] usb 2-1.3: Manufacturer: SZMY-POWER CO.,LTD.
[  199.757633] input: SZMY-POWER CO.,LTD. PC Gamepad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:7545:1122.0005/input/input26
[  199.757856] hid-generic 0003:7545:1122.0005: input,hidraw4: USB HID v1.10 Joystick [SZMY-POWER CO.,LTD. PC Gamepad] on usb-0000:00:1d.0-1.3/input0
Tyse_EX
() автор топика
Последнее исправление: Tyse_EX (всего исправлений: 1)
Ответ на: комментарий от Vochatrak-az-ezm

Переход в XBOX360 режим

[  198.965527] usb 2-1.3: USB disconnect, device number 3
[  198.965632] xpad 2-1.3:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19
[  199.667056] usb 2-1.3: new full-speed USB device number 5 using ehci-pci
[  199.756149] usb 2-1.3: New USB device found, idVendor=7545, idProduct=1122, bcdDevice= 1.00
[  199.756160] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  199.756165] usb 2-1.3: Product: PC Gamepad
[  199.756169] usb 2-1.3: Manufacturer: SZMY-POWER CO.,LTD.
[  199.757633] input: SZMY-POWER CO.,LTD. PC Gamepad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:7545:1122.0005/input/input26
[  199.757856] hid-generic 0003:7545:1122.0005: input,hidraw4: USB HID v1.10 Joystick [SZMY-POWER CO.,LTD. PC Gamepad] on usb-0000:00:1d.0-1.3/input0
[  327.732638] usb 2-1.3: USB disconnect, device number 5
[  328.433046] usb 2-1.3: new full-speed USB device number 6 using ehci-pci
[  328.523635] usb 2-1.3: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
[  328.523645] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  328.523663] usb 2-1.3: Manufacturer: Microsoft Inc.
[  328.523666] usb 2-1.3: SerialNumber: 2E36678
[  328.524255] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input27
Tyse_EX
() автор топика
Ответ на: комментарий от Tyse_EX

И… если вытащить USB и вставить его снова, то:

[  505.907416] usb 2-1.3: USB disconnect, device number 8
[  508.147040] usb 2-1.3: new full-speed USB device number 9 using ehci-pci
[  508.239389] usb 2-1.3: New USB device found, idVendor=7545, idProduct=0104, bcdDevice= 1.00
[  508.239395] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  508.239397] usb 2-1.3: Product: DS4 Wired Controller
[  508.239398] usb 2-1.3: Manufacturer: Inn
[  508.240635] input: Inn DS4 Wired Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:7545:0104.0008/input/input31
[  508.240776] hid-generic 0003:7545:0104.0008: input,hiddev2,hidraw4: USB HID v1.11 Gamepad [Inn DS4 Wired Controller] on usb-0000:00:1d.0-1.3/input0
[  508.979391] usb 2-1.3: USB disconnect, device number 9
[  510.451042] usb 2-1.3: new full-speed USB device number 10 using ehci-pci
[  510.541379] usb 2-1.3: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 1.00
[  510.541388] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  510.541393] usb 2-1.3: Product: PLAYSTATION(R)3 Controller
[  510.541396] usb 2-1.3: Manufacturer: SZMY-POWER CO.,LTD.
[  510.551459] input: SZMY-POWER CO.,LTD. PLAYSTATION(R)3 Controller Motion Sensors as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:054C:0268.0009/input/input33
[  510.605892] input: SZMY-POWER CO.,LTD. PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:054C:0268.0009/input/input32
[  510.606358] sony 0003:054C:0268.0009: input,hiddev2,hidraw4: USB HID v81.11 Joystick [SZMY-POWER CO.,LTD. PLAYSTATION(R)3 Controller] on usb-0000:00:1d.0-1.3/input0

Я не отключаю контроллер вручную, после того как он опознаётся Inn DS4 wired controller. Он делает это автоматически

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

Слушай, выглядит так, как будто сам пад переключается, а не система его переключает.

Даже не знаю что и посоветовать. Попробуй это, вдруг поможет?

https://steamcommunity.com/app/221410/discussions/0/1693795812304458372/

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

Слушай, выглядит так, как будто сам пад переключается

Насколько я знаю, он так и делает. Тут больше вопрос в другом… Можно ли его как-то заставить думать, что он подключён к PS4? Я думаю, что должен быть какой-то посредник вроде эмулятора между USB и системой. Нужно будет проверить его в Ds4windows…

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

Пришлось немного заморочиться с DS4Windows… Сначала он находил мой геймпад в режиме PS3, но постоянно переподключал виртуальный геймпад, потом он не хотел реагировать на режим DS4… В общем, у меня всё вышло на винде. Всё работает, в том числе и тачпад(у него жуткая задержка). Геймпад определился как Armor LU 3 cobra спустя наверное трое попыток. Я думаю, я должен приложить логи Ds4Windows куда-нибудь, вдруг кто-то поймёт причину имено таким образом: https://drive.google.com/file/d/1DOJXyizAEb_MciWQ-DUQnbGKYFMZkgci/view

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