2

My touchpad is being recognized as a generic mouse and it's creating a lot of problems with just everyday things. I've tried several distros including Ubuntu (16.04, 16.10, 17.04), Arch and currently Manjaro.

I can't zoom and when I go to type in anything, the slightest touch will result in the touchpad recognizing a click, stealing focus away from what I was doing. On my previous model, I could disable that by setting maxTapTime=0.

I'm using a Acer Aspire V5-573G. Is there anyway of getting the system to recognize the touchpad as a touchpad and not a mouse? From what I've read, I may have to wait for the kernel to add support. If that's the case, how do I encourage it? Is it possible for me to write my own drivers and if so, could someone point me in the right direction? Thanks in advance!

I've provided some outputs but I'm not sure if that's enough so please let me know if I'm missing anything.

uname -a

Linux brandyn-laptop 4.9.20-1-MANJARO #1 SMP PREEMPT Fri Mar 31 17:49:34 UTC 2017 x86_64 GNU/Linux

xinput

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ImPS/2 Generic Wheel Mouse                id=13   [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)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ HD WebCam                                 id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=14   [slave  keyboard (3)]

lspci

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)
04:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
05:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
05:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 14)

udevadm info -q path -n /dev/input/event16

/devices/platform/i8042/seriol/input/input9/event16
2
  • Your touchpad isn't listed under lspci. To identify it, please execute xinput list-props 13 | grep /dev/input/event, where 13 is the id of your mouse, and edit your question with the output of udevadm info -q path -n /dev/input/eventX, where X is the number you see in the output if the first command. – dirkt Apr 16 '17 at 15:38
  • I've added the output of udevadm info -q path -n /dev/input/event16 – GoodPie Apr 17 '17 at 1:07
1

You have a touchpad connected to the PS/2 mouse port (Linux driver i8042, named after the original chip), which is why it's auto-detected as a generic mice.

Try using the synaptics driver (packages xf86-input-synaptics, xserver-xorg-input-synaptics etc. depending on distro) driver, as recommended e.g. here.

Look in /dev/input/by-path/ and identify the symlink that is similar to the device path you just found, and links to your current /dev/input/eventX for the touchpad. The numbers for input devices are not guaranteed to be stable across boots (though they often are), so it's better to use such a symlink.

Make a xorg.conf file (standard path is /etc/X11/xorg.conf) with the following section

Section "InputClass"
   Identifier "touchpad"
   Driver "synaptics"
   MatchIsTouchpad "1"
   MatchDevicePath "/dev/input/by-path/path_to_your_touchpad"
EndSection

Add Option parameters to configure it. Look at /var/log/Xorg.0.log after restarting X or rebooting to see if everything works.

Read the driver man page and google for "linux synaptics driver" etc. for more information.

Edit:

If there's no symlink /dev/input/by-path on the number does change on reboot, try /dev/input/by-id. If this doesn't work, either, you need a udev rule. Do

udevadm info -a -p /devices/platform/i8042/seriol/input/...

with the current path, this will walk up the path tree and show attributes you can use to identify it. Make a new udev rule file, on my system it would be something like /etc/udev/rules.d/70-acer-touchpad.rules, and your rule will probably look something like

ACTION=="add", SUBSYSTEMS=="serio", ATTRS{foo}=="foo", ATTRS{bar}="bar", SYMLINK+="input/by-id/acer-touchpad"

Details depend on your systen and the attributes you see, and will need tweaking until it works. Google "write udev rule" for tutorials etc., and man udevadm.

Edit

According to the udevadm output,

looking at parent device '/devices/platform/i8042/serio1/input/input7':
  KERNELS=="input7"
  SUBSYSTEMS=="input"
  DRIVERS==""
  ATTRS{name}=="ImPS/2 Generic Wheel Mouse"
  ATTRS{phys}=="isa0060/serio1/input0"
  ATTRS{properties}=="1"
  ATTRS{uniq}==""

looking at parent device '/devices/platform/i8042/serio1':
  KERNELS=="serio1"
  SUBSYSTEMS=="serio"
  DRIVERS=="psmouse"
  ATTRS{bind_mode}=="auto"
  ATTRS{description}=="i8042 AUX port"
  ATTRS{firmware_id}==""
  ATTRS{protocol}=="ImPS/2"
  ATTRS{rate}=="100"
  ATTRS{resetafter}=="5"
  ATTRS{resolution}=="200"
  ATTRS{resync_time}=="0"

I'd try ATTRS{phys}=="isa0060/serio1/input0" first. Maybe you need to change SUBSYSTEMS=="serio" to SUBSYSTEMS=="input" if it doesn't work.

2
  • Unfortunately, I don't appear to have a symlink and setting it to the /dev/input/eventX doesn't work because it changes pretty much every time I reboot. pastebin.com/Zg0182MY Is there a way to manually create the symlink to always point to the correct input? – GoodPie Apr 17 '17 at 10:37
  • So based on the output of udevadm info -a -p /devices/platform/i8042/serio1/input/input7/event13 (current input and event numbers), I get something like this and based on that, I should change the attributes foo and bar to the attributes seen in the pastebin? – GoodPie Apr 18 '17 at 7:35

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.