Re: Touchpad multitouch leaves ghost fingers
flat view
From: Benjamin Tissoires <bentiss@kernel.org>
Date: 2025-09-24 08:44:13
Also in:
lkml
On Sep 24 2025, Yinon Burgansky wrote:
On Tue, Sep 23, 2025 at 7:30 PM Benjamin Tissoires [off-list ref] wrote:quoted
Got something out with https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/204 that seems to solve your case on the hid-recorder you provided.Thank you so much! The install command didn't work properly for me:$ ./install.sh "*DLL0945*" $ tree /usr/local/lib/firmware /usr/local/lib/firmware └── hid └── bpf └── 0011-Synaptics__DLL0945.bpf.o $ reboot $ sudo tree /sys/fs/bpf /sys/fs/bpf 0 directories, 0 files
oops, yes, my bad. I forgot to put the correct group on the device (multitouch_win_8 instead of generic). I've force pushed a new version, so please redownload and reinstall it.
I tried to add it manually and it seems to work now :)$ sudo udev-hid-bpf add /sys/bus/hid/devices/0018:06CB:CE26.0005 /usr/local/lib/firmware/hid/bpf/0011-Synaptics__DLL0945.bpf.o $ sudo tree /sys/fs/bpf /sys/fs/bpf └── hid └── 0018_06CB_CE26_0005 └── 0011-Synaptics__DLL0945_bpf └── synaptics_dll0945 4 directories, 1 fileBut I have to do it manually every time. Not sure what's wrong, maybe the added udev rule:$ cat /etc/udev/rules.d/81-hid-bpf.rules ACTION!="add|remove|bind", GOTO="hid_bpf_end" SUBSYSTEM!="hid", GOTO="hid_bpf_end" # We lookup the hwdb during bind to set the property, but we don't do anything else IMPORT{builtin}="hwdb --subsystem=hid --lookup-prefix=hid-bpf:" #ACTION=="add", ENV{.HID_BPF}=="1", RUN{program}+="@@BINDIR@@/udev-hid-bpf add $sys$devpath" #MARKER ACTION=="add", ENV{.HID_BPF}=="1", RUN{program}+="/usr/local/bin/udev-hid-bpf add $sys$devpath" #ACTION=="remove", ENV{.HID_BPF}=="1", RUN{program}+="@@BINDIR@@/udev-hid-bpf remove $sys$devpath" #MARKER ACTION=="remove", ENV{.HID_BPF}=="1", RUN{program}+="/usr/local/bin/udev-hid-bpf remove $sys$devpath" LABEL="hid_bpf_end"
The udev rule is fine, the hwdb is not. If you look at /etc/udev/hwdb.d/81-hid-bpf-testing.hwdb you'll see that it shows: hid-bpf:hid:b0018g0001v000006CBp0000CE26 HID_BPF_T_002=0011-Synaptics__DLL0945.bpf.o .HID_BPF=1 But if you run `cat /sys/bus/hid/devices/0018:06CB:CE26.*/modalias` you'll see that you have something like: hid:b0018g0004v000006CBp0000CE26 the 'g0004' is not correct and therefore the qutobinding doesn't work :(
this is the udevadm info (after reboot, it is sometimes hidraw3 sometimes hidraw4):$ udevadm info --query=all --name=/dev/hidraw4 P: /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-DLL0945:00/0018:06CB:CE26.0005/hidraw/hidraw4 M: hidraw4 R: 4 J: c242:4 U: hidraw D: c 242:4 N: hidraw4 L: 0 E: DEVPATH=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-DLL0945:00/0018:06CB:CE26.0005/hidraw/hidraw4 E: DEVNAME=/dev/hidraw4 E: MAJOR=242 E: MINOR=4 E: SUBSYSTEM=hidraw E: USEC_INITIALIZED=3980846 E: ID_VENDOR_FROM_DATABASE=Dell Inc E: ID_PATH=pci-0000:00:15.1-platform-i2c_designware.1 E: ID_PATH_TAG=pci-0000_00_15_1-platform-i2c_designware_1 E: ID_FOR_SEAT=hidraw-pci-0000_00_15_1-platform-i2c_designware_1 E: TAGS=:seat: E: CURRENT_TAGS=:seat:Thank you for the quick fix, it seems to work great so far!
\o/. Now I need to make the kernel patch. Ideally I'd like you to test it, but worse case I can just replay the recording as it seems to be enough. Cheers, Benjamin