1# console
2KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0666", OPTIONS="last_rule"
3KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="0666", OPTIONS="last_rule"
4KERNEL=="tty",			GROUP="tty", MODE="0666", OPTIONS="last_rule"
5KERNEL=="tty[0-9]*|vcs*",	GROUP="tty", MODE="0620", OPTIONS="last_rule"
6KERNEL=="ptmx",			GROUP="tty", MODE="0666", OPTIONS="last_rule"
7KERNEL=="console",		MODE="0600", OPTIONS="last_rule"
8
9# serial devices
10KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp"
11KERNEL=="hvc*|hvsi*",		GROUP="uucp"
12KERNEL=="iseries/vtty*",	GROUP="uucp"
13KERNEL=="mwave",		NAME="modems/%k", GROUP="uucp"
14KERNEL=="ttyUSB*", ATTRS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
15KERNEL=="ttyUSB*", ATTRS{product}=="[Hh]andspring*Treo*|[Hh]andspring*Visor*", SYMLINK+="pilot"
16KERNEL=="ppp",			MODE="0600", OPTIONS+="ignore_remove"
17
18# video/graphics
19SUBSYSTEM=="video4linux",	GROUP="video"
20SUBSYSTEM=="graphics"		GROUP="video"
21KERNEL=="vtx*|vbi*",		GROUP="video"
22KERNEL=="winradio*",		GROUP="video"
23KERNEL=="vttuner*",		GROUP="video"
24KERNEL=="nvidia*|nvidiactl*",	GROUP="video"
25KERNEL=="video0",		SYMLINK+="video"
26KERNEL=="radio0",		SYMLINK+="radio"
27KERNEL=="vbi0",			SYMLINK+="vbi"
28KERNEL=="pmu",			GROUP="video"
29
30# dvb
31SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"
32
33# input devices
34KERNEL=="mouse*|mice|event*",	NAME="input/%k", MODE="0640"
35KERNEL=="js*",			NAME="input/%k", MODE="0644"
36KERNEL=="ts*|uinput",		NAME="input/%k", MODE="0600"
37KERNEL=="lirc0",		SYMLINK+="lirc"
38
39# printer
40SUBSYSTEM=="usb",		KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp"
41SUBSYSTEM=="printer",		KERNEL=="lp*", GROUP="lp"
42KERNEL=="irlpt*",		GROUP="lp"
43
44# cpu devices
45KERNEL=="cpu[0-9]*",		NAME="cpu/%n/cpuid"
46KERNEL=="msr[0-9]*",		NAME="cpu/%n/msr"
47KERNEL=="microcode",		NAME="cpu/microcode", MODE="0600"
48
49# IEEE1394 devices
50KERNEL=="raw1394*",		GROUP="video"
51KERNEL=="dv1394*",		SYMLINK+="dv1394/%n", GROUP="video"
52KERNEL=="video1394*",		SYMLINK+="video1394/%n", GROUP="video"
53
54KERNEL=="hw_random",		NAME="hwrng", SYMLINK+="%k"
55KERNEL=="rioctl",		NAME="specialix_rioctl", SYMLINK+="%k"
56KERNEL=="sxctl",		NAME="specialix_sxctl", SYMLINK+="%k"
57
58# network
59KERNEL=="tun",			NAME="net/%k", MODE="0666", OPTIONS+="ignore_remove"
60
61# misc devices
62KERNEL=="mem|kmem|port",	GROUP="kmem", MODE="0640"
63KERNEL=="nvram",		GROUP="kmem", MODE="0600"
64KERNEL=="null|zero|random",	MODE="0666"
65KERNEL=="full",			MODE="0622"
66KERNEL=="urandom",		MODE="0644"
67KERNEL=="rtc",			MODE="0600"
68KERNEL=="fuse",			MODE="0666"
69KERNEL=="sonypi",		MODE="0666"
70KERNEL=="agpgart",		MODE="0600", GROUP="video"
71KERNEL=="djs*",			MODE="0644"
72KERNEL=="sgi_*",		MODE="0666"
73KERNEL=="rrom*",		MODE="0400"
74KERNEL=="rflash*",		MODE="0400"
75KERNEL=="usbscanner*",		MODE="0644"
76KERNEL=="3270/ttycons*",	MODE="0600"
77KERNEL=="3270/tub*",		MODE="0666"
78KERNEL=="3270/tubcons*",	MODE="0600"
79KERNEL=="ica",			MODE="0666"
80KERNEL=="z90crypt",		MODE="0666"
81KERNEL=="mmtimer",		MODE="0644"
82KERNEL=="auer[0-9]*"		NAME="usb/%k"
83
84# packet writing interface
85KERNEL=="pktcdvd",		NAME="pktcdvd/control"
86KERNEL=="pktcdvd[0-9]*",	NAME="pktcdvd/%k"
87
88# additional floppy devices (no sysfs entries)
89KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0640 -G disk $root/%k"
90
91# block devices
92SUBSYSTEM=="block", GROUP="disk", MODE="0640"
93
94# sd:		0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
95# sr:		4 TYPE_WORM, 5 TYPE_ROM
96# st/osst:	1 TYPE_TAPE
97SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
98SUBSYSTEM=="scsi", KERNEL=="[0-9]*:[0-9]*", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
99SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="1", ATTR{vendor}=="On[sS]tream", RUN+="/sbin/modprobe osst"
100SUBSYSTEM=="scsi_device", ACTION=="add", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
101KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
102SUBSYSTEM=="ide", ACTION=="add", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"
103SUBSYSTEM=="mmc", ACTION=="add", RUN+="/sbin/modprobe mmc_block"
104
105# misc storage devices (non-block)
106KERNEL=="sg*",			GROUP="disk", MODE="0640"
107KERNEL=="st*|nst*",		GROUP="disk"
108KERNEL=="qft*|nqft*|zqft*|nzqft*|rawqft*|nrawqft", GROUP="disk"
109KERNEL=="ht*|nht*",		GROUP="disk"
110KERNEL=="pf*",			GROUP="disk"
111KERNEL=="sch*",			GROUP="disk"
112KERNEL=="pt*|npt*",		GROUP="disk"
113KERNEL=="pg*",			GROUP="disk"
114KERNEL=="evms/block_device*",	GROUP="disk"
115KERNEL=="rawctl*",		NAME="raw/%k", GROUP="disk"
116SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
117KERNEL=="osst*|nosst*",		NAME="%k", GROUP="disk"
118KERNEL=="iseries/vt*",		NAME="%k", GROUP="disk"
119KERNEL=="iseries/nvt*",		NAME="%k", GROUP="disk"
120KERNEL=="iseries/ibmsis*",	NAME="%k", GROUP="disk"
121
122# libusb device access
123SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
124
125# kernel firmware loader
126SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
127