Logitech RPM Indicator est une application graphique qui allume la
barre de LEDs RPM (shift-light) des volants Logitech en fonction
de la télémetry des jeux de course. Elle écoute en local le flux UDP /
IPC du jeu actif et pilote les LEDs via hidraw.
Le packaging GLF-OS est basé sur le projet upstream
IvanVojtko/logitech-linux-rpm-led
(v1.3.0, GPL-3.0).
Remarque
L'application est incluse par défaut dans les éditions :
standard,studioetstudio-pro. Elle n'est PAS installée sur
minietstreamers(qui n'embarquent pas le pack gaming).
Lancer l'application
L'application est accessible depuis :
- le menu Applications → Jeux → Logitech RPM Indicator
- ou via le terminal :
logitech-rpm-indicator
Fonctionnalités
- LED shift-light sur volants Logitech sous Linux
- Interface simple : sélection du jeu → bouton Start
- Compatible avec plusieurs protocoles de télémetry
- Auto-reconnexion en cas d'interruption (relance du jeu / changement de session)
- Mode auto-détection : bascule automatique du profil quand un jeu compatible démarre via Steam
- Persistence : la dernière sélection est conservée entre lancements (option)
- Seuils des LEDs (shift-light RPM thresholds) configurables et persistés dans
~/.config/logitech-rpm-indicator/settings.ini - Assetto Corsa : la valeur Max RPM par voiture est mémorisée
Jeux supportés
| Jeu | Méthode | Port UDP |
|---|---|---|
| Forza Horizon 5 / 6 | UDP "Data Output" | 5300 |
| F1 2019 / 2020 / 22 / 23 | UDP telemetry | 20777 |
| DiRT Rally 2.0 | UDP telemetry (édit XML) | 20777 |
| Assetto Corsa | UDP remote telemetry | (par défaut) |
| Automobilista 2 / Project CARS / PC2 | SMS Madness Engine UDP | (par défaut) |
| Euro Truck Simulator 2 | Plugin SCS SDK (voir section dédiée) | 5607 |
Utilisation
- Branche ton volant Logitech (filaire ou via dongle 2.4 GHz)
- Lance Logitech RPM Indicator
- (Optionnel) Active Auto-detect running game pour bascule automatique
- (Optionnel) Active Remember last selected game pour restaurer la sélection au prochain démarrage
- (Optionnel) Ajuste les Shift LEDs (%) pour calibrer la zone d'allumage
- Sélectionne le jeu dans la liste déroulante puis clique Start
- Lance le jeu et assure-toi que la sortie télémetry est activée (voir ci-dessous)
Configuration jeu par jeu
Forza Horizon 5 / 6
- Démarre Forza Horizon 5 ou Forza Horizon 6
- Va dans Paramètres → HUD
- Active Data Output
- Renseigne :
- IP :
127.0.0.1 - Port :
5300
- IP :
F1 2019 / 2020 / 22 / 23
- Game Options → Settings → Telemetry Settings
- Renseigne :
- UDP Telemetry :
On - UDP Broadcast Mode :
Off - UDP IP Address :
127.0.0.1 - Port :
20777
- UDP Telemetry :
DiRT Rally 2.0
Le jeu n'a pas d'interface de config UDP : il faut éditer le fichier XML
dans le préfixe Proton. Sur GLF-OS, ce fichier est sous Steam :
~/.local/share/Steam/steamapps/compatdata/690790/pfx/drive_c/users/steamuser/My Documents/My Games/DiRT Rally 2.0/hardwaresettings/hardware_settings_config.xml
(Le chemin compatdata/690790 peut différer selon ta lib Steam.)
Modifie les valeurs suivantes :
udp enabled="true"extra_data="3"- IP :
127.0.0.1 - Port :
20777
SMS Madness Engine (AMS2 / PC1 / PC2)
- Options → System
- Renseigne :
- Shared Memory :
No - UDP Frequency :
4(LED plus réactif = chiffre plus bas, mais CPU+) - UDP Protocol Version :
Project CARS 1
- Shared Memory :
Assetto Corsa
- Active la télémetry UDP dans les paramètres du jeu
- Dans l'app, sélectionne Assetto Corsa
- Renseigne Assetto Max RPM correspondant à ta voiture courante (la valeur est mémorisée par voiture)
Euro Truck Simulator 2
ETS2 ne publie pas la télémetry UDP nativement — il faut un plugin SCS SDK
côté jeu qui forwarde les données vers l'app sur 127.0.0.1:5607.
Sur GLF-OS, le plugin source est livré sous :
/run/current-system/sw/share/doc/logitech-rpm-indicator/scs-plugin/
Pour l'installer côté ETS2 natif Linux (jeu directement Linux, rare aujourd'hui) :
# 1) Récupérer le SDK SCS
curl -L https://download.eurotrucksimulator2.com/scs_sdk_1_14.zip -o /tmp/scs_sdk_1_14.zip
unzip /tmp/scs_sdk_1_14.zip -d /tmp/scs_sdk_1_14
# 2) Compiler le plugin Linux
cp -r /run/current-system/sw/share/doc/logitech-rpm-indicator/scs-plugin/ /tmp/
make -C /tmp/scs-plugin linux SCS_SDK_DIR=/tmp/scs_sdk_1_14
# 3) Copier dans le répertoire plugins ETS2 (créer le dir s'il manque)
mkdir -p ~/.local/share/Steam/steamapps/common/Euro\ Truck\ Simulator\ 2/bin/linux_x64/plugins/
cp /tmp/scs-plugin/logitech_rpm_telemetry.so \
~/.local/share/Steam/steamapps/common/Euro\ Truck\ Simulator\ 2/bin/linux_x64/plugins/
Pour ETS2 sous Proton (le cas standard), il faut la version DLL Windows.
Comme la compilation cross nécessite MinGW-w64, le plus simple est d'utiliser
le .dll pré-buildé inclus dans la release upstream :
# Télécharger la release upstream
curl -LO https://github.com/IvanVojtko/logitech-linux-rpm-led/archive/refs/tags/v1.3.0.tar.gz
tar -xzf v1.3.0.tar.gz
# Le .dll précompilé est sous scs-plugin/ après build CI
# (alternative : compiler localement via `nix shell nixpkgs#pkgsCross.mingwW64.stdenv -c make ...`)
mkdir -p ~/.local/share/Steam/steamapps/common/Euro\ Truck\ Simulator\ 2/bin/win_x64/plugins/
cp scs-plugin/logitech_rpm_telemetry.dll \
~/.local/share/Steam/steamapps/common/Euro\ Truck\ Simulator\ 2/bin/win_x64/plugins/
Puis dans l'app : sélectionne Euro Truck Simulator 2 dans la liste → Start.
Lance ETS2 normalement.
Attention
Le bouton "Install ETS2 Telemetry Plugin" dans l'app ne fonctionne PAS
sur GLF-OS : il tente de copier depuis un chemin écrivable, alors que
notre packaging Nix met les sources sous/nix/store(read-only). Suis
la procédure manuelle ci-dessus.
Troubleshooting (adapté GLF-OS / NixOS)
Rien ne se passe, les LEDs ne réagissent pas
- Vérifie que le bon jeu est sélectionné dans l'app et que tu as cliqué Start
- Vérifie que la télémetry est activée dans le jeu avec les bons IP/port
- Vérifie qu'aucun pare-feu local ne bloque l'UDP loopback. Sur GLF-OS,
le pare-feu (via Nix Firewall Manager) autorise
par défaut le trafic loopback (127.0.0.1), donc ce n'est normalement
pas un souci. Si tu as fait des restrictions custom, regarde tes
règleslo.
Le volant n'apparaît pas dans la liste
- Branche le volant et allume-le avant de lancer l'app.
- Vérifie qu'il est détecté par le noyau :
lsusb | grep -i logitech
ls -la /dev/input/by-id/ | grep -i logitech
- Sur GLF-OS, l'utilisateur
nobodyzest automatiquement dans le groupe
input(qui possède/dev/hidraw*). Vérifie :
groups | tr ' ' '\n' | grep input # doit retourner "input"
ls -l /dev/hidraw* # group "input" sur les nodes
Si input est absent de tes groupes (cas d'un compte créé hors
provisionnement GLF-OS), ré-ajoute-le côté customConfig :
users.users.<ton-user>.extraGroups = [ "input" ];
puis glf-update.
PermissionError à l'accès au volant
Sur GLF-OS, le groupe input suffit normalement. Si tu rencontres
quand même un PermissionError, ajoute une règle udev custom via
le module NixOS plutôt que d'éditer /etc/udev/rules.d/ (qui est
volatile sur NixOS : les fichiers manuels sont écrasés au rebuild).
Crée un fichier /etc/nixos/customConfig/logitech-wheels-udev.nix :
{ ... }:
{
# Permissions hidraw permissives pour les volants Logitech
# (vendor 046d). À durcir avec GROUP="input" + mode 0660 si besoin.
services.udev.extraRules = ''
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="046d", MODE="0660", GROUP="input", TAG+="uaccess"
'';
}
Puis ajoute l'import dans ton /etc/nixos/customConfig/default.nix :
imports = [
./firewall.nix
./logitech-wheels-udev.nix # <-- ajouter
];
Et reconstruis : glf-update.
Remarque
Comparé au workaround upstream (un99-*.rulesmanuel dans
/etc/udev/rules.d/avecMODE="0666"), la version NixOS ci-dessus
est déclarative (persistée par ta config), plus restrictive
(0660+ groupinputau lieu de0666world-writable) et utilise
le taguaccessde systemd-logind pour donner l'accès uniquement à
la session graphique active.
LEDs réagissent mais en retard ou saccadées
- Réduit le UDP Frequency dans le jeu (chiffre plus bas = plus réactif, mais consomme +CPU)
- Ferme les apps lourdes en fond
- Si tu joues sous Proton, vérifie que le HUD overlay n'introduit pas de latence
(désactive temporairement MangoHud / Goverlay)
L'app crash au démarrage avec Namespace Gtk not available
Bug connu du packaging — corrigé en v1.3.0 (postFixup wrapper). Si tu
le vois encore : glf-update pour rapatrier la dernière version, ou
ouvre un ticket sur framagit.
Vérifier que ton volant est bien géré par le kernel
GLF-OS embarque hid-tmff2 et new-lg4ff pour le support Force
Feedback Logitech. Vérifie que le module kernel est chargé :
lsmod | grep -E 'lg4ff|hid_logitech'
Tu devrais voir hid_logitech_hidpp, new_lg4ff ou équivalent.
Configuration
Les paramètres utilisateur (seuils, dernier jeu sélectionné, Max RPM
Assetto par voiture) sont stockés sous :
~/.config/logitech-rpm-indicator/settings.ini
Tu peux le sauvegarder/restaurer pour migrer ta config sur une autre
machine GLF-OS.
Voir aussi
-
Solaar : gestionnaire d'appareils Logitech Unifying / Bolt
(souris MX, claviers MX Keys, Lift, casques...). Installée par
défaut sur GLF-OS dans les mêmes éditions
(standard / studio / studio-pro), accessible via
solaarou depuis le menu Applications.
Logitech RPM Indicator s'occupe uniquement des volants, Solaar
gère tout le reste de l'écosystème Logitech. -
Oversteer : configuration de la plage de rotation / FFB des
volants (axe différent du shift-light). Cohabite sans souci avec
Logitech RPM Indicator.
Sources
- Upstream : GitHub - IvanVojtko/logitech-linux-rpm-led: Enable RPM LED indicator on Logitech steering wheels in Linux · GitHub
- Packaging GLF-OS : Gaming Linux FR / GLF OS / App GLF OS / logitech-rpm-indicator · GitLab
- Licence : GPL-3.0-only