Skip to content

Installation

mescon edited this page Jul 21, 2026 · 5 revisions

Installation

Getting the driver installed takes one command on most distributions. Most people want the desktop app, which installs everything in one go; if you prefer scripts or run a headless box, there is a command-line path too.

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.

Which do I want?

  • Most people: the desktop app. Install logi-dd-gui and you get everything (the driver, the settings app, and the game helpers) from one package. You do the rest from inside the app: no terminal beyond the single install command and one one-time permission step. Start here.
  • Prefer the command line, or running headless? Skip to Manual / command-line install for the from-source script, the individual packages and the health check.

Install (recommended): the desktop app

Install the logi-dd-gui package for your distribution. It pulls in the driver and the helpers automatically, so this one command installs the whole stack and adds a menu entry:

Distribution Install
Arch, CachyOS, Manjaro paru -S logi-dd-gui (AUR, or your AUR helper)
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
Fedora, Nobara sudo dnf copr enable mescon/logitech-trueforce && sudo dnf install akmod-logitech-trueforce logi-dd-gui
openSUSE OBS repo home:mescon, then sudo zypper install logi-dd-gui
Bazzite, Silverblue, Kinoite atomic; see the atomic section below
Others build from source (in the manual section below)

The one required terminal command

Settings and the tools write to the wheel through the input group, so add yourself to it once. This is the only terminal step the desktop app needs, and it is a one-time thing:

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

After the log out and back in, plug in the wheel and open logi-dd-gui from your applications menu. Everything else lives in the app:

  • Setup page: force feedback, TrueForce and per-game setup (see below).
  • The other pages: rotation range, strength, LIGHTSYNC LEDs, response curves, profiles and a live input tester.

See Configuring the Wheel for a tour of the app, and Force Feedback in Games for what force feedback and TrueForce are and how to set up each game.

To confirm the driver loaded, plug in the wheel; the app's Info / Testing page names your wheel model. (If you ever want to check from a terminal, sudo dmesg | grep -iE 'rs50|g pro' shows the same thing.)

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.

Manual / command-line install

Everything below is for people who prefer scripts, want the individual packages, or run a headless / SSH-only box with no desktop. It installs the same software; you just drive it from the terminal app and sysfs instead of the desktop app.

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 (force feedback for DirectInput games), logi-tf-sim (the simulated-TrueForce background helper), and the tool that installs Logitech's TrueForce files into your games 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 (headless / terminal-only)

For a box with no desktop, install logi-dd instead of logi-dd-gui; it carries the terminal app and every helper:

Distribution Install
Arch, CachyOS, Manjaro paru -S logi-dd (pulls the driver too)
Debian, Ubuntu, Mint, Pop!_OS download the .debs from Releases, then sudo apt install ./logitech-trueforce-dkms_*.deb ./logi-dd_*.deb
Fedora, Nobara sudo dnf copr enable mescon/logitech-trueforce && sudo dnf install akmod-logitech-trueforce logi-dd
openSUSE OBS repo home:mescon, then sudo zypper install logi-dd

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 Logitech's TrueForce files are in place, see Force Feedback in Games) it adds TrueForce support to every Steam game's Proton folder:

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