| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| touchpad_asus [Le 28/08/2014, 12:31] – BeAvEr 94.23.168.216 | touchpad_asus [Le 15/01/2017, 11:15] (Version actuelle) – obsolète selon la note tout marche à partir du noyau 3.0 L'Africain |
|---|
| {{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> | |
| =====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 | |
| // | |