GithubHelp home page GithubHelp logo

Comments (15)

Kimplul avatar Kimplul commented on September 28, 2024

Hi, thanks for the report. I believe this is the first time anyone's mentioned Speed Dreams or Race07, so I don't really know how well they should behave with this driver. Automobilista should still work from my experience, so something funky is going on. Looks like you've installed the module correctly, as fftest seems to work as expected.
What does Steam's controller input menu say about the wheel?

One thing I noticed is that when I run dmesg I still see hid-thrustmaster popping up (even though it should be blacklisted):

That's normal, though rather confusing. hid-tminit that is currently installed by this driver as a dependency reports its name as 'hid-thrustmaster' in the logs (https://github.com/scarburato/hid-tminit/blob/9375f6c7d83af5dd6c8b8fe30351d0f36043b20a/hid-tminit.c#L392), but the module files it is installed as are named 'hid-tminit'. The blacklist works on the file names, not the reported names. So your blacklist is working, the naming situation is just a bit confusing right now. Should be fixed in the near future.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

I will check the Steam controller input menu soon

In the mean time, I wanted to point out a few things:

As I said the first time I installed the driver (a couple of months ago I believe) I went for the manual approach. I tested the wheel through Oversteer, running the linearity tests and such;
some days after that day I was in a call with a friend and wanted to show him some footage of a sim, so I downloaded Speed Dreams (I played it briefly on Windows in the past) but I couldn't set it up, so without further ado I downloaded Race07 since it's lightweight and run it for 5m; the force feedback seemed to be working since I could feel resistance when turning, and pulling from curbs and impacts.

Then some time passed up to some days ago when I wanted to go for a spin.
I fired up Race07 and realised that other than curbs and impacts I could just feel the spring effect which I had left enabled;

At this point I though that maybe I could try a fresh install of the driver, but didn't know how to uninstall (i tried make uninstall inside the project directory) so I thought that maybe doing a reinstall would overwrite every module file.

But the wheel "felt" exactly the same.

That's when I tried various things like those I mentioned in the previous comment.
So initially I hadn't even blacklisted the hid-thrustmaster driver (about this at the bottom)

I think it's of note mentioning the following:

Speed dreams had a huge deadzone in the center, so I followed your tip on setting up a udev rule in /etc/udev/rules.d/99-joydev.rules:

SUBSYSTEM=="input", ATTRS{idVendor}=="044f", ATTRS{idProduct}=="b66e", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"

This didn't seem to produce any effect until yesterday when I went for another try and the deadzone was gone.

Now, Oversteer has always required sudo so far to access the wheel properties (and so did fftest) but apparently this is not meant to happen.

The Oversteer's readme says this:

By default, the udev rules will be installed at /usr/local/lib/udev/rules.d when installing to prefix /usr/local or /lib/udev/rules.d when installing to any other prefix. (...) Older rules might be already installed at /etc/udev/rules.d or /lib/udev/rules.d. You may need to remove these files manually in case you're experiencing issues with permissions.

Since /etc/udev/rules.d/99-joydev.rules apparently worked, could it be that my Mint system looks for rules in /etc/udev/rules.d/ instead of the other places?
And is it possible that also games don't have the permission to use the force feedback?
Though, Race07 partially working kind of invalidate this hypothesis.

About blacklisting hid-thrustmaster

In your ReadMe you wrote

Until the updated hid-tminit is upstreamed, you might want to blacklist the kernel module hid-thrustmaster. Do this with
echo 'blacklist hid_thrustmaster' | sudo tee /etc/modprobe.d/hid_thrustmaster.conf

but the driver is called hid-thrustmaster, with the dash, not the underscore (found in /lib/modules/$(uname -r)/kernel/drivers/hid/) Is this a mistake, or is it irrelevant?

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

Is this the steam's controller input menu?

image

If so, it does not seem to detect the wheel.

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

At this point I though that maybe I could try a fresh install of the driver, but didn't know how to uninstall (i tried make uninstall inside the project directory) so I thought that maybe doing a reinstall would overwrite every module file.

Yep, that is effectively what happens. Generally you would also want to restart your system to make sure the changes take effect. There are ways to avoid rebooting as well, but generally rebooting is just the easiest/safest way.

Speed dreams had a huge deadzone in the center, so I followed your tip on setting up a udev rule in /etc/udev/rules.d/99-joydev.rules: [...]

Same thing, generally a reboot is in order. I guess that could be made more clear in the README.

Now, Oversteer has always required sudo so far to access the wheel properties (and so did fftest) but apparently this is not meant to happen. [...]

Oversteer generally installs the correct udev files automatically so you don't have to run it as root after that, there should be a popup that asks if you want to install the files the first time you launch Oversteer. At least when installed from GitHub the last time I installed it. fftest shouldn't require root access, at least it doesn't on my Debian machines and I don't think I've done anything special to allow that to happen.

Could be that something weird is going on with your permissions, though I don't think that that really explains much, as programs generally wouldn't use some effects but not others, they'd use no effects at all, as you correctly deduced.

[...] driver is called hid-thrustmaster, with the dash, not the underscore (found in /lib/modules/$(uname -r)/kernel/drivers/hid/) Is this a mistake, or is it irrelevant?

For whatever reason the kernel module subsystem uses - in some contexts and _ in others, the blacklist just happens to be one where underscores seem to generally be used. Not sure why but probably some kind of backwards compatibility thing.

