Arch based distrbution

The scripts I’ll provide assume you’re using Arch Linux. I’ll provide repology links if you wish to find the package names for your preferred distribution.

Getting it working

As of writing this the kernel (6.15.7) sees the Thrustmaster TMX as a “Generic X-Box pad” which can’t provide the steering input or all 3 pedals.

[57680.252850] usb 1-1.1: new full-speed USB device number 12 using xhci_hcd
...
[57680.344383] input: Generic X-Box pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input43

To get the wheel and pedals working correctly you’ll need a driver which can initialize the hardware. You have the choice of tmdrv (user space) or TMX-Driver (kernel space).

I opted for tmdrv to keep module loading to a minimum. It requires the dependencies python-libusb1 and joyutils / joystick (provides jscal).

sudo pacman -S python-libusb1 joyutils
git clone https://github.com/her001/tmdrv
cd tmdrv
# with the wheel plugged in
sudo ./tmdrv.py -d thrustmaster_tmx

This should get your wheel and all pedals working as it’s correctly initialized as a Thrustmaster wheel.

[59438.711643] usb 1-1.1: new full-speed USB device number 18 using xhci_hcd
...
[59438.806446] hid-thrustmaster 0003:044F:B65D.000C: input,hidraw5: USB HID v1.00 Gamepad [Thrustmaster Thrustmaster FFB Wheel] on usb-0000:00:14.0-1.1/input0
[59438.825494] hid-thrustmaster 0003:044F:B65D.000C: URB to get model id failed with error -32

However the kernel opts to use hid_thrusmaster which lacks force feedback. To use force feedback you’ll need to install and load t150_driver . It comes with an install.sh script but I opted to use someones convenient AUR package.

yay -S t150_driver-dkms-git
sudo modprobe hid-t150

Now you may re-initialize the wheel which is now force feedback capable. Your dmesg should look something like this.

[59909.881362] usb 1-1.1: new full-speed USB device number 20 using xhci_hcd
...
[59909.975259] input: Generic X-Box pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input51
# run tmdrv.py
[59923.298323] usb 1-1.1: USB disconnect, device number 20
[59923.934416] usb 1-1.1: new full-speed USB device number 21 using xhci_hcd
...
[59924.066332] usb 1-1.1: USB disconnect, device number 21
[59924.696427] usb 1-1.1: new full-speed USB device number 22 using xhci_hcd
...
[59924.789286] input: Thrustmaster Thrustmaster TMX Racing Wheel as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:044F:B67F.000F/input/input52
[59924.789445] hid-t150 0003:044F:B67F.000F: input,hidraw5: USB HID v1.11 Joystick [Thrustmaster Thrustmaster TMX Racing Wheel] on usb-0000:00:14.0-1.1/input0
[59924.805612] hid-t150 0003:044F:B67F.000F: Setup completed! Firmware version is 17

Parameter Tuning

t150_driver provides tuning for various parameters such as the wheels range in degrees or force feedback strength. See the relevant section of it’s README for details.

You may also be interested in oversteer (repology) which is a “Steering Wheel Manager for GNU/Linux”. It provides a GUI for changing these parameters, remapping functionality, input reading, and more.