Giter Site home page Giter Site logo

kimplul / hid-tmff2 Goto Github PK

View Code? Open in Web Editor NEW
173.0 14.0 15.0 2.06 MB

Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX and TS-XW wheels

License: GNU General Public License v3.0

Makefile 0.54% C 98.93% Shell 0.53%
driver linux usb-hid thrustmaster t300rs force-feedback t248 tx ts-xw

hid-tmff2's Introduction

Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX and TS-XW wheels

DISCLAIMER: The module is now ready for near-stable USE in most force feedback games, supports rangesetting as well as gain and autocentering along with most force feedback effects. While I haven't personally come across any crashes or lockups with this version, I can't promise that they won't occur under any circumstances.

GitHub last commit (master) License GitHub contributors

Description

A Linux kernel module for Thrustmaster T300RS, T248, and (experimental support) TX and TS-XV wheels.

I've been working on enhancing the real-time updating of effects, and although it's not flawless yet, the overall experience is gradually improving. There are a couple of issues, though. First, there might be occasional inaccuracies in how the effects compare to the Windows driver. Second, in certain games, the mapping of pedal inputs can be inconsistent. This means that while all pedals should be recognized by the games, they might not be mapped correctly.

I only have access to the base editions of T300RS and T248 wheels to test with, but from reports it seems that other editions (F1, GT, Alcantara, etc.) should also work with this driver.

TX support was contributed by @davidedmundson, TS-XW support was contributed by @yassineimounachen.

Installation

You can either install this kernel module by using DKMS or manually building from source. If you're unsure which to pick, go with DKMS, it will automatically recompile the driver whenever needed.

An AUR package is also available: hid-tmff2-dkms-git

Dependencies

Kernel modules require kernel headers to be installed. Use any one of the right command for your distribution:

sudo apt install linux-headers-$(uname -r)   # Debian-based
sudo pacman -S linux-headers                 # Arch-based
sudo pacman -S linux-neptune-61-headers      # For SteamDeck specifically
sudo yum install kernel-devel kernel-headers # Fedora-based

Manual installation

  • Unplug wheel from computer
  • Run
    git clone --recurse-submodules https://github.com/Kimplul/hid-tmff2.git
    cd hid-tmff2
    make
    sudo make install
  • Plug wheel back in
  • Reboot (Optional, yet Recommended)

DKMS (Dynamic Kernel Module Support)

  • Unplug wheel from computer
  • Run
    git clone --recurse-submodules https://github.com/Kimplul/hid-tmff2.git
    cd hid-tmff2
    sudo ./dkms/dkms-install.sh
  • Plug wheel back in
  • Reboot (Optional, yet Recommended)

NOTE: See INTEGRATION for install instructions for other linux distributions.

NOTE: On some systems, you will get an error/warning about SSL. This is normal for unsigned modules. For info on signing modules yourself (completely optional), see here.

NOTE: Thrustmaster TX and TS-XW wheels aren't supported by hid-tminit as of yet, meaning that the wheels have to be initialized with tmdrv. Please see #48.

WARNING: There have been reports that this driver does not work if the wheel's firmware version is older than v. 31. To update the firmware, you will have to fire up a Windows installation and update the firmware using the official Thrustmaster tools.

WARNING: There was a name change when adding support for the T248 from hid-tmt300rs to hid-tmff-new, and you may have to uninstall the older version of the driver.

Contributing

This project wants help from people who can contribute. If you would like to help add a wheel to this driver, please have a look through docs and/or CONTRIBUTING.md for what might need to be done.

If you have a wheel that's not not supported, but suspect it might fit into the driver, please feel free to open up an issue about it. Currently open requests for wheels:

