gotzl / hid-fanatecff

Driver to support FANATEC input devices, in particular ForceFeedback of various wheel-bases
GNU General Public License v2.0
171 stars 21 forks source link
driver fanatec fanatec-csl-dd fanatec-csl-elite fanatec-dd-pro forcefeedback podium-wheel-base steering-wheel

Linux kernel driver that aims to add support for FANATEC devices

Known devices

The Wheel Base should be set to 'PC mode' for the driver to be selected (CSL Elite and CSL DD: red LED)

Installation

Dependencies

This is a out-of-tree kernel module. Building it depends on

Examples of installing kernel-headers for some distros:
Ubuntu: sudo apt install linux-headers-generic or sudo apt install linux-headers-$(uname -r)
Fedora: sudo dnf install kernel-devel
Arch: pacman -S linux-headers

Compile and install the driver

make
sudo make install

Reload the new udev rules, depending on the Linux distribution, without rebooting:

sudo udevadm control --reload-rules && sudo udevadm trigger

This installs the kernel module hid-fanatec.ko in the hid dir of the running kernel and puts fanatec.rules into /etc/udev/rules.d. These rules allows access to the device for games group and sets deadzone/fuzz to 0 so that any wheel input is detected immediately. The driver should get loaded automatically when the wheel is plugged.

Packaging

If you don't want to compile and install manually, following is a list of known packaged distributions.

System Package
AUR hid-fanatecff-dkms

Status

General

Support for a bunch of effects, mostly copy-pasted from new-lg4ff.
Currently, FF_FRICTION and FF_INERTIA effects have experimental support in this driver.

Note: With Proton 7/8, in some games the wheel is not detected properly when starting it for the first time (ie, when a new Proton-prefix is created). The current workaround is to first start the game with Proton 6, and then switch to a later one. (See also #67)

FFB in specific Games

Games that are expected to work (tested by me and others more or less regularly):

Games that don't work properly:

( input devices can get mixed-up in ACC; best have only the wheel-base connected and always use the same USB-slot)
( uses experimental FF_FRICTION effect)
(
unsure if all effects are present)

Device specific

Advanced functions of wheels/bases are available via sysfs. Generally, these files should be writable by users in the games group. Base sysfs path:

/sys/module/hid_fanatec/drivers/hid:fanatec/0003:0EB7:<PID>.*/

Common

CSL Elite Base

ClubSport Forumla1 wheel

CSL Elite pedals

ClubSport Pedals V3

To access advanced functions from user space please see the hid-fanatecff-tools project which also aims to support LED/Display access from games.

Planned

Contact

If you have an issue, feature request or a general question, feel free to open a ticket on GitHub.

Disclaimer

I am not associated with Endor AG/Fanatec. I take absolutely no responsibility for any malfunction of this driver and their consequences. If your device breaks or your hands get ripped off I'm sorry, though. ;)