qmk_firmware icon indicating copy to clipboard operation
qmk_firmware copied to clipboard

[Bug] `50-qmk.rules` Broken on systemd 258.

Open WindFreaker opened this issue 3 weeks ago • 3 comments

Describe the Bug

A change to systemd with version 258 seems to have broken a lot of people's udev rules, and now the provided udev rule file no longer works. I managed to solve this issue by finding someone in a similar situation and using their fix, but I don't know enough about udev rules or how things are supposed to work to propose a PR with this fix or any other potential fix. All I know is it seems this change by systemd is intentional and not being reverted anytime soon, so I thought to bring it up and hopefully help others avoid the headache I just spent all day figuring out.

Keyboard Used

No response

Link to product page (if applicable)

No response

Operating System

No response

qmk doctor Output


Is AutoHotKey / Karabiner installed

  • [ ] AutoHotKey (Windows)
  • [ ] Karabiner (macOS)

Other keyboard-related software installed

No response

Additional Context

No response

WindFreaker avatar Dec 02 '25 01:12 WindFreaker

Sigh. systemd strikes again.

I'll try and have a look at it in the coming weeks but had some pretty significant IRL events occur so I can't promise anything.

With any luck we can leverage something on https://github.com/systemd/systemd/issues/39056. Irritating.

tzarc avatar Dec 02 '25 07:12 tzarc

Hmm, the only rule which could be hit by that change is

# hid_listen
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"

So you were relying on that rule, and plugdev was not a system group?

That rule should probably be reduced to

KERNEL=="hidraw*", TAG+="uaccess"

(TAG+="udev-acl" is also something obsolete, and the plugdev group was found mostly in Debian, so the rule already generated warnings on other distros)

BTW, a better version of that rule (which actually checks HID usages instead of blindly opening access to all hidraw devices) is in https://github.com/qmk/qmk_udev, but it needs a compiled helper program.

sigprof avatar Dec 02 '25 11:12 sigprof

So you were relying on that rule, and plugdev was not a system group?

I think because that rule exists the entire file fails to load. Any error scraps the whole thing.

WindFreaker avatar Dec 02 '25 18:12 WindFreaker