Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Le touchpad Asus

Le touchpad sur un portable asus fonctionne à peu près correctement, mais il n'est pas reconnu totalement par le système. En effet, lorsque vous naviguez dans le menu Système → Préférences → Souris, il n'y a pas d'onglet "Pavé tactile".
En suivant la documentation sur les touchpads, il est indiqué d'installer GPointingDeviceSettings cependant aucun pavé tactile n'est détecté. En revanche, une souris "ImPS/2 Logitech Wheel Mouse" est présente… Cette page propose donc de rectifier ce problème en créant un module qui intègre les modifications nécessaires afin de pouvoir l' ajouter au noyau.

Le pavé tactile est maintenant géré nativement par le kernel 3.0. Il est donc inutile de faire ces manipulations si vous le possédez
Une méthode alternative à celle proposée ici et qui se base sur DKMS(dynamic kernel module system) est décrite ici: Lien launchpad 1 Si ce lien ne fonctionne pas, une méthode similaire avec un autre pilote est décrite dans le même fil de commentaires Lien Launchpad 2
Avant de suivre ce qui suit, procédez à une sauvegarde du module psmouse.ko qui se trouve dans le dossier /lib/modules/<votre version de noyau>/kernel/drivers/input/mouse/. Saisissez dans un terminal la commande suivante:
sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.backup
Cette astuce ne semble ne pas fonctionner sous Ubuntu 14.04 kernel 3.13.0-34 :
atching file drivers/input/mouse/elantech.c
Hunk #2 FAILED at 14.
Hunk #3 FAILED at 22.
Hunk #4 FAILED at 41.
Hunk #5 FAILED at 66.
Hunk #6 FAILED at 80.
Hunk #7 succeeded at 116 (offset 14 lines).
Hunk #8 FAILED at 120.
Hunk #9 FAILED at 136.
Hunk #10 succeeded at 179 (offset 26 lines).
Hunk #11 FAILED at 170.
Hunk #12 FAILED at 203.
Hunk #13 FAILED at 248.
Hunk #14 succeeded at 341 with fuzz 2 (offset 75 lines).
Hunk #15 FAILED at 275.
Hunk #16 FAILED at 407.
Hunk #17 FAILED at 465.
Hunk #18 FAILED at 481.
Hunk #19 succeeded at 1183 with fuzz 1 (offset 637 lines).
Hunk #20 FAILED at 602.
Hunk #21 FAILED at 643.
Hunk #22 FAILED at 695.
Hunk #23 FAILED at 725.
Hunk #24 FAILED at 779.
Hunk #25 succeeded at 1487 (offset 693 lines).
19 out of 25 hunks FAILED -- saving rejects to file drivers/input/mouse/elantech.c.rej
patching file drivers/input/mouse/elantech.h
Hunk #2 succeeded at 11 with fuzz 2 (offset 3 lines).
Hunk #3 FAILED at 61.
Hunk #4 FAILED at 72.
Hunk #5 FAILED at 91.
3 out of 5 hunks FAILED -- saving rejects to file drivers/input/mouse/elantech.h.rej

user@user-X550LN:~/src/linux-source-3.13.0$ make -C /usr/src/linux-headers-`uname -r` SUBDIRS=`pwd` drivers/input/mouse/psmouse.ko
make: entrant dans le répertoire « /usr/src/linux-headers-3.13.0-34-generic »
  CC [M]  /home/user/src/linux-source-3.13.0/drivers/input/mouse/psmouse-base.o
  CC [M]  /home/user/src/linux-source-3.13.0/drivers/input/mouse/synaptics.o
  CC [M]  /home/user/src/linux-source-3.13.0/drivers/input/mouse/alps.o
  CC [M]  /home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.o
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c: In function ‘elantech_read_reg’:
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:120:7: error: ‘ETF020030’ undeclared (first use in this function)
  case ETF020030:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:120:7: note: each undeclared identifier is reported only once for each function it appears in
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:121:7: error: ‘ETF0208’ undeclared (first use in this function)
  case ETF0208:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:122:7: error: ‘ETF020B00’ undeclared (first use in this function)
  case ETF020B00:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:123:7: error: ‘ETF0402’ undeclared (first use in this function)
  case ETF0402:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:124:7: error: ‘ETF0401’ undeclared (first use in this function)
  case ETF0401:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:125:7: error: ‘ETF0403’ undeclared (first use in this function)
  case ETF0403:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:126:7: error: ‘ETF1400’ undeclared (first use in this function)
  case ETF1400:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:127:7: error: ‘ETF5900’ undeclared (first use in this function)
  case ETF5900:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:129:44: error: ‘register_read’ undeclared (first use in this function)
       elantech_ps2_command(psmouse,  NULL, register_read) ||
                                            ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c: In function ‘elantech_write_reg’:
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:183:7: error: ‘ETF020030’ undeclared (first use in this function)
  case ETF020030:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:184:7: error: ‘ETF0208’ undeclared (first use in this function)
  case ETF0208:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:185:7: error: ‘ETF020B00’ undeclared (first use in this function)
  case ETF020B00:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:186:7: error: ‘ETF0402’ undeclared (first use in this function)
  case ETF0402:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:187:7: error: ‘ETF0401’ undeclared (first use in this function)
  case ETF0401:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:188:7: error: ‘ETF0403’ undeclared (first use in this function)
  case ETF0403:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:189:7: error: ‘ETF1400’ undeclared (first use in this function)
  case ETF1400:
       ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c: In function ‘elantech_report_absolute_v2’:
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:345:24: error: redefinition of ‘etd’
  struct elantech_data *etd = psmouse->private;
                        ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:343:24: note: previous definition of ‘etd’ was here
  struct elantech_data *etd = psmouse->private;
                        ^
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c: In function ‘elantech_set_int_attr’:
/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.c:1191:24: error: ‘ETF020030’ undeclared (first use in this function)
  if (etd->hw_version < ETF020030) {
                        ^
make[1]: *** [/home/user/src/linux-source-3.13.0/drivers/input/mouse/elantech.o] Erreur 1
make: *** [drivers/input/mouse/psmouse.ko] Erreur 2
make: quittant le répertoire « /usr/src/linux-headers-3.13.0-34-generic »
Si le touchpad ne fonctionne pas du tout et interfère avec les souris usb externes (décalage sur la gauche de l'écran toutes les 3 secondes), lisez les messages suivants :

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1314198/comments/31

Ce problème semble concerner beaucoup de détenteur ASUS et la solution de contournement fonctionne parfaitement chez moi.

Pré-requis

Installez les paquets linux-source linux-headers-`uname -r` build-essential libncurses5 libncurses5-dev
Ce qui donne par exemple en ligne de commande à saisir dans un terminal:

sudo apt-get install linux-source linux-headers-`uname -r` build-essential libncurses5 libncurses5-dev
Il est possible que vous ayiez également à installer le paquet des sources :
linux-source-`uname -r`

Création du module

  • Créer un répertoire src dans votre répertoire home et y copier les sources correspondant à votre version. (remplacer VERSION par les références de la votre, que vous pouvez connaître en faisant ls /usr/src/linux-source*.bz2) :
    mkdir ~/src
    cd ~/src
    tar jxvf /usr/src/linux-source-VERSION.tar.bz2
    cd linux-source-VERSION
  • Copier la configuration actuelle :
    cp /boot/config-VERSION .config
    make oldconfig
POUR CEUX QUI SONT PASSÉ À LA VERSION 3.0 DU NOYAU, IL N'Y PAS BEAUCOUP DE CHANGEMENT. L'astuce est de faire la procédure avec l'ancienne source (exemple 2.6.38-10)– vu qu'il n'y a encore de fichier source en version 3.0–

Donc pensez à replacer le "VERSION" par 2.XX ci-dessus. Pour la suite, bien garder l'expression `uname -r`, qui correspond à la version actuelle de votre noyaux. (exemple 3.0.1)

  • Vérifier que l'option elantech est active :
    grep -i elantech .config

    qui doit renvoyer

    CONFIG_MOUSE_PS2_ELANTECH=y
Si vous avez pour réponse
# CONFIG_MOUSE_PS2_ELANTECH is not set

lancez

make menuconfig

descendez à la section Device Drivers 1) → Input Device Support 2) → Mice 3) . Pressez la barre d'espace à la ligne Elantech PS/2 protocol extension ce qui devrait ajouter un astérisque [*] indiquant la bonne sélection. Choisissez ensuite Exit 4) jusqu'à la question « Do you wish to save your new kernel configuration » où vous surlignerez l'option YES 5) afin de sauvegarder la configuration.

La navigation dans le menu de configuration des modules s'effectue avec les touches du :
  • haut (↑) / bas (↓) : pour choisir une ligne
  • gauche (←) / droite (→) : pour surligner les choix proposés dans la barre inférieure Select 6) / Exit 7) / Help 8)
  • Entrée : pour valider la sélection précédemment surlignée
  • Barre espace permet de modifier l'état de la ligne sélectionnée par les flèches haut (↑) / bas (↓)

* Appliquer les patchs

wget -O 01elantech_2.6.38.patch https://launchpadlibrarian.net/71387234/01elantech_2.6.38.patch
patch -p1 < 01elantech_2.6.38.patch
  • Construire le module incluant le patch
    make -C /usr/src/linux-headers-`uname -r` SUBDIRS=`pwd` drivers/input/mouse/psmouse.ko

Chargement du module

Pour vérifier que le module fraichement créé fonctionne, saisissez dans un terminal les commandes suivantes

sudo modprobe -r psmouse
sudo insmod drivers/input/mouse/psmouse.ko

Un onglet "Pavé tactile" doit être présent dans le menu Système → Préférences → Souris

Si ça n'est pas le cas, déchargez le module :

sudo modprobe -r psmouse
sudo modprobe psmouse

FIXME et ensuite?

Rendre le changement permanent

Pour que le noyau charge ce module à chaque démarrage il vous faut le copier dans le système.

sudo cp drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko

Vérifiez que cette copie fonctionne

sudo modprobe -r psmouse
sudo modprobe psmouse

Si toutefois celà ne fonctionnait pas, pour annuler les changements :

sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.backup /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko
sudo modprobe -r psmouse
sudo modprobe psmouse

Liste des portables pris en charge par le module

Asus X53SV-SX200V.

Asus X53SJ

Asus X93S

Asus X43SV

Asus K52SV

Contributeurs : valroy, alexmic

Instructions

Voici une solution plus simple et plus robuste:

  • Installez dkms
  • Vérifiez si aucun module elantech n'a été installé auparavant
 dkms status 
  • Si un module elantech est installé, supprimez-le:
 remove -m <module> -v <module-version> --all 

Exemple:

 sudo dkms remove -m psmouse -v elantech-lp681904-1 --all 
  • Il faut maintenant télécharger et installer le nouveau module:
 cd /usr/src/
sudo wget http://people.debian.org/~julien/lp681904/psmouse-elantech-lp681904-1.tar.bz2
sudo tar jxvf psmouse-elantech-lp681904-1.tar.bz2
sudo dkms add -m psmouse -v elantech-lp681904-1
sudo dkms build -m psmouse -v elantech-lp681904-1
sudo dkms install -m psmouse -v elantech-lp681904-1

Redémarrez et votre pavé tactile sera correctement reconnu!

Liste des portables pris en charge par le module

Asus X53SV-SX111V

Samsung NP305U1A

Contributeurs : BlackEco Gedel

Instructions

Si malgré tout aucune des solutions précédentes ne fonctionne, il est possible de passer un paramètre à grub pour que le pavé tactile soit reconnu comme un pavé tactile "simple", c’est-à-dire un pavé tactile qui ne soit pas multipoint. Certaines fonctionnalités comme le scrolling ne fonctionneront donc pas, mais vous pourrez toutefois déplacer le pointeur et les clics droit/gauche fonctionneront correctement.

Pour ce faire, il vous faudra éditer le fichier /etc/default/grub ; Ajoutez à la clé GRUB_CMDLINE_LINUX_DEFAULT le couple clé/valeur suivant "psmouse.proto=bare".

Par exemple si la ligne du fichier /etc/default/grub ressemble à ceci :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Au final, elle devra ressembler à cela :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.proto=bare"

Ouvrez ensuite un terminal et entrez-y la commande suivante :

sudo grup-update

Une fois cette opération terminée, il vous faut redémarrer votre ordinateur et le tour est joué !

Liste des portables pris en charge par le module


1)
Pilote de périphérique
2)
Prise en charge du périphérique d'entrée
3)
Souris
4) , 7)
Sortir
5)
Oui
6)
Sélectionner
8)
Aide
  • touchpad_asus.1420582554.txt.gz
  • Dernière modification: Le 06/01/2015, 23:15
  • par 78.194.198.203