1 |
# /etc/udev/rules/60-persistent-input.rules: device naming rules for udev |
# /etc/udev/rules/60-persistent-input.rules: device naming rules for udev |
2 |
# $Header: /root/magellan-cvs/src/udev/udev-persistent-input.rules.magellan,v 1.8 2009-10-13 10:46:20 niro Exp $ |
# $Header: /root/magellan-cvs/src/udev/udev-persistent-input.rules.magellan,v 1.9 2010-04-06 23:46:22 niro Exp $ |
3 |
# |
# |
4 |
# There are a number of modifiers that are allowed to be used in some |
# There are a number of modifiers that are allowed to be used in some |
5 |
# of the different fields. They provide the following subsitutions: |
# of the different fields. They provide the following subsitutions: |
22 |
SUBSYSTEM!="input", GOTO="persistent_input_end" |
SUBSYSTEM!="input", GOTO="persistent_input_end" |
23 |
KERNEL=="input[0-9]*", GOTO="persistent_input_end" |
KERNEL=="input[0-9]*", GOTO="persistent_input_end" |
24 |
|
|
25 |
SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p" |
ENV{ID_INPUT}=="", IMPORT{program}="input_id %p" |
26 |
|
SUBSYSTEMS=="usb", ENV{ID_BUS}=="", IMPORT{program}="usb_id --export %p" |
27 |
|
|
28 |
# well defined boot-subclass usb devices |
# determine class name for persistent symlinks |
29 |
SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="01", ENV{ID_CLASS}="kbd", GOTO="serial" |
ENV{ID_INPUT_KEYBOARD}=="?*", ENV{.INPUT_CLASS}="kbd" |
30 |
SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceProtocol}=="02", ENV{ID_CLASS}="mouse", GOTO="serial" |
ENV{ID_INPUT_MOUSE}=="?*", ENV{.INPUT_CLASS}="mouse" |
31 |
|
ENV{ID_INPUT_TOUCHPAD}=="?*", ENV{.INPUT_CLASS}="mouse" |
32 |
# other devices |
ENV{ID_INPUT_TABLET}=="?*", ENV{.INPUT_CLASS}="mouse" |
33 |
DRIVERS=="pcspkr", ENV{ID_CLASS}="spkr", GOTO="serial" |
ENV{ID_INPUT_JOYSTICK}=="?*", ENV{.INPUT_CLASS}="joystick" |
34 |
DRIVERS=="atkbd", ENV{ID_CLASS}="kbd", GOTO="serial" |
DRIVERS=="pcspkr", ENV{.INPUT_CLASS}="spkr" |
35 |
DRIVERS=="psmouse", ENV{ID_CLASS}="mouse", GOTO="serial" |
ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{.INPUT_CLASS}="ir" |
|
ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir", GOTO="serial" |
|
|
|
|
|
# joystick (ABS_X || ABS_WHEEL || ABS_THROTTLE) && !BTN_TOUCH && !BTN_DIGI |
|
|
ATTRS{modalias}=="input:*-*a[068],*|input:*-*a*,[68],*m*", ATTRS{modalias}!="input:*-*k*14[0A],*r*", \ |
|
|
ENV{ID_CLASS}="joystick", GOTO="serial" |
|
36 |
|
|
37 |
# fill empty serial number |
# fill empty serial number |
38 |
LABEL="serial", ENV{ID_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial" |
ENV{.INPUT_CLASS}=="?*", ENV{ID_SERIAL}=="", ENV{ID_SERIAL}="noserial" |
39 |
|
|
40 |
# by-id links |
# by-id links |
41 |
KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}" |
KERNEL=="mouse*|js*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{.INPUT_CLASS}" |
42 |
KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}" |
KERNEL=="event*", ENV{ID_BUS}=="?*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{.INPUT_CLASS}" |
43 |
# allow empty class for USB devices, by appending the interface number |
# allow empty class for USB devices, by appending the interface number |
44 |
SUBSYSTEMS=="usb", ENV{ID_BUS}=="?*", KERNEL=="event*", ENV{ID_CLASS}=="", ATTRS{bInterfaceNumber}=="?*", \ |
SUBSYSTEMS=="usb", ENV{ID_BUS}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="", ATTRS{bInterfaceNumber}=="?*", \ |
45 |
SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-if$attr{bInterfaceNumber}" |
SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-if$attr{bInterfaceNumber}" |
46 |
|
|
47 |
# by-path |
# by-path |
48 |
SUBSYSTEMS=="usb|platform", IMPORT{program}="path_id %p" |
SUBSYSTEMS=="usb|platform", IMPORT{program}="path_id %p" |
49 |
ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}" |
ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{.INPUT_CLASS}" |
50 |
ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{ID_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}" |
ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{.INPUT_CLASS}" |
51 |
# allow empty class for platform and usb devices; platform supports only a single interface that way |
# allow empty class for platform and usb devices; platform supports only a single interface that way |
52 |
SUBSYSTEMS=="usb|platform", ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{ID_CLASS}=="", \ |
SUBSYSTEMS=="usb|platform", ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="", \ |
53 |
SYMLINK+="input/by-path/$env{ID_PATH}-event" |
SYMLINK+="input/by-path/$env{ID_PATH}-event" |
54 |
|
|
55 |
LABEL="persistent_input_end" |
LABEL="persistent_input_end" |