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
116
117
118
119
120
121
122
123
124
125
126
|
# console
KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0666", OPTIONS="last_rule"
KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0666", OPTIONS="last_rule"
KERNEL=="tty", GROUP="tty", MODE="0666", OPTIONS="last_rule"
KERNEL=="tty[0-9]*|vcs*", GROUP="tty", MODE="0620", OPTIONS="last_rule"
KERNEL=="ptmx", GROUP="tty", MODE="0666", OPTIONS="last_rule"
KERNEL=="console", MODE="0600", OPTIONS="last_rule"
# serial devices
KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp"
KERNEL=="hvc*|hvsi*", GROUP="uucp"
KERNEL=="iseries/vtty*", GROUP="uucp"
KERNEL=="mwave", NAME="modems/%k", GROUP="uucp"
KERNEL=="ttyUSB*", ATTRS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
KERNEL=="ttyUSB*", ATTRS{product}=="[Hh]andspring*Treo*|[Hh]andspring*Visor*", SYMLINK+="pilot"
# video/graphics
SUBSYSTEM=="video4linux", GROUP="video"
SUBSYSTEM=="graphics" GROUP="video"
KERNEL=="vtx*|vbi*", GROUP="video"
KERNEL=="winradio*", GROUP="video"
KERNEL=="vttuner*", GROUP="video"
KERNEL=="nvidia*|nvidiactl*", GROUP="video"
KERNEL=="video0", SYMLINK+="video"
KERNEL=="radio0", SYMLINK+="radio"
KERNEL=="vbi0", SYMLINK+="vbi"
KERNEL=="pmu", GROUP="video"
# dvb
SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
# input devices
KERNEL=="mouse*|mice|event*", NAME="input/%k", MODE="0640"
KERNEL=="js*", NAME="input/%k", MODE="0644"
KERNEL=="ts*|uinput", NAME="input/%k", MODE="0600"
KERNEL=="lirc0", SYMLINK+="lirc"
# printer
SUBSYSTEM=="usb", KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
KERNEL=="irlpt*", GROUP="lp"
# cpu devices
KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
KERNEL=="microcode", NAME="cpu/microcode", MODE="0600"
# IEEE1394 devices
KERNEL=="raw1394*", GROUP="video"
KERNEL=="dv1394*", SYMLINK+="dv1394/%n", GROUP="video"
KERNEL=="video1394*", SYMLINK+="video1394/%n", GROUP="video"
KERNEL=="hw_random", NAME="hwrng", SYMLINK+="%k"
KERNEL=="rioctl", NAME="specialix_rioctl", SYMLINK+="%k"
KERNEL=="sxctl", NAME="specialix_sxctl", SYMLINK+="%k"
# network
KERNEL=="tun", NAME="net/%k", MODE="0666"
# misc devices
KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
KERNEL=="nvram", GROUP="kmem", MODE="0600"
KERNEL=="null|zero|random", MODE="0666"
KERNEL=="full", MODE="0622"
KERNEL=="urandom", MODE="0644"
KERNEL=="rtc", MODE="0600"
KERNEL=="fuse", MODE="0666"
KERNEL=="sonypi", MODE="0666"
KERNEL=="agpgart", MODE="0600", GROUP="video"
KERNEL=="djs*", MODE="0644"
KERNEL=="sgi_*", MODE="0666"
KERNEL=="rrom*", MODE="0400"
KERNEL=="rflash*", MODE="0400"
KERNEL=="usbscanner*", MODE="0644"
KERNEL=="3270/ttycons*", MODE="0600"
KERNEL=="3270/tub*", MODE="0666"
KERNEL=="3270/tubcons*", MODE="0600"
KERNEL=="ica", MODE="0666"
KERNEL=="z90crypt", MODE="0666"
KERNEL=="mmtimer", MODE="0644"
KERNEL=="auer[0-9]*" NAME="usb/%k"
# packet writing interface
KERNEL=="pktcdvd", NAME="pktcdvd/control"
KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%k"
# additional floppy devices (no sysfs entries)
KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G disk $root/%k"
# block devices
SUBSYSTEM=="block", GROUP="disk", MODE="0640"
# sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
# sr: 4 TYPE_WORM, 5 TYPE_ROM
# st/osst: 1 TYPE_TAPE
SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="1", ATTR{vendor}=="On[sS]tream", RUN+="/sbin/modprobe osst"
SUBSYSTEM=="scsi_device", ACTION=="add", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
SUBSYSTEM=="ide", ACTION=="add", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"
SUBSYSTEM=="mmc", ACTION=="add", RUN+="/sbin/modprobe mmc_block"
# misc storage devices (non-block)
KERNEL=="sg*", GROUP="disk", MODE="0640"
KERNEL=="st*|nst*", GROUP="disk"
KERNEL=="qft*|nqft*|zqft*|nzqft*|rawqft*|nrawqft", GROUP="disk"
KERNEL=="ht*|nht*", GROUP="disk"
KERNEL=="pf*", GROUP="disk"
KERNEL=="sch*", GROUP="disk"
KERNEL=="pt*|npt*", GROUP="disk"
KERNEL=="pg*", GROUP="disk"
KERNEL=="evms/block_device*", GROUP="disk"
KERNEL=="rawctl*", NAME="raw/%k", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
KERNEL=="osst*|nosst*", NAME="%k", GROUP="disk"
KERNEL=="iseries/vt*", NAME="%k", GROUP="disk"
KERNEL=="iseries/nvt*", NAME="%k", GROUP="disk"
KERNEL=="iseries/ibmsis*", NAME="%k", GROUP="disk"
# libusb device access
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
# kernel firmware loader
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
|