Common issues and notes

  • Reportedly some games running under Wine/Proton won't recognize wheels without the official Thrustmaster drivers installed within the prefix. See #46. For installation instructions, see DRIVER.

    Note that you will still need the Linux driver, the Windows driver just installs some files needed by games to correctly recognize the Linux driver. The Windows driver itself does not work under Wine/Proton.

  • Until the updated hid-tminit is upstreamed, you might want to blacklist the kernel module hid-thrustmaster. Do this with

    echo 'blacklist hid_thrustmaster' > /etc/modprobe.d/hid_thrustmaster.conf
  • If you've bought a new wheel, you will most likely have to update the firmware through Windows before it will work with this driver.

  • T300 RS has an advanced F1 mode that can be activated with an F1 attachment when in PS3 mode. The base wheel will also work in PS4 mode, but it's less tested and if you encounter issues with this mode, please feel free to open up an issue about it.

  • T248 isn't as extensively tested as T300 RS, please see issues and open new ones if you encounter problems. There is currently no support for the built-in screen.

  • TX support is considered experimental, please see issues (especially #48) and open new ones if you encounter any problems.

  • To change gain, autocentering etc. use Oversteer.

  • If a wheel has a deadzone in games, you can try setting up a udev rule: /etc/udev/rules.d/99-joydev.rules

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

    where WHEEL_ID is

    Wheel WHEEL_ID
    T300 RS, PS3 normal mode b66e
    T300 RS, PS3 advanced mode b66f
    T300 RS, PS4 normal mode b66d
    T248 b696
    TX b669

    This should make sure that the wheel behaves like you'd want from a wheel.

  • There have been reports that some games work better with a different timer period (see #11 and #10).

    To change the timer period, create /etc/modprobe.d/hid-tmff-new.conf and add options hid-tmff-new timer_msecs=NUMBER into it. The default timer period is 8, but numbers as low as 2 should work alright.

hid-tmff2's People

Contributors

davidedmundson avatar gou4shi1 avatar kimplul avatar konchunas avatar mmaaxx500 avatar rayslash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hid-tmff2's Issues

T300 always Autocentering in ACC

I’m running this driver, installed via the aur, in arch linux. i have blacklisted hid_thrustmaster. i have installed the windows drivers in the wine prefix.

In Assetto Corza Competizione, while on race track, wheel auto enters regardless of whether oversteer is open or closed, or whether overdrive autocenter is on/off.

When in ACC menu, wheel does not autocenter.

In Project Cars 2, wheel behaves as expected.

EDIT: wheel also auto enters in Wreckfest, as it does in ACC. When in desktop (no game open), wheel auto centers until Overdrive is opened (with autocenter off).

I’m assuming this means that tmff2 autocenters by default; is there a config file where i can change a 0 to a 1 and see how behavior changes?

Crash of T248 with Automobilista2

Hi,

Before installing the driver, I could play automobilista 2, albeit with no FFB.
Now, with the T248 plugged, the game crashes on startup. If I disconnect the wheel, start the game, and reconnect the wheel, the game crashes the moment the wheel is connected. This happens with proton experimental, 7.0 and 6.3.

How can I give you proper info to debug this? Like logs or smthing.

Incompatible gcc/plugin versions

When I try to make or dkms-install it says that there are incompatible gcc/plugin versions, specifically referring to structleak_plugin.so. The plugin seems to normally exist inside /usr/lib/modules/5.10.36-2-MANJARO/build/scripts/gcc-plugins but there seems to be a version mismatch?

DKMS make.log for hid-tmff2-0.8 for kernel 5.10.36-2-MANJARO (x86_64)
Sat Jun 12 01:31:40 PM EEST 2021
make -C hid-tminit 
make[1]: Entering directory '/var/lib/dkms/hid-tmff2/0.8/build/hid-tminit'
make -C /lib/modules/5.10.36-2-MANJARO/build M=/var/lib/dkms/hid-tmff2/0.8/build/hid-tminit modules
make[2]: Entering directory '/usr/lib/modules/5.10.36-2-MANJARO/build'
  CC [M]  /var/lib/dkms/hid-tmff2/0.8/build/hid-tminit/hid-tminit.o
cc1: error: incompatible gcc/plugin versions
cc1: error: failed to initialize plugin ./scripts/gcc-plugins/structleak_plugin.so
make[3]: *** [scripts/Makefile.build:279: /var/lib/dkms/hid-tmff2/0.8/build/hid-tminit/hid-tminit.o] Error 1
make[2]: *** [Makefile:1821: /var/lib/dkms/hid-tmff2/0.8/build/hid-tminit] Error 2
make[2]: Leaving directory '/usr/lib/modules/5.10.36-2-MANJARO/build'
make[1]: *** [Makefile:5: all] Error 2
make[1]: Leaving directory '/var/lib/dkms/hid-tmff2/0.8/build/hid-tminit'
make: *** [Makefile:17: hid-tminit] Error 2

Firmware updated, still not working

I have updated the firmware with the Thrustmaster tool in Win7, but it is still not working in American Truck Simulator on my Regolith (Ubuntu 20.10).

I might be able to provide some information, if you can tell me, what to look for.

No FFB for me

Hello! I was about to sell my T300RS when I found this project.

I have successfully built and installed both modules in my Linux Mint 20. But, unfortunately, I have no FFB in any game (Assetto Corsa Competizione, Wrekfest, ...).

In other hand, Oversteer software finds successfully the plugged T300RS with theses modules.

What are the requirements to make FFB work?

$ uname -a
Linux spocthier-PC 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

And the last firmware is installed (v31).

I don't know what to say more to help for debugging.

Thx for this!

Steam/FH5 doesn't recognize T300

Hello,

I'm using Ubuntu 20.10 and running an Intel Core I5 with an AMD Radeon RX 5600 XT.

With the Bash command "lsusb" it shows me this: Bus 001 Device 006: ID 044f:b66d ThrustMaster, Inc. Thrustmaster Racing Wheel FFB

I just bought the Thrustmaster T300 Alcantara Editon and tried to use it for Forza Horizon 5 with Linux. I plugged everything in and tried to configure it in FH5 - didn't work. So the next step was trying to configure the Steering Wheel in the Steam Settings. It was recognized as a normal/typical GamePad. Configuring the Steering Wheel itself in the Controller Settings was possible but I wasn't able to change anything effectively for using it. Then I noticed that the buttons (including the shifter) were recognized which means I could use them in FH5. The Steering Wheel itself (Rotation Axis) and the Pedals were not usable/I could not bind a function on them. Also, I was not able to use them in steam for navigation inside the menus.

I already installed this Linux Kernel Module but there were some errors:
Install_Log_hid-tmff2

I don't think those errors are fatal because it installed successfully.

According to this maybe my distro does not load these modules because they're unsigned.
I also took a lock at issues #8 and #14 - I was not able to find a solution for this problem.

modprobe shows nothing special:
modprobe_log

I can also find the "/lib/modules/5.13.0-22-generic/extra/hid-tmt300rs.ko" file. (it's the same for "sudo modprobe hid-tminit")

For "sudo dmesg -w" this shows up:
sudo_dmesg_-w

I've already had a conversation with berarma.

Thanks

Output queue full in kmesg/dmesg

After game launch, this starts spamming the console:

[ 3034.516377] t300rs 0003:044F:B66E.000B: output queue full
[ 3034.533090] t300rs 0003:044F:B66E.000B: output queue full
[ 3034.533094] t300rs 0003:044F:B66E.000B: output queue full
[ 3034.533096] t300rs 0003:044F:B66E.000B: output queue full
[ 3034.551362] t300rs 0003:044F:B66E.000B: output queue full
[ 3034.551365] t300rs 0003:044F:B66E.000B: output queue full

Game: ETS2 on Steam (running the windows version via Proton Experimental)

T2PA pedals (from the T300 RS) are incorrectly detected as clutch and brake

Hello,

As the title says, I've tried both Project Cars 2 under Proton and the Oversteer aplication and both detect the wheel correctly but neither one has the gas pedal working.

Oversteer shows the T2PA pedals as clutch and brake instead of brake and gas, PC2 only detects the brake. I've made sure that the wheel is in the correct mode, with the red light and PS3 selected. I've also tried to select the green pedal mode but it didn't make a difference.

Do you have any idea what the issue might be?

I would be happy to try to debug it myself and open a PR with a fix if you could give me some tips on where to get started :)

Support on Kernel 5.13 and higher

Hello,

Just a quick question. I updated to Ubuntu 21.10 from .04 and this one ships with kernel 5.13 which includes some basic support for the thrustmaster T300.

I was wondering. How do I blacklist that default driver and use this one? It seems to be conflicting somehow. The weel is detected but no FFB.

FFB not work as expect when direction changed

When I nagitive the direction of ffb effect, there is a high probability that force feedback not work. Unless I remove the effect and upload a new effect. Is it my misuse?

system: Ubuntu 16.04/20.04
my test code with compile command gcc -std=c++14 t300rs.cc :

#include <algorithm>
#include <cmath>
#include <cstdio>

#include <fcntl.h>
#include <libevdev-1.0/libevdev/libevdev.h>
#include <unistd.h>

int main() {
  int event_fd_ =
      open("/dev/input/by-id/"
           "usb-Thrustmaster_Thrustmaster_T300RS_Racing_wheel-event-joystick",
           O_RDWR | O_NONBLOCK);

  ff_effect effect_;
  effect_.id = -1;
  effect_.type = FF_CONSTANT;
  effect_.u.constant.level = 19722;
  effect_.direction = 35389;
  effect_.u.constant.envelope.attack_length = 0;
  effect_.u.constant.envelope.attack_level = 0;
  effect_.u.constant.envelope.fade_length = 0;
  effect_.u.constant.envelope.fade_level = 0;
  effect_.trigger.button = 0;
  effect_.trigger.interval = 0;
  effect_.replay.length = 0xffff;
  effect_.replay.delay = 0;
  bool ffb_need_restart_ = false;
  bool has_play_effect_ = false;
  int cnt = 0;

  while (true) {
    // There is a high probability that force feedback will fail when change
    // direction without rewrite
    if (++cnt % 1000 == 0) {
      effect_.direction = -effect_.direction;
    //   ffb_need_restart_ = true;  // not restart
    }

    printf("ffb_level %d\n", effect_.u.constant.level);
    printf("direction %d\n", effect_.direction);

    if (ffb_need_restart_ || ioctl(event_fd_, EVIOCSFF, &effect_) < 0) {
      printf("restart force feed back\n");
      if (effect_.id >= 0 && ioctl(event_fd_, EVIOCRMFF, effect_.id) < 0) {
        printf("ioctl erase feedback failed\n");
      }
      effect_.id = -1;
      has_play_effect_ = false;
      ffb_need_restart_ = false;
      continue;
    }

    /* If first time, start to play the effect_ */
    if (!has_play_effect_) {
      struct input_event play;
      play.type = EV_FF;
      play.code = effect_.id;
      play.value = 1;

      if (write(event_fd_, (const void *)&play, sizeof(play)) == -1) {
        printf("Play effect failed\n");
      }
      has_play_effect_ = true;
    }
    usleep(8000);
  }
}

T3PA + TH8A addons on T300RS base in PS4 mode.

I know that the wheel base is supposed to be used in ps3 mode, while running on PC, but…

When running so, the TH8A addon needs to be connected to the PC via a dedicated usb cable.

I wonder if it could be reworked, so that the wheel will be recognised in PS4 mode with all attachements. I could do all the necessary testing. Just point me in the right direction.

T500 RS support

Hi there,

Good work so far to get T300 RS support to linux; Kudos!
I wonder if you can bring T500 RS support to your project.
I know there are some other alternatives that started to make the device detection working (https://github.com/her001/tmdrv) so maybe there something to combine with you two projects.
Personally owner of T500 RS + shifter, I'd be glad to give some help if I can anyhow, but I don't know from where to start...

Feedback and encountered problems

Hi,

Off the bat, I would like to that you for your efforts on this. It's great to finally have my wheel working nearly perfectly on Linux :)

I could not find a thread indicating which games have been tested so I made a shortlist of tested games and encountered problems.

  1. ACC, works perfectly.
  2. AC, works perfectly.
  3. AMS2, works perfectly. Had some issues with steam input overriding some inputs so had to flip it on and then off then the pedals worked correctly.
  4. F1 2020, this one does not work correctly. I can feel some forces like curbs and bumps but there is no weight to the wheel at all. It also seems to apply cornering forces incorrectly making the experience quite strange. Let me know how I can assist you in debugging this issue. I have not tested any other version of the F1 series but may do that later on.
  5. BeanNG works just fine as well. No funnies.

Let me know if I can be of some assistance to help debug/test fixes for known issues.

Windows drivers inside prefix

I know this will sounds a bit strange but I have been able to reproduce this on multiple occasions.

I recently acquired F1 22 and it did not recognize my wheel no matter what I did. Eventually I gave up assuming it was a game issue.

A few days later I noticed a post on vales proton bug tracker about someone who installed the windows drivers inside the prefix and then the wheel was detected and mapped correctly on startup. I was pretty sure it won’t do anything, knowing wine has massive limitation when it comes to driver support, but it did. The wheel is detected and works perfectly.

I then decided to test other titles such as ams2 and acc. With both titles the games did not recognize my previous configuration and I had to recalibrate everything. What really surprised me is that the feel of the wheel and especially the pedals changed a lot after installing the drivers. I race daily and I have very fine settings I always keep, but this changed it quite significantly. Can’t really say if it’s for better or worse but the pedals do provide more depth or range of motion for sure.

Could you shed some light on this perhaps? I honestly feel like this should not have done anything yet it made a big difference.

Range Change

In the README, there are instructions on how to change range by writing to file:
/sys/bus/devices/XXXX:044F:B66E.XXX/range

In my system (Arch Linux) there is no such file, instead the range can be changed at:
/sys/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/0003:044F:B66E.0008/range

The exact path varies and can be seen in dmesg when plugging-in the wheel.

The driver seems to init 900 degrees range, aren't TM3000RS wheels all 1080?

Btw, I've been testing the wheel in Dirt Rally and BeamNG and it works great.

Sniffed Windows USB traffic for hid-tminit

Do you still have the capped traffic you used to get the USB controller request to initialize your Thrustmaster wheel? If so can you share them?

Would be nice to understand how the Windows's driver is able to understand which wheel really is the generic 044f:b65d so that we can write a single and polyvalent init driver for the Thrustmaster wheels. I'm not sure if it's even possible (is possible on Windows to have multiple Thrustmaster models at the same time?)

You can find my capped traffic from a T150 here, the control urb is the packet n° 210, it's a Wireshark file.

Maybe the correct title for this «issue» should be something like «Polyvalent hid-tminit»

T500RS detection

Hi @hoover67, I took the liberty to open up an issue for you in reference to #49 , hope you can at least comment on issues.

Just so we're clear, this driver is just the basis for the T500 driver. I don't own a T500 myself, and @cazzoo kindly offered to try reverse-engineering the wheel, but he hasn't had much time to do so. As such, the FFB won't work even if the wheel is detected properly, sorry.

If you'd like to help with the reverse-engineering, there's a short description of what has to be done in the wiki.

Anycase, the actual issue you reported is technically in https://github.com/scarburato/hid-tminit. Thrustmaster wheels have a pretty dumb thing where they require the computer to first initialize them (such as telling the wheel which model it is, wtf?), and the hid-tminit driver is specifically for this as multiple wheels use more or less the same init sequence. The hid-tmff2 driver then takes over and provides FFB for the initialized wheel.

From the log it seems that the error is -EPIPE, which according to this might be related to hardware issues. I remember contacting Thrustmaster about something similar and apparently it is recommended to use USB3 ports and try different ports. Not sure if it's relevant here, but probably worth a shot if you didn't already try it.

@cazzoo Have you run into anything similar with your wheel?

Can you add the T-GT II please

Hi I have a T-GT II and I would like to use it on linux (I use pop os)
I install the driver after figure it out for the ssl problem My wheel is not reconize
dmesg

[ 384.552140] usb 5-1: USB disconnect, device number 12
[ 384.552145] usb 5-1.1: USB disconnect, device number 13
[ 386.192095] usb 5-1: new high-speed USB device number 14 using xhci_hcd
[ 386.343422] usb 5-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=32.98
[ 386.343427] usb 5-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 386.343429] usb 5-1: Product: USB2.0 Hub
[ 386.394712] hub 5-1:1.0: USB hub found
[ 386.395172] hub 5-1:1.0: 2 ports detected
[ 386.524294] hub 5-1:1.0: USB hub found
[ 386.524791] hub 5-1:1.0: 2 ports detected
[ 386.875771] usb 5-1.1: new full-speed USB device number 15 using xhci_hcd
[ 386.992678] usb 5-1.1: New USB device found, idVendor=044f, idProduct=b66d, bcdDevice= 7.00
[ 386.992681] usb 5-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 386.992682] usb 5-1.1: Product: Thrustmaster Racing Wheel FFB
[ 386.992683] usb 5-1.1: Manufacturer: Thrustmaster
[ 387.071842] input: Thrustmaster Thrustmaster Racing Wheel FFB as /devices/pci0000:00/0000:00:08.1/0000:2f:00.3/usb5/5-1/5-1.1/5-1.1:1.0/0003:044F:B66D.0010/input/input36
[ 387.071948] tmff2 0003:044F:B66D.0010: input,hiddev2,hidraw2: USB HID v1.10 Gamepad [Thrustmaster Thrustmaster Racing Wheel FFB] on usb-0000:2f:00.3-1.1/input0
[ 387.074675] tmff2 0003:044F:B66D.0010: firmware version 10 is too old, please update.
[ 387.074679] tmff2 0003:044F:B66D.0010: note: this has to be done through Windows.
[ 387.074680] tmff2 0003:044F:B66D.0010: failed initializing T300RS
[ 387.074681] tmff2 0003:044F:B66D.0010: init failed
[ 387.168318] tmff2: probe of 0003:044F:B66D.0010 failed with error -22

lsusb in other mod (what should on pc)

Bus 005 Device 017: ID 044f:b66d ThrustMaster, Inc. Thrustmaster Racing Wheel FFB

lsusb in gt mod (I believe for granturismo on ps4/5) not reconize on windows

Bus 005 Device 021: ID 044f:b681 ThrustMaster, Inc. Thrustmaster Racing Wheel FFB T-GT

last firmware for the tgt2 base is the v10

So What do you need to add the T-GT II ? I have a laptop with windows on it if need information from windows side.
Thanks for reading me :)