Is this the steam's controller input menu? [...]

Yep, and not detecting anything is in this case is what I want to see, Steam doesn't think the wheel is an Xbox controller or something. Could you still try running your games with Steam Input disabled? You can disable Steam Input on a per-game basis, Properties > Controller.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

I tried disabling steam input per game but nothing changed.

However, in Automobilista control setting I noticed that by disabling "auto steering rotation" I cannot change the rotation and it's stuck at 240.

In fact, forcefeedback aside the steering angle felt weird compared to last time I played the game on Windows, as if there was a mismatch between the T300 rotation and the ingame rotation,

Here's a screen

Screenshot from 2024-06-08 18-56-19

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

In fact, forcefeedback aside the steering angle felt weird compared to last time I played the game on Windows, as if there was a mismatch between the T300 rotation and the ingame rotation, [...]

Seems plausible, I suppose? The method Linux uses to change the steering angle is by writing the angle to a special file, and I don't think Proton is aware of how to handle that. So the wheel receives inputs from Linux, that is working with some angle, and the wheel reinterprets that to be some other angle, maybe.

I'm not sure if the steering wheel angle setting is something standardized into DirectInput or if it might be something provided by libtm, a library that some games seem to use to handle Thrustmaster wheels. Unfortunately that library is a black box, and I have no knowledge of how it works internally.

Anyway, thanks for checking. Do you have a way to update the firmware of the wheel? The driver should complain if it detects a firmware version too old to work for certain, but it could be that something's messed up the check for whatever reason.

I'm currently away from home and I can't check how Automobilista is behaving on my computer for at least a week, sorry.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

Don't worry! Take your time :)

Yesterday I checked the firmware and even reinstalled it by mistake but it was already at version 34, which seems to be the latest.

In the past hour

  • I tried to execute Speed Dreams with elevated priviledges but still no force feedback to be felt.
  • I tried solving the permission problem with Oversteer by changing the location of the rules and editing the .rules file of thrustmaster in ways that were described in some closed issues in Oversteer.

I was thinking about installing another distro (maybe Debian or Fedora) to see if the issue persists, but that would be quite time consuming.

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

was thinking about installing another distro (maybe Debian or Fedora) to see if the issue persists, but that would be quite time consuming.

Maybe try using a virtual machine, I fairly regularly spin up throwaway VMs for testing different things. I would recommend virt-manager, fairly nice GUI tool, it generally creates VMs with reasonable defaults. You (probably) won't be able to run any heavier games, but at least Race07 looks to maybe be lightweight enough to test.

I didn't even realize Speed Dreams was open source, actually really cool. I'll have to look into how it implements its FFB, could maybe shed some light onto other games as well.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

I will try VMs once I have some time to spare, thanks for the tips :)

About Speed Dreams, yeah, very cool to see! Seems to be a very old project but still in development, I read they're changing up the heads of the projects and planning, among various things, to finally move from Subversion to Git, for their version control (news post here).

Then I would like to ask you some questions, @Kimplul , but they're slightly out of topic in regards to this issue, so I thought it's best to leave them out of this space. It's about getting started with linux driver development. Where can I reach you?

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

Where can I reach you?

Email at [email protected] if you want a private but asynchronous conversation, maybe a GitHub discussion if you don't mind it being public. For more direct contact, I do still have a Discord account, kimplu, but I've been meaning to try out some more open alternatives likes Matrix or something, wouldn't mind having an excuse to finally make an account.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

maybe a GitHub discussion if you don't mind it being public

Actually I don't mind it being public, because it can be of use for others.

Since I was not familiar enough with GitHub discussions i did a quick search that showed me that there should be a discussion section in the repo. I guess it isn't enabled here because there was no reason up to now. Or it's not available for everyone.

but I've been meaning to try out some more open alternatives likes Matrix or something, wouldn't mind having an excuse to finally make an account

I don't mind this too, seems like an interesting alternative.

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

Since I was not familiar enough with GitHub discussions i did a quick search that showed me that there should be a discussion section in the repo. I guess it isn't enabled here because there was no reason up to now. Or it's not available for everyone.

Oh, sorry, haven't used them myself, I just saw the button for them and thought they might be interesting to try out, didn't realize they had to explicitly be enabled. Should be online now.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

They are indeed! I'll write a post as soon as I can.

from hid-tmff2.

Kimplul avatar Kimplul commented on September 28, 2024

I looked at speed dreams, turns out that the game requested an effect with a duration of 1 second, started playing it with a replay count of effectively infinite and then just kept updating it. I thought I handled these situations properly, but the short effect duration triggered a bug that caused the driver to ignore the play count and stop the effect after one second. Speed dreams now has at least some FFB on my machine with commit cafd0f4.

from hid-tmff2.

anto31ad avatar anto31ad commented on September 28, 2024

Speed dreams now has at least some FFB on my machine with commit...

I tested the wheel some days ago but forgot to let you know that the forcefeedback finally came alive with Speed Dreams! You had to see my smile ahah!
Didn't test extensively due to limited time, but plan to in the upcoming weeks.

Still I managed to do a quick test on Race07 and AMS and unfortunately the issues with my system are still there;

Moreover, not sure if I made a mistake, but running the constant force effect (no. 1) in fftest did not work as expected this time, since the wheel wouldn't move. I need to try again before confirming, maybe it was just a temporary hiccup.

from hid-tmff2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.