Bug 97147

Summary: Touchpad not recognized as clickpad, cannot force the setting
Product: Wayland Reporter: yakity.1
Component: libinputAssignee: Benjamin Tissoires <benjamin.tissoires>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: peter.hutterer, yakity.1
Version: 1.2.x   
Hardware: x86 (IA32)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=104091
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 104091    
Attachments: evemu-describe output
Output of dmesg
0001-Force-the-HP-Stream-11-touchpad-as-a-clickpad.patch
udevadm test output after patch

Description yakity.1 2016-07-30 15:46:54 UTC
Created attachment 125438 [details]
evemu-describe output

In my HP Stream 11 there is a clickpad (button under the trackpad). The property INPUT_PROP_BUTTONPAD somehow isn't set for this device.

In X.org I use the following configuration in:
/usr/share/X11/xorg.conf.d/50-synaptics.conf

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
	Option "ClickPad" "true"
	[..]
      
EndSection

There doesn't seem to be such an option for libinput. Because of this I cannot use the clickpad properly. For example right click doesn't work, or drag and drop with pressing with one finger and moving with another.
Comment 1 Peter Hutterer 2016-08-01 05:13:27 UTC
punting to benjamin, this is a kernel bug. Please attach your dmesg here, thanks.
Comment 2 Benjamin Tissoires 2016-08-01 09:00:33 UTC
In this (long) thread[1], I think we realized the HP Stream 11 is using hid-rmi and there was a new addition to do on the driver side.
This thread was from Dec 2014 so I think we must have fixed this particular issue.

However on the recordings of that time and yours, non show the INPUT_PROP_BUTTONPAD property, so there must be something there :(

I'll reach out to Synaptics to know if this is already taken care of.

[1] http://www.spinics.net/lists/linux-input/msg34954.html
Comment 3 yakity.1 2016-08-01 18:45:31 UTC
Created attachment 125467 [details]
Output of dmesg

As requested I added the output of dmesg to this bug.
Comment 4 Peter Hutterer 2016-08-08 04:44:57 UTC
Closing since it's not a libinput bug, please update this bug though with the kernel patch when it has landed.
Comment 5 Benjamin Tissoires 2016-08-08 06:52:22 UTC
[sorry for the delay, personal reasons interfered]

So Synaptics knows the reason why the bit is not set. It looks like there is already 2 patch series which will fix it, but the fact that the merge window for v4.8 was opened did not help including new code.

It should be fixed in a few kernel releases at most.
Comment 6 yakity.1 2016-08-08 20:41:44 UTC
Thanks! Great to know this longstanding issue will be fixed. Would it make sense to still have an option to manually force the clickpad behavior as is possible in X.org libinput? In case there is such a synaptic bug in the future it can be easily worked around like I have been doing with X.org for a while but today cannot do with libinput
Comment 7 Peter Hutterer 2016-08-08 23:40:21 UTC
Not something we'll be adding a toggle for, sorry. If it's missing from the kernel it's a device driver bug and should be handled there, otherwise we're just stacking workarounds on top of bugs and never see the end of it.

This used to be a config option in the synaptics driver because we didn't have the kernel property back then but it's superfluous now.
Comment 8 Peter Hutterer 2016-08-18 00:17:04 UTC
Reopening, we need a fix for this in libinput, the kernel fixes are too fare away into the future
Comment 9 Peter Hutterer 2016-08-18 00:31:01 UTC
sigh, ubuntu still hasn't updated evemu...

Please run the touchpad-edge-detector so I have all the information I actually need for this bug, thanks.
Comment 10 yakity.1 2016-08-18 08:22:50 UTC
Touchpad SYN1EDE:00 06CB:7442 on /dev/input/event10
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [1..4008], y [1..2266]
Touchpad sends:	x [11..4008], y [3..2266] /|-/\
Touchpad sends:	x [11..4008], y [3..2266] \^C

Touchpad size as listed by the kernel: 91x52mm
Calculate resolution as:
	x axis: 4007/<width in mm>
	y axis: 2265/<height in mm>

Suggested udev rule:
# HP Stream 11 d085nd
evdev:name:SYN1EDE:00 06CB:7442:dmi:bvnInsyde:bvrF.08:bd12/26/2014:svnHewlett-Packard:pnHPStreamNotebookPC11:pvrType1-ProductConfigId:rvnHewlett-Packard:rn8023:rvr54.12:cvnHewlett-Packard:ct10:cvrChassisVersion:*
 EVDEV_ABS_00=11:4008:<x resolution>
 EVDEV_ABS_01=3:2266:<y resolution>
 EVDEV_ABS_35=11:4008:<x resolution>
 EVDEV_ABS_36=3:2266:<y resolution>
Comment 11 Peter Hutterer 2016-08-19 00:29:39 UTC
Created attachment 125896 [details] [review]
0001-Force-the-HP-Stream-11-touchpad-as-a-clickpad.patch

Give this one a try please. Since it includes a hwdb update please make sure you follow the instructions here: https://wayland.freedesktop.org/libinput/doc/latest/faq.html

you don't actually need to reboot for just basic testing, building the git repo and running sudo ./tools/event-debug afterwards is enough to verify if it works.
Comment 12 yakity.1 2016-08-21 10:28:33 UTC
Unfortunately I'm not too experienced with development and compiling. Do you have a link to generic instructions on how to install the patch you supplied? Currently I have everything installed from binaries.
Comment 13 Peter Hutterer 2016-08-21 21:16:25 UTC
https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html

Once you have the git repo you can apply the patch with git am <patchfile> and the proceed to the build.
Comment 14 Peter Hutterer 2016-08-31 00:24:15 UTC
Ping?
Comment 15 yakity.1 2016-08-31 21:02:03 UTC
Hi Peter,

I really appreciate the effort that has gone into this, but unfortunately I couldn't manage to install this. I'm not experienced at all with git and compiling... I'll have to wait for this to find it's way into a binary....
Comment 16 yakity.1 2016-08-31 21:09:08 UTC
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4 ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:42: installing './compile'
configure.ac:27: installing './install-sh'
configure.ac:27: installing './missing'
src/Makefile.am:1: error: Libtool library used but 'LIBTOOL' is undefined
src/Makefile.am:1:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
src/Makefile.am:1:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
src/Makefile.am:1:   If 'LT_INIT' is in 'configure.ac', make sure
src/Makefile.am:1:   its definition is in aclocal's search path.
src/Makefile.am: installing './depcomp'
test/Makefile.am:12: error: Libtool library used but 'LIBTOOL' is undefined
test/Makefile.am:12:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
test/Makefile.am:12:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
test/Makefile.am:12:   If 'LT_INIT' is in 'configure.ac', make sure
test/Makefile.am:12:   its definition is in aclocal's search path.
parallel-tests: installing './test-driver'
tools/Makefile.am:3: error: Libtool library used but 'LIBTOOL' is undefined
tools/Makefile.am:3:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
tools/Makefile.am:3:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
tools/Makefile.am:3:   If 'LT_INIT' is in 'configure.ac', make sure
tools/Makefile.am:3:   its definition is in aclocal's search path.
autoreconf: automake failed with exit status: 1


This is what I am stuck at
Comment 17 yakity.1 2016-08-31 21:24:59 UTC
So I feel a bit stupid. I had to install the libtool package. However, now I'm at the next roadblock.

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4 ${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:42: installing './compile'
configure.ac:27: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc option to accept ISO C99... none needed
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking for grep that handles long lines and -e... (cached) /bin/grep
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert i686-pc-linux-gnu file names to i686-pc-linux-gnu format... func_convert_file_noop
checking how to convert i686-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether EPOLL_CLOEXEC is declared... yes
checking whether TFD_CLOEXEC is declared... yes
checking whether CLOCK_MONOTONIC is declared... yes
checking whether static_assert is declared... yes
./configure: line 16373: syntax error near unexpected token `PKG_CHECK_MODULES'
./configure: line 16373: `PKG_CHECK_MODULES(MTDEV, mtdev >= 1.1.0)'


I have the packages libmtdev1 and libmtdev-dev installed. The version number is 1.1.5, a pack mtdev does not exist in the ubuntu repository, so I think I have the correct ones.
Comment 18 Peter Hutterer 2016-08-31 23:18:08 UTC
run "apt-get build-dep libinput" and that should give you all the dependencies you need.
Comment 19 Peter Hutterer 2016-09-01 01:32:56 UTC
pushed this out now and closing as fixed. would be great if you can still verify it works but the easiest approach for you may be to pester your distro maintainers to backport the fix

commit 64c8939911ef1c625119131bcfef2c6699106af1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Aug 30 17:51:30 2016 +1000

    evdev: add quirk for the HP85810 touchpad
Comment 20 Peter Hutterer 2016-09-01 01:35:11 UTC
sorry, confused the bugs here
Comment 21 yakity.1 2016-09-01 12:12:20 UTC
Compilation was successful now. The patch however does not yet work.

There is a new file in /usr/lib/udev/hwdb.d/90-libinput-model-quirks.hwdb which contains the HP Stream 11 specific patch, so I think the installation was successful too.

However, the buttonpad property is still not set.

evemu-describe output:
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	Video Bus
/dev/input/event5:	HP Wireless hotkeys
/dev/input/event6:	HDA Intel PCH Mic
/dev/input/event7:	HDA Intel PCH Headphone
/dev/input/event8:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event9:	HP Truevision HD
/dev/input/event10:	SYN1EDE:00 06CB:7442
/dev/input/event11:	HP WMI hotkeys
Select the device event number [0-11]: 10
# EVEMU 1.2
# Input device name: "SYN1EDE:00 06CB:7442"
# Input device ID: bus 0x18 vendor 0x6cb product 0x7442 version 0x100
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 328 (BTN_TOOL_QUINTTAP)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   1005
#       Min        1
#       Max     4008
#       Fuzz       0
#       Flat       0
#       Resolution 44
#     Event code 1 (ABS_Y)
#       Value   1418
#       Min        1
#       Max     2266
#       Fuzz       0
#       Flat       0
#       Resolution 43
#     Event code 24 (ABS_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 47 (ABS_MT_SLOT)
#       Value      0
#       Min        0
#       Max        4
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 48 (ABS_MT_TOUCH_MAJOR)
#       Value      0
#       Min        0
#       Max       15
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 49 (ABS_MT_TOUCH_MINOR)
#       Value      0
#       Min        0
#       Max       15
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 52 (ABS_MT_ORIENTATION)
#       Value      0
#       Min        0
#       Max        1
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min        1
#       Max     4008
#       Fuzz       0
#       Flat       0
#       Resolution 44
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min        1
#       Max     2266
#       Fuzz       0
#       Flat       0
#       Resolution 43
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 58 (ABS_MT_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
N: SYN1EDE:00 06CB:7442
I: 0018 06cb 7442 0100
P: 01 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 03 00 00 00 00 00
B: 01 20 e5 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 01 00 80 73 06
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 1 4008 0 0 44
A: 01 1 2266 0 0 43
A: 18 0 255 0 0 0
A: 2f 0 4 0 0 0
A: 30 0 15 0 0 0
A: 31 0 15 0 0 0
A: 34 0 1 0 0 0
A: 35 1 4008 0 0 44
A: 36 1 2266 0 0 43
A: 39 0 65535 0 0 0
A: 3a 0 255 0 0 0


sudo udevadm test /sys/class/input/event10 output:
calling: test
version 229
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          229
file size:         7058303 bytes
header size             80 bytes
strings            1762191 bytes
nodes              5296032 bytes
Load module index
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
timestamp of '/lib/udev/rules.d' changed
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /lib/udev/rules.d/40-bridge-network-interface.rules
Reading rules file: /lib/udev/rules.d/40-crda.rules
Reading rules file: /lib/udev/rules.d/40-iio-sensor-proxy.rules
Reading rules file: /lib/udev/rules.d/40-libsane.rules
Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
Reading rules file: /lib/udev/rules.d/50-apport.rules
Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
Reading rules file: /lib/udev/rules.d/50-firmware.rules
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/55-Argyll.rules
IMPORT found builtin 'usb_id --export %p', replacing /lib/udev/rules.d/55-Argyll.rules:110
Reading rules file: /lib/udev/rules.d/56-hpmud.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-gnupg.rules
Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
Reading rules file: /lib/udev/rules.d/60-inputattach.rules
Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-qemu-system-common.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /lib/udev/rules.d/60-virtualbox-dkms.rules
Reading rules file: /lib/udev/rules.d/60-virtualbox.rules
Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules
Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
Reading rules file: /lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules
Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /lib/udev/rules.d/69-libmtp.rules
Reading rules file: /lib/udev/rules.d/69-wacom.rules
Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules
Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-power-switch.rules
Reading rules file: /lib/udev/rules.d/70-printers.rules
Reading rules file: /lib/udev/rules.d/70-uaccess.rules
Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
Reading rules file: /lib/udev/rules.d/71-seat.rules
Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Reading rules file: /lib/udev/rules.d/73-seat-late.rules
Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules
Reading rules file: /lib/udev/rules.d/80-udisks2.rules
Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib/udev/rules.d/85-brltty.rules
Reading rules file: /lib/udev/rules.d/85-hdparm.rules
Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib/udev/rules.d/85-regulatory.rules
Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /lib/udev/rules.d/90-libgpod.rules
Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /lib/udev/rules.d/95-osinfo.rules
Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /lib/udev/rules.d/99-systemd.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 34736 bytes strings
24271 strings (204191 bytes), 20762 de-duplicated (172965 bytes), 3510 trie nodes used
value '[dmi/id]sys_vendor' is 'Hewlett-Packard'
value '[dmi/id]sys_vendor' is 'Hewlett-Packard'
IMPORT builtin 'input_id' /lib/udev/rules.d/50-udev-default.rules:14
capabilities/ev raw kernel attribute: b
capabilities/abs raw kernel attribute: 6738000 1000003
capabilities/rel raw kernel attribute: 0
capabilities/key raw kernel attribute: e520 0 30000 0 0 0 0 0 0 0 0
properties raw kernel attribute: 1
test_key: checking bit block 0 for any keys; found=0
test_key: checking bit block 32 for any keys; found=0
test_key: checking bit block 64 for any keys; found=0
test_key: checking bit block 96 for any keys; found=0
test_key: checking bit block 128 for any keys; found=0
test_key: checking bit block 160 for any keys; found=0
test_key: checking bit block 192 for any keys; found=0
test_key: checking bit block 224 for any keys; found=0
GROUP 106 /lib/udev/rules.d/50-udev-default.rules:30
IMPORT builtin 'hwdb' /lib/udev/rules.d/60-evdev.rules:8
IMPORT builtin 'hwdb' returned non-zero
value '[dmi/id]modalias' is 'dmi:bvnInsyde:bvrF.08:bd12/26/2014:svnHewlett-Packard:pnHPStreamNotebookPC11:pvrType1-ProductConfigId:rvnHewlett-Packard:rn8023:rvr54.12:cvnHewlett-Packard:ct10:cvrChassisVersion:'
IMPORT builtin 'hwdb' /lib/udev/rules.d/60-evdev.rules:17
IMPORT builtin 'hwdb' returned non-zero
IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-input.rules:31
LINK 'input/by-path/platform-80860F41:00-event-mouse' /lib/udev/rules.d/60-persistent-input.rules:33
value '[dmi/id]product_name' is 'HP Stream Notebook PC 11'
value '[dmi/id]product_name' is 'HP Stream Notebook PC 11'
value '[dmi/id]product_name' is 'HP Stream Notebook PC 11'
value '[dmi/id]product_name' is 'HP Stream Notebook PC 11'
PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6
starting '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules'
Process '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' failed with exit code 1.
handling device node '/dev/input/event10', devnum=c13:74, mode=0660, uid=0, gid=106
preserve permissions /dev/input/event10, 020660, uid=0, gid=106
preserve already existing symlink '/dev/char/13:74' to '../input/event10'
found 'c13:74' claiming '/run/udev/links/\x2finput\x2fby-path\x2fplatform-80860F41:00-event-mouse'
creating link '/dev/input/by-path/platform-80860F41:00-event-mouse' to '/dev/input/event10'
preserve already existing symlink '/dev/input/by-path/platform-80860F41:00-event-mouse' to '../event10'
created db file '/run/udev/data/c13:74' for '/devices/platform/80860F41:00/i2c-8/i2c-SYN1EDE:00/0018:06CB:7442.0001/input/input11/event10'
.INPUT_CLASS=mouse
ACTION=add
DEVLINKS=/dev/input/by-path/platform-80860F41:00-event-mouse
DEVNAME=/dev/input/event10
DEVPATH=/devices/platform/80860F41:00/i2c-8/i2c-SYN1EDE:00/0018:06CB:7442.0001/input/input11/event10
ID_INPUT=1
ID_INPUT_HEIGHT_MM=52
ID_INPUT_TOUCHPAD=1
ID_INPUT_TOUCHSCREEN=1
ID_INPUT_WIDTH_MM=91
ID_PATH=platform-80860F41:00
ID_PATH_TAG=platform-80860F41_00
ID_SERIAL=noserial
MAJOR=13
MINOR=74
SUBSYSTEM=input
USEC_INITIALIZED=15809508
Unload module index
Unloaded link configuration context.
Comment 22 Peter Hutterer 2016-09-01 22:29:31 UTC
Please attach anything that's that long as files, it's a lot easier to open
three tabs to compare than having to scroll up/down while commenting.

(In reply to yakity.1 from comment #21)
> Compilation was successful now. The patch however does not yet work.
> 
> There is a new file in /usr/lib/udev/hwdb.d/90-libinput-model-quirks.hwdb
> which contains the HP Stream 11 specific patch, so I think the installation
> was successful too.

The udevadm output doesn't list the
/lib/udev/rules.d/90-libinput-model-quirks.rules file. Did it get
installed? Even the one from your system package should be fine, it hasn't
changed much.

also, just in case: you'll need to run sudo udevadm hwdb --update after
installation, otherwise it won't toggle. see
https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_hwdfaq_hwdb_changes

> However, the buttonpad property is still not set.

we can't actually set this in the kernel device, there are no ioctls for
this. what we do is set a LIBINPUT_MODEL tag that libinput recognises and
works around. that ag won't show up in evemu, but it will show up in the
udevadm info output.
Comment 23 yakity.1 2016-09-06 18:40:44 UTC
Created attachment 126252 [details]
udevadm test output after patch

Hi!

I copied some files from /usr/lib/udev to /lib/udev. It seems the installation instructions will install into the wrong directory.

The udevadm output now seems to pick up the change, see attachment. However, using Gnome on Wayland I can still not use my touchpad as a clickpad. Is this normal?

Thanks!
Comment 24 Peter Hutterer 2016-09-07 02:02:21 UTC
(In reply to yakity.1 from comment #23)
> The udevadm output now seems to pick up the change, see attachment. 

yep, that looks good now

> using Gnome on Wayland I can still not use my touchpad as a clickpad. Is
> this normal?

is gnome picking up the same libinput? run libinput-debug-events as root and see if that works, if so then the rest is just a matter of getting all the required bits in the correct places.
Comment 25 Peter Hutterer 2016-09-07 03:31:59 UTC
pushed and closing, easiest will probably be to wait until it trickles down to your distro

commit 18adfed4c14ae21d55164350d9f9e0a8b6142430
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 18 10:48:31 2016 +1000

    Force the HP Stream 11 touchpad as a clickpad
Comment 26 Peter Hutterer 2016-09-14 01:23:51 UTC
follow-up commit because of a typo:

commit f43a072d2c7ea87a2430c373765190f785e57fa0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 14 11:21:55 2016 +1000

    udev: fix hwdb match for the HP Stream 11

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.