FFB not working (Fedora 36 dkms-install)

FFB is not working for me, and I am kind of lost how to solve this. Can someone please explain what possibly can go wrong? FFB isn't working for F1 2021 and Assetto Corsa Competizione.

WIP: T818 support

Hi there.
The T818 has the same device ID as the T248 (b696) so it is immediately picked up by hid-tmff2 and usable.
I recently noticed that it's feeling different than on Windows, so I decided to capture USB packets and check if I can see any differences between Linux and Windows.

This issue is intended as a place for me to gather my findings and for people to chime in if they already have some information.

To find packets differing between Windows and Linux I for now resorted to recording USB packets while running rFactor 2 and comparing the used commands. Most of them are the same but there is one command that is sent a few times that does not seem to be sent by hid-tmff-new.

60 00 --- Default Header
01 --- ID
0b --- Unknown Command
00 00
37 fd --- Unknown values
00 00
ff ff --- Unknown vlaues
00 80 --- Unknown values

I was unable to recreate this command with fedit.exe for now, so I have no clue what it does.
I don't quite understand the code inside t248.c yet, though, so it might be that it was already deciphered.

If anyone cares to chip in or help out, feel free!

libbeamng.| Steering wheel drivers didn't provide any FFB resolution information. Defaulting to 65536 steps and wheel getting "stuck" sometimes in beamng

First off, thank you very much for your hard work on this project. I'd love to buy you a beer or something if you accept donations for your time. We pay so much for these devices and games but the parts that really stitch together Linux gaming are often small projects like this and the people behind them.

I've just purchased a used T300 and have been testing this out with several games. Everything is mostly working great however in beamng, which is the game I spend the most time in, I've experienced two issues:

  1. The game reports libbeamng.| Steering wheel drivers didn't provide any FFB resolution information. Defaulting to 65536 steps. This doesn't seem to be so much of an issue, FFB is functional, but I'm curious what exactly this might mean and thought it might be something you should be aware of.
  2. When playing beamng I've noticed that occasionally the wheel will violently move to a 90 degree position and get "stuck". Usually after a large FFB event like a jump. If I turn very hard back to center it will "unstick" and seems to be OK for a while until the next time. This doesn't happen often, between 0 and 2 times every time I play the game.

I know that beamng is running through proton and there are a lot of variables there with all the compatibility layers but it would be interesting to hear if you've encountered this and if you have any ideas. Also I thought these might be related so I put them in the same issue. Let me know if I should open separate ones.

Thanks again!

Installation on pop os (ubuntu) 20.04

Never had a wheel, ordered T300RS GT today. I tried to install driver and got this:

make -C /lib/modules/5.8.0-7630-generic/build M=/home/fcf/hid-tmff2 modules_install
make[1]: Entering directory '/usr/src/linux-headers-5.8.0-7630-generic'
INSTALL /home/fcf/hid-tmff2/hid-tminit.ko
At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
    sign-file: certs/signing_key.pem: No such file or directory
    INSTALL /home/fcf/hid-tmff2/hid-tmt300rs.ko
    At main.c:160:
  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.8.0-7630-generic
    Warning: modules_install: missing 'System.map' file. Skipping depmod.
    make[1]: Leaving directory '/usr/src/linux-headers-5.8.0-7630-generic'

T300 installation

Hello,
I'm looking to get my T300 + th8 shifter working.
I am a beginner with Linux and I can't manage to do the installation correctly.
My t300 is recognized but no FFB!
I am under Ubuntu
Sorry for the beginner questions!
After entering the command to download the file, or should I enter "make" and then "sudo make install"?
The seized "DKMS" is it to be made in more?

Thanks for your help

Correctly identify/label T2PA pedals

Follow up to berarma/oversteer#73, sorry for the delay @Kimplul.

I managed to get a packed capture of the initial USB communication with Linux, I can see that it does include things like the vendor id so the connected pedals might be in there as well: t300rs_t2pa_linux.pcap

I'm having trouble capturing the equivalent communication with Windows on VirtualBox (never done this), I can connect the wheel to the VM but the wheel doesn't reinitialize, even though I can see all the buttons and axis functional on the driver software inside Windows.

