rules: extend 60-input-id.rules to allow for bus/vid/pid/name matches
Same approach as used in 70-mouse.rules, allow for a name-based match optionally combined with bus/vid/pid (which the existing modalias rule would already allow us anyway). Note that ID_BUS isn't assigned until after this rule has run so we need to use the id/bustype attribute directly. Related to https://github.com/systemd/systemd/issues/36677
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
#
|
#
|
||||||
# Match string formats:
|
# Match string formats:
|
||||||
# id-input:modalias:<modalias>
|
# id-input:modalias:<modalias>
|
||||||
|
# id-input:<bus>:v<vid>p<pid>:name:<name>:*
|
||||||
#
|
#
|
||||||
# To add local entries, create a new file
|
# To add local entries, create a new file
|
||||||
# /etc/udev/hwdb.d/61-input-id-local.hwdb
|
# /etc/udev/hwdb.d/61-input-id-local.hwdb
|
||||||
@@ -47,6 +48,13 @@
|
|||||||
# id-input:modalias:input:b0003v1234pABCD*
|
# id-input:modalias:input:b0003v1234pABCD*
|
||||||
# ID_INPUT_TOUCHPAD=1
|
# ID_INPUT_TOUCHPAD=1
|
||||||
# ID_INPUT=1
|
# ID_INPUT=1
|
||||||
|
#
|
||||||
|
# id-input:usb:v12abp34cd:name:SomeVendor *:*
|
||||||
|
# ID_INPUT_TOUCHPAD=1
|
||||||
|
# ID_INPUT=1
|
||||||
|
#
|
||||||
|
# For technical reasons the hexadecimal vid/pid in the modalias match are
|
||||||
|
# uppercase but lowercase in the bus/vid/pid/name match.
|
||||||
|
|
||||||
# Sort by brand, model
|
# Sort by brand, model
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')
|
|||||||
TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
|
TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
|
||||||
'evdev': ('name', 'atkbd', 'input'),
|
'evdev': ('name', 'atkbd', 'input'),
|
||||||
'fb': ('pci', 'vmbus'),
|
'fb': ('pci', 'vmbus'),
|
||||||
'id-input': ('modalias'),
|
'id-input': ('modalias', 'bluetooth', 'i2c', 'usb'),
|
||||||
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
||||||
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
||||||
'keyboard': ('name', ),
|
'keyboard': ('name', ),
|
||||||
|
|||||||
@@ -5,4 +5,15 @@ ACTION=="remove", GOTO="id_input_end"
|
|||||||
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
|
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
|
||||||
SUBSYSTEM=="input", IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=id-input:modalias:"
|
SUBSYSTEM=="input", IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=id-input:modalias:"
|
||||||
|
|
||||||
|
# id-input:<bus>:v<vid>p<pid>:name:<name>:*
|
||||||
|
KERNELS=="input*", ATTRS{id/bustype}=="0003", \
|
||||||
|
IMPORT{builtin}="hwdb 'id-input:usb:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
|
||||||
|
GOTO="id_input_end"
|
||||||
|
KERNELS=="input*", ATTRS{id/bustype}=="0005", \
|
||||||
|
IMPORT{builtin}="hwdb 'id-input:bluetooth:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
|
||||||
|
GOTO="id_input_end"
|
||||||
|
KERNELS=="input*", ATTRS{id/bustype}=="0018", \
|
||||||
|
IMPORT{builtin}="hwdb 'id-input:i2c:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
|
||||||
|
GOTO="id_input_end"
|
||||||
|
|
||||||
LABEL="id_input_end"
|
LABEL="id_input_end"
|
||||||
|
|||||||
Reference in New Issue
Block a user