Touchpad ALPS

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Explications

Si vous avez un portable récent et 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. Il existe deux patches différents.

À l'origine, cela concerne les portables Dell Inspiron 15R N5110, la liste s'étend petit-à-petit à d'autres :

  • le Dell Inspiron 17R 7720
  • le Dell Latitude - série E6 (particulièrement le E6530), série E7
  • le Fujitsu A512

ATTENTION : Les patchs en question ne sont aucunement officiels ! La confiance que vous engagez en ceux-ci, n'engage que vous ...

Versions

Le patch principal se trouve sur le site public de téléchargement de Dahetral.com

  • v 0.1 à v 0.4 fonctionne avec les kernels 3.2 et >
  • v 1.2 fonctionnerait pour les kernels 3.4 et > - il existe un deuxième patch
  • v 1.3 fonctionne pour les kernels 3.7 et >

Détection

Justement sans ce patch le touchpad est mal reconnu par le système, puisqu'il est désigné comme étant un périphérique générique de type souris 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)]

Bien sûr, il faut avoir le paquet xinput installé ;-)

Installation

Avec les droits administrateur, il faut vous positionner dans le répertoire /usr/src/, puis télécharger le patch pour le décompresser.

Téléchargement

cd /usr/src wget -O- http://www.dahetral.com/public-download/psmouse-alps-1.3.tbz/at_download/file > psmouse-alps-1.3.tbz tar xjvf psmouse-alps-1.3.tbz

Usage de DKMS

Ensuite nous rentrons dans le répertoire source, puis utiliserons dkms pour compiler au kernel :

/usr/src/$ mv psmouse-alps-1.3 psmouse-custom-1.3
/usr/src/$ cd psmouse-custom-1.3
/usr/src/psmouse-custom-1.3$ dkms add -m psmouse -v custom-1.3


Creating symlink /var/lib/dkms/psmouse/custom-1.3/source ->

                /usr/src/psmouse-custom-1.3

DKMS: add completed.

Nous construisons le module avec dkms :

/usr/src/psmouse-custom-1.3$ dkms build -m psmouse -v custom-1.3

Kernel preparation unnecessary for this kernel. Skipping...

Building module: cleaning build area.... make KERNELRELEASE=3.8-0.slh.1-aptosid-amd64 -C /lib/modules/3.8-0.slh.1-aptosid-amd64/build M=/var/lib/dkms/psmouse/alps-1.3/build/src psmouse.ko...... cleaning build area....

DKMS: build completed.

Puis nous l'installons :

/usr/src/psmouse-custom-1.3$ dkms install -m psmouse -v custom-1.3

psmouse: Running module version sanity check.

- Original module
- Installation
  - Installing to /lib/modules/3.8-0.slh.1-aptosid-amd64/updates/dkms/

depmod.......

DKMS: install completed.

Arrivé là, le touchpad devrait être fonctionnel !

Vérifications

xinput nous répond ainsi :

/usr/src/psmouse-custom-1.3$ xinput list

⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ PS/2 Mouse id=14 [slave pointer (2)] ⎜ ↳ AlpsPS/2 ALPS GlidePoint id=16 [slave pointer (2)]

Ce qui est confirmé par dmesg !

[15776.784495] psmouse serio1: alps: E6 report: 00 00 64 [15776.803631] psmouse serio1: alps: E7 report: 73 03 50 [15776.822904] psmouse serio1: alps: EC report: 73 01 0d [15776.825501] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 01 0d [15776.825511] psmouse serio1: alps: Model: proto=5 command_mode_byte3=0d [15777.237996] psmouse serio1: alps: E6 report: 00 00 64 [15777.258557] psmouse serio1: alps: E7 report: 73 03 50 [15777.281826] psmouse serio1: alps: EC report: 73 01 0d [15777.284378] psmouse serio1: alps: ALPS: E7=73 03 50, EC=73 01 0d [15777.284384] psmouse serio1: alps: Model: proto=5 command_mode_byte3=0d [15777.298488] input: PS/2 Mouse as /devices/platform/i8042/serio1/input/input18 [15777.315704] input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input19