I'm following this guide, I can't do step 4 which is probably what is causing the wheel to not reinitialize, but none of the USB interfaces show up on ifconfig -a like they do on wireshark.

No longer detected down to proton 5.13

Hello,

a few days ago my T300 stopped being available in games running in proton. This seems to suddenly effect all recent proton versions. 5.0-10 is the latest version that works as expected. Wine/Proton has a tool to test available controllers:
proton run control (of course using the same wine prefix and so on)
It looks like this:
image
In newer versions there is an additional middle panel titled "Connected (xinput)"
When the game is started "Thrustmaster T300 RS Racing Wheel" is moved into this panel. Testing the device under the "Test Joystick" tab indicates that no input is detected. The behaviour is reverted back to normal when the game stops.
Weird thing is that my pedals do not see this treatment (maybe it does not qualify as a controller without any buttons?)

Do you see similar effects? Is there something that could be implemented on the driver side to prevent this behaviour?

Other things I have tried:

  • Disable steam input
  • Delete steam configs and game prefix, reinstall steam
  • Look at the controllers in the wine prefix with https://generalarcade.com/gamepadtool/
    When the game is running "Thrustmaster T300 RS Racing Wheel" is no longer detected, instead a device titled "xinput" appears. No input is detected from this device.
  • Create a virtual device with uinput that mimics the T300 (though it does not feature buttons and I have not implemented FFB passthrough yet). Works fine similar to my pedals.

The same Proton versions worked before, it seems to be a combination of Proton+Steam+Runtime+Wizardry

Rumble effects do not work

Hello,

I've noticed that Dirt Rally 2 doesn't allow me to set "Tyre Slip" and "Engine" options in "vibration & feedback" menu. The steering effects work, but there is no vibration.

I've tried fftest on the device. It uploaded all effects without problem, but only "periodic sinusoidal" and "constant" do anything (they move the steering wheel), but nothing else (strong/weak rumble etc.) works. (There is no error, it's just nothing happens.)

Are these effects known to work or is this known issue?

Wheel firmware version: 34 (this is the one provided by the updater I could download from thrustmaster website, not sure if there is way to downgrade).

Race Room Racing Experience

Report in #21 about FFB in RRRE existing but being 'inverted'.

I couldn't get RRRE to launch, as it kept spewing SteamAPI_Init() failed at me with newest Proton GE, 7.0 and 6.3-8. I'll try to get the game to run, but for now this issue is mostly just an acknowledgement of the report.

How to set constant/periodic

Hi @Kimplul ,

more of a question than issue - please, how to set constant/periodic effects?
I can see in a code that it should be supported as there are methods t300rs_upload_periodic and t300rs_upload_constant, but not sure how to change them.
Oversteer does not even have those two in force feedback tab.

I tried F1 2019 yesterday and while wheel was recognized and worked in menus it behaved strangely in game - like pedals were constantly pressed or something :( Any hint?

Thanks.

peter

on kernel-update, dkms errors out and can only be installed after reboot

First of all: thank you for the driver! :D

The only issue i encounter is that the dkms modules can't be installed on kernel update because dkms is trying to install them in the old kernel:

[2021-09-21T00:12:44+0200] [ALPM-SCRIPTLET] ==> dkms install --no-depmod -m hid-tmff2 -v 0.8 -k 5.14.6-2-MANJARO
[2021-09-21T00:12:44+0200] [ALPM-SCRIPTLET] Error! Bad return status for module build on kernel: 5.14.6-2-MANJARO (x86_64)
[2021-09-21T00:12:44+0200] [ALPM-SCRIPTLET] Consult /var/lib/dkms/hid-tmff2/0.8/build/make.log for more information.
[2021-09-21T00:12:44+0200] [ALPM-SCRIPTLET] ==> Warning, `dkms install --no-depmod -m hid-tmff2 -v 0.8 -k 5.14.6-2-MANJARO' returned 10
[2021-09-21T00:12:44+0200] [ALPM-SCRIPTLET] ==> dkms install --no-depmod -m hid-tmff2 -v 0.8 -k 5.10.67-1-MANJARO
[2021-09-21T00:12:45+0200] [ALPM-SCRIPTLET] Error! Bad return status for module build on kernel: 5.10.67-1-MANJARO (x86_64)
[2021-09-21T00:12:45+0200] [ALPM-SCRIPTLET] Consult /var/lib/dkms/hid-tmff2/0.8/build/make.log for more information.
[2021-09-21T00:12:45+0200] [ALPM-SCRIPTLET] ==> Warning, `dkms install --no-depmod -m hid-tmff2 -v 0.8 -k 5.10.67-1-MANJARO' returned 10
[2021-09-21T00:12:45+0200] [ALPM-SCRIPTLET] ==> dkms install --no-depmod -m hid-xpadneo -v 0.9.1 -k 5.14.6-2-MANJARO

as i only encounter this behaviour with hid-tmff2, i would assume it's something in your dkms.conf (i have no experiencing in packaging dkms though). One thing that i notice when looking at the dkms.conf file and comparing it to xpadneo's .conf-file (which works as expected here) is the MAKE line:
MAKE[0]="make -C $kernel_source_dir M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build/src VERSION=$PACKAGE_VERSION modules"
maybe that has something to do with it?

tmff2 doesn't compile under vanilla kernel due to unknown function

kzfree(send_buf);

$ make
make -C /lib/modules/5.10.1-gentoo-r1/build M=/usr/src/hid-tmff2 modules
make[1]: Entering directory '/usr/src/linux-5.10.1-gentoo-r1'
  CC [M]  /usr/src/hid-tmff2/hid-tminit.o
/usr/src/hid-tmff2/hid-tminit.c: In function ‘tminit_interrupts’:
/usr/src/hid-tmff2/hid-tminit.c:44:5: error: implicit declaration of function ‘kzfree’; did you mean ‘kfree’? [-Werror=implicit-function-declaration]
   44 |     kzfree(send_buf);
      |     ^~~~~~
      |     kfree
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:279: /usr/src/hid-tmff2/hid-tminit.o] Error 1
make[1]: *** [Makefile:1805: /usr/src/hid-tmff2] Error 2
make[1]: Leaving directory '/usr/src/linux-5.10.1-gentoo-r1'
make: *** [Makefile:5: all] Error 2

I had to manually change that to kfree(send_buf); to make it compile cleanly.
gcc:
gcc version 9.3.0 (Gentoo 9.3.0-r2 p4)

Range file not found

I saw there is a closed issue about this, but it seems i have a different problem.

I tried to locate the range file but it just doesn't exist. It can't be found anywhere, not even in the paths given by dmesg.
Could it be that README is outdated? Maybe that file now has another name?

