hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# There are a number of modifiers that are allowed to be used in some
# of the different fields. They provide the following subsitutions:
#
# %n the "kernel number" of the device.
#    For example, 'sda3' has a "kernel number" of '3'
# %e the smallest number for that name which does not matches an existing node
# %k the kernel name for the device
# %M the kernel major number for the device
# %m the kernel minor number for the device
# %b the bus id for the device
# %c the string returned by the PROGRAM
# %s{filename} the content of a sysfs attribute
# %% the '%' char itself
#
 
# workaround for devices which do not report media changes
SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", \
   ENV{ID_MODEL}=="IOMEGA_ZIP*",    NAME="%k", OPTIONS+="all_partitions"
SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTRS{media}=="floppy", \
   OPTIONS+="all_partitions"
 
# SCSI devices
SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*",    NAME="scd%n", SYMLINK+="sr%n"
 
# USB devices
SUBSYSTEMS=="usb", KERNEL=="auer[0-9]*",    NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="cpad[0-9]*",    NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="dabusb*",        NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="hiddev*",        NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="legousbtower*",    NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*",        NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
   ATTRS{product}=="Palm Handheld*|Handspring Visor|palmOne Handheld", \
                   SYMLINK+="pilot"
 
# usbfs-like devices
SUBSYSTEM=="usb_device",    PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", ACTION=="add", \
               NAME="%c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",    NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}"
 
# serial devices
KERNEL=="capi",            NAME="capi20", SYMLINK+="isdn/capi20"
KERNEL=="capi[0-9]*",        NAME="capi/%n"
 
# video devices
KERNEL=="dvb*",            PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", ACTION=="add", \
               NAME="%c"
KERNEL=="card[0-9]*",        NAME="dri/%k"
 
# misc devices
KERNEL=="hw_random",        NAME="hwrng"
KERNEL=="tun",            NAME="net/%k"
KERNEL=="evtchn",        NAME="xen/%k"
 
KERNEL=="cdemu[0-9]*",        NAME="cdemu/%n"
KERNEL=="pktcdvd[0-9]*",    NAME="pktcdvd/%n"
KERNEL=="pktcdvd",        NAME="pktcdvd/control"
 
KERNEL=="cpu[0-9]*",        NAME="cpu/%n/cpuid"
KERNEL=="msr[0-9]*",        NAME="cpu/%n/msr"
KERNEL=="microcode",        NAME="cpu/microcode"
 
KERNEL=="umad*",        NAME="infiniband/%k"
KERNEL=="issm*",        NAME="infiniband/%k"
KERNEL=="uverbs*",        NAME="infiniband/%k"
KERNEL=="ucm*",            NAME="infiniband/%k"
KERNEL=="rdma_ucm",        NAME="infiniband/%k"
 
# ALSA devices
KERNEL=="controlC[0-9]*",    NAME="snd/%k"
KERNEL=="hwC[D0-9]*",        NAME="snd/%k"
KERNEL=="pcmC[D0-9cp]*",    NAME="snd/%k"
KERNEL=="midiC[D0-9]*",        NAME="snd/%k"
KERNEL=="timer",        NAME="snd/%k"
KERNEL=="seq",            NAME="snd/%k"
 
# ieee1394 devices       
KERNEL=="dv1394*",        NAME="dv1394/%n"
KERNEL=="video1394*",        NAME="video1394/%n"
 
# input devices
KERNEL=="mice",            NAME="input/%k"
KERNEL=="mouse[0-9]*",        NAME="input/%k"
KERNEL=="event[0-9]*",        NAME="input/%k"
KERNEL=="js[0-9]*",        NAME="input/%k"
KERNEL=="ts[0-9]*",        NAME="input/%k"
KERNEL=="uinput",        NAME="input/%k"
 
# Zaptel
KERNEL=="zapctl",        NAME="zap/ctl"
KERNEL=="zaptimer",        NAME="zap/timer"
KERNEL=="zapchannel",        NAME="zap/channel"
KERNEL=="zappseudo",        NAME="zap/pseudo"
KERNEL=="zap[0-9]*",        NAME="zap/%n"
 
# AOE character devices
SUBSYSTEM=="aoe", KERNEL=="discover",    NAME="etherd/%k"
SUBSYSTEM=="aoe", KERNEL=="err",    NAME="etherd/%k"
SUBSYSTEM=="aoe", KERNEL=="interfaces",    NAME="etherd/%k"
SUBSYSTEM=="aoe", KERNEL=="revalidate",    NAME="etherd/%k"
 
# device mapper creates its own device nodes, so ignore these
KERNEL=="dm-[0-9]*",        OPTIONS+="ignore_device"
KERNEL=="device-mapper",    NAME="mapper/control"
 
KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
 
# Firmware Helper
ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.sh"
 
# Samsung UARTS
KERNEL=="s3c2410_serial[0-9]",   NAME="ttySAC%n"
 
# MXC UARTs
KERNEL=="ttymxc[0-4]",   NAME="ttymxc%n"