aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md208
1 files changed, 131 insertions, 77 deletions
diff --git a/README.md b/README.md
index bd06fc8..856ed27 100644
--- a/README.md
+++ b/README.md
@@ -1,114 +1,168 @@
-# Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX wheels
+# Linux kernel module for Thrustmaster T300RS, T248 and TX (experimental) wheels
-## Current state
-Playable. I've made some improvements to the dynamic updating of effects, and
-while still far for perfect, the experience is slowly getting better and better.
-Some drawbacks include possible effect inaccuracies in comparison with the Windows driver and in some
-games inconsistent pedal mapping. Meaning that all pedals should be detected in games, but may be mapped incorrectly.
+> **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.
-Anycase, **this version is usable in most force feedback games, supports
-rangesetting as well as gain and autocentering along with most force feedback effects.**
+![GitHub last commit (master)](https://img.shields.io/github/last-commit/Kimplul/hid-tmff2/master)
+![License](https://img.shields.io/github/license/Kimplul/hid-tmff2)
+![GitHub contributors](https://img.shields.io/github/contributors/Kimplul/hid-tmff2)
-### Help wanted with adding more Thrustmaster wheels
-Currently open requests for wheels:
+## Description
-+ [T500 RS](https://github.com/Kimplul/hid-tmff2/issues/18)
-+ [T818](https://github.com/Kimplul/hid-tmff2/issues/58)
-+ [T-GT II](https://github.com/Kimplul/hid-tmff2/issues/55)
-
-If you would like to help add a wheel to this driver, please have a look through the
-[wiki](https://github.com/Kimplul/hid-tmff2/wiki#how-to-add-in-support-for-a-new-t-series-wheel) for what might need to be done.
-If you have a wheel that's not on the list, but suspect it might fit into the driver, please feel free to open up an issue about it.
-
-## Small note
-
-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.
+A Linux kernel module for Thrustmaster T300RS, T248, and TX
+(experimental support) wheels.
-With that in mind,
+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.
## Installation
+You can either install this kernel module by using DKMS or
+manually building from source:
+
### Dependencies
-Kernel modules require kernel headers to be installed.
+Kernel modules require kernel headers to be installed. Use any
+one of the right command for your distribution:
-+ Debian-based: `apt install linux-headers-$(uname -r)`
-+ Arch-based: `pacman -S linux-headers`
-+ Fedora-based: `yum install kernel-devel kernel-headers`
+```shell
+sudo apt install linux-headers-$(uname -r) # Debian-based
+sudo pacman -S linux-headers # Arch-based
+sudo yum install kernel-devel kernel-headers # Fedora-based
+```
+#### Manual installation
++ Unplug wheel from computer
++ Run
+ ```shell
+ 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)*
-### Manual installation
+#### DKMS (Dynamic Kernel Module Support)
+ Unplug wheel from computer
-+ `git clone --recurse-submodules https://github.com/Kimplul/hid-tmff2.git`
-+ `make`
-+ `sudo make install`
++ Run
+ ```shell
+ git clone --recurse-submodules https://github.com/Kimplul/hid-tmff2.git
+ cd hid-tmff2
+ sudo ./dkms/dkms-install.sh
+ ```
+ Plug wheel back in
-+ reboot (not strictly necessary, but definitely recommended)
-
-Done!
++ Reboot *(Optional, yet Recommended)*
-> 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](https://www.kernel.org/doc/html/latest/admin-guide/module-signing.html?highlight=module%20signing).
+> **NOTE:** See [INTEGRATION](./docs/INTEGRATION.md)
+> for install instructions for other linux distributions.
-> Note: Thrustmaster TX wheels aren't supported by `hid-tminit` as of yet, meaning that TX wheels have to be initialized with `tmrd`. Please see https://github.com/Kimplul/hid-tmff2/issues/48.
+> **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](https://www.kernel.org/doc/html/latest/admin-guide/module-signing.html).
-### DKMS
+> **NOTE:** Thrustmaster TX wheels aren't supported by `hid-tminit` as of yet,
+> meaning that TX wheels have to be initialized with `tmdrv`. Please see
+> https://github.com/Kimplul/hid-tmff2/issues/48.
-+ Unplug wheel from computer
-+ `sudo ./dkms-install.sh`
-+ Plug wheel back in
-+ reboot (not strictly necessary, but definitely recommended)
+> **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.
-Done!
-> :warning: 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.
-> :warning: 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.
+## Contribute to project
-## Additional tidbits
+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](./docs/CONTRIBUTING.md)
+for what might need to be done.
-+ Reportedly some games running under Wine/Proton won't recognize wheels without the official Thrustmaster drivers installed within the prefix. See [#46](https://github.com/Kimplul/hid-tmff2/issues/46#issuecomment-1199080845). For installation instructions, see [wiki](https://github.com/Kimplul/hid-tmff2/wiki)
+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:
- 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.
++ [T500 RS](https://github.com/Kimplul/hid-tmff2/issues/18)
++ [T818](https://github.com/Kimplul/hid-tmff2/issues/58)
++ [T-GT II](https://github.com/Kimplul/hid-tmff2/issues/55)
++ [T128P](https://github.com/Kimplul/hid-tmff2/issues/67)
++ [TS-PC](https://github.com/Kimplul/hid-tmff2/issues/65)
+
+## FAQ (Frequently Asked Questions)
++ Reportedly some games running under Wine/Proton won't recognize wheels without
+ the official Thrustmaster drivers installed within the prefix. See
+ [#46](https://github.com/Kimplul/hid-tmff2/issues/46#issuecomment-1199080845).
+ For installation instructions, see
+ [DRIVER](./docs/DRIVER.md).
+
+ 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.con
- ```
++ Until the updated `hid-tminit` is
+ [upstreamed](https://github.com/scarburato/hid-tminit), you might want to
+ blacklist the kernel module `hid-thrustmaster`. Do this with
+ ```shell
+ 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.
++ 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.
++ 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.
-+ TX support is considered experimental, please see issues (especially https://github.com/Kimplul/hid-tmff2/issues/48) and open new ones
- if you encounter issues.
++ 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.
-+ To change gain, autocentering etc. use [Oversteer](https://github.com/berarma/oversteer).
++ TX support is considered experimental, please see issues
+ (especially https://github.com/Kimplul/hid-tmff2/issues/48)
+ and open new ones if you encounter any problems.
+
++ To change gain, autocentering etc. use
+ [Oversteer](https://github.com/berarma/oversteer).
+ If a wheel has a deadzone in games, you can try setting up a udev rule:
-
- `/etc/udev/rules.d/99-joydev.rules`
+ `/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 |
- ```
- 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 |
+ This should make sure that the wheel behaves like you'd want from a wheel.
- 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](https://github.com/Kimplul/hid-tmff2/issues/11) and
+ [#10](https://github.com/Kimplul/hid-tmff2/issues/10)).
-+ There have been reports that some games work better with a different timer period (see [#11](https://github.com/Kimplul/hid-tmff2/issues/11) and [#10](https://github.com/Kimplul/hid-tmff2/issues/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.
+ 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.