6

I have a new Lenovo Yoga 2 11" convertible laptop, and it has, from what I can tell, an Elantech touchpad. Two-finger scrolling and two-finger tapping work great in Windows and Fedora, but don't work in Ubuntu. How can I get it to work?

I noticed that in Fedora (where everything works), my touchpad was getting reported as a 'ETPS/2 Elantech Touchpad', whereas in Ubuntu it was getting reported as a generic `PS/2 mouse,' which it most certainly is not. I have a feeling this has to do with drivers, configuration, or something, but I'm not sure how to set it up properly.

Here's the output of cat /proc/bus/input/devices:

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab83
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input3
U: Uniq=
H: Handlers=sysrq kbd event3 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input6
U: Uniq=
H: Handlers=kbd event5 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0003 Vendor=03eb Product=8c1d Version=0111
N: Name="Atmel Atmel maXTouch Digitizer"
P: Phys=usb-0000:00:14.0-7/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/0003:03EB:8C1D.0002/input/input7
U: Uniq=
H: Handlers=mouse1 event6 
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input8
U: Uniq=
H: Handlers=event7 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input9
U: Uniq=
H: Handlers=event8 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:03.0/sound/card0/input10
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input11
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card1/input12
U: Uniq=
H: Handlers=event11 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0003 Vendor=1bcf Product=2c66 Version=0003
N: Name="Lenovo EasyCamera"
P: Phys=usb-0000:00:14.0-1/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/input/input13
U: Uniq=
H: Handlers=kbd event12 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input15
U: Uniq=
H: Handlers=mouse0 event4 
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3
| improve this question | | | | |
  • If ELANTECH see: askubuntu.com/questions/529974/… – ARTHUR AIDA Oct 26 '14 at 18:19
  • What is the hardware? If ELANTECH see: askubuntu.com/questions/529974/… – ARTHUR AIDA Oct 26 '14 at 18:21
  • That question doesn't really help. It suggests installing the 3.18 kernel, which isn't an easy task. I installed that kernel, and nothing has changed--it's still getting recognized by Ubuntu as a PS/2 Mouse. – Jonathan Oct 26 '14 at 18:45
  • What kernel are you running? – Fabby Dec 18 '14 at 0:10
  • @Fabby, just the standard kernel for Ubuntu 14.10. I also tried running other kernels, but they didn't fix this issue. – Jonathan Dec 19 '14 at 16:13
2

I got this working recently for a friend's Yoga 2 by patching the psmouse kernel module to recognize the trackpad. Here's how I did it (from memory and browser history):

wget 'https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1166442/+attachment/3941591/+files/psmouse-elantech-x551c.tar.gz'
sudo dkms ldtarball --force psmouse-elantech-x551c.tar.gz
sudo dkms install -m psmouse -v elantech-x551c
sudo rmmod psmouse && sudo modprobe psmouse

You have to restart X (or reboot) afterwards.

Sources:

In case it doesn't work give us the output of:

cat /proc/bus/input/devices
| improve this answer | | | | |
  • For the second command, I'm getting: Error! psmouse-elantech-x551c is already added! Aborting. and Module psmouse/elantech-x551c already installed on kernel 3.16.0-28-generic/x86_64 for the third command. I added the output of that command to the question. – Jonathan Jan 8 '15 at 18:54
  • According to dkms' manpage [1] the command has a force option which "can be used in conjunction with ldtarball to force copying over of already existant files.". I've edited my post accordingly. [1] linux.dell.com/dkms/manpage.html – doublehelix Jan 11 '15 at 14:29
  • I tried running the revised commands above, but on the second command, I got Error! DKMS tree already contains: psmouse-elantech-x551c. You cannot add the same module/version combo more than once. – Jonathan Jan 11 '15 at 18:22
1

Jon if output for xinput -list ->>>> ↳ ETPS/2 Elantech Touchpad sees links:

http://www.yourownlinux.com/2014/10/how-to-install-linux-kernel-3-18-rc1-in-linux.html or http://linuxg.net/how-to-install-kernel-3-18-rc2-on-ubuntu-14-10-ubuntu-14-04-and-derivatives/

reboot your ubuntu:

1 - Click on the "Option Settings The System "(the gear icon on the launch bar of Ubuntu). You can also access the same option by clicking the icon located next to the clock on the top bar Ubuntu.

2 - Inside " The System Settings ", click on" option Mouse and Touchpad ".

3 - In the window that opens, look for the "option Touchpad ". If it is not active (" On "), click" button Off ", located on the right side to activate it.

4 - Now select "option Scrolling With Two Fingers "by clicking the box next to the option.

Ready! Now you can use two fingers to do the scrolling in Ubuntu whenever you need.

| improve this answer | | | | |
  • Without modules psmouse for kernel ... – ARTHUR AIDA Nov 1 '14 at 20:09
  • If you read my question you'll see that my xinput output isn't Elantech (like it should be), it's PS/2 Mouse. Also if you see the comments on the question, installing the 3.18 kernel doesn't help--the trackpad still gets recognized as PS/2 Mouse. Since my trackpad is getting recognized as a mouse (and a very old one at that), my System Settings doesn't have options that relate to touchpads, since it thinks I have a PS/2 Mouse. – Jonathan Nov 3 '14 at 15:05
0

Installation

Just install synaptic package by apt-get

sudo apt-get update
sudo apt-get install synaptic

Configuration : (You can configure by GUI in Settings >> Touch-pad but for more config:

/etc/X11/xorg.conf.d/50-synaptics.conf

Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
MatchIsTouchpad "on"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "VertEdgeScroll" "on"
    Option "VertTwoFingerScroll" "on"
    Option "HorizEdgeScroll" "on"
    Option "HorizTwoFingerScroll" "on"
    Option "CircularScrolling" "on"
    Option "CircScrollTrigger" "2"
    Option "EmulateTwoFingerMinZ" "40"
    Option "EmulateTwoFingerMinW" "8"
    Option "CoastingSpeed" "0"
    Option "FingerLow" "35"
    Option "FingerHigh" "40"
    ...

Help:

TapButton1
   (integer) configures which mouse-button is reported on a non-corner, one finger tap.
TapButton2
   (integer) configures which mouse-button is reported on a non-corner, two finger tap
TapButton3
   (integer) configures which mouse-button is reported on a non-corner, three finger tap
...
VertEdgeScroll
   (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.
HorizEdgeScroll
   (boolean) enables horizontal scrolling while dragging across the bottom edge of the touch pad.
VertTwoFingerScroll
   (boolean) enables vertical scrolling using two fingers.
HorizTwoFingerScroll
   (boolean) enables horizontal scrolling using two fingers.
...

source: https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Installation

| improve this answer | | | | |
  • synaptic is a Graphical package manager and has nothing to do with the touchpad. It should be xserver-xorg-input-synaptics,however there is no need to install it because it is preinstalled in Ubuntu. – g_p Jan 6 '15 at 10:26
  • This made it so that X wouldn't start at all. I had to remove the file from a TTY in order to get my computer to boot properly. – Jonathan Jan 8 '15 at 19:15
0

I have a Yoga 2 Pro but it has a synaptics touchpad. My Elantech experience is limited. I'm quite sure this is a kernel regression. There were other kernel issues with the Yoga 2 Pro as well (notably WiFi) but they were fixed with the 14.10 distribution.

elantech touchpad - multi touch is not working for kernel 3.13.0-35-generic

This thread points you to the bug report which likely is where your problem lies.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1166442/+index?comments=all

First, try going to your terminal and type synclient and see if it returns your trackpad configuration. If so, what does VertTwoFingerScroll show? If it shows VertTwoFingerScroll=0 then run:

synclient VertTwoFingerScroll=1

See if it starts working. It's my understanding that xinput is obsolete.

If this makes it work then you need to study 50-synaptics.conf because this is the config file that makes the synclient settings on boot. This I understand rather well because I needed to do lots of synaptics modifications on the Yoga Pro 2 to make it useable. The trackpad kernel problem on 14.10 for the Yoga 2 Pro is that PalmDetect does not work. It can be fixed by a kernel patch. I should be able to help you get the configuration file working. It's pretty cryptic.

You kind of need to know how to work with synclient and 50-synaptics.conf if you want to get the most out of your trackpad and fine tune settings.

If it doesn't work, I believe is a deep dark kernel problem with the Elantech hardware and it does not recognize it. From what the link above alluded to, try installing an older version of Ubuntu and see if the trackpad works. I think this would prove the kernel regression theory.

You could try the kernel patch in the above link on 14.10. You have been messing with a lot of configuration so if you are going to go through the trouble of a kernel patch I would do a fresh install of 14.10. Study the bug report in detail because I think the kernel patch came from the bug report originally. There are very recent posts in the bug report and successful patch implementations.

| improve this answer | | | | |
  • Running synclient returns Couldn't find synaptics properties. No synaptics driver loaded?. This is probably because I don't have a synaptics trackpad. The instructions in that link don't apply to me, since I already have the 3.16 kernel, and it already has the appropriate patch (see my comments to the answer here that suggests patching the psmouse module). – Jonathan Jan 10 '15 at 19:54
  • To confirm, never had an Elantech before. However, I believe they use synaptics drivers. I Googled a bit and synclient and synaptics configuration is used with Elantech. Here's an exampe of many. askubuntu.com/questions/190700/… Synaptics drivers and synclient are in the distro by default. I think with all the experimenting you have done you have hosed your OS. I think you should start over and re-install the latest 14.10 Ubuntu. Then try the synclient exercise again. Don't do a complete, just a basic install. – Mark Jan 10 '15 at 21:00
  • Elantech uses synaptics drivers. wiki.debian.org/DebianEeePC/HowTo/ElantechTouchpad It certainly won't work if you don't have synaptics drivers on your install. – Mark Jan 10 '15 at 21:16
-1

Try the following as mentioned in this thread:

Open your /etc/X11/xorg.conf.d/10-evdev.conf and comment out this paragraph with #s:

#Section "InputClass"
#        Identifier "evdev touchpad catchall"
#        MatchIsTouchpad "on"
#        MatchDevicePath "/dev/input/event*"
#        Driver "evdev"
#EndSection

Now create a file called /etc/X11/xorg.conf.d/10-synaptics.confwith the following content in it:

Section "Module"
    Load    "synaptics"
EndSection

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
    Option "VertEdgeScroll" "on"
EndSection

Now log out, and log in again. Restart if you dont mind. Then you can try running these commands:

synclient VertTwoFingerScroll=1
synclient HorizTwoFingerScroll=0 #or 1 if you need it
synclient EmulateTwoFingerMinY=5
synclient EmulateTwoFingerMinZ=48

And check if two finger scroll works.

If it does, you have to find a way of running the above lines every time you log into the GUI.

| improve this answer | | | | |
  • I get the error message: Couldn't find synaptics properties. No synaptics driver loaded? – Jonathan Oct 24 '14 at 21:00
  • try sudo apt-get install xserver-xorg-input-synaptics – SiddharthaRT Oct 24 '14 at 21:02
  • it says I have the latest version. – Jonathan Oct 24 '14 at 21:07
  • Edited the answer. Try the whole thing if you can. – SiddharthaRT Oct 24 '14 at 21:19
  • I don't have an /etc/X11/xorg.conf.d directory or a 10-evdev.conf. – Jonathan Oct 25 '14 at 12:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.