-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Udev rules cause wheel to stop working when plugged in a second time #132
Comments
Apparently Also worth noting that apparently the |
@kevenwyld @irseny Hello again, I recently thought that it's a bit silly to require users to copy
instead of
which doesn't seem to cause problems for Gentoo at least. Would you mind checking if it works for your systems? I'm not really familiar enough with |
Interesting, thanks for digging into this! I totally missed the difference in |
@Kimplul The existence of the rules file does not make a distinguishable difference in my case. I can see uaccess on the hidraw device applying: The T300 is detected as joystick device, maybe by the I can successfully test the device with fftest, jstest and evtest, disconnecting and connecting again multiple times. However the device is not usable with wine. Opening the joystick tester
So in regard to your question, I do not have any additional issues from the rule :) |
Thanks for checking, @irseny.
At least according to https://wiki.archlinux.org/title/Gamepad SDL{2,3} first tries to use HIDAPI for a device, and the README in https://github.com/libsdl-org/SDL/tree/main/src/hidapi refers to a Seems Wine/Proton uses SDL2 for joystick input (https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine), so I would assume that if SDL doesn't work, Wine/Proton breaks as well. I'm not entirely certain why not having There's also https://github.com/Grumbel/sdl-jstest that checks the input via SDL, it's not available as a Debian package but would you mind checking that one as well? If Wine doesn't work for you, I would expect
Yeah, I guess if for example the Steam Deck doesn't have that rule, adding it explicitly grants
If you mean that the rule is a bit of a shotgun approach, I suppose I can't really disagree. Not entirely certain that's the solution that'll stick, but for now I'm more in a debugging mindset and mostly just curious if it'll work at all. |
Thanks for specifically mentioning
But it does not collect any meaningful events:
The unhandeled event looks out of place. Printing some more information with SDL it turns out to be a battery level indicator. I have not seen similar events while interacting with /dev/input/eventX before. Would that be something coming from the hidraw device? I cannot tell how to get something meaningful out of it (is it for power control?) or where the hidraw comes from in the first place. Could the creation be triggered by a udev TAG?
I have not tried the double application yet and will try to test it in the next days. |
I believe so, at least based on the I suspect that SDL is misidentifying the wheel for some other controller, and is incorrectly interpreting the HID descriptors the wheel sends out since HIDAPI should only be available for some specific controllers explicitly supported by SDL: https://github.com/libsdl-org/SDL/blob/2635239bbcbfdc9208427e7b18a26b771a2f6ac9/src/joystick/hidapi/SDL_hidapijoystick.c#L40 Don't know which one though or why, I'll look into it.
I suspect the battery level event is garbage as per above, and I believe |
@Kimplul Yes seems so. This is the normal GUID again: The documentation you linked indicates that hidraw will become the new default. I understand that as "independent of the specific vid:pid":
But actually the hidraw, which is created for two other test devices (another wheel and a cheap old gamepad) is not used by SDL. This reflects in their GUIDs: When I instead delete the /dev/input/eventX for the T300 and leave its hidraw in place, it is still recognized by sdl2-jstest. |
I ended up having a busier end of semester than expected so I didn't really have time to look into this at any depth, and I'm about to leave for my winter holiday so I'll be away from my wheels for a little while. I'll pick this up after new years, if someone else wants to have a go before then feel free. Happy holidays! |
Rather strange, but something in the
udev
rules file causes the T248 to stop sending input to at least some SDL programs when it's unplugged and plugged back in. Does not happen without the rules file.Should probably check if the same happens with the T300, and if so, what rule exactly is causing this.
The text was updated successfully, but these errors were encountered: