Pavé tactile inactif après mise en veille

Version 3.1 par Mélodie le 2026/05/24 23:06

Réparer le pavé tactile qui ne répond plus après la veille

Sur certains ordinateurs portables équipés d'un pavé tactile Synaptics RMI4 SMBus, le pavé tactile cesse de répondre après un réveil depuis la mise en veille. Le journal du noyau affiche les messages suivants :

rmi4_smbus: failed to get SMBus version number!
rmi4_smbus: Failed to resume device: -6

Identifier le module concerné

Pour vérifier que votre matériel est concerné lancez en mode administrateur :

dmesg | grep -i touchpad
dmesg | grep -i rmi

Si la seconde commande affiche des erreurs de ce type après un réveil :

rmi4_smbus 0-002c: failed to get SMBus version number!
rmi4_smbus 0-002c: Failed to resume device: -6

la solution décrite ici s'applique à votre situation.

Solution

Deux fichiers sont proposés ici : un script bash qui crée un service SystemD, et un fichier desktop pour le lancer depuis les menus. Vous pouvez les installer de deux façons :

  • Soit dans le système pour tous les utilisateurs
  • Soit pour votre utilisateur local uniquement

Voici le contenu des deux fichiers à créer et installer :

restart-touchpad-after-resume.sh

#!/bin/bash
# restart-touchpad-after-resume.sh
#
# Fix touchpad not responding after resume from suspend,
# for devices using the Synaptics RMI4 SMBus driver (rmi_smbus).
# Tested on HP EliteBook 840 G1 running AnduinOS.
#
# This script creates and enables a systemd service that reloads
# the rmi_smbus kernel module after each resume from suspend.
#
# Only runs on laptops, detected via DMI chassis type.
# Chassis types considered as laptops: 8 (Portable), 9 (Laptop),
# 10 (Notebook), 11 (Sub Notebook).

# Detect chassis type
CHASSIS=$(cat /sys/class/dmi/id/chassis_type)

# Only proceed if we are on a laptop
if [[ "$CHASSIS" =~ ^(8|9|10|11)$ ]]; then

   # Create the systemd service file
   cat > /etc/systemd/system/touchpad-resume.service << EOF
[Unit]
Description=Restart touchpad after resume
After=suspend.target

[Service]
Type=oneshot
# Reload the rmi_smbus module to restore touchpad functionality
ExecStart=/bin/sh -c "rmmod rmi_smbus && modprobe rmi_smbus"

[Install]
WantedBy=suspend.target
EOF


   # Enable the service
   systemctl enable touchpad-resume.service
   echo "touchpad-resume.service installed and enabled."

else
   # Not a laptop, nothing to do
   echo "Not a laptop (chassis type: $CHASSIS), skipping touchpad fix."
   exit 0
fi

restart-touchpad-after-resume.desktop

[Desktop Entry]
Type=Application
Name=Fix Touchpad After Resume
Name[fr]=Réparer le pavé tactile après la veille
Name[es]=Reparar el touchpad después de la suspensión
Name[de]=Touchpad nach Ruhezustand reparieren
Name[it]=Ripristina il touchpad dopo la sospensione
Name[zh_CN]=休眠后修复触控板
Name[zh_TW]=休眠後修復觸控板
Name[pt]=Reparar o touchpad após a suspensão
Name[pt_BR]=Reparar o touchpad após a suspensão
Name[nl]=Touchpad herstellen na slaapstand
Name[pl]=Napraw touchpad po uśpieniu
Comment=Fix if touchpad stops working after suspend or hibernate
Comment[fr]=Réparer si le pavé tactile ne fonctionne plus après la veille ou l'hibernation
Comment[es]=Reparar si el touchpad deja de funcionar después de la suspensión o hibernación
Comment[de]=Reparieren, wenn das Touchpad nach dem Ruhezustand nicht mehr funktioniert
Comment[it]=Ripristina se il touchpad smette di funzionare dopo la sospensione o l'ibernazione
Comment[zh_CN]=如果触控板在休眠后停止工作,请修复
Comment[zh_TW]=如果觸控板在休眠後停止工作,請修復
Comment[pt]=Reparar se o touchpad parar de funcionar após a suspensão ou hibernação
Comment[pt_BR]=Reparar se o touchpad parar de funcionar após a suspensão ou hibernação
Comment[nl]=Herstel als het touchpad niet meer werkt na de slaapstand of hibernatie
Comment[pl]=Napraw, jeśli touchpad przestaje działać po uśpieniu lub hibernacji
Exec=pkexec restart-touchpad-after-resume.sh
Terminal=false
Icon=input-touchpad
Categories=System;

1. Installation dans le système (droits d'administration requis)

Toutes les commandes suivantes sont à exécuter avec les droits d'administration.

Copier le script et le rendre exécutable :

cp restart-touchpad-after-resume.sh /usr/local/bin/
chmod +x /usr/local/bin/restart-touchpad-after-resume.sh

Copier le fichier desktop :

cp restart-touchpad-after-resume.desktop /usr/share/applications/

2. Installation dans le répertoire utilisateur (sans droits d'administration)

Copier le script et le rendre exécutable :

cp restart-touchpad-after-resume.sh $HOME/.local/bin/
chmod +x $HOME/.local/bin/restart-touchpad-after-resume.sh

Si $HOME/.local/bin n'est pas dans votre PATH, ajoutez la ligne suivante à votre ~/.profile :

export PATH="$HOME/.local/bin:$PATH"

(Il faut que `/.local/bin` existe).

Pour ajouter le répertoire au chemin des exécutables, dans votre fichier `/.profile` ajoutez à la fin:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
   PATH="$HOME/.local/bin:$PATH"
fi

Copier le fichier desktop :

cp restart-touchpad-after-resume.desktop $HOME/.local/share/applications/

3. Activer et démarrer le service

Une fois installés, lancez le script depuis le menu Système aussitôt que vous en aurez besoin, pour activer le service.

Notes

  • Le module s'appelle rmi_smbus avec un underscore, et non rmi4_smbus comme affiché dans les journaux du noyau.
  • Ce problème est fréquent sur les ordinateurs portables HP, Lenovo, Dell de génération 2013-2016 environ.
  • Testé sur : HP EliteBook 840 G1 sous AnduinOS.