~ »»» sudo udevadm /sys/bus/hid/devices/0003:28BD:0947.0004
Unknown command verb /sys/bus/hid/devices/0003:28BD:0947.0004.
~ »»» sudo udevadm /sys/bus/hid/devices/0003:28BD:0947.0004*
Unknown command verb /sys/bus/hid/devices/0003:28BD:0947.0004.
~ »»» udev-hid-bpf list-devices
devices:
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0006"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:046D:C52F.0003"
    name:         "Logitech USB Receiver"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x046D, 0xC52F)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0004"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:413C:2113.0007"
    name:         "Dell KB216 Wired Keyboard"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x413C, 0x2113)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000E"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
 -  syspath:      "/sys/bus/hid/devices/0003:046D:4057.0009"
    name:         "Logitech B330/M330/M3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_LOGITECH_DJ_DEVICE, 0x046D, 0x4057)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0005"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:046D:C52F.0002"
    name:         "Logitech USB Receiver"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x046D, 0xC52F)"
 -  syspath:      "/sys/bus/hid/devices/0003:413C:2113.0008"
    name:         "Dell KB216 Wired Keyboard"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x413C, 0x2113)"
 -  syspath:      "/sys/bus/hid/devices/0003:17A0:0310.0001"
    name:         "Samson Technologies Samson Meteor Mic"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x17A0, 0x0310)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000F"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000D"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
~ »»» sudo udevadm test /sys/bus/hid/devices/0003:28BD:0947.0004
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.

Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
=== trie on-disk ===
tool version:          252
file size:        13303849 bytes
header size             80 bytes
strings            2705537 bytes
nodes             10598232 bytes
Loading kernel module index.
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Using default interface naming scheme 'v252'.
Parsed configuration file "/usr/lib/systemd/network/99-default.link"
Parsed configuration file "/usr/lib/systemd/network/73-usb-net-by-mac.link"
Created link configuration context.
Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/55-Argyll.rules
/usr/lib/udev/rules.d/55-Argyll.rules:139 Found builtin command 'usb_id --export %p' for IMPORT, replacing attribute
Reading rules file: /usr/lib/udev/rules.d/55-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-ddcutil.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-i2c-tools.rules
Reading rules file: /usr/lib/udev/rules.d/60-infiniband.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /usr/lib/udev/rules.d/60-libopenni2-0.rules
Reading rules file: /usr/lib/udev/rules.d/60-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules
Reading rules file: /usr/lib/udev/rules.d/61-kde-bluetooth-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /usr/lib/udev/rules.d/69-libmtp.rules
Reading rules file: /usr/lib/udev/rules.d/69-wacom.rules
Reading rules file: /usr/lib/udev/rules.d/70-camera.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-memory.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-printers.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-ipp-usb.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-linktop-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/81-hid-bpf.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-hwclock.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules
Reading rules file: /usr/lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/90-libgpod.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules
Reading rules file: /usr/lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__ArtistPro16Gen2.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-10-XPPen__ArtistPro16Gen2.rules
Reading rules file: /usr/lib/udev/rules.d/99-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
0003:28BD:0947.0004: /usr/lib/udev/rules.d/50-udev-default.rules:20 Importing properties from results of builtin command 'hwdb --subsystem=hid'
0003:28BD:0947.0004: hwdb modalias key: "hid:b0003g0001v000028BDp00000947"
0003:28BD:0947.0004: No entry found from hwdb.
0003:28BD:0947.0004: /usr/lib/udev/rules.d/50-udev-default.rules:20 Failed to run builtin 'hwdb --subsystem=hid': No data available
0003:28BD:0947.0004: /usr/lib/udev/rules.d/80-drivers.rules:5 RUN 'kmod load'
0003:28BD:0947.0004: /usr/lib/udev/rules.d/81-hid-bpf.rules:5 Importing properties from results of builtin command 'hwdb --subsystem=hid --lookup-prefix=hid-bpf:'
0003:28BD:0947.0004: hwdb modalias key: "hid:b0003g0001v000028BDp00000947"
0003:28BD:0947.0004: /usr/lib/udev/rules.d/81-hid-bpf.rules:7 RUN '/usr/local/bin/udev-hid-bpf add $sys$devpath'
0003:28BD:0947.0004: sd-device: Created db file '/run/udev/data/+hid:0003:28BD:0947.0004' for '/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0004'
DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0004
DRIVER=hid-generic
HID_ID=0003:000028BD:00000947
HID_NAME=UGTABLET Deco 01 V3
HID_PHYS=usb-0000:01:00.0-3/input0
HID_UNIQ=000000
MODALIAS=hid:b0003g0001v000028BDp00000947
ACTION=add
SUBSYSTEM=hid
.HID_BPF=1
HID_BPF_T_009=0009-XPPen__Deco01V3.bpf.o
HID_BPF_T_010=0010-XPPen__Deco01V3.bpf.o
USEC_INITIALIZED=5468086
run: 'kmod load'
run: '/usr/local/bin/udev-hid-bpf add /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0004'
Unload kernel module index.
Unloaded link configuration context.
~ »»» sudo udev-hid-bpf --verbose install /home/deevad/sources/udev-hid-bpf/udev-hid-bpf_2.1.0-20240704-142-gcdc9a73_deco01v3/lib/firmware/hid/bpf/0010-XPPen__Deco01V3.bpf.o --install-exe
HID-BPF metadata: DEBUG - VarSecInfo { ty: TypeId(63), offset: 0, size: 40 }
HID-BPF metadata: DEBUG -   -> Var { source: BtfType { type_id: TypeId(63), name: Some("_device_ids"), source: Btf { ptr: 0x5a41a0fc15e0, drop_policy: SelfPtrOnly, _marker: PhantomData<&()> }, ty: 0x5a41a0fbd4b4 }, ptr: btf_var { linkage:
1 } } / BtfType { type_id: TypeId(51), name: None, source: Btf { ptr: 0x5a41a0fc15e0, drop_policy: SelfPtrOnly, _marker: PhantomData<&()> }, ty: 0x5a41a0fbd3a0 }
HID-BPF metadata: DEBUG -     -> StructMember { name: Some("name"), ty: TypeId(53), attr: Normal { offset: 0 } }
HID-BPF metadata: DEBUG -       -> "name": 0x0000
HID-BPF metadata: DEBUG -     -> StructMember { name: Some("bus"), ty: TypeId(55), attr: Normal { offset: 64 } }
HID-BPF metadata: DEBUG -       -> "bus": 0x0003
HID-BPF metadata: DEBUG -     -> StructMember { name: Some("group"), ty: TypeId(57), attr: Normal { offset: 128 } }
HID-BPF metadata: DEBUG -       -> "group": 0x0001
HID-BPF metadata: DEBUG -     -> StructMember { name: Some("vid"), ty: TypeId(59), attr: Normal { offset: 192 } }
HID-BPF metadata: DEBUG -       -> "vid": 0x28BD
HID-BPF metadata: DEBUG -     -> StructMember { name: Some("pid"), ty: TypeId(61), attr: Normal { offset: 256 } }
HID-BPF metadata: DEBUG -       -> "pid": 0x0947
libbpf: DEBUG - libbpf: elf: skipping unrecognized data section(9) .hid_bpf_config
Installing 0010-XPPen__Deco01V3.bpf.o as "/etc/udev-hid-bpf/0010-XPPen__Deco01V3.bpf.o"
Installing udev rule as "/etc/udev/rules.d/99-hid-bpf-0010-XPPen__Deco01V3.rules"

Installation successful. You can now plug in your device.
To uninstall, run
$ rm "/etc/udev-hid-bpf/0010-XPPen__Deco01V3.bpf.o"
$ rm "/etc/udev/rules.d/99-hid-bpf-0010-XPPen__Deco01V3.rules"
$ sudo udevadm control --reload  
~ »»» sudo udevadm test /sys/bus/hid/devices/0003:28BD:0947.0004
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.

Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
=== trie on-disk ===
tool version:          252
file size:        13303849 bytes
header size             80 bytes
strings            2705537 bytes
nodes             10598232 bytes
Loading kernel module index.
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Using default interface naming scheme 'v252'.
Parsed configuration file "/usr/lib/systemd/network/99-default.link"
Parsed configuration file "/usr/lib/systemd/network/73-usb-net-by-mac.link"
Created link configuration context.
Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/55-Argyll.rules
/usr/lib/udev/rules.d/55-Argyll.rules:139 Found builtin command 'usb_id --export %p' for IMPORT, replacing attribute
Reading rules file: /usr/lib/udev/rules.d/55-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-ddcutil.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-i2c-tools.rules
Reading rules file: /usr/lib/udev/rules.d/60-infiniband.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /usr/lib/udev/rules.d/60-libopenni2-0.rules
Reading rules file: /usr/lib/udev/rules.d/60-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules
Reading rules file: /usr/lib/udev/rules.d/61-kde-bluetooth-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /usr/lib/udev/rules.d/69-libmtp.rules
Reading rules file: /usr/lib/udev/rules.d/69-wacom.rules
Reading rules file: /usr/lib/udev/rules.d/70-camera.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-memory.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-printers.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-ipp-usb.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-linktop-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/81-hid-bpf.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-hwclock.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules
Reading rules file: /usr/lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/90-libgpod.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules
Reading rules file: /usr/lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__ArtistPro16Gen2.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__Deco01V3.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-10-XPPen__ArtistPro16Gen2.rules
Reading rules file: /usr/lib/udev/rules.d/99-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
sd-device: Failed to chase symlinks in "/sys/bus/hid/devices/0003:28BD:0947.0004".
Failed to open device '/sys/bus/hid/devices/0003:28BD:0947.0004': No such device
Unload kernel module index.
Unloaded link configuration context.
~ »»» sudo udevadm control --reload
~ »»» udev-hid-bpf list-devices
devices:
 -  syspath:      "/sys/bus/hid/devices/0003:046D:C52F.0003"
    name:         "Logitech USB Receiver"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x046D, 0xC52F)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0012"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:413C:2113.0007"
    name:         "Dell KB216 Wired Keyboard"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x413C, 0x2113)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0010"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000E"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
 -  syspath:      "/sys/bus/hid/devices/0003:046D:4057.0009"
    name:         "Logitech B330/M330/M3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_LOGITECH_DJ_DEVICE, 0x046D, 0x4057)"
 -  syspath:      "/sys/bus/hid/devices/0003:046D:C52F.0002"
    name:         "Logitech USB Receiver"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x046D, 0xC52F)"
 -  syspath:      "/sys/bus/hid/devices/0003:413C:2113.0008"
    name:         "Dell KB216 Wired Keyboard"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x413C, 0x2113)"
 -  syspath:      "/sys/bus/hid/devices/0003:17A0:0310.0001"
    name:         "Samson Technologies Samson Meteor Mic"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x17A0, 0x0310)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:0947.0011"
    name:         "UGTABLET Deco 01 V3"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x0947)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000F"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
 -  syspath:      "/sys/bus/hid/devices/0003:28BD:096A.000D"
    name:         "XPPen Artist Pro 19(Gen2)"
    device entry: "HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 0x28BD, 0x096A)"
~ »»» sudo udevadm test /sys/bus/hid/devices/0003:28BD:0947.0010
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.

Trying to open "/etc/systemd/hwdb/hwdb.bin"...
Trying to open "/etc/udev/hwdb.bin"...
=== trie on-disk ===
tool version:          252
file size:        13303849 bytes
header size             80 bytes
strings            2705537 bytes
nodes             10598232 bytes
Loading kernel module index.
Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy
Found container virtualization none.
Using default interface naming scheme 'v252'.
Parsed configuration file "/usr/lib/systemd/network/99-default.link"
Parsed configuration file "/usr/lib/systemd/network/73-usb-net-by-mac.link"
Created link configuration context.
Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/55-Argyll.rules
/usr/lib/udev/rules.d/55-Argyll.rules:139 Found builtin command 'usb_id --export %p' for IMPORT, replacing attribute
Reading rules file: /usr/lib/udev/rules.d/55-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-autosuspend.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-ddcutil.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-fido-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-i2c-tools.rules
Reading rules file: /usr/lib/udev/rules.d/60-infiniband.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /usr/lib/udev/rules.d/60-libopenni2-0.rules
Reading rules file: /usr/lib/udev/rules.d/60-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/60-tpm-udev.rules
Reading rules file: /usr/lib/udev/rules.d/61-kde-bluetooth-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /usr/lib/udev/rules.d/69-libmtp.rules
Reading rules file: /usr/lib/udev/rules.d/69-wacom.rules
Reading rules file: /usr/lib/udev/rules.d/70-camera.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-memory.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-printers.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-ipp-usb.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-broadmobi-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-foxconn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-gosuncn-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-linktop-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qcom-soc.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-sierra.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/81-hid-bpf.rules
Reading rules file: /usr/lib/udev/rules.d/81-net-dhcp.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-hwclock.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules

Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules
Reading rules file: /usr/lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/90-libgpod.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules
Reading rules file: /usr/lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__ArtistPro16Gen2.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__Deco01V3.rules
Reading rules file: /etc/udev/rules.d/99-hid-bpf-10-XPPen__ArtistPro16Gen2.rules
Reading rules file: /usr/lib/udev/rules.d/99-libsane1.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
0003:28BD:0947.0010: /usr/lib/udev/rules.d/50-udev-default.rules:20 Importing properties from results of builtin command 'hwdb --subsystem=hid'
0003:28BD:0947.0010: hwdb modalias key: "hid:b0003g0001v000028BDp00000947"
0003:28BD:0947.0010: No entry found from hwdb.
0003:28BD:0947.0010: /usr/lib/udev/rules.d/50-udev-default.rules:20 Failed to run builtin 'hwdb --subsystem=hid': No data available
0003:28BD:0947.0010: /usr/lib/udev/rules.d/80-drivers.rules:5 RUN 'kmod load'
0003:28BD:0947.0010: /usr/lib/udev/rules.d/81-hid-bpf.rules:5 Importing properties from results of builtin command 'hwdb --subsystem=hid --lookup-prefix=hid-bpf:'
0003:28BD:0947.0010: hwdb modalias key: "hid:b0003g0001v000028BDp00000947"
0003:28BD:0947.0010: /usr/lib/udev/rules.d/81-hid-bpf.rules:7 RUN '/usr/local/bin/udev-hid-bpf add $sys$devpath'
0003:28BD:0947.0010: /etc/udev/rules.d/99-hid-bpf-0010-XPPen__Deco01V3.rules:6 RUN '/builds/libevdev/udev-hid-bpf/_inst/bin/udev-hid-bpf add $sys$devpath /etc/udev-hid-bpf/0010-XPPen__Deco01V3.bpf.o'
0003:28BD:0947.0010: sd-device: Created db file '/run/udev/data/+hid:0003:28BD:0947.0010' for '/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0010'
DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0010
DRIVER=hid-generic
HID_ID=0003:000028BD:00000947
HID_NAME=UGTABLET Deco 01 V3
HID_PHYS=usb-0000:01:00.0-3/input0
HID_UNIQ=000000
MODALIAS=hid:b0003g0001v000028BDp00000947
ACTION=add
SUBSYSTEM=hid
.HID_BPF=1
HID_BPF_T_009=0009-XPPen__Deco01V3.bpf.o
HID_BPF_T_010=0010-XPPen__Deco01V3.bpf.o
USEC_INITIALIZED=5430764767
run: 'kmod load'
run: '/usr/local/bin/udev-hid-bpf add /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0010'
run: '/builds/libevdev/udev-hid-bpf/_inst/bin/udev-hid-bpf add /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-3/1-3:1.0/0003:28BD:0947.0010 /etc/udev-hid-bpf/0010-XPPen__Deco01V3.bpf.o'
Unload kernel module index.
Unloaded link configuration context.
~ »»» sudo tree /sys/fs/bpf/hid
/sys/fs/bpf/hid
├── 0003_28BD_0947_0013
│   └── 0010-XPPen__Deco01V3_bpf
│       └── xppen_deco01v3
├── 0003_28BD_0947_0014
│   └── 0010-XPPen__Deco01V3_bpf
│       └── xppen_deco01v3
└── 0003_28BD_096A_000E
   └── 0020-XPPen__ArtistPro16Gen2_bpf
       └── xppen_artist_pro_16

7 directories, 3 files
~ »»» sudo udevadm control --reload
~ »»» xsetwacom --list
XPPen Artist Pro 19(Gen2) stylus        id: 21  type: STYLUS     
XPPen Artist Pro 19(Gen2) eraser        id: 22  type: ERASER     
UGTABLET Deco 01 V3 Pen stylus          id: 10  type: STYLUS     
UGTABLET Deco 01 V3 Pen eraser          id: 11  type: ERASER     
UGTABLET Deco 01 V3 pad                 id: 12  type: PAD        
~ »»»