Exec format error on modprobe

hi @Kimplul ,

thanks for your driver!

I tried to install and use hid-tmff2 and everything went smoothly until last step:
peter@dell:~/Projects/hid-tmff2$ sudo modprobe hid_tmt300rs modprobe: ERROR: could not insert 'hid_tmt300rs': Exec format error
Please, any idea what is wrong?

Thanks a lot.

peter@dell:~/Projects/hid-tmff2$ uname -a
Linux dell 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
peter@dell:~/Projects/hid-tmff2$ ls /lib/modules/$(uname -r)/extra
hid-tminit.ko hid-tmt300rs.ko

can not install on Ubuntu 20.04.2 LTS x86_64

Can not install on(Regolith) OS: Ubuntu 20.04.2 LTS x86_64 / Kernel: 5.4.0-70-generic :
It should be my mistake but I can not find it.

sudo make install
make -C hid-tminit install
make[1] : on entre dans le répertoire « /home/coyote/hid-tmff2/hid-tminit »
make -C /lib/modules/5.4.0-70-generic/build M=/home/coyote/hid-tmff2/hid-tminit modules_install
make[2] : on entre dans le répertoire « /usr/src/linux-headers-5.4.0-70-generic »
INSTALL /home/coyote/hid-tmff2/hid-tminit/hid-tminit.ko
At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:72
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:79
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.4.0-70-generic
    Warning: modules_install: missing 'System.map' file. Skipping depmod.
    make[2] : on quitte le répertoire « /usr/src/linux-headers-5.4.0-70-generic »
    make[1] : on quitte le répertoire « /home/coyote/hid-tmff2/hid-tminit »
    make -C /lib/modules/5.4.0-70-generic/build M=/home/coyote/hid-tmff2 modules_install
    make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.4.0-70-generic »
    INSTALL /home/coyote/hid-tmff2/hid-tmt300rs.ko
    At main.c:160:
  • SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:72
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:79
    sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 5.4.0-70-generic
    Warning: modules_install: missing 'System.map' file. Skipping depmod.
    make[1] : on quitte le répertoire « /usr/src/linux-headers-5.4.0-70-generic »
    depmod -A

Thrustmaster TX Support

Hello,

I was looking for support for a Thrustmaster TX wheel. Mine is the Ferrari 458 wheel, but it is technically a Thrustmaster TX.

https://support.thrustmaster.com/en/product/txracingwheel-en/

From my understanding, this wheel is the same as the T300RS, but for Xbox/PC instead of PS4/PC. The drivers on Windows use the same files.

I was able to get the wheel working with tmdriv, but it did not have FFB.

I would love if there would be support for my wheel on Linux!

thanks!

Update

Hello! Have there been any global changes in the driver over the past six months to update it?

BUG: scheduling while atomic

First, thanks for your work on this. It's much appreciated.

I am on arch linux, kernel Linux 5.9.1-arch1-1 #1 SMP PREEMPT.

I haven't managed to get force feedback working. Attached is the dmesg log when plugging in the wheel. There are some errors:

[   12.988878] BUG: scheduling while atomic: systemd-udevd/757/0x00000002
...
[   12.988968] Preemption disabled at:
[   12.988974] [<0000000000000000>] 0x0
...
[   12.988986] Call Trace:
[   12.988999]  dump_stack+0x6b/0x88

After plugging in, the wheel does its calibration thing and after that force feedback works to keep the wheel centered.

Oversteer shows working axes and buttons, but the force feedback setting seem to have no effect. fftest reports OK for all effects, but nothing happens when actually running an effect.

It may be of significance that wheel's firmware has been last updated a couple of years ago. I haven't had access to Windows machine since, but I'll try to find one to update to recent firmware to see if that helps.

Otherwise, I 'd appreciate any pointers on what to try to make this work. Thanks.

dmesg.txt

Use pedals separately

Hi,

I got an G29 wheel base and wanted to use the T-LCM pedals separately via USB. Is there a way to do it?

DiRT Rally 2.0 and DiRT 4 with T248

DiRT Rally 2.0's FFB doesn't work ootb, but I got it working by adding the line

  <device id="{B696044F-0000-0000-0000-504944564944}" name="tm_t248" priority="100" type="wheel" />

into the games' local file input/devices/device_defines.xml and creating a file input/actionmaps/tm_t248.xml with the content

