1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-24 14:50:17 +03:00

udev: add input/by-{id,path} symlinks for hidraw devices

Take some of the same rule structure from 60-persistent-input.rules, and
apply it to hidraw devices in 60-persistent-hidraw.rules.

Since one of the motivations for this is being able to easily reference
FIDO tokens, add a special case when ID_FIDO_TOKEN==1, and add 'fido'
to the symlink.
This commit is contained in:
Nick Rosbrook 2025-01-24 15:42:38 -05:00 committed by Luca Boccassi
parent 1352eb059f
commit 2aa1a265bc
2 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,26 @@
# do not edit this file, it will be overwritten on update
ACTION=="remove", GOTO="persistent_hidraw_end"
SUBSYSTEM!="hidraw", GOTO="persistent_hidraw_end"
KERNEL!="hidraw*", GOTO="persistent_hidraw_end"
SUBSYSTEMS=="usb", ENV{ID_BUS}=="", IMPORT{builtin}="usb_id"
SUBSYSTEMS=="usb", IMPORT{builtin}="path_id"
ENV{ID_BUS}=="", GOTO="persistent_hidraw_bus_end"
# by-id links
ATTRS{bInterfaceNumber}=="|00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-hidraw"
ATTRS{bInterfaceNumber}=="?*", ATTRS{bInterfaceNumber}!="00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$attr{bInterfaceNumber}-hidraw"
# add a more readable 'fido' link for devices with ID_FIDO_TOKEN==1
ENV{ID_FIDO_TOKEN}=="?*", ATTRS{bInterfaceNumber}=="|00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-fido"
ENV{ID_FIDO_TOKEN}=="?*", ATTRS{bInterfaceNumber}=="?*", ATTRS{bInterfaceNumber}!="00", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$attr{bInterfaceNumber}-fido"
LABEL="persistent_hidraw_bus_end"
# by-path
ENV{ID_PATH}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-hidraw"
ENV{ID_PATH_WITH_USB_REVISION}=="?*", SYMLINK+="input/by-path/$env{ID_PATH_WITH_USB_REVISION}-hidraw"
LABEL="persistent_hidraw_end"

View File

@ -15,6 +15,7 @@ rules = [
'60-infiniband.rules',
'60-input-id.rules',
'60-persistent-alsa.rules',
'60-persistent-hidraw.rules',
'60-persistent-input.rules',
'60-persistent-storage-mtd.rules',
'60-persistent-storage-tape.rules',