Publié le : 11/05/2021
Activer le Touchpad d’un Lenovo IdeaPad 5 sous Linux Debian
Le TouchPad du Lenovo IdeaPad 5 ne fonctionnait pas quand en l’utilisait sur une distribution Linux. Ainsi, pour aider les personnes qui peuvent avoir ce problème, nous avons écrit cet article. Alors, dans cet article nous allons vous aider à corriger ce problème et à profiter de votre laptop sous Linux.
Cause du problème du Touchpad du Lenovo IdeaPad 5 qui ne fonctionne pas sous Linux
Avant de vous donner une solution pour résoudre ce problème de TouchPad, donnons d’abord la cause du problème. Le problème a été mentionné sur le forum de Lenovo. Et sa cause est l’utilisation du driver elants_i2c
intégré par le noyau. Et malheureusement, il s’agit de la valeur par défaut qui est utilisé dans tous les noyaux linux actuellement. Nous avons fait le test depuis la version 5.5 jusqu’à la version 5.10 qui est la dernière version au moment de la rédaction de cet article.
Résoudre le problème
Au cours des différents recherche que nous avons mené pour résoudre ce problème de Touchpad qui ne fonctionne pas sous un Lenovo IdeaPad 5 sous Linux, nous vons vu 2 solutions. Mais avant de parler de ces solutions, expliquons d’abord ce qu’il faut faire pour rendre fonctionnel le Touchpad.
Nous avons vu dans la section précédente que la cause du problème est l’utilisation par le noyau du pilote elants_i2c
. De ce fait, pour corriger le problème, nous ne devons plus utiliser ce pilote. Pour ce faire, nous avons 2 solutions qui sont :
- modification du noyau pour qu’il (le noyau) n’utilise plus le pilote
elants_i2c
; - ne plus utiliser le pilote
elants_i2c
au démarrage de la machine.
Nous n’allons pas expliquer la première solution, car il est difficile à comprendre pour les novices. En effet, dans cette solution il faut installer un nouveau noyau, et pour un novice, cette opération est assez difficile.
Pour la deuxième solution, nous allons utilisé l’unité du SystemD. C’est cette unité qui est lancé à chaque démarrage du système. Pour créer l’unité, nous allons créer un fichier touchpadfix.service
.
$ sudo vim /etc/systemd/system/touchpadfix.service
Et à l’intérieur du fichier, nous allons ajouter les codes suivantes :
[Unit]
Description=Fix touchpad issue by binding correct driver
[Service]
ExecStart=/usr/local/bin/touchpadfix
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Une fois le fichier touchpadfix.servie
est créé et sauvegardé, nous allons créer un fichier exécutable touchpadfix
.
$ sudo vim /usr/local/bin/touchpadfix
Et le contenu de ce fichier est :
#!/bin/bash
modprobe i2c_hid
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/elants_i2c/unbind
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/i2c_hid/bind
Ensuite, il faut rendre exécutable ce fichier avec les commandes suivantes :
$ sudo chmod +x /usr/local/bin/touchpadfix
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now touchpadfix.service
Une fois ces manipulations faites, le Touchpad du Lenovo IdeaPad 5 fonctionnera correctement sous Linux. Profitez maintenant de votre Laptop !!!