Hi, I'm Rick 👋

Fixer - Engineer - Coder

Rick Timmis

Hi, I'm Rick 👋

Fixer - Engineer - Coder

Enhancing Your Racing Experience on Linux: Introducing new-lg4ff and Oversteer

linux-racing-wheel.jpg

Introduction

If you’re a racing enthusiast using Linux, you know the struggle of getting your steering wheel to perform at its best. Logitech wheels like the G29, G27, or Driving Force GT are fantastic hardware, but the default kernel drivers often fall short on force feedback (FFB) and customization options. That’s where new-lg4ff and Oversteer come in—a powerful duo developed by the talented Bernardo Arnau (berarma) to supercharge your setup on distributions like Kubuntu or Ubuntu.

new-lg4ff is an enhanced kernel module that replaces the standard HID Logitech driver, unlocking advanced force feedback features for compatible Logitech wheels. Paired with Oversteer, a user-friendly GUI application, you get fine-tuned control over wheel settings, profiles, and more. Whether you’re drifting in Assetto Corsa or tearing up tracks in DiRT Rally, these tools make your Linux gaming rig feel console-level immersive.

In this post, we’ll dive into the features, guide you through installation, explain how to use them, and point you to further resources. Let’s gear up!

Features

new-lg4ff Kernel Module

Oversteer Application

Together, these tools transform your steering wheel from a basic input device into a high-fidelity simulator peripheral, all on open-source Linux.

Installation Guide

Installing new-lg4ff and Oversteer on Kubuntu 24.04 LTS (or similar Ubuntu derivatives) is straightforward. We’ll use the DKMS (Dynammic Kernel Module Support) method for the kernel module to handle kernel upgrades gracefully, and Flatpak for Oversteer to avoid dependency issues.

Prerequisites:

Run the following bash script as root (e.g., sudo bash install_script.sh). This script handles everything: installing dependencies, cloning the repo, setting up DKMS, installing Oversteer via Flatpak, and applying necessary udev rules.

How to use this script

#!/bin/bash

# Script to install new-lg4ff kernel module + Oversteer on Kubuntu/Ubuntu 24.04 LTS
# Sources:
# - new-lg4ff: https://github.com/berarma/new-lg4ff
# - Oversteer: https://github.com/berarma/oversteer (Flatpak recommended)
# Run with: sudo bash this_script.sh

set -e  # Exit on any error

echo "Updating package list..."
apt update

echo "Installing required base packages: dkms, git, linux-headers, flatpak..."
apt install -y --allow-downgrades dkms git linux-headers-$(uname -r) flatpak

echo "Adding Flathub repository (if not already added)..."
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

echo "=== Installing new-lg4ff kernel module via DKMS ==="
if [ -d "/usr/src/new-lg4ff" ]; then
    echo "Removing existing /usr/src/new-lg4ff for a clean install..."
    rm -rf /usr/src/new-lg4ff
fi
git clone https://github.com/berarma/new-lg4ff /usr/src/new-lg4ff
dkms install /usr/src/new-lg4ff

echo "Updating initramfs..."
update-initramfs -u

echo "=== Installing Oversteer via Flatpak ==="
flatpak install -y flathub io.github.berarma.Oversteer

echo "=== Configuring udev permission rules for steering wheels ==="
echo "Oversteer requires special permissions for full access to your wheel."
echo "These rules grant user-level access without needing root."
echo ""
echo "Select your wheel brand (only one option allowed):"
echo "1) Logitech"
echo "2) Fanatec"
echo "3) Thrustmaster"
echo "4) None (skip - not recommended if using Oversteer)"
read -p "Enter your choice (1-4): " choice

case $choice in
    1)
        echo "Installing Logitech wheel permissions..."
        sudo wget -q https://github.com/berarma/oversteer/raw/master/data/udev/99-logitech-wheel-perms.rules -O /usr/lib/udev/rules.d/99-logitech-wheel-perms.rules
        rules_installed=true
        ;;
    2)
        echo "Installing Fanatec wheel permissions..."
        sudo wget -q https://github.com/berarma/oversteer/raw/master/data/udev/99-fanatec-wheel-perms.rules -O /usr/lib/udev/rules.d/99-fanatec-wheel-perms.rules
        rules_installed=true
        ;;
    3)
        echo "Installing Thrustmaster wheel permissions..."
        sudo wget -q https://github.com/berarma/oversteer/raw/master/data/udev/99-thrustmaster-wheel-perms.rules -O /usr/lib/udev/rules.d/99-thrustmaster-wheel-perms.rules
        rules_installed=true
        ;;
    4)
        echo "Skipping udev rules installation."
        rules_installed=false
        ;;
    *)
        echo "Invalid choice. Defaulting to Logitech (most common for new-lg4ff users)."
        sudo wget -q https://github.com/berarma/oversteer/raw/master/data/udev/99-logitech-wheel-perms.rules -O /usr/lib/udev/rules.d/99-logitech-wheel-perms.rules
        rules_installed=true
        ;;
esac

# Reload udev only if rules were installed
if [ "$rules_installed" = true ]; then
    echo "Reloading udev rules..."
    sudo udevadm control --reload-rules && sudo udevadm trigger
    echo "Udev rules applied. You may need to reconnect your wheel or reboot."
else
    echo "No udev rules installed."
fi


echo "Installation complete!"
echo ""
echo "IMPORTANT: Reboot your system now for all changes to take effect."
echo "After reboot:"
echo "  - Run Oversteer with: flatpak run io.github.berarma.Oversteer"
echo "  - Or search for 'Oversteer' in your application menu."
echo "  - Connect your wheel and test in Oversteer (it should detect it with full permissions)."
echo ""
echo "Verify new-lg4ff module: dmesg | grep logitech"
echo "You should see: 'Force feedback support for Logitech Gaming Wheels'"
echo ""
echo "Uninstall notes:"
echo "  - Remove new-lg4ff: sudo dkms remove new-lg4ff/$(grep '^PACKAGE_VERSION=' /usr/src/new-lg4ff/dkms.conf | cut -d= -f2 | tr -d '"') --all && sudo rm -rf /usr/src/new-lg4ff"
echo "  - Remove Oversteer: flatpak uninstall io.github.berarma.Oversteer"
echo "  - Remove udev rules: sudo rm /usr/lib/udev/rules.d/99-*-wheel-perms.rules"

After running the script, reboot your system. Post-reboot, verify the module with dmesg | grep logitech—you should see messages about force feedback support.

If you encounter issues, check the GitHub repos for troubleshooting (linked below).

How to Use

Once installed, getting started is simple:

  1. Launch Oversteer:

    • Open it via the application menu (search for “Oversteer”) or from the terminal: flatpak run io.github.berarma.Oversteer.
    • Connect your wheel—it should be detected automatically.
  2. Basic Configuration:

    • Force Feedback Gain: Slide to increase/decrease FFB intensity (e.g., 150% for stronger effects).
    • Rotation Range: Set your wheel’s max rotation (useful for games without native support).
    • Combine Pedals: Merge clutch/brake/accelerator inputs if your setup requires it.
  3. Profiles:

    • Create a new profile for a game, tweak settings, and save. Switch profiles on the fly.
  4. Overlay:

    • Enable the on-screen overlay to monitor inputs in real-time while gaming.
  5. Testing:

    • Use Oversteer’s built-in test tab to feel FFB effects.
    • Jump into a game—new-lg4ff ensures the enhanced driver is active.

For advanced tweaks, explore Oversteer’s settings menu. Remember, changes apply immediately, but a game restart might be needed for full effect.

Additional Documentation

For more details, in-depth troubleshooting, or contributing to the projects, check out the official repositories:

These tools are actively maintained, so keep an eye on updates. If you’re into sim racing on Linux, joining communities like r/linux_gaming on Reddit can provide more tips.

Happy racing—may your laps be fast and your feedback forceful! 🚀