1# /etc/udev/rules/50-udev.rules: device naming rules for udev 2# 3# Gentoo specific rules 4# 5# There are a number of modifiers that are allowed to be used in some of the 6# fields. See the udev man page for a full description of them. 7# 8# Try not to modify this file, if you wish to change things, create a new rule 9# file that can be run before this one. 10# 11 12# Net devices can have arbitrary names, even 13# ones set by the user. Not try to match normal 14# rules on net devices (Bug #166652) 15SUBSYSTEM=="net", GOTO="gentoo_device_rules_end" 16 17# console 18KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule" 19KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", NAME="%k", GROUP="tty", OPTIONS="last_rule" 20KERNEL=="vcs*", NAME="%k", GROUP="tty", OPTIONS="last_rule" 21KERNEL=="vcsa*", NAME="%k", GROUP="tty", OPTIONS="last_rule" 22KERNEL=="tty", NAME="%k", GROUP="tty", MODE="0666", OPTIONS="last_rule" 23KERNEL=="tty[0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule" 24KERNEL=="tty[0-9][0-9]", NAME="%k", GROUP="tty", OPTIONS="last_rule" 25KERNEL=="console", NAME="%k", GROUP="tty", MODE="0600" 26KERNEL=="ptmx", NAME="%k", GROUP="tty", MODE="0666" 27 28# tty devices 29KERNEL=="ttyS[0-9]*", NAME="%k", SYMLINK="tts/%n", GROUP="uucp", MODE="0660" 30KERNEL=="ttyUSB[0-9]*", NAME="%k", SYMLINK="tts/USB%n", GROUP="uucp", MODE="0660" 31KERNEL=="ippp0", NAME="%k", GROUP="uucp", MODE="0660" 32KERNEL=="isdn*" NAME="%k", GROUP="uucp", MODE="0660" 33KERNEL=="dcbri*", NAME="%k", GROUP="uucp", MODE="0660" 34KERNEL=="ircomm*", NAME="%k", GROUP="uucp", MODE="0660" 35 36# all block devices 37SUBSYSTEM=="block", GROUP="disk" 38 39# cdrom symlinks and other good cdrom naming 40KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", ACTION=="add", IMPORT{program}="cdrom_id --export $tempnode" 41ENV{ID_CDROM}=="?*", GROUP="cdrom" 42 43# assign cdrom-permission also to associated generic device (for cd-burning ...) 44KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom" 45 46# disk devices 47KERNEL=="sd*", NAME="%k", GROUP="disk" 48KERNEL=="dasd*", NAME="%k", GROUP="disk" 49KERNEL=="ataraid*", NAME="%k", GROUP="disk" 50 51# compaq smart array 52KERNEL=="cciss*", NAME="%k" 53KERNEL=="ida*", NAME="%k" 54 55# mylex 56KERNEL=="rd*", NAME="%k" 57 58# dri devices 59KERNEL=="card*", NAME="dri/card%n", GROUP="video" 60KERNEL=="nvidia*", NAME="%k", GROUP="video" 61KERNEL=="3dfx*", NAME="%k", GROUP="video" 62 63# alsa devices 64SUBSYSTEM=="sound", GROUP="audio" 65KERNEL=="controlC[0-9]*", NAME="snd/%k" 66KERNEL=="hw[CD0-9]*", NAME="snd/%k" 67KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k" 68KERNEL=="midiC[D0-9]*", NAME="snd/%k" 69KERNEL=="timer", NAME="snd/%k" 70KERNEL=="seq", NAME="snd/%k" 71 72# capi devices 73KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20", GROUP="uucp", MODE="0660" 74KERNEL=="capi*", NAME="capi/%n", GROUP="uucp", MODE="0660" 75 76# cpu devices 77KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid" 78KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" 79KERNEL=="microcode", NAME="cpu/microcode" 80 81# fb devices 82KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video" 83 84# floppy devices 85KERNEL=="fd[0-9]*", NAME="floppy/%k", SYMLINK+="%k", GROUP="floppy" 86KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/floppy/%k" 87KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f $root/floppy/%k?*'" 88 89# i2c devices 90KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k" 91 92# input devices 93KERNEL=="mice", NAME="input/%k", MODE="0644" 94KERNEL=="mouse*", NAME="input/%k", MODE="0644" 95KERNEL=="event*", NAME="input/%k", MODE="0600" 96KERNEL=="js*", NAME="input/%k", MODE="0664" 97KERNEL=="ts*", NAME="input/%k", MODE="0600" 98 99# loop devices 100KERNEL=="loop[0-9]*", NAME="loop/%n", SYMLINK+="%k", GROUP="disk" 101 102# md block devices 103KERNEL=="md[0-9]*", NAME="md/%n", SYMLINK+="%k", GROUP="disk" 104 105# aoe char devices, 106SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220" 107SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440" 108SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220" 109 110# misc devices 111KERNEL=="agpgart", NAME="misc/%k", SYMLINK+="%k" 112KERNEL=="psaux", NAME="misc/%k", SYMLINK+="%k" 113KERNEL=="rtc", NAME="misc/%k", SYMLINK+="%k", MODE="0664" 114KERNEL=="uinput", NAME="misc/%k", SYMLINK+="%k" 115KERNEL=="inotify", NAME="misc/%k", SYMLINK+="%k", MODE="0666" 116 117# netlink devices 118KERNEL=="route", NAME="netlink/%k" 119KERNEL=="skip", NAME="netlink/%k" 120KERNEL=="usersock", NAME="netlink/%k" 121KERNEL=="fwmonitor", NAME="netlink/%k" 122KERNEL=="tcpdiag", NAME="netlink/%k" 123KERNEL=="nflog", NAME="netlink/%k" 124KERNEL=="xfrm", NAME="netlink/%k" 125KERNEL=="arpd", NAME="netlink/%k" 126KERNEL=="route6", NAME="netlink/%k" 127KERNEL=="ip6_fw", NAME="netlink/%k" 128KERNEL=="dnrtmsg", NAME="netlink/%k" 129KERNEL=="tap*", NAME="netlink/%k" 130 131# network devices 132KERNEL=="tun", NAME="net/%k", MODE="0600" 133 134# ramdisk devices 135KERNEL=="ram[0-9]*", NAME="rd/%n", SYMLINK+="%k" 136 137# IEEE1394 (firewire) devices (must be before raw devices below) 138KERNEL=="raw1394", NAME="%k", GROUP="video" 139KERNEL=="dv1394*", NAME="dv1394/%n", GROUP="video" 140KERNEL=="video1394*", NAME="video1394/%n", GROUP="video" 141 142# raw devices 143SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" 144KERNEL=="ram*", NAME="%k", GROUP="disk" 145 146# sound devices 147KERNEL=="adsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 148KERNEL=="adsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 149KERNEL=="audio", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 150KERNEL=="audio[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 151KERNEL=="dsp", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 152KERNEL=="dsp[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 153KERNEL=="mixer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 154KERNEL=="mixer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 155KERNEL=="sequencer", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 156KERNEL=="sequencer[0-9]*", NAME="sound/%k", SYMLINK+="%k", GROUP="audio" 157 158# memory devices 159KERNEL=="random", NAME="%k", MODE="0666" 160KERNEL=="urandom", NAME="%k", MODE="0444" 161KERNEL=="mem", NAME="%k", MODE="0640" 162KERNEL=="kmem", NAME="%k", MODE="0640" 163KERNEL=="port", NAME="%k", MODE="0640" 164KERNEL=="full", NAME="%k", MODE="0666" 165KERNEL=="null", NAME="%k", MODE="0666" 166KERNEL=="zero", NAME="%k", MODE="0666" 167 168# usb devices 169KERNEL=="hiddev*", NAME="usb/%k" 170KERNEL=="auer*", NAME="usb/%k" 171KERNEL=="legousbtower*", NAME="usb/%k", GROUP="usb" 172KERNEL=="dabusb*", NAME="usb/%k" 173KERNEL=="lp[0-9]*", SUBSYSTEM=="usb", NAME="usb/%k", GROUP="lp" 174 175# v4l devices 176KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video" 177KERNEL=="radio[0-9]*", NAME="v4l/radio%n", SYMLINK+="radio%n", GROUP="video" 178KERNEL=="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK+="vbi%n", GROUP="video" 179KERNEL=="vtx[0-9]*", NAME="v4l/vtx%n", GROUP="video" 180 181# dvb devices 182SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video" 183 184# Asterisk Zaptel devices 185KERNEL=="zapctl", NAME="zap/ctl" 186KERNEL=="zaptimer", NAME="zap/timer" 187KERNEL=="zapchannel", NAME="zap/channel" 188KERNEL=="zappseudo", NAME="zap/pseudo" 189KERNEL=="zap[0-9]*", NAME="zap/%n" 190 191# pilot/palm devices 192KERNEL=="pilot", NAME="%k", GROUP="uucp" 193 194# jaz devices 195KERNEL=="jaz*", NAME="%k", GROUP="disk" 196 197# zip devices 198KERNEL=="pocketzip*", NAME="%k", GROUP="disk" 199KERNEL=="zip*", NAME="%k", GROUP="disk" 200 201# ls120 devices 202KERNEL=="ls120", NAME="%k", GROUP="disk" 203 204# lp devices 205KERNEL=="lp*", NAME="%k", GROUP="lp" 206KERNEL=="irlpt", NAME="%k", GROUP="lp" 207KERNEL=="usblp", NAME="%k", GROUP="lp" 208KERNEL=="lp*", NAME="%k", GROUP="lp" 209KERNEL=="parport*", NAME="%k", GROUP="lp" 210 211# tape devices 212KERNEL=="ht*", NAME="%k", GROUP="tape" 213KERNEL=="nht*", NAME="%k", GROUP="tape" 214KERNEL=="pt*", NAME="%k", GROUP="tape" 215KERNEL=="npt*", NAME="%k", GROUP="tape" 216KERNEL=="st*", NAME="%k", GROUP="tape" 217KERNEL=="nst*", NAME="%k", GROUP="tape" 218KERNEL=="osst*", NAME="%k", GROUP="tape" 219KERNEL=="nosst*", NAME="%k", GROUP="tape" 220 221# diskonkey devices 222KERNEL=="diskonkey*", NAME="%k", GROUP="disk" 223 224# rem_ide devices 225KERNEL=="microdrive*", NAME="%k", GROUP="disk" 226 227# kbd devices 228KERNEL=="kbd", NAME="%k", MODE="0664" 229 230# Sony Vaio Jogdial sonypi device 231KERNEL=="sonypi", NAME="%k", MODE="0666" 232 233# packet devices 234KERNEL=="pktcdvd", NAME="pktcdvd/control", GROUP="cdrw", MODE="0660" 235KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/pktcdvd%n", GROUP="cdrw", MODE="0660" 236 237# infiniband devices 238KERNEL=="umad*", NAME="infiniband/%k" 239KERNEL=="issm*", NAME="infiniband/%k" 240 241 242# usbfs-like device nodes 243SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="usb", MODE="0664" 244 245 246# Setting timeout for tape-devices to 900 seconds 247# if you need timeouts for other devices add a similar rule 248# with correct type-value, or open a bug on bugs.gentoo.org. 249ACTION=="add", SUBSYSTEM=="scsi" , ATTRS{type}=="1", \ 250 RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'" 251 252 253# Module autoloading 254ACTION!="add", GOTO="hotplug_no_add_event" 255 256# check if the device has already been claimed by a driver 257ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_load_end" 258 259# this driver is broken and should not be loaded automatically 260SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_load_end" 261 262# Autoload modules that lack aliases but have them defined inutoload modules 263ENV{MODALIAS}=="?*", RUN+="modprobe.sh $env{MODALIAS}" 264 265# /etc/modprobe.conf. 266SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /lib/udev/modprobe.sh pnp:d$$id; done < /sys$devpath/id'" 267# needed aliases are defined in /etc/modprobe.d/pnp-aliases 268 269 270SUBSYSTEM=="i2o", RUN+="modprobe.sh i2o_block" 271SUBSYSTEM=="mmc", RUN+="modprobe.sh mmc_block" 272 273# Parts taken from redhat-rules 274# sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC 275# sr: 4 TYPE_WORM, 5 TYPE_ROM 276# st/osst: 1 TYPE_TAPE 277 278# Load driver for scsi-device 279SUBSYSTEM!="scsi_device", GOTO="hotplug_scsi_end" 280ATTRS{type}=="?*", RUN+="modprobe.sh sg" 281ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod" 282ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod" 283ATTRS{type}=="8", RUN+="modprobe.sh ch" 284 285ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st" 286ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", \ 287 ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst" 288ENV{ID_SCSI_TAPE_DRIVER}=="?*", RUN+="modprobe.sh $env{ID_SCSI_TAPE_DRIVER}" 289LABEL="hotplug_scsi_end" 290 291 292SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi" 293 294LABEL="hotplug_load_end" 295 296 297# Load firmware 298SUBSYSTEM=="firmware", RUN+="firmware.sh" 299 300LABEL="hotplug_no_add_event" 301 302LABEL="gentoo_device_rules_end" 303