Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| touchpad_asus [Le 06/01/2015, 23:15] 78.194.198.203 [Le touchpad Asus] | — (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Natty touchpad asus}} | ||
| - | ---- | ||
| - | ======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 [[:touchpad|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. | ||
| - | |||
| - | <note tip>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</note> | ||
| - | |||
| - | <note important> | ||
| - | Une méthode alternative à celle proposée ici et qui se base sur DKMS(dynamic kernel module system) est décrite ici: [[https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/681904/comments/113|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 [[https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/681904/comments/64|Lien Launchpad 2]] | ||
| - | </note> | ||
| - | |||
| - | <note important>Avant de suivre ce qui suit, procédez à une [[:tutoriel:comment_sauver_et_restaurer_un_fichier|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_shell|commande]] suivante:<code> | ||
| - | sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.backup | ||
| - | </code></note> | ||
| - | |||
| - | <note important>Cette astuce ne semble ne pas fonctionner sous Ubuntu 14.04 kernel 3.13.0-34 : | ||
| - | <code> | ||
| - | 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 » | ||
| - | </code> | ||
| - | </note> | ||
| - | |||
| - | |||
| - | <note important> | ||
| - | 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. | ||
| - | </note> | ||
| - | =====Première méthode===== | ||
| - | |||
| - | ====Pré-requis ==== | ||
| - | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>linux-source,linux-headers-`uname -r`,build-essential,libncurses5,libncurses5-dev|linux-source linux-headers-`uname -r` build-essential libncurses5 libncurses5-dev]]**\\ | ||
| - | Ce qui donne par exemple en ligne de commande à saisir dans un [[:terminal]]: | ||
| - | <code> | ||
| - | sudo apt-get install linux-source linux-headers-`uname -r` build-essential libncurses5 libncurses5-dev | ||
| - | </code> | ||
| - | <note>Il est possible que vous ayiez également à installer le paquet des sources :\\ **[[apt>linux-source-`uname -r`]]**</note> | ||
| - | |||
| - | ====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) :<code> | ||
| - | mkdir ~/src | ||
| - | cd ~/src | ||
| - | tar jxvf /usr/src/linux-source-VERSION.tar.bz2 | ||
| - | cd linux-source-VERSION | ||
| - | </code> | ||
| - | * Copier la configuration actuelle :<code> | ||
| - | cp /boot/config-VERSION .config | ||
| - | make oldconfig | ||
| - | </code> | ||
| - | |||
| - | <note important>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)</note> | ||
| - | |||
| - | * Vérifier que l'option elantech est active :<code>grep -i elantech .config</code>qui doit renvoyer<code>CONFIG_MOUSE_PS2_ELANTECH=y</code> | ||
| - | <note> Si vous avez pour réponse <code># CONFIG_MOUSE_PS2_ELANTECH is not set</code>lancez <code>make menuconfig</code> descendez à la section //Device Drivers ((Pilote de périphérique)) -> Input Device Support ((Prise en charge du périphérique d'entrée)) -> Mice ((Souris)) //. 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 ((Sortir))// jusqu'à la question << Do you wish to save your new kernel configuration >> où vous surlignerez l'option //YES ((Oui))// afin de sauvegarder la configuration.\\ <note tip>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 ((Sélectionner)) / Exit ((Sortir)) / Help ((Aide))// | ||
| - | * 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 (↓) | ||
| - | </note> | ||
| - | </note>  * Appliquer les patchs<code>wget -O 01elantech_2.6.38.patch https://launchpadlibrarian.net/71387234/01elantech_2.6.38.patch | ||
| - | patch -p1 < 01elantech_2.6.38.patch | ||
| - | </code> | ||
| - | * Construire le module incluant le patch <code>make -C /usr/src/linux-headers-`uname -r` SUBDIRS=`pwd` drivers/input/mouse/psmouse.ko</code> | ||
| - | |||
| - | ==== Chargement du module==== | ||
| - | Pour vérifier que le module fraichement créé fonctionne, saisissez dans un [[:terminal]] les [[:commande_shell|commandes]] suivantes | ||
| - | <code> | ||
| - | sudo modprobe -r psmouse | ||
| - | sudo insmod drivers/input/mouse/psmouse.ko | ||
| - | </code> | ||
| - | 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 : | ||
| - | <code>sudo modprobe -r psmouse | ||
| - | sudo modprobe psmouse</code> | ||
| - | 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. | ||
| - | <code>sudo cp drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko</code> | ||
| - | Vérifiez que cette copie fonctionne | ||
| - | <code> | ||
| - | sudo modprobe -r psmouse | ||
| - | sudo modprobe psmouse</code> | ||
| - | |||
| - | Si toutefois celà ne fonctionnait pas, pour annuler les changements : | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | ====Liste des portables pris en charge par le module==== | ||
| - | |||
| - | [[:asus_x53sv-sx200v|Asus X53SV-SX200V]]. | ||
| - | |||
| - | Asus X53SJ | ||
| - | |||
| - | Asus X93S \\ | ||
| - | |||
| - | Asus X43SV\\ | ||
| - | |||
| - | Asus K52SV \\ | ||
| - | |||
| - | //Contributeurs : valroy, alexmic// | ||
| - | |||
| - | =====Seconde méthode===== | ||
| - | |||
| - | ==== Instructions ==== | ||
| - | |||
| - | Voici une solution plus simple et plus robuste: | ||
| - | |||
| - | * Installez **[[apt>dkms]]** | ||
| - | * Vérifiez si aucun module //elantech// n'a été installé auparavant  | ||
| - | <code> dkms status </code> | ||
| - | * Si un module //elantech// est installé, supprimez-le:  | ||
| - | <code> remove -m <module> -v <module-version> --all </code>  | ||
| - | Exemple: <code> sudo dkms remove -m psmouse -v elantech-lp681904-1 --all </code> | ||
| - | * Il faut maintenant télécharger et installer le nouveau module:  | ||
| - | <code> 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</code> | ||
| - | |||
| - | Redémarrez et votre pavé tactile sera correctement reconnu! | ||
| - | |||
| - | ====Liste des portables pris en charge par le module==== | ||
| - | |||
| - | [[:asus_x53sv-sx111v|Asus X53SV-SX111V]] | ||
| - | |||
| - | Samsung NP305U1A | ||
| - | |||
| - | |||
| - | //Contributeurs : [[:utilisateurs:BlackEco]] | ||
| - | |||
| - | Gedel | ||
| - | // | ||
| - | |||
| - | =====Contourner le problème===== | ||
| - | |||
| - | ==== 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 : | ||
| - | |||
| - | <code>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"</code> | ||
| - | |||
| - | Au final, elle devra ressembler à cela : | ||
| - | |||
| - | <code>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.proto=bare"</code> | ||
| - | |||
| - | Ouvrez ensuite un terminal et entrez-y la commande suivante : | ||
| - | |||
| - | <code>sudo grup-update</code> | ||
| - | |||
| - | 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==== | ||
| - | |||
| - | [[:asus_x550lnv-xo192h|ASUS X550LNV-XO192H]] | ||