https://bugs.winehq.org/show_bug.cgi?id=57484
Bug ID: 57484 Summary: VKB Joystick not detected in Wine 9.22 but works in 9.21 Product: Wine Version: 9.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: joseph+winehq@xaosnet.net Distribution: ---
I am using Wine-Staging from the WineHQ Repos on Ubuntu 24.04, and with Staging 9.22, my VKB Gunfighter Left is not detected if hidraw is enabled, but is detected with Staging 9.21, or if I check the box to disable hidraw.
I reproduced this with a fresh wine prefix as well as an updated one.
I've seen reports that this is also impacting some VKB Gladiator users as well on the Star Citizen Linux Users Group discord.
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #1 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77501 --> https://bugs.winehq.org/attachment.cgi?id=77501 Control Panel screenshot for 9.22
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #2 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77502 --> https://bugs.winehq.org/attachment.cgi?id=77502 Control Panel screenshot for Wine 9.21
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #3 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77504 --> https://bugs.winehq.org/attachment.cgi?id=77504 Control Panel Screenshot for 9.22 with hidraw disabled
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #4 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77506 --> https://bugs.winehq.org/attachment.cgi?id=77506 Output of evdev-joystick --l
https://bugs.winehq.org/show_bug.cgi?id=57484
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rbernon@codeweavers.com
--- Comment #5 from Rémi Bernon rbernon@codeweavers.com --- Thanks, this is indeed one of the devices which I changed to prefer the hidraw backend over evdev, as they've been reported on Proton as working well and making it possible to use the VKB Windows application to configure them. This is described in more details in https://github.com/ValveSoftware/wine/pull/197.
It unfortunately needs some udev rules to be setup to expose the devices as hidraw in the first place, and if they aren't there we simply will ignore the SDL/evdev devices, unless Wine hidraw backend is disabled (through the checkbox).
I will have a better look whether we can detect if the udev rules are properly setup before deciding to prefer hidraw over another backend.
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #6 from Joseph joseph+winehq@xaosnet.net --- What's needed udev rule wise for this to work as intended? Is it changing the mode to "0660" and group "plugdev"? I have a Stream Deck and have some of the udev rules for that to work that I can use as a baseline to create rules for my devices and similar ones. Want to ensure I do it correctly.
Thank you.
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #7 from Rémi Bernon rbernon@codeweavers.com --- I think something like that would work for USB devices, with the idVendor and idProduct adjusted. What matters is probably MODE="0660" and TAG+="uaccess":
``` # DualShock 4 over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0660", TAG+="uaccess" ```
When using a different subsystem like bluetooth the rule is slightly different:
``` # DualShock 4 over bluetooth hidraw KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0660", TAG+="uaccess" ```
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #8 from Joseph joseph+winehq@xaosnet.net --- Thank you, I found some documentation on using `TAG+="uaccess"` instead of static groups, so I'll see what I can get working.
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #9 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77508 --> https://bugs.winehq.org/attachment.cgi?id=77508 Udev Rules
Alright, I quickly put together a set of udev rules for the devices I've owned to add the `uaccess` tag to them for hidraw. It does appear to be working at least for the wine control panel and a quick test in Star Citizen appears to be happy.
This should also help to resolve the issue with VKB having the copyright symbol in their vendor field on older firmware and SC in Wine.
Overall this will be a good change in the long run to be able to unlock the full potential of devices like those from VKB since it should let us use the full 128 vbuttons they're capable of instead of the prior 78 or 79 it was limited to with the event joystick.
https://bugs.winehq.org/show_bug.cgi?id=57484
Joseph joseph+winehq@xaosnet.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #77508|0 |1 is obsolete| |
--- Comment #10 from Joseph joseph+winehq@xaosnet.net --- Created attachment 77511 --> https://bugs.winehq.org/attachment.cgi?id=77511 Udev Rules
Based on some input from the VKB discord, I updated the udev rules to set `uaccess` on all devices with VKB's or VIRPIL's vendor ID.
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #11 from Joseph joseph+winehq@xaosnet.net --- With Wine 10.0-RC1, my devices aren't being shown at all via the wine joy.cpl, whether event or hidraw. Should I file a new bug for it?
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #12 from Rémi Bernon rbernon@codeweavers.com --- Possibly bug 57524 (which is fixed in git)?
https://bugs.winehq.org/show_bug.cgi?id=57484
--- Comment #13 from Joseph joseph+winehq@xaosnet.net --- Thank you, confirmed that it's working with my devices in 10.0-rc2