Touchpad Issues – Unknown ALPS Touchpad in Lenovo Ideapad Flex 15

synapticstouchpad

I just bought a Lenovo Ideapad Flex 15 and ripped Windows out of it to put Ubuntu 13.10 on. For other people with Ideapad Flex's, if you have the issue where Ubuntu loads with 0 brightness, try adding:

echo 85 > /sys/class/backlight/acpi_video0/brightness

before the 'exit 0' line of your /etc/rc.local file.

The only other problem I've noticed is that the touchpad drivers do not load and the touchpad reacts essentially as a simple mouse with left and right click, no scrolling and no multi-touch capabilities. The touchscreen seems to work fine, but I don't know what to really expect from a touchscreen in Ubuntu.

Here is my xinput:

freedom@flex15:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00 id=9    [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                        id=12   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=13   [slave  keyboard (3)]

My dmesg info on my touchpad/touchscreen:

freedom@flex15:~$ dmesg | grep -i touch
[    1.900295] usb 2-1: Product: eGalaxTouch EXC7910-1026-13.00.00
[   18.021041] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 0a, EC=88 b6 06
[   18.212564] input: eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00 as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/input/input5
[   18.212704] hid-multitouch 0003:0EEF:A111.0001: input,hiddev0,hidraw0: USB HID v2.10 Device [eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00] on usb-0000:00:14.0-1/input0

And if I try to use synaptiks for anything I get:

freedom@flex15:~$ synclient -l
Couldn't find synaptics properties. No synaptics driver loaded?

Also if I install synaptiks from the Ubuntu Software Centre, it installs okay but trying to launch synaptiks gives the error that no touchpad is detected.

Obviously Lenovo doesn't offer support unless you use Windows 8, but according to their website the touchpads are either made by Synaptics, Elantech or ALPS. After looking here: Mouse/Touchpad Settings for Samsung Series 9 in Ubuntu 13.04 I found a solution for Elantech touchpads, which I tried but had no effect. It looks like, from dmesg, that I have an ALPS touchpad. Also that the patch was already committed to an earlier kernel. I used these intructions:

http://ubuntuforums.org/showthread.php?t=2111236&p=12692065#post12692065

with no errors, but I still get the same outputs from dmesg, synclient and xinput. So from what I can gather, the touchpad drivers are not loaded? Or there is a lack of support for this laptop with the current version of Ubuntu. Could anyone advise please? Thank you.

Also

sudo modprobe psmouse

returns absolutely nothing.

The keyboard function to toggle the touchpad on and off works fine.

Update: I tried this guide for 13.04: http://linuxg.net/ubuntu-13-04-touchpad-option-does-not-exist-error-fix/ and it provided a bit of information in the terminal (everything went fine up until dkms autoinstall):

freedom@flex15:/var/lib/dkms/psmouse$ sudo dkms autoinstall

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=3.11.0-15-generic -C /lib/modules/3.11.0-15-generic/build M=/var/lib/dkms/psmouse/alps-1.3/build/src psmouse.ko....
cleaning build area....

DKMS: build completed.
Error! This module/version combo is already installed for kernel: 3.11.0-15-generic (x86_64)

Then running

sudo rmmod psmouse && modprobe psmouse

disables the touchpad functionality completely and returns

ERROR: could not insert 'psmouse': Operation not permitted

running

sudo modprobe psmouse && rmmod psmouse

returns basic touchpad functionality (movement, left/right click, no scrolling or multitouch) and outputs

libkmod: ERROR ../libkmod/libkmod-module.c:753 kmod_module_remove_module: could not remove 'psmouse': Operation not permitted
Error: could not remove module psmouse: Operation not permitted

All in all nothing has changed except dmesg, but not really:

freedom@flex15:/var/lib/dkms/psmouse$ dmesg | grep -i touch
[    1.422626] usb 2-1: Product: eGalaxTouch EXC7910-1026-13.00.00
[    8.683181] psmouse serio1: alps: Unknown ALPS touchpad: E7=73 03 0a, EC=88 b6 06
[    8.715623] input: eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00 as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/input/input5
[    8.715756] hid-multitouch 0003:0EEF:A111.0001: input,hiddev0,hidraw0: USB HID v2.10 Device [eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00] on usb-0000:00:14.0-1/input0
[ 2653.427571] usb 2-1: Product: eGalaxTouch EXC7910-1026-13.00.00
[ 2653.429091] input: eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00 as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/input/input15
[ 2653.429267] hid-multitouch 0003:0EEF:A111.0002: input,hiddev0,hidraw0: USB HID v2.10 Device [eGalax Inc. eGalaxTouch EXC7910-1026-13.00.00] on usb-0000:00:14.0-1/input0

and I'm still searching for a solution. Thank you very much for the help so far.

Best Answer

Your problem seems to be due to incomplete support for the newer ALPS v7 touchpads used in the Lenovo Flex series. A patch for the psmouse driver was created recently (http://www.spinics.net/lists/linux-input/msg29084.html), and here you can find a DKMS-version of the updated driver: https://github.com/he1per/psmouse-dkms-alpsv7

Try the following, in a terminal:

cd /tmp
git clone http://github.com/he1per/psmouse-dkms-alpsv7
cd psmouse-dkms-alpsv7
gedit install.sh &

Then replace the first line of the file install.sh by:

#!/bin/bash

And the modules directory location:

MDIR="/lib/modules/$(uname -r)"

because the modules are stored in /lib and not in /usr/lib in ubuntu

and save the file. Finally, run:

sudo ./install.sh

You'll get an error, but the driver does seem to get installed. After a reboot, dmesg reported:

input: AlpsPS/2 ALPS GlidePoint as /devices/platform/i8042/serio1/input/input7

and the touchpad on my Flex 14 worked as expected.

Related Question