Fix for new Touchpad using elantech driver (linux)

The new kernel versions already include this patch! So your system should work fine with last kernel versions. 🙂

 

I’ve recently bought  a ASUS s301l laptop. This laptop seems to have a new version of touchpad that elantech module cannot detect (kernel version 3.15.4). Because of that, touchpad is detected like an PS/2 and it lacks most of the funcionlities (two fingers gestures, etc.). The error that psmouse driver is giving is: psmouse:elantech_detect: psmouse serio4: elantech: Elantech version query result 0x46, 0x1f, 0x14. psmouse:elantech_detect: psmouse serio4: elantech: Probably not a real Elantech touchpad. Aborting. This detection is performed in elantech_is_signature_valid function. This function compares one of the registers read from the touchpad controller to a set of numbers . If the value of the register matches one of the numbers, the detection fails. (I don’t know the reason of all of this). My touchpad controller returns one of the forbidden values (0x14) so I’ve tried a quick hack: removing the  offending value from the list in that function. After compiling and loading the module, the touchpad is recognized (good!) and it is working (awesome!). If you are in the same problem with your laptop, this is the line you may change in elantech.c module: // static const unsigned char rates[] = { 200, 100, 80, 60, 40, 20, 10 }; static const unsigned char rates[] = { 200, 100, 80, 60, 40, 21, 10 };

This entry was posted in General and tagged , , , , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback.

10 Comments

  1. mariana S
    Posted Wednesday, 3 September 2014 at %I:%M %p | Permalink

    where to find it elantech.c module?

    • Màrius
      Posted Wednesday, 3 September 2014 at %I:%M %p | Permalink

      elantech.c is in your linux sources
      in my case is in /usr/src/linux-3.15.4/drivers/input/mouse/elantech.c

      Greetings

  2. Posted Wednesday, 10 September 2014 at %I:%M %p | Permalink

    Marius, thank you so much! This problem was vexing me and it would have taken me about a weekend or so to solve. Thanks to you, I did it in 15 minutes. So this weekend, I am going to have a beer in your honor with all my free time 🙂

    • Màrius
      Posted Thursday, 11 September 2014 at %I:%M %p | Permalink

      You’re welcome!

      I contacted kernel developers and they has prepared a patch, so it is expected to have support for our touchpads in the main kernel very soon!.

      Enjoy your beers.

      Màrius

  3. Joaquín López Cortés
    Posted Sunday, 14 September 2014 at %I:%M %p | Permalink

    After installation of Ubuntu 14.04 on my new laptop ASUS X550DP (dual installation with win8) I detected exactly the same problems described above. As a “beginner”, I searched for the elantech.c file in my system, but successless. Do you have a hint how to download it?

    In addition, the keyboard behaves strangely and reacts sometimes very slowly, sometimes too sensitive to inputs. Have you eventually heard about this?

    Final remarks: When connecting a normal, external USB-mouse, it works a little better, the mouse pointer can be moved. All other functions behave wrong.
    And under win8 everything works well for now.

    Thanks in advance for any hint,

    Joaquín

  4. Posted Thursday, 9 October 2014 at %I:%M %p | Permalink

    Hi! I can’t understand how to get that file named elegantech.c. How and where can i get it?

    I have a s301lp laptop and kernel 3.13.
    Thanks for your help 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.