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 };

10 thoughts on “Fix for new Touchpad using elantech driver (linux)”

  1. 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 🙂

    1. 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

  2. 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

    1. This file is in the linux kernel soure code tree (in ubuntu you need to install the linux-source-3.13.0 packet), usually locted at /usr/src/linux-source-3.13.0/drivers/input/mouse/elantech.c

Leave a Reply