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]
.




