Re: Requesting your attention and expertise regarding a Tablet/Kernel issue
From: Benjamin Tissoires <hidden>
Date: 2023-11-09 16:14:58
Also in:
lkml
Possibly related (same subject, not in this thread)
- 2023-11-09 · Re: Requesting your attention and expertise regarding a Tablet/Kernel issue · Benjamin Tissoires <hidden>
- 2023-11-08 · Re: Requesting your attention and expertise regarding a Tablet/Kernel issue · <hidden>
On Thu, Nov 9, 2023 at 12:56 PM Benjamin Tissoires [off-list ref] wrote:
Hi David, On Thu, Nov 9, 2023 at 1:32 AM David Revoy [off-list ref] wrote:quoted
Hi Benjamin,quoted
Alright, I made quite some progress so far: - regressions tests have been written (branch wip/xp-pen of my fork on freedesktop[0]) that branch can not go in directly as it just adds the tests, and thus is failing - I made the fixes through HID-BPF[1] Anyone using those 2 tablets and using Fedora should be able to just grab the artifact at [2], uncompress it and run `sudo ./install.sh --verbose`. This will install the bpf programs in /lib/firmware/hid/bpf/ and will automatically load them when the device is connected. For those not using Fedora, the binary might work (or not, not sure), but you can always decompress it, and check if running `udev-hid-bpf_0.1.0/bin/udev-hid-bpf --version` returns the correct version or just fails. If you get "udev-hid-bpf 0.1.0", then running `sudo ./install.sh --verbose` should work, as long as the kernel has CONFIG_HID_BPF set to 'Y'. [...] [0] https://gitlab.freedesktop.org/bentiss/hid/-/tree/wip/xp-pen?ref_type=heads [1] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/27 [2] https://gitlab.freedesktop.org/bentiss/udev-hid-bpf/-/jobs/51350589/artifacts/raw/udev-hid-bpf_0.1.0.tar.xzThank you for this package. I was able to test it even though the link in (2) at the bottom of your email returned a blank page. I was able to find my way after manually visiting gitlab.freedesktop.org [1] and then manually downloading the article from 51350589. I unzipped it and ran `sudo ./install.sh --verbose`. Everything looks like it was successful [2]. I then rebooted my Fedora 38 'Linux workstation 6.5.8-200.fc38.x86_64' kernel (the one I blamed in my post) and tested both tablets.Weird that you had to manually retrieve it. It works here, but maybe because I am logged in on gitlab.fd.o. Also, just FYI, you shouldn't have to reboot. Just unplug/replug and you are good. In the same way, if you uninstall the package, you can just unplug/replug to not have the programs loaded.
I've pushed an update of the file[0], turns out I made several mistakes.
As a general rule of thumb, you can follow the MR I've opened at [1],
click on the pipeline, open the last job ("make release"), then browse
the artifacts and pull the file from there.
quoted
Here are my observation: XPPEN Artist Pro 24 =================== Nothing changed for this device (it's the one with two buttons and no 'eraser tip'). Nor my hwdb/udev rules or `xsetwacom set "UGTABLET 24 inch PenDisplay eraser" button 1 3` affects the upper button of the stylus: if I hold it hover the canvas, Krita switch the tool and cursor for an eraser. If I click on the canvas with the pen tip while holding the upper button pressed, I get the right-click Pop-up Palette (but not all the time, probably Krita has hard time to triage Eraser or Right-click).As I mentioned in another reply, the more I think of it, the more I think I should get rid of the "eraser mode". In that Artist Pro 24 I can detect it through the same mechanics as the HID_QUIRK_NOINVERT from Illia's patch. But instead of trying to force the device into the eraser mode, we should just say "this is actually BUTTON_STYLUS_2". So I'm going to amend the bpf program to do this and hopefully you won't need the hwdb/udev rule at all.
I've fixed that one normally. There were a couple of issues: - the PID in use was the one from the pro 16 gen2, which explained why no change was appearing - I've now decided to not export the second button as an eraser, as mentioned above.
quoted
XPPEN Artist Pro 16 (Gen2) ========================== Something changed. `xsetwacom set "UGTABLET Artist Pro 16 (Gen2) eraser" button 1 3` successfully affected the upper button of the stylus. Now if I click it while hovering the canvas, Krita shows the right click Pop-up Palette.I'm surprised you need to teach the wacom driver that BTN_STYLUS_2 is the right click.quoted
On the downside; the real eraser tip when I flip the stylus bugs. When I flip the stylus on eraser hovering the canvas, Krita shows the Eraser icon and switch tool. As soon as I draw with the eraser tip, Krita will also show a right-click color palette and with also not a 100% consistency, as if the event were mixed.I'll investigate. Maybe I messed up with my event flow patch.
Definitely my mistake: both the bpf programs I wrote were attached to the same device. Thus, the 2 fixes were stacking on each other, leading to some interesting side effects. You can check that the bpf are properly loaded by having a look at the report descriptor when you replug the device: if you see "Secondary Barrel Switch" at offset 16 instead of "Eraser" on both of your tablets (with hid-recorder), you should have successfully patched your devices. Cheers, Benjamin
But just to be sure, you don't have a custom configuration in place for that tablet device?
[0] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/jobs/51399392/artifacts/file/udev-hid-bpf_0.1.0.tar.xz [1] https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/27