Ubuntu: Touchpad registers as pointer in X



Question:

I got a new ASUS K501U laptop and installed Ubuntu 16.04 on it. I'm running kernel 4.7 although I had the same issue in 4.3. Multitouch features like two-finger scrolling aren't working. The touchpad is an Elantech touchpad, and Ubuntu doesn't appear to support it beyond generic drivers.

I've played around a lot with the X configuration. If I set the driver to libinput or evdev, it doesn't seem to work with multitouch and synaptics throws errors. The device is named FTE1001:00 0B05:0101, which is the I2C address of the device, and X detects it as a pointer instead of a touchpad, which appears to be the issue. It seems like Ubuntu doesn't recognize the device and by default assumes it's a pointer. Therefore, how can I tell Ubuntu to recognize it as a touchpad, not a pointer? Is the configuration for this in X or udev?

To be clear, this works (in an x.conf.d file entry):

Section "InputClass"          Identifier "psmouse pointer catchall"          MatchIsPointer "on"          MatchDevicePath "/dev/input/event*"          Driver "evdev"  EndSection  

and this doesn't:

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

Additionally, when I upgraded my kernel to 4.7, I noticed that DKMS was having issues building the psmouse driver:

/var/lib/dkms/psmouse/elantech-x551c/build/src/cypress_ps2.c: In function ‘cypress_process_packet’:  /var/lib/dkms/psmouse/elantech-x551c/build/src/cypress_ps2.c:543:2: error: too few arguments to function ‘input_mt_assign_slots’    input_mt_assign_slots(input, slots, pos, n);  

I added a 0 as a fifth argument per the definition of input_mt_assign_slots from the Linux kernel multitouch library, and then DKMS seemed to build and install it correctly: psmouse elantech-x551c. However, if I set the driver to psmouse in the X config, X says it can't load the module (I don't even really understand what psmouse is for so that might be entirely naive). What relationship does the psmouse driver have to the drivers like evdev and libinput?

When I run xinput --list-props with my current setup, I get this:

Device 'FTE1001:00 0B05:0101':      Device Enabled (137):   1      Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000      Device Accel Profile (263): 0      Device Accel Constant Deceleration (264):   1.000000      Device Accel Adaptive Deceleration (265):   1.000000      Device Accel Velocity Scaling (266):    10.000000      Device Product ID (259):    2821, 257      Device Node (258):  "/dev/input/event14"      Evdev Axis Inversion (267): 0, 0      Evdev Axes Swap (269):  0      Axis Labels (270):  "Rel X" (147), "Rel Y" (148), "Rel Vert Wheel" (262)      Button Labels (271):    "Button Left" (140), "Button Unknown" (261), "Button Right" (142), "Button Wheel Up" (143), "Button Wheel Down" (144), "Button Horiz Wheel Left" (145), "Button Horiz Wheel Right" (146)      Evdev Scrolling Distance (272): 1, 1, 1      Evdev Middle Button Emulation (273):    0      Evdev Middle Button Timeout (274):  50      Evdev Third Button Emulation (275): 0      Evdev Third Button Emulation Timeout (276): 1000      Evdev Third Button Emulation Button (277):  3      Evdev Third Button Emulation Threshold (278):   20      Evdev Wheel Emulation (279):    0      Evdev Wheel Emulation Axes (280):   0, 0, 4, 5      Evdev Wheel Emulation Inertia (281):    10      Evdev Wheel Emulation Timeout (282):    200      Evdev Wheel Emulation Button (283): 4      Evdev Drag Lock Buttons (284):  0  

Which again seems to imply that Ubuntu is recognizing it as mouse instead of as a touchpad.

tl; dr Ubuntu doesn't recognize my Elantech touchpad and assumes it's a pointer instead of a touchpad.


Solution:1

I found something here:

First, if you aren’t sure your computer was built with an Elantech touchpad, open a terminal, and type the following:

cat /proc/bus/input/devices  

You should find a block containing a line looking like this one, which confirms you are on an Elantech touchpad:

N: Name="ETPS/2 Elantech Touchpad"  

Download this archive (from Ubuntu’s bug reporting page).

Open a terminal, and follow these steps (after [line] 4, you will have no mouse at all):

cd ~/Downloads  sudo dkms ldtarball psmouse-elantech-x551c.tar.gz  sudo dkms install -m psmouse -v elantech-x551c  sudo rmmod psmouse  sudo modprobe psmouse  

Enjoy multitouch!

Source: Elantech clickpad/touchpad lacks multitouch features

I have verified the links, they are from launchpad. Also, the biiiig number of comments suggests the page is genuine, although there is no WOT rating yet; if someone wants to rate the page on WOT, please do. If it is a negative rating, also inform me in the comments, and I will delete this answer until I find another source.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »