Thrustmaster TMX Force Feedback Wheel Linux drivers. Use python file in tmx folder to init the wheel
DISCLAMER This is not an official driver from Thrustmaster and is provided without any kind of warranty. Loading and using this driver is at your own risk; I don't take responsibility for kernel panics, devices bricked or any other kind of inconvenience
- All axis and buttons of the wheel are reported¹
¹: Except for the shifter buttons, because I don't have the PRO version. However if the hid report is correct they should work just fine
- You can set the range of the wheel from 270° to 1080°
- You can set the return force of the wheel from 0% to 100%
- Force feedback (partially)
- You can set the global force feedback scale from 0% to 100%
- Settable gain
FF_GAIN
- Periodic effects:
FF_SINE
,FF_SAW_UP
andFF_SAW_DOWN
- Constant effects:
FF_CONSTANT
- Condition effects:
FF_SPRING
- Damper effects:
FF_DAMPER
- Firmware version is reported
- Reading the settings from the wheel
- Force feedback (partially)
- Force feedback settings
- Firmware upgrades
- Handling of range changes from the wheel
When attached to your machine the wheel reports itself as Thrustmaster TMX GIP Racing Wheel
, in this mode not all functionalities
are available. In order to switch to Thrustmaster TMX Racing Wheel
we have to send the following USB control packets to the
wheel:
bRequestType | bRequest | wValue | wIndex | wLength |
---|---|---|---|---|
0x41 |
83 |
0x0001 |
0 |
0 |
0x41 |
83 |
0x0007 |
0 |
0 |
To do so we can use the hid-tminit
driver (See the install section, if you use the install script it should do it automatically) xor you can write a simple userspace applications like this one thanks to libusb
.
When the wheel receives the control packet it will reset and re-appear in the system as a TMX.
You can edit the settings of each wheel attached to the machine by writing the sysfs attributes usually found in the
subdirectories at /sys/devices
. You can see in dmesg
what path in /sys the input subsystem assigned to the wheel:
for example if you see input: Thrustmaster TMX steering wheel as /devices/pci0000:00/0000:00:14.0/usb1/1-1/input/input27
then the attributes will be located at sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/input/input27/device/
.
You can try to run install.sh
as root, the script should: copy the udev rules and other files in their appropriate positions, build and install the DKMS modules and add them to the list of modules to be loaded at boot.
To check if the modules are loaded check the output of lsmod | grep hid-tmx
and lsmod | grep hid-tminit
.
Copy the udev rules into /etc/udev/rules.d/
and reload the udev rules (or reboot)...
For a simple build: install all the required tools to compile (like build-essential
, linux-headers
etc...) and run
make
in the tmx and hid-tminit folders. Now you can load the .ko files with insmod
and unload them with rmmod