<?xml version="1.0" encoding="utf-8"?>
<action_map name="tm_t248" device_name="tm_t248" library="lib_direct_input" version="19">
  <axis_defaults>
    <axis name="di_z_axis_rotation">
      <action deadzone="0" name="driving.accelerate" />
      <action deadzone="0" name="menu.navigate.scroll.down" />
      <action deadzone="0" name="replay.forward" />
    </axis>
    <axis name="di_y_axis">
      <action deadzone="0" name="driving.brake" />
      <action deadzone="0" name="menu.navigate.scroll.up" />
      <action deadzone="0" name="replay.rewind" />
    </axis>
    <axis name="di_slider_0">
      <action deadzone="0.2" saturation="0.6" name="driving.clutch" />
    </axis>
    <axis name="di_x_axis">
      <action deadzone="0" name="driving.steer.left" />
      <action deadzone="0" name="driving.steer.right" />
      <action deadzone="0" name="replay.forward" />
      <action deadzone="0" name="replay.rewind" />
    </axis>
  </axis_defaults>
  <group name="driving">
    <action name="accelerate">
      <axis name="di_z_axis_rotation" type="negative" />
    </action>
    <action name="brake">
      <axis name="di_y_axis" type="negative" />
    </action>
    <action name="change_view">
      <axis name="di_button_3" />
    </action>
    <action name="clutch">
      <axis name="di_slider_0" type="negative" />
    </action>
    <action name="handbrake">
      <axis name="di_button_8" />
    </action>
    <action name="headlights">
      <axis name="di_button_4" />
    </action>
    <action name="pause">
      <axis name="di_button_5" />
    </action>
    <action name="reset_vehicle">
      <axis name="di_dpad_0_down" />
    </action>
    <action name="roadside_repair">
      <axis name="di_dpad_0_up" />
    </action>
    <action name="wipers">
      <axis name="di_button_2" />
    </action>
    <group name="gear">
      <group name="sequential">
        <action name="up">
          <axis name="di_button_1" />
        </action>
        <action name="down">
          <axis name="di_button_0" />
        </action>
      </group>
    </group>
    <group name="look">
      <action name="back">
        <axis name="di_button_9" />
      </action>
      <group name="shared">
        <action name="right">
          <axis name="di_dpad_0_right" />
        </action>
        <action name="left">
          <axis name="di_dpad_0_left" />
        </action>
      </group>
    </group>
    <group name="steer">
      <action name="left">
        <axis name="di_x_axis" type="lower" />
      </action>
      <action name="right">
        <axis name="di_x_axis" type="upper" />
      </action>
    </group>
  </group>
  <group name="menu">
    <action name="start">
      <axis name="di_button_5" />
    </action>
    <action name="option">
      <axis name="di_button_11" />
    </action>
    <group name="navigate">
      <action name="back">
        <axis name="di_button_8" />
      </action>
      <action name="down">
        <axis name="di_dpad_0_down" />
      </action>
      <action name="left">
        <axis name="di_dpad_0_left" />
      </action>
      <action name="right">
        <axis name="di_dpad_0_right" />
      </action>
      <action name="select">
        <axis name="di_button_4" />
      </action>
      <action name="up">
        <axis name="di_dpad_0_up" />
      </action>
      <action name="cancel_keybinding">
        <axis name="di_button_12" />
      </action>
      <group name="tab">
        <group name="primary">
          <action name="left">
            <axis name="di_button_0" />
          </action>
          <action name="right">
            <axis name="di_button_1" />
          </action>
        </group>
        <group name="secondary">
          <action name="left">
            <axis name="di_y_axis" type="negative" />
          </action>
          <action name="right">
            <axis name="di_z_axis_rotation" type="negative" />
          </action>
        </group>
      </group>
    </group>
    <group name="context">
      <action name="1">
        <axis name="di_button_9" />
      </action>
      <action name="2">
        <axis name="di_button_2" />
      </action>
    </group>
  </group>
  <group name="replay">
    <action name="exit">
      <axis name="di_button_8" />
    </action>
    <action name="forward">
      <axis name="di_x_axis" type="upper" />
      <axis name="di_z_axis_rotation" type="negative" />
    </action>
    <action name="rewind">
      <axis name="di_x_axis" type="lower" />
      <axis name="di_y_axis" type="negative" />
    </action>
    <action name="playback_step_up">
      <axis name="di_dpad_0_up" />
    </action>
    <action name="playback_step_down">
      <axis name="di_dpad_0_down" />
    </action>
    <action name="pause">
      <axis name="di_button_4" />
    </action>
    <group name="toggle">
      <action name="ui">
        <axis name="di_button_3" />
      </action>
    </group>
    <group name="camera">
      <action name="previous">
        <axis name="di_button_0" />
      </action>
      <action name="next">
        <axis name="di_button_1" />
      </action>
    </group>
  </group>
  <group name="network">
    <group name="toggle">
      <action name="voice">
        <axis name="di_button_11" />
      </action>
    </group>
  </group>
</action_map>

I suspect something similar should be possible with DiRT 4, but no success so far.

EDIT: The same procedure outlined above works with DiRT 4 FFB running under Wine, but for some reason you can't use the wheel buttons to navigate menus. Haven't been able to get the Linux native version to work, and it also seems to ignore the clutch pedal, so for now my recommendation is to run DiRT 4 through Proton.

Driver stopped working

First of all, thanks for this great driver, thanks to it i was able to enjoy my whell on linux for some time. Unfortunately it stopped working yesterday. I installed all my updates yesterday (5.15.16-1-MANJARO), and for sure I used the wheel same day, but i can't recall if it was before or after udpates.

All in all, now it comes up as 'Bus 001 Device 008: ID 044f:b65d ThrustMaster, Inc. Thrustmaster FFB Wheel', like when i didn't have drivers installed. I reinstalled oversteer (also removed ./home configs) and drivers. Then I tried to manually load drivers (your driver name is hid_tmff?) but after this whell comes up again as 'ThrustMaster, Inc. Thrustmaster FFB Wheel'

Output of lsmod:
hid_tminit 16384 0
hid_thrustmaster 16384 0
hid_tmff 16384 0
ff_memless 20480 1 hid_tmff
joydev 28672 1

It works with limited functionality and doesn't show up in Oversteer.

Driver installation:
[2022-01-26T17:51:07+0100] [ALPM] transaction started
[2022-01-26T17:51:07+0100] [ALPM] installed dkms (3.0.3-1)
[2022-01-26T17:51:07+0100] [ALPM] transaction completed
[2022-01-26T17:51:07+0100] [ALPM] running '30-systemd-update.hook'...
[2022-01-26T17:51:12+0100] [ALPM] transaction started
[2022-01-26T17:51:12+0100] [ALPM] installed hid-tmff2-dkms (0.8-1)
[2022-01-26T17:51:12+0100] [ALPM] transaction completed
[2022-01-26T17:51:12+0100] [ALPM] running '30-systemd-update.hook'...
[2022-01-26T17:51:12+0100] [ALPM] running '70-dkms-install.hook'...
[2022-01-26T17:51:12+0100] [ALPM-SCRIPTLET] ==> dkms install --no-depmod hid-tmff2/0.8 -k 5.14.21-2-MANJARO
[2022-01-26T17:51:15+0100] [ALPM-SCRIPTLET] ==> dkms install --no-depmod hid-tmff2/0.8 -k 5.15.16-1-MANJARO
[2022-01-26T17:51:19+0100] [ALPM-SCRIPTLET] ==> depmod 5.14.21-2-MANJARO
[2022-01-26T17:51:24+0100] [ALPM-SCRIPTLET] ==> depmod 5.15.16-1-MANJARO

try install on MANJARO Gnome edition

Trying to install with command

yay -S hid-tmff2-dkms

I get the messages at the end :

:: Procéder à l’installation ? [O/n]
(1/1) vérification des clés dans le trousseau [###############################################] 100%
(1/1) vérification de l’intégrité des paquets [###############################################] 100%
(1/1) chargement des fichiers des paquets [###############################################] 100%
(1/1) analyse des conflits entre fichiers [###############################################] 100%
(1/1) vérification de l’espace disque disponible [###############################################] 100%
:: Exécution des crochets de pré-transaction…
(1/1) Remove upgraded DKMS modules

==> Unable to remove module hid-tmff2/0.8 for kernel 5.12.19-1-MANJARO: Not found in dkms status output.

:: Traitement des changements du paquet…
(1/1) réinstallation hid-tmff2-dkms [###############################################] 100%
:: Exécution des crochets de post-transaction…
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules

==> Unable to install module hid-tmff2/0.8 for kernel 5.12.19-1-MANJARO: Missing kernel modules tree.

I don't success to solve this issue with message "Unable to ...."

Hard crash/reboot when disconnected

Pop_OS 21.04

Whenever I unplug the steering wheel my entire pc reboots after 10-20 seconds or longer. Any idea where I should start looking as to a possible cause?

Thanks, ACC is working perfectly :)

No FFB for Thrustmaster T248

Compatibility Report

  • Name of the game with compatibility issues: Automobilista 2 and Assetto Corsa Competizione
  • Steam AppID of the game: 1066890 and 805550

System Information

Symptoms

No force feedback in both games, even if the controller is recognized correctly. I can play the game, but there is a uniform resistance of the wheel, with no proper force feedback felt.

Reproduction

Launch any of the games in proton experimental or 6.3-8, and feel no feedback. I am using a Thrustmaster T248.

fftest fails to detect the device properly, oversteer also, and the ls usb of the dfevice is:
Bus 003 Device 002: ID 044f:b696 ThrustMaster, Inc. Thrustmaster Racing Wheel FFB

Please let me know how I can help to add support for it, I'm not tech savvy enough to implement it on my own and do a pull request :(

Ferrari F1 Wheel support

Hi, I've got a T300rs and the (old) Ferrari F1 Wheel attachment.
When using the normal PlayStation attachment, everything's working fine, but whenever I use my F1 Wheel, it's not getting picked up by the driver.
I'm willing to test/help with anything you need! :)

Invalid effect types

While playing Project CARS 2 on Steam (via Proton Tricks) the following spams the console (minus the initialization bit):

[62004.545268] input: Thrustmaster Thrustmaster T300RS Racing wheel as /devices/pci0000:00/0000:00:01.1/0000:01:00.0/usb1/1-5/1-5:1.0/0003:044F:B66E.000B/input/input36
[62004.545358] hid-generic 0003:044F:B66E.000B: input,hidraw9: USB HID v1.11 Joystick [Thrustmaster Thrustmaster T300RS Racing wheel] on usb-0000:01:00.0-5/input0
[62008.871269] input: Thrustmaster Thrustmaster T300RS Racing wheel as /devices/pci0000:00/0000:00:01.1/0000:01:00.0/usb1/1-5/1-5:1.0/0003:044F:B66E.000B/input/input37
[62008.871334] t300rs 0003:044F:B66E.000B: input,hidraw9: USB HID v1.11 Joystick [Thrustmaster Thrustmaster T300RS Racing wheel] on usb-0000:01:00.0-5/input0
[62008.871347] t300rs 0003:044F:B66E.000B: force feedback for T300RS
[62291.174625] t300rs 0003:044F:B66E.000B: invalid effect type: 2038
[62291.174628] t300rs 0003:044F:B66E.000B: failed uploading effects
[62322.996295] t300rs 0003:044F:B66E.000B: invalid effect type: 2038
[62322.996299] t300rs 0003:044F:B66E.000B: failed uploading effects
[62451.303549] t300rs 0003:044F:B66E.000B: invalid effect type: 2031
[62451.303552] t300rs 0003:044F:B66E.000B: failed uploading effects
[62451.561965] t300rs 0003:044F:B66E.000B: invalid effect type: 2031
[62451.561968] t300rs 0003:044F:B66E.000B: failed uploading effects

T300RS not recognized on Steam/KartKraft

Hi,

I'm using 5.14.18-1-MANJARO and have recently installed KartKraft on Steam. My system specs are:
Intel Core i7-10875H
graphics: NVIDIA TU106M [GeForce RTX 2060 Mobile]
nvidia driver: 495.44
RAM: 32GB

My wheel is a Thrustmaster T300RS (Playstation model) and is recognized as such when I do lsusb:

Bus 001 Device 015: ID 044f:b66e ThrustMaster, Inc. Thrustmaster T300RS Racing wheel

However, the wheel is only recognised as 'generic gamepad' in Steam and I cannot configure the wheel in KartKraft either.

I followed the instructions for installing the linux kernel module but I got errors:

[john@ja-clevo hid-tmff2]$ **make**
make -C hid-tminit KDIR="/lib/modules/5.14.18-1-MANJARO/build" 
make[1]: Entering directory '/home/john/GIT/hid-tmff2/hid-tminit'
make -C /lib/modules/5.14.18-1-MANJARO/build M=/home/john/GIT/hid-tmff2/hid-tminit modules
make[2]: Entering directory '/home/john/GIT/hid-tmff2/hid-tminit'
make[2]: *** /lib/modules/5.14.18-1-MANJARO/build: No such file or directory.  Stop.
make[2]: Leaving directory '/home/john/GIT/hid-tmff2/hid-tminit'
make[1]: *** [Makefile:5: all] Error 2
make[1]: Leaving directory '/home/john/GIT/hid-tmff2/hid-tminit'
make: *** [Makefile:17: hid-tminit] Error 2


[john@ja-clevo hid-tmff2]$ **sudo make install**
[sudo] password for john: 
make -C hid-tminit KDIR="/lib/modules/5.14.18-1-MANJARO/build" install
make[1]: Entering directory '/home/john/GIT/hid-tmff2/hid-tminit'
make -C /lib/modules/5.14.18-1-MANJARO/build M=/home/john/GIT/hid-tmff2/hid-tminit modules_install
make[2]: Entering directory '/home/john/GIT/hid-tmff2/hid-tminit'
make[2]: *** /lib/modules/5.14.18-1-MANJARO/build: No such file or directory.  Stop.
make[2]: Leaving directory '/home/john/GIT/hid-tmff2/hid-tminit'
make[1]: *** [Makefile:7: install] Error 2
make[1]: Leaving directory '/home/john/GIT/hid-tmff2/hid-tminit'
make: *** [Makefile:17: hid-tminit] Error 2

Under lib/modules, I don't have a a build directory:

john@ja-clevo hid-tmff2]$ **ls /lib/modules/5.14.18-1-MANJARO/**
extramodules/              modules.alias              modules.builtin.alias.bin  modules.dep                modules.order              modules.symbols.bin        kernel/                    modules.alias.bin          modules.builtin.bin        modules.dep.bin            modules.softdep            pkgbase                    kernelbase                 modules.builtin            modules.builtin.modinfo    modules.devname            modules.symbols            vmlinuz

I have updated the driver/firmware installed on the wheel to the latest. Firmware is 34.00 and Driver is 2.10.84.0.

Is there anything else I can do to try and install the drivers or to get the wheel to be correctly recognized?

Thanks,

No FFB archlinux

Hi,

First I would like to thanks you for your amazing job.

I installed your driver, my wheel is well recognized as T300rs, but I have no FFB, only autocenter.

When I try fftest, nothing happens, and in oversteer I only have force gain which is activated, nothing else.

Is there any solution to my problem?

Thanks in advance

large dead zone in the center

I got a very large dead zone in the center. I created a file /etc/udev/rules.d/99-joydev.rules. What value should be changed to --deadzone 0?

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.