Problèmes connus

DKMS Build

Bad return status

Lors de la construction avec DKMS, il est possible que cela échoue avec un tel message :

/usr/src/psmouse-custom-1.3$ dkms build -m psmouse -v custom-1.3

Kernel preparation unnecessary for this kernel. Skipping...

Building module: cleaning build area.... make KERNELRELEASE=3.8-0.slh.1-aptosid-amd64 -C /lib/modules/3.8-0.slh.1-aptosid-amd64/build M=/var/lib/dkms/psmouse/alps-1.3/build/src psmouse.ko....(bad exit status: 2) Error! Bad return status for module build on kernel: 3.8-0.slh.1-aptosid-amd64 (x86_64) Consult /var/lib/dkms/psmouse/custom-1.3/build/make.log for more information.

Créez le lien symbolique suivant :

$ ln -sf /var/lib/dkms/psmouse/alps-1.3 /var/lib/dkms/psmouse/custom-1.3

Puis relancez la phase de compilation !

Install linux-headers

Lors de la construction avec DKMS, il est possible que cela échoue avec un tel message :

$ 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

Dans un premier temps, vérifiez que vous ayez bien les headers du kernel sur lequel vous cherchez à installer le patch !

  • Si ce n'est pas le cas, installez-les !
  • Si c'est le cas, il se peut qu'il manque des liens symboliques nécessaires, créez-les ainsi :

$ 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

Cela étant fait, relancez la phase de compilation ci-dessus !


DKMS Install

Bad return status

Si vous avez ce message :

$ dkms install -m psmouse -v custom-1.2

Kernel preparation unnecessary for this kernel. Skipping...

Building module: cleaning build area.... make KERNELRELEASE=3.7-8.slh.1-aptosid-amd64 -C /lib/modules/3.7-8.slh.1-aptosid-amd64/build M=/var/lib/dkms/psmouse/custom-1.2/build/src psmouse.ko.....(bad exit status: 2) Error! Bad return status for module build on kernel: 3.7-8.slh.1-aptosid-amd64 (x86_64) Consult /var/lib/dkms/psmouse/custom-1.2/build/make.log for more information.

Vérifiez le fichier de journalisation en question : /var/lib/dkms/psmouse/custom-1.2/build/make.log

DKMS make.log for psmouse-custom-1.2 for kernel 3.7-8.slh.1-aptosid-amd64 (x86_64) vendredi 22 février 2013, 23:13:05 (UTC+0100) make: entrant dans le répertoire « /usr/src/linux-headers-3.7-8.slh.1-aptosid-amd64 » CC [M] /var/lib/dkms/psmouse/custom-1.2/build/src/psmouse-base.o /var/lib/dkms/psmouse/custom-1.2/build/src/psmouse-base.c: In function ‘__check_smartscroll’: /var/lib/dkms/psmouse/custom-1.2/build/src/psmouse-base.c:64:1: warning: return from incompatible pointer type [enabled by default] CC [M] /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.o /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.c: In function ‘set_input_params’: /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.c:1153:3: error: too few arguments to function ‘input_mt_init_slots’ In file included from /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.c:29:0: include/linux/input/mt.h:72:5: note: declared here /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.c:1165:3: error: too few arguments to function ‘input_mt_init_slots’ In file included from /var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.c:29:0: include/linux/input/mt.h:72:5: note: declared here make[1]: *** [/var/lib/dkms/psmouse/custom-1.2/build/src/synaptics.o] Erreur 1 make: *** [psmouse.ko] Erreur 2 make: quittant le répertoire « /usr/src/linux-headers-3.7-8.slh.1-aptosid-amd64 »

Dans l'immédiat, nous ne savons pas répondre encore à ce problème !

Crédits

Je tiens à remercier ustilago, sans qui je ne me serais même pas inquiété de ce problème ;-)