Bonjour,
C’est mon premier truc et astuce, j’ai la flemme de remettre d’aplomb mon site perso
Si vous avez un portable récent, un Dell, mais pas que, que votre touchpad est de marque alps, il est fort probable qu’il ne soit pas reconnu par le noyau : cela se traduit par un fonctionnement à minima (pas de scrolling ou de multitouch), voir un fonctionnement erratique.
En fait, comme il n’est pas reconnu, il fonctionne selon un mode dégradé comme une souris générique PS/2 :
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=11 [slave pointer (2)]
En fonction de votre modèle, il existe deux patchs non officiels pour le noyau :
[ul][li]http://www.dahetral.com/public-download[/li]
[li]https://github.com/emmanuelthome/psmouse-alps fonctionne avec mon Dell Latitude E5530[/li][/ul]
Je vous laisse consulter les liens en fin d’article pour trouver le patch qui vous convient, ou les essayer tous les deux, vous verrez bien celui qui fonctionne
Deux méthodes sont possibles pour l’installation :
[ul][li]utiliser dkms pour compiler le module et l’installer[/li]
[li]recompiler un noyau complet[/li][/ul]
Je vous avoue que je n’ai pas réussi à compiler le premier patch sur un noyau > 3.2 avec dkms, alors que pour mon processeur Ivy bridge j’ai besoin d’un noyau > 3.4. Par contre le second patch se compile bien dkms, c’est ce que je détaille ci-dessous.
On télécharge le patch souhaité sur l’un des deux liens ci-dessus. On décompresse dans le répertoire /usr/src (droits root nécessaires).
Pour le second patch, cela créé un répertoire psmouse-alps-master.
Il faut consulter le fichier /usr/src/psmouse-alps-master/dkms.conf pour trouver le nom du paquet, et la version :
PACKAGE_NAME=“psmouse”
PACKAGE_VERSION=“custom-1.2”
Normalement le répertoire doit avoir comme nom nom_du_paquet-version, ce qui n’est pas le cas ici. On va donc le renommer pour que dkms le trouve :
[code]# cd /usr/src
mv psmouse-alps-master/ psmouse-custom-1.2[/code]
Ensuite on ajoute le module dans l’arbre dkms :
[code]# dkms add -m psmouse -v custom-1.2
Creating symlink /var/lib/dkms/psmouse/custom-1.2/source ->
/usr/src/psmouse-custom-1.2
DKMS: add completed.[/code]
On compile le module, ce qui nécessite d’avoir les en-têtes du noyau pour lequel on veut compiler le module :
# dkms build -m psmouse -v custom-1.2
Error! Your kernel headers for kernel 3.6-trunk-amd64 cannot be found.
Please install the linux-headers-3.6-trunk-amd64 package,
or use the --kernelsourcedir option to tell DKMS where it's located
Hum, pourtant il est bien installé :
$ apt-cache policy linux-headers-3.6-trunk-amd64
linux-headers-3.6-trunk-amd64:
Installé : 3.6.9-1~experimental.1
Candidat : 3.6.9-1~experimental.1
Table de version :
*** 3.6.9-1~experimental.1 0
1 http://localhost/ftp.fr.debian.org/debian/ experimental/main amd64 Packages
100 /var/lib/dpkg/status
Apparemment il manque des liens :
[code]# ln -s /usr/src/linux-headers-3.6-trunk-amd64 /lib/modules/3.6-trunk-amd64/build
ln -s /usr/src/linux-headers-3.6-trunk-common/ /lib/modules/3.6-trunk-amd64/source[/code]
Bon, cette fois on compile :
[code]# dkms build -m psmouse -v custom-1.2
Kernel preparation unnecessary for this kernel. Skipping…
Building module:
cleaning build area…
make KERNELRELEASE=3.6-trunk-amd64 -C /lib/modules/3.6-trunk-amd64/build M=/var/lib/dkms/psmouse/custom-1.2/build/src psmouse.ko…
cleaning build area…
DKMS: build completed.[/code]
Et maintenant on installe :
[code]# dkms install -m psmouse -v custom-1.2
psmouse:
Running module version sanity check.
- Original module
- Installation
- Installing to /lib/modules/3.6-trunk-amd64/updates/dkms/
depmod…
DKMS: install completed.[/code]
On peut enlever l’ancien module, et charger le nouveau :
[code]# rmmod psmouse
modprobe psmouse[/code]
On regarde en fin de dmesg pour vérifier que le chargement s’est bien passé :
[ 3173.646640] psmouse serio1: alps: E6 report: 00 00 64
[ 3173.665094] psmouse serio1: alps: E7 report: 73 03 0a
[ 3173.678575] psmouse serio1: alps: command mode response: 88 08 1d
[ 3173.681052] psmouse serio1: alps: Model=24, proto_version=4
[ 3174.115298] psmouse serio1: alps: E6 report: 00 00 64
[ 3174.133736] psmouse serio1: alps: E7 report: 73 03 0a
[ 3174.147296] psmouse serio1: alps: command mode response: 88 08 1d
[ 3174.149797] psmouse serio1: alps: Model=24, proto_version=4
[ 3174.163281] psmouse serio1: alps: command mode response: 88 08 1d
[ 3174.266017] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input17
[ 3174.279703] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input18
Et xinput également :
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=11 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=14 [slave pointer (2)]
Petite info, pour supprimer le module de l’arbre dkms :
# dkms remove psmouse/custom-1.2 --all
Et voici les liens qui m’ont permis d’y arriver :
[ul][li]https://bugs.launchpad.net/ubuntu/+source/linux/+bug/678103[/li]
[li]https://bugzilla.kernel.org/show_bug.cgi?id=14660[/li]
[li]https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238[/li]
[li]http://wiki.centos.org/HowTos/BuildingKernelModules#head-d313bd351f90d4f25a2143b7bbcff73f927731f0[/li][/ul]