Trackpad fonctionnel sur portable DELL Latitude E5530

Bonjour,

C’est mon premier truc et astuce, j’ai la flemme de remettre d’aplomb mon site perso :mrgreen:

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 :mrgreen:

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

:038

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]

// à supprimer, Merci.

Tiens, le sujet m’intéresse !
Comment je peux savoir que c’est le cas, sur mon Dell actuel ?

$ 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)]

ou

$ 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=12 [slave pointer (2)]

Usti

Non, ma question n’était pas assez explicite !
Comment je peux être sûr que cela peut être le cas de mon laptop … je ne vais pas quand même installé un patch, alors qu’il ne me servira peut-être à rien !

xinput me restitue bien cela :

:~$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech Optical USB Mouse              	id=12	[slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                      	id=14	[slave  pointer  (2)]

Est-ce le fait qu’elle indique ‘PS/2 Generic Mouse’ ?
Alors que justement, il n’y a pas de port PS/2 physique !?

Ok, si j’étais allé lire le fichier README du second patch, j’aurais eu ma réponse tout seul.

Pour info, pour les autres, le second patch a été écrit pour les DELL suivants :

  • Inspiron 15R N5110
  • Inspiron 17R 7720
  • E6230

Bon, je teste et ça donne çà :

:/usr/src/psmouse-alps-master$ dkms add .

Creating symlink /var/lib/dkms/psmouse/custom-1.2/source ->
                 /usr/src/psmouse-custom-1.2

DKMS: add completed.
:/usr/src/psmouse-alps-master$ modprobe -r psmouse
:/usr/src/psmouse-alps-master$ dkms build -m psmouse -v custom-1.2 --all
:/usr/src/psmouse-alps-master$ dkms autoinstall --force

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.

le fichier ‘/var/lib/dkms/psmouse/custom-1.2/build/make.log’ informe de ceci :

Une idée ?

Plop,

Je n’arrive à compiler aucun module par dkms (que ce soit celui du trackpoint ou les pilotes virtualbox) avec les derniers noyaux Debian, je conserve donc précieusement mon 3.6.9-1~experimental.1 :mrgreen:.

J’ai eu la flemme d’aller voir si un bogue était signalé, ou le cas échéant de le faire, je sais cémal ™, mais je ne dois pas non plus être le seul dans ce cas non plus :stuck_out_tongue: .

Usti

Bon, j’y suis arrivé avec le premier lien que tu donnes et la version 1.3 affichée en pas de page, donc avec cette version !

Il a fallu que je bataille un peu … quoiqu’il en soit, à faire avec des droits administrateurs !

cd /usr/src
:/usr/src/$ wget http://www.dahetral.com/public-download/psmouse-alps-1.3.tbz/at_download/file
:/usr/src/$ mv file psmouse-alps-1.3.tbz
:/usr/src/$ tar xjvf psmouse-alps-1.3.tbz
:/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.
:/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.

Là, il faut clairement créer un symlink !

:/usr/src/psmouse-custom-1.3$ ln -sf /var/lib/dkms/psmouse/alps-1.3 /var/lib/dkms/psmouse/custom-1.3
:/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.
:/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.

Yes … !!!

Ensuite, on enleve le module et install le nouveau.

Une première vérification avec dmesg :

:/usr/src/psmouse-custom-1.3$ sudo dmesg | egrep 'psmouse'
[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

La deuxième et dernière étant avec xinput :wink:

:/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)]
⎜   ↳ Logitech Optical USB Mouse              	id=12	[slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                              	id=14	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                	id=16	[slave  pointer  (2)]

Voili, voilou ! :041 :038 :clap: :dance: :007

Et, en effet, j’ai le scrolling …
Concernant le multitouch, je ne dois certainement pas comprendre comment ça fonctionne !

Je viens de créer la page correspondante sur le wiki : isalo.org/wiki.debian-fr/ind … chpad_ALPS

Attention, le second lien (patch) ne fonctionne plus avec un kernel 3.5.0-27-generic (Ubuntu 12.10).
Pour info … :wink:

[quote=“Thald’”]Attention, le second lien (patch) ne fonctionne plus avec un kernel 3.5.0-27-generic (Ubuntu 12.10).
Pour info … :wink:[/quote]

1/ le tutoriel est pour les kernels sur Debian … et pas Ubuntu. Donc, je ne peux pas te garantir le résultat.
Sans parler que Ubuntu, c’est l’autre forum, là-bas:smiley:
2/ Si le second patch - qui sur mon Aptosid, ne fonctionnait pas plus - teste donc avec le v1.3, disponible à partir du 1er lien :wink:

[quote=“PengouinPdt”][quote=“Thald’”]Attention, le second lien (patch) ne fonctionne plus avec un kernel 3.5.0-27-generic (Ubuntu 12.10).
Pour info … :wink:[/quote]

1/ le tutoriel est pour les kernels sur Debian … et pas Ubuntu. Donc, je ne peux pas te garantir le résultat.
Sans parler que Ubuntu, c’est l’autre forum, là-bas:smiley:
2/ Si le second patch - qui sur mon Aptosid, ne fonctionnait pas plus - teste donc avec le v1.3, disponible à partir du 1er lien :wink:[/quote]

1/Ouaip, mais on s’y retrouve :stuck_out_tongue:

Et c’était juste pour info l’histoire d’avertir en fait.
et voir si pour le kernel sur debian ça fonctionne mieux :stuck_out_tongue:

partage d’info toussa toussa :wink:

quote=“Thald’”

1/Ouaip, mais on s’y retrouve :stuck_out_tongue:

Et c’était juste pour info l’histoire d’avertir en fait.
et voir si pour le kernel sur debian ça fonctionne mieux :stuck_out_tongue:

partage d’info toussa toussa :wink:[/quote]

Perso, à moins que je ne me trompe, mais le 1.3 fonctionne…
À chaque install de kernel depuis la 3.7 - maintenant en 3.8.5 - dkms fait son travail correctement, recompile le module, l’installe … et, zou, so run!

Bon, sur le mien, je n’ai que le défilement qui fonctionne. Je n’ai certainement pas le multitouch… mais avant même le défilement ne fonctionnait pas.

:wink:

[quote=“PengouinPdt”]Perso, à moins que je ne me trompe, mais le 1.3 fonctionne…
À chaque install de kernel depuis la 3.7 - maintenant en 3.8.5 - dkms fait son travail correctement, recompile le module, l’installe … et, zou, so run![/quote]
Bon, je viens d’installer la 3.8.5, j’ai téléchargé la dernière version du premier lien, et maintenant il supporte bien mon Dell E5530.

Par contre c’est un peu bizarre, j’ai dû bidouiller pour que dkms fonctionne (il créé un répertoire /var/lib/dkms/psmouse/alps-1.3 alors qu’il travaille sur /var/lib/dkms/psmouse/custom-1.3/, et bien sûr il ne trouve pas ce qu’il veut au bon endroit, bref), et bien qu’il termine en erreur, le module est bien compilé et installé.

Le multitouch s’active dans le centre de contrôle de Gnome, rubrique souris, mais j’avoue que je suis bien habitué à la zone de défilement à un doigt sur le côté droit du touchpad :slightly_smiling:

Usti

quote=“Ustilago”
Bon, je viens d’installer la 3.8.5, j’ai téléchargé la dernière version du premier lien, et maintenant il supporte bien mon Dell E5530.[/quote]
Tant mieux :038

C’est certainement ce problème que j’ai décrit dans le tuto !

[quote]

Le multitouch s’active dans le centre de contrôle de Gnome, rubrique souris, mais j’avoue que je suis bien habitué à la zone de défilement à un doigt sur le côté droit du touchpad :slightly_smiling:

Usti[/quote]
N’étant que sous Xfce … tu me fais simplement pensé à aller faire un tour dans l’équivalent :stuck_out_tongue:

:079 Je me suis arrêté à comment compiler, et je n’ai pas lu la suite, honte à moi !

Moi je suis sous openbox. Et tu viens de me faire penser à gpointing-device-settings qui a bien plus d’options d’ailleurs !

Usti

PengouinPdt,

Je te confirme que je ne peux pas compiler ce module avec le noyau 3.8.13 de Sid, et je n’ai pas vraiment d’erreur probante :

[code]# dkms build -m psmouse -v custom-1.3
Kernel preparation unnecessary for this kernel. Skipping…

Building module:
cleaning build area…
make KERNELRELEASE=3.8-2-amd64 -C /lib/modules/3.8-2-amd64/build M=/var/lib/dkms/psmouse/alps-1.3/build/src psmouse.ko…
Error! Build of psmouse.ko failed for: 3.8-2-amd64 (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/psmouse/custom-1.3/build/ for more information.[/code]

Et le-dit fichier de log :

DKMS make.log for psmouse-custom-1.3 for kernel 3.8-2-amd64 (x86_64) jeudi 23 mai 2013, 21:05:50 (UTC+0200) make: entrant dans le répertoire « /usr/src/linux-headers-3.8-2-amd64 » MODPOST 1 modules make: quittant le répertoire « /usr/src/linux-headers-3.8-2-amd64 »

:017

Bref, je vais rester en 3.9 aptosid quand je n’utilise pas le multi-écran, et en 2.8 Sid quand j’utilise le multi-écran :116

Usti

Essayes de corriger selon cette information !

Si cela fonctionne, c’est une erreur de lien symbolique.

[quote=“PengouinPdt”]Essayes de corriger selon cette information !

Si cela fonctionne, c’est une erreur de lien symbolique.[/quote]
Il faut vraiment que j’hiberne ! :mrgreen:

J’avais vérifié, et /var/lib/dkms/psmouse/custom-1.3 existait bien, sauf que c’était une bidouille que j’avais dû faire la dernière fois, et j’avais oublié :030 . Donc en le supprimant et en créant le lien symbolique comme sur le wiki, ça fonctionne. :023

Encore merci pour ta patience PengouinPdt, je fatigue, et je ne suis pas très bon élève :116

Usti