Version 1.1 par Mélodie le 2026/05/24 22:48

Afficher les derniers auteurs
1 = Réparer le pavé tactile qui ne répond plus après la veille =
2
3 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 :
4
5 {{code language="text"}}
6 rmi4_smbus: failed to get SMBus version number!
7 rmi4_smbus: Failed to resume device: -6
8 {{/code}}
9
10 == Identifier le module concerné ==
11
12 Pour vérifier que votre matériel est concerné lancez en mode administrateur :
13
14 {{code language="bash"}}
15 dmesg | grep -i touchpad
16 dmesg | grep -i rmi
17 {{/code}}
18
19 Si la seconde commande affiche des erreurs de ce type après un réveil :
20
21 {{code language="text"}}
22 rmi4_smbus 0-002c: failed to get SMBus version number!
23 rmi4_smbus 0-002c: Failed to resume device: -6
24 {{/code}}
25
26 la solution décrite ici s'applique à votre situation.
27
28 == Solution ==
29
30 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 :
31
32 * Soit dans le système pour tous les utilisateurs
33 * Soit pour votre utilisateur local uniquement
34
35 Voici le contenu des deux fichiers à créer et installer :
36
37 → **restart-touchpad-after-resume.sh**
38
39 {{code language="bash"}}
40 #!/bin/bash
41 # restart-touchpad-after-resume.sh
42 #
43 # Fix touchpad not responding after resume from suspend,
44 # for devices using the Synaptics RMI4 SMBus driver (rmi_smbus).
45 # Tested on HP EliteBook 840 G1 running AnduinOS.
46 #
47 # This script creates and enables a systemd service that reloads
48 # the rmi_smbus kernel module after each resume from suspend.
49 #
50 # Only runs on laptops, detected via DMI chassis type.
51 # Chassis types considered as laptops: 8 (Portable), 9 (Laptop),
52 # 10 (Notebook), 11 (Sub Notebook).
53
54 # Detect chassis type
55 CHASSIS=$(cat /sys/class/dmi/id/chassis_type)
56
57 # Only proceed if we are on a laptop
58 if [[ "$CHASSIS" =~ ^(8|9|10|11)$ ]]; then
59
60 # Create the systemd service file
61 cat > /etc/systemd/system/touchpad-resume.service << EOF
62 [Unit]
63 Description=Restart touchpad after resume
64 After=suspend.target
65
66 [Service]
67 Type=oneshot
68 # Reload the rmi_smbus module to restore touchpad functionality
69 ExecStart=/bin/sh -c "rmmod rmi_smbus && modprobe rmi_smbus"
70
71 [Install]
72 WantedBy=suspend.target
73 EOF
74
75 # Enable the service
76 systemctl enable touchpad-resume.service
77 echo "touchpad-resume.service installed and enabled."
78
79 else
80 # Not a laptop, nothing to do
81 echo "Not a laptop (chassis type: $CHASSIS), skipping touchpad fix."
82 exit 0
83 fi
84 {{/code}}
85
86 → **restart-touchpad-after-resume.desktop**
87
88 {{code language="ini"}}
89 [Desktop Entry]
90 Type=Application
91 Name=Fix Touchpad After Resume
92 Name[fr]=Réparer le pavé tactile après la veille
93 Name[es]=Reparar el touchpad después de la suspensión
94 Name[de]=Touchpad nach Ruhezustand reparieren
95 Name[it]=Ripristina il touchpad dopo la sospensione
96 Name[zh_CN]=休眠后修复触控板
97 Name[zh_TW]=休眠後修復觸控板
98 Name[pt]=Reparar o touchpad após a suspensão
99 Name[pt_BR]=Reparar o touchpad após a suspensão
100 Name[nl]=Touchpad herstellen na slaapstand
101 Name[pl]=Napraw touchpad po uśpieniu
102 Comment=Fix if touchpad stops working after suspend or hibernate
103 Comment[fr]=Réparer si le pavé tactile ne fonctionne plus après la veille ou l'hibernation
104 Comment[es]=Reparar si el touchpad deja de funcionar después de la suspensión o hibernación
105 Comment[de]=Reparieren, wenn das Touchpad nach dem Ruhezustand nicht mehr funktioniert
106 Comment[it]=Ripristina se il touchpad smette di funzionare dopo la sospensione o l'ibernazione
107 Comment[zh_CN]=如果触控板在休眠后停止工作,请修复
108 Comment[zh_TW]=如果觸控板在休眠後停止工作,請修復
109 Comment[pt]=Reparar se o touchpad parar de funcionar após a suspensão ou hibernação
110 Comment[pt_BR]=Reparar se o touchpad parar de funcionar após a suspensão ou hibernação
111 Comment[nl]=Herstel als het touchpad niet meer werkt na de slaapstand of hibernatie
112 Comment[pl]=Napraw, jeśli touchpad przestaje działać po uśpieniu lub hibernacji
113 Exec=pkexec restart-touchpad-after-resume.sh
114 Terminal=false
115 Icon=input-touchpad
116 Categories=System;
117 {{/code}}
118
119 === 1. Installation dans le système (droits d'administration requis) ===
120
121 Toutes les commandes suivantes sont à exécuter avec les droits d'administration.
122
123 Copier le script et le rendre exécutable :
124
125 {{code language="bash"}}
126 cp restart-touchpad-after-resume.sh /usr/local/bin/
127 chmod +x /usr/local/bin/restart-touchpad-after-resume.sh
128 {{/code}}
129
130 Copier le fichier desktop :
131
132 {{code language="bash"}}
133 cp restart-touchpad-after-resume.desktop /usr/share/applications/
134 {{/code}}
135
136 Lancer le script pour créer et activer le service :
137
138 {{code language="bash"}}
139 /usr/local/bin/restart-touchpad-after-resume.sh
140 {{/code}}
141
142 === 2. Installation dans le répertoire utilisateur (sans droits d'administration) ===
143
144 Copier le script et le rendre exécutable :
145
146 {{code language="bash"}}
147 cp restart-touchpad-after-resume.sh $HOME/.local/bin/
148 chmod +x $HOME/.local/bin/restart-touchpad-after-resume.sh
149 {{/code}}
150
151 Si {{code language="text"}}$HOME/.local/bin{{/code}} n'est pas dans votre PATH, ajoutez la ligne suivante à votre {{code language="text"}}~/.bashrc{{/code}} :
152
153 {{code language="bash"}}
154 export PATH="$HOME/.local/bin:$PATH"
155 {{/code}}
156
157 Copier le fichier desktop :
158
159 {{code language="bash"}}
160 cp restart-touchpad-after-resume.desktop $HOME/.local/share/applications/
161 {{/code}}
162
163 Lancer le script pour créer et activer le service :
164
165 {{code language="bash"}}
166 $HOME/.local/bin/restart-touchpad-after-resume.sh
167 {{/code}}
168
169 == Rendre le script exécutable ==
170
171 Lancer en mode administrateur:
172 {{code language="bash"}}
173 chmod +x /usr/local/bin/restart-touchpad-after-resume.sh
174 {{/code}}
175
176 ou pour une installation locale (en simple utilisateur) :
177
178 {{code language="bash"}}
179 chmod +x $HOME/.local/bin/restart-touchpad-after-resume.sh
180 {{/code}}
181
182 (Il faut que `~/.local/bin` existe).
183
184 Pour ajouter le répertoire au chemin des exécutables, dans votre fichier `~/.profile` ajoutez à la fin:
185
186 {{code language="bash"}}
187 # set PATH so it includes user's private bin if it exists
188 if [ -d "$HOME/.local/bin" ] ; then
189 PATH="$HOME/.local/bin:$PATH"
190 fi
191 {{/code}}
192
193 == Notes ==
194
195 * Le module s'appelle **rmi_smbus** avec un underscore, et non **rmi4_smbus** comme affiché dans les journaux du noyau.
196 * Ce problème est fréquent sur les ordinateurs portables HP, Lenovo, Dell de génération 2013-2016 environ.
197 * Testé sur : HP EliteBook 840 G1 sous AnduinOS.

Langues / Languages

🇫🇷 Français | 🇬🇧 English