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 | |||
touchpad_asus [Le 15/01/2017, 11:15] L'Africain obsolète selon la note tout marche à partir du noyau 3.0 |
— (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 dkms remove psmouse/elantech-v6 --all | ||
- | sudo wget http://www.ouam.fr/~madko/ubuntu/elantech/psmouse-elantech-v7.tar.bz2 | ||
- | sudo tar jxvf psmouse-elantech-v7.tar.bz2 | ||
- | sudo dkms add -m psmouse -v elantech-v7 | ||
- | sudo dkms build -m psmouse -v elantech-v7 | ||
- | sudo dkms install -m psmouse -v elantech-v7 | ||
- | </code> | ||
- | Source : [[http://ubuntuforums.org/showthread.php?t=2111236|HOWTO: Series 9 Elantech Touchpad Ubuntu 12.10, Mint 14]] | ||
- | |||
- | 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 update-grub</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]] | ||