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 };
Fix for new Touchpad using elantech driver (linux)
This entry was posted in General and tagged asus, elantech, hack, kernel, s301l, touchpad. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
Post a comment or leave a trackback.
10 Comments
where to find it elantech.c module?
elantech.c is in your linux sources
in my case is in /usr/src/linux-3.15.4/drivers/input/mouse/elantech.c
Greetings
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 🙂
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
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
In order to compile a custom kernel, you should follow some instructions like https://help.ubuntu.com/community/Kernel/Compile or https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
My keyboard is working pretty good, I can’t tell you anything bad about it, sorry.
Thanks for your help. I will try.
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 🙂
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
I have installed the linux source deb from here: https://launchpad.net/ubuntu/trusty/+package/linux-source-3.13.0
What shall I do now…?