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
Jonathan
  • 7,470

5 Answers5

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

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

Vahid
  • 175
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.

Mark
  • 124
-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.

SiddharthaRT
  • 6,116