Skip to content

Installation

mescon edited this page Jul 20, 2026 · 5 revisions

Installation

Getting the driver installed takes one command on most distributions. This page covers the packages, the from-source path, and atomic/immutable distros.

Will this work for me?

The driver supports the Logitech RS50 and the G PRO Racing Wheel (both the Xbox/PC and PS/PC versions). If you have a G920, G923 or G29, those keep working with the in-tree kernel driver; this project is for the direct-drive wheels.

The three packages

Every channel builds the same three packages from this one repository. Dependencies pull the rest automatically, so you normally install just one:

Package Contents Install it when
logitech-trueforce-dkms (akmod on Fedora) the kernel driver + udev rules you only want the wheel to work; games and sysfs are enough
logi-dd the terminal settings app, logi-ffb (DirectInput FFB proxy), logi-tf-sim (simulated TrueForce daemon), the TrueForce shim installer a headless or terminal-first setup; depends on the driver package
logi-dd-gui the desktop settings app, menu entry and icon a desktop; depends on logi-dd, so this one package installs everything

All channels are DKMS/akmod-based: the kernel module rebuilds automatically on kernel upgrades.

Distro packages

Distribution Install
Arch, CachyOS, Manjaro paru -S logi-dd-gui (AUR, or your AUR helper; pulls logi-dd and the driver. Headless box: paru -S logi-dd)
Debian, Ubuntu, Mint, Pop!_OS download the .debs from Releases, then sudo apt install ./logitech-trueforce-dkms_*.deb ./logi-dd_*.deb ./logi-dd-gui_*.deb (skip the gui one on a headless box)
Fedora, Nobara sudo dnf copr enable mescon/logitech-trueforce && sudo dnf install akmod-logitech-trueforce logi-dd-gui (headless: logi-dd instead of logi-dd-gui)
openSUSE OBS repo home:mescon, then sudo zypper install logi-dd-gui (headless: logi-dd)
Bazzite, Silverblue, Kinoite atomic; see the section below
Others build from source (below)

After installing, plug in the wheel and check dmesg for a line naming your wheel model (RS50 (native):, RS50 (G PRO compatibility mode):, or G PRO:). Add yourself to the input group once so settings and the tools work without root:

sudo usermod -aG input "$USER"    # then log out and back in

From source (any distro)

One command does it all: DKMS module, udev permissions, module load, and (if the SDK DLLs are staged, see Force Feedback in Games) the TrueForce shim into every Steam prefix:

git clone https://github.com/mescon/logitech-trueforce-linux-driver.git
cd logitech-trueforce-linux-driver
sudo ./tools/setup.sh

It is safe to run again after a git pull or a kernel update. It ends with a health check you can re-run alone at any time, as your normal user:

./tools/setup.sh doctor

Every line should say PASS; warnings tell you exactly what to run. Then replug the wheel's USB cable and check the kernel log:

sudo dmesg | grep -iE 'rs50|g pro'   # expect: "... Force feedback initialized"

Building the Rust apps (logi-dd, logi-dd-gui, logi-ffb, logi-tf-sim) from source needs Rust 1.88 or newer (1.92 for the GUI); on distributions whose packaged rustc is older, install the toolchain with rustup first. The prebuilt packages do not need Rust at all. See Building and Contributing for details.

Safety: this is a direct-drive wheel producing up to 8 Nm. Keep hands clear (or hold the rim) whenever the driver loads, the wheel replugs, or profiles switch; it can rotate under power.

Atomic / immutable distros (Bazzite, Silverblue, Kinoite)

On rpm-ostree systems DKMS does not apply. Instead you build a kmod RPM once in a toolbox (a mutable Fedora container sharing the host kernel) and layer it onto the base image. Verified on Fedora Silverblue 44.

Build the kmod in a toolbox:

toolbox create -y logitech-build
toolbox enter logitech-build

Inside the toolbox:

sudo dnf install -y rpm-build make gcc kmodtool kernel-rpm-macros \
    elfutils-libelf-devel git kmod "kernel-devel-$(uname -r)"

git clone https://github.com/mescon/logitech-trueforce-linux-driver.git
cd logitech-trueforce-linux-driver

VER=0.16.0    # match the upstream_ver line in the spec
mkdir -p ~/rpmbuild/SOURCES
git archive --prefix=logitech-trueforce-linux-driver-$VER/ \
    -o ~/rpmbuild/SOURCES/logitech-trueforce-kmod-$VER.tar.gz HEAD

rpmbuild -bb packaging/akmods/logitech-trueforce-kmod.spec \
    --define "kernels $(uname -r)"
exit

Layer the resulting RPMs onto the host and reboot (on the host, not in the toolbox):

sudo rpm-ostree install \
    ~/rpmbuild/RPMS/x86_64/kmod-logitech-trueforce-*.rpm \
    ~/rpmbuild/RPMS/noarch/logitech-trueforce-kmod-common-*.rpm
sudo systemctl reboot

After the reboot the module auto-loads when you plug the wheel in. Confirm with modinfo hid-logitech-dd.

Notes:

  • After a kernel update, rebuild. A static kmod does not rebuild itself the way DKMS does: repeat the toolbox build and re-run rpm-ostree install before rebooting into the new kernel.
  • Bazzite ships a custom uBlue kernel, so kernel-devel-$(uname -r) is not in the standard Fedora repos. Enable uBlue's akmods repo inside the toolbox first (sudo dnf copr enable ublue-os/akmods), then run the same steps.

Next steps

Clone this wiki locally