lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <jm3z5dcgw66lzh5bbhnitnchbvgnvuvrzxltghrsmwtmbg76jw@rcvcyjevjrmq>
Date: Wed, 24 Sep 2025 10:44:09 +0200
From: Benjamin Tissoires <bentiss@...nel.org>
To: Yinon Burgansky <yinonburgansky@...il.com>
Cc: jikos@...nel.org, linux-input@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: Touchpad multitouch leaves ghost fingers

On Sep 24 2025, Yinon Burgansky wrote:
> On Tue, Sep 23, 2025 at 7:30 PM Benjamin Tissoires <bentiss@...nel.org> wrote:
> > 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 file
> ```
> But 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