-
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
T248 doesn't send inputs to Wine on Steam Deck #90
Comments
Did you already read #61? Sounds fairly similar. |
I have already checked that issue and tried all the steps, but there is a difference. Even when launching control panel with system-wide installed wine I don't get any inputs or feedback. And again, after using and closing this panel the wheel stops being detected by Oversteer, which is quite suspicious. Is it getting hijacked and not released? Are there ways to check if the device is controlled and by which apps? Here is the wine log just in case. Could those wineusb |
Fair enough, though that maybe the same issue was just manifesting with slightly different symptoms but that doesn't seem to be the case.
Certainly sounds like it.
One way could maybe be to run something like
where
The
I'm sceptical. I'll check my own logs but they seem familiar, pretty sure I also get them. I'll do that later today. Just FYI, you can enable more messages in the wine logs: https://wiki.winehq.org/Wine_Developer%27s_Guide/Debug_Logging |
Thanks for detailed response. I have figured out my eventX number. It is detected as busy only when Oversteer is opened. Even worse. If I do Is it silent driver crash? I'm open to putting additional logs into T248 source and recompile to catch it. |
If it were a crash, I would expect A couple other logs that could contain info are
Adding some print statements is doable, you would need to remove the check at Line 367 in 275b64d
schedule_delayed_work(&tmff2->work, 0); to the end of tmff2_wheel_init() . This should effectively make the driver run in an infinite loop with a small delay between iterations as soon as it load, while still allowing it to be used without completely bricking your system. Your dmesg log would be pretty much filled with garbage.
Just adding print statements to I would consider adding printing as a backup to if |
I have found Only notable parts are:
But same warnings happen to my other devices which work fine.
I'm also suspicious of very generic name of my device. Shouldn't it be something about T248? I have just tried removing dkms module alltogether and it still shows the same name, albeit no force feedback setting in Oversteer. Regarding module modifications I'm unable to put it into endless loop. I have added On a side note, isn't this line unreachable? There is |
Shows 0 for me as well, so should be fine. Not entirely sure why
In an ideal world, sure, but the device name is taken directly from the device and Thrustmaster for whatever reason uses the generic name for this model. So it's not an obvious indicator of anything being messed up, unfortunately.
No, the
Hah, good catch. I used to have a small ladder of error codes at one point, I did a small-ish refactoring when I added the T248 to the driver and got rid of most of the ladder, must've overdone it a bit. Line 592 in 275b64d
err2 label. In fact, I'm also not freeing tmff2->states , should fix that too. Thanks for pointing that out.
I'm currently experimenting with running the Steam Deck's version of SteamOS on a virtual machine, let's see if that shows anything interesting. |
Thanks, I have put Here is what I got in dmesg after reconnecting the wheel.
Message repeated only 7 times. Wasn't it supposed to be endless loop? We schedule immediate |
Oh, right, there's also Line 457 in 275b64d
I assume that whenever someone closes the device we don't need to run the work loop anymore. You'll have to remove that line as well. Sorry, forgot about it. The only other case where the work loop is stopped is when the driver is unloaded, in Line 684 in 275b64d
|
Alright, I have commented out all cancels I could find and got into endless loop. |
Progress! Did you look at |
So I ended up uncommenting And if I put
As if it was gracefully removed. Is it proper behaviour? Is it kernel callback? Still nothing in logs as to why it happens. |
|
This output at the exact moment I launch
I'm going to try to figure out what exactly triggers this. |
I got SteamOS to run on a virtual machine and I can replicate this, which is at least something. |
Thank you for your help and quick response! I'm currently trying to find a way for udevadm to show exact rules which trigger the event. But I'm not sure if it even has this functionality or if it of udevadm's doing. |
Does it happen to T300RS as well on a virtual machine? |
There are ways to make kernel debugging messages appear in Playing around with these, I get this sort of interesting message when running
This message seems to be generated here: https://elixir.bootlin.com/linux/latest/source/drivers/usb/core/devio.c#L2353
Yep. |
If I stop the UDev rule by What I also noticed it is possible to reproduce this behaviour by using any wine command e.g. |
Okay, so I have decided to go the other way and I have installed Wine 7.0 from Flatpak. (Pacman version is 8.10) And the wheel sends inputs there. Which is a win. At least we ruled out that it is a driver issue. That |
Good thinking with testing different Wine versions. Next step might be to open up an issue over in https://github.com/ValveSoftware/SteamOS/issues. I don't know if the |
Thanks a lot for assisting me with this issue. It was quite the journey and your skills are amazing. I'm going to create an issue in SteamOS repo next. |
Hi,
Thanks for your amazing reverse engineering work on this project.
I'm on Steam Deck and I have managed to install this driver as DKMS module just fine. Oversteer started showing every action performed and wheel reacts back to feedback successfully.
But somehow it doesn't allow me to play games in Wine. Any game I launch just doesn't react to wheel inputs. If I launch
wine control joy.cpl
I can see my wheel as "Thrustmaster Thrustmaster Racing Wheel FFB". But in this window no input is registered, nor axes, not buttons. The same happens in all games. If I use Steam "Disable Steam Input" I can see the wheel in gamepads lists, but it doesn't react to inputs. Tried AC, ETS2, Beam.ng, Automobilista.I have tried both protontricks of many possible versions and system-wide installed wine to no avail. Just to be sure I have given RW access to all users using udev rules to
b696
. The wheel is updated to Firmware version 2.0 and set to PC mode. So far it works only in native apps: in Oversteer and in Linux version of Beam.ng.What's is really interesting is that after I launch
wine control joy.cpl
or run a game oversteer stops seeing the wheel and says error "No device available". And I have to re-plug the wheel to make it seen again. This is why I think this issue might be driver related. But nothing is written todmesg
when it happens, I'm not sure what logs to look into.Could you assist me in nailing down this issue?
The text was updated successfully, but these errors were encountered: