How to get Linux to recognize an unidentified touchpad

inputlaptoptouchpadx11

The Lenovo Yoga 720 has a touchpad that shows up in lsusb with a bus ID of 06cb:0081. 06cb is the vendor ID for Synaptics. A quick Google search for the that string brings no results except other people trying to get the touchpad working on the 720.

This leads me to believe that this is a new device. This machine only came out a couple of months ago and is probably not listed in whatever table of device IDs that libinput or some other driver uses to match devices up with their features. I would think that a generic mouse module would of provided some functionality, but this is not the case.

Is there a place where I can tell Linux to match up that bus ID with the touchpad driver? From the reading I have done about this, it seems like touchpad drivers are usually done outside of the kernel level and though the X server, and through libinput using uinput.

So if anyone has any ideas or suggestions please share them.

Some other details:

The only place anything touchpad related seems to appear is lsusb:

 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 13d3:5621 IMC Networks 
Bus 001 Device 004: ID 06cb:0081 Synaptics, Inc. 
Bus 001 Device 003: ID 0cf3:e300 Qualcomm Atheros Communications 
Bus 001 Device 007: ID 046d:c245 Logitech, Inc. G400 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The output of xinput –list is:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Wacom HID 50F8 Finger                     id=12   [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G400                id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
   ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
   ↳ Power Button                              id=6    [slave  keyboard (3)]
   ↳ Video Bus                                 id=7    [slave  keyboard (3)]
   ↳ Video Bus                                 id=8    [slave  keyboard (3)]
   ↳ Power Button                              id=9    [slave  keyboard (3)]
   ↳ EasyCamera                                id=10   [slave  keyboard (3)]
   ↳ Wacom HID 50F8 Pen                        id=11   [slave  keyboard (3)]
   ↳ Ideapad extra buttons                     id=13   [slave  keyboard (3)]
   ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]

The output of cat /proc/bus/input/devices is

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

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/PNP0A08:00/device:17/PNP0C0D:00/input/input1
U: Uniq=
H: Handlers=event1  
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/input2                              
U: Uniq=                                                                                       
H: Handlers=kbd event2                                                                         
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/input3
U: Uniq=
H: Handlers=kbd event3  
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Ideapad extra buttons"
P: Phys=ideapad/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/input/input4
U: Uniq=
H: Handlers=kbd rfkill event4  
B: PROP=0
B: EV=13
B: KEY=101400800100c03 400000000300000 0 2
B: MSC=10

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/device:00/LNXVIDEO:00/input/input5
U: Uniq=
H: Handlers=kbd event5  
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

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:01/input/input6
U: Uniq=
H: Handlers=kbd event6  
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input7
U: Uniq=
H: Handlers=kbd event7  
B: PROP=0
B: EV=40001
B: SND=6

I: Bus=0018 Vendor=056a Product=50f8 Version=0100
N: Name="Wacom HID 50F8 Pen"
P: Phys=i2c-WCOM50F8:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-21/i2c-WCOM50F8:00/0018:056A:50
F8.0002/input/input8
U: Uniq=
H: Handlers=event8 mouse0  
B: PROP=2
B: EV=1b
B: KEY=1c03 0 0 0 0 0
B: ABS=1000003
B: MSC=1

I: Bus=0018 Vendor=056a Product=50f8 Version=0100
N: Name="Wacom HID 50F8 Finger"
P: Phys=i2c-WCOM50F8:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-21/i2c-WCOM50F8:00/0018:056A:50
F8.0002/input/input9
U: Uniq=
H: Handlers=event9 mouse1  
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003

I: Bus=0003 Vendor=13d3 Product=5621 Version=1611
N: Name="EasyCamera"
P: Phys=usb-0000:00:14.0-8/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input11
U: Uniq=
H: Handlers=kbd event10  
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

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:1f.3/sound/card0/input12
U: Uniq=
H: Handlers=event11  
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:1f.3/sound/card0/input13
U: Uniq=
H: Handlers=event12  
B: PROP=0
B: EV=21
B: SW=4

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

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

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

Best Answer

If it's a synaptics touchpad, you could give the synaptics driver a chance. Install it with:

$ sudo pacman -S xf86-input-synaptics

You can then copy over the default configuration file to make use of it:

$ cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf

This is what helped me in a similar case. Source: Arch linux wiki

The section Touchpad device is not located at /dev/input/* has helped me too.

Related Question