# /etc/udev/udev.rules:  device naming rules for udev
#
# There are a number of modifiers that are allowed to be used in some of the
# fields.  See the udev man page for a full description of them.

# all block devices
SUBSYSTEM="block", GROUP="disk"

### cdrom symlinks and other good cdrom naming
##BUS="ide",  KERNEL="hd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##BUS="scsi", KERNEL="sr[0-9]*", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##BUS="scsi", KERNEL="scd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##
### devfs-names for ide-devices (uncomment only one)
###  /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names
##BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}", GROUP="%c{3}"

# permissions for IDE CD devices
BUS="ide", KERNEL="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom*", NAME="%k", GROUP="cdrom", MODE="0660"

# permissions for IDE floppy devices
BUS="ide", KERNEL="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy*", NAME="%k", GROUP="floppy", MODE="0660"

# permissions for SCSI cd/sg/tape devices
BUS="scsi", KERNEL="s[grt][0-9]*", SYSFS{type}="5", NAME="%k", GROUP="cdrom", MODE="0660"

# disk devices
KERNEL="sd*",		NAME="%k", GROUP="disk"
KERNEL="dasd*",		NAME="%k", GROUP="disk"
KERNEL="ataraid*",	NAME="%k", GROUP="disk"

# DRI devices
KERNEL="card*",		NAME="dri/card%n", GROUP="video"
KERNEL="nvidia*",	NAME="%k", GROUP="video"
KERNEL="3dfx*",		NAME="%k", GROUP="video"

# ALSA devices
SUBSYSTEM="sound", GROUP="audio"
KERNEL="controlC[0-9]*",	NAME="snd/%k", MODE="0666"
KERNEL="hw[CD0-9]*",		NAME="snd/%k", MODE="0662"
KERNEL="pcm[CD0-9]*c",		NAME="snd/%k", MODE="0662"
KERNEL="pcm[CD0-9]*p",		NAME="snd/%k", MODE="0666"
KERNEL="midiC[D0-9]*",		NAME="snd/%k", MODE="0666"
KERNEL="timer",			NAME="snd/%k", MODE="0666"
KERNEL="seq",			NAME="snd/%k", MODE="0666"

# capi devices
KERNEL="capi",		NAME="capi20", SYMLINK="isdn/capi20"
KERNEL="capi*",		NAME="capi/%n"

# cpu devices
KERNEL="cpu[0-9]*",	NAME="cpu/%n/cpuid"
KERNEL="msr[0-9]*",	NAME="cpu/%n/msr"
KERNEL="microcode",	NAME="cpu/microcode"

# dm devices (ignore them)
KERNEL="dm-[0-9]*",	NAME=""
# create a symlink named after the device map name
# note devmap_name comes with extras/multipath
#KERNEL="dm-[0-9]*",	PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
KERNEL="device-mapper",	NAME="mapper/control"

# fb devices
KERNEL="fb[0-9]*",	NAME="fb/%n", SYMLINK="%k", GROUP="video"

# floppy devices
KERNEL="fd[0-9]*", NAME="floppy/%n", SYMLINK="%k", GROUP="floppy", PROGRAM="/etc/udev/scripts/floppy-extra-devs.sh %k %b %n"

# i2c devices
KERNEL="i2c-[0-9]*",	NAME="i2c/%n", SYMLINK="%k"

# input devices
KERNEL="mice",		NAME="input/%k", MODE="0644"
KERNEL="mouse*",	NAME="input/%k", MODE="0644"
KERNEL="event*",	NAME="input/%k", MODE="0600"
KERNEL="js*",		NAME="input/%k", MODE="664"
KERNEL="ts*",		NAME="input/%k", MODE="0600"

# loop devices
KERNEL="loop[0-9]*",	NAME="loop/%n", SYMLINK="%k", GROUP="disk"

# md block devices
KERNEL="md[0-9]*",	NAME="md/%n", SYMLINK="%k", GROUP="disk"

# aoe char devices,
SUBSYSTEM="aoe", KERNEL="discover",	NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM="aoe", KERNEL="err",		NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM="aoe", KERNEL="interfaces",	NAME="etherd/%k", GROUP="disk", MODE="0220"

# misc devices
KERNEL="agpgart",	NAME="misc/%k", SYMLINK="%k"
KERNEL="psaux",		NAME="misc/%k", SYMLINK="%k"
KERNEL="rtc",		NAME="misc/%k", SYMLINK="%k", MODE="0664"
KERNEL="uinput",	NAME="misc/%k", SYMLINK="%k"
KERNEL="inotify",	NAME="misc/%k", SYMLINK="%k", MODE="0666"

# netlink devices
KERNEL="route",		NAME="netlink/%k"
KERNEL="skip",		NAME="netlink/%k"
KERNEL="usersock",	NAME="netlink/%k"
KERNEL="fwmonitor",	NAME="netlink/%k"
KERNEL="tcpdiag",	NAME="netlink/%k"
KERNEL="nflog",		NAME="netlink/%k"
KERNEL="xfrm",		NAME="netlink/%k"
KERNEL="arpd",		NAME="netlink/%k"
KERNEL="route6",	NAME="netlink/%k"
KERNEL="ip6_fw",	NAME="netlink/%k"
KERNEL="dnrtmsg",	NAME="netlink/%k"
KERNEL="tap*",		NAME="netlink/%k"

# network devices
KERNEL="tun",		NAME="net/%k"

# ramdisk devices
KERNEL="ram[0-9]*",	NAME="rd/%n", SYMLINK="%k"

# raw devices
KERNEL="raw[0-9]*",	NAME="raw/%k", GROUP="disk"
KERNEL="ram*",		NAME="%k", GROUP="disk"

# sound devices
KERNEL="adsp",			NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="adsp[0-9]*",		NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="audio",			NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="audio[0-9]*",		NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="dsp",			NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="dsp[0-9]*",		NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="mixer",			NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="mixer[0-9]*",		NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="sequencer",		NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="sequencer[0-9]*",	NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"

# tty devices
KERNEL="console",	NAME="%k", GROUP="tty", MODE="0600"
KERNEL="tty",		NAME="%k", GROUP="tty", MODE="0666"
KERNEL="tty[0-9]*",	NAME="vc/%n",  SYMLINK="%k", GROUP="tty"
KERNEL="ttyS[0-9]*",	NAME="tts/%n", SYMLINK="%k", GROUP="tty"
KERNEL="ttyUSB[0-9]*",	NAME="tts/USB%n", GROUP="tty", MODE="0600"
KERNEL="ippp0",		NAME="%k", GROUP="tty"
KERNEL="isdn*",		NAME="%k", GROUP="tty"
KERNEL="dcbri*",	NAME="%k", GROUP="tty"
KERNEL="ircomm*",	NAME="%k", GROUP="tty"

# pty devices
KERNEL="ptmx",			NAME="%k", GROUP="tty", MODE="0666"
KERNEL="pty[p-za-e][0-9a-f]*",	NAME="pty/m%n", SYMLINK="%k", GROUP="tty"
KERNEL="tty[p-za-e][0-9a-f]*",	NAME="pty/s%n", SYMLINK="%k", GROUP="tty"

# vc devices
KERNEL="vcs",		NAME="vcc/0",	SYMLINK="%k", GROUP="tty"
KERNEL="vcs[0-9]*",	NAME="vcc/%n",	SYMLINK="%k", GROUP="tty"
KERNEL="vcsa",		NAME="vcc/a0",	SYMLINK="%k", GROUP="tty"
KERNEL="vcsa[0-9]*",	NAME="vcc/a%n",	SYMLINK="%k", GROUP="tty"

# memory devices
KERNEL="random",	NAME="%k", MODE="0664"
KERNEL="urandom",	NAME="%k", MODE="0664"
KERNEL="mem",		NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="kmem",		NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="port",		NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="full",		NAME="%k", MODE="0666"
KERNEL="null",		NAME="%k", MODE="0666"
KERNEL="zero",		NAME="%k", MODE="0666"

# usb devices
KERNEL="hiddev*",		NAME="usb/%k"
KERNEL="auer*",			NAME="usb/%k"
KERNEL="legousbtower*",		NAME="usb/%k"
KERNEL="dabusb*",		NAME="usb/%k"
BUS="usb", KERNEL="lp[0-9]*",	NAME="usb/%k", GROUP="lp"

# v4l devices
KERNEL="video[0-9]*",	NAME="v4l/video%n", SYMLINK="video%n", GROUP="video"
KERNEL="radio[0-9]*",	NAME="v4l/radio%n", GROUP="video"
KERNEL="vbi[0-9]*",	NAME="v4l/vbi%n", SYMLINK="vbi%n", GROUP="video"
KERNEL="vtx[0-9]*",	NAME="v4l/vtx%n", GROUP="video"

# dvb devices
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c", GROUP="video", MODE="0660"

# Asterix Zaptel devices
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"

# pilot/palm devices
KERNEL="pilot",		NAME="%k", GROUP="uucp"

# jaz devices
KERNEL="jaz*",		NAME="%k", GROUP="disk"

# zip devices
KERNEL="pocketzip*",	NAME="%k", GROUP="disk"
KERNEL="zip*",		NAME="%k", GROUP="disk"

# ls120 devices
KERNEL="ls120",		NAME="%k", GROUP="disk"

# lp devices
KERNEL="lp*",		NAME="%k", GROUP="lp"
KERNEL="irlpt",		NAME="%k", GROUP="lp"
KERNEL="usblp",		NAME="%k", GROUP="lp"
KERNEL="lp*",		NAME="%k", GROUP="lp"

# tape devices
KERNEL="ht*",		NAME="%k"
KERNEL="nht*",		NAME="%k"
KERNEL="pt*",		NAME="%k"
KERNEL="npt*",		NAME="%k"
KERNEL="st*",		NAME="%k"
KERNEL="nst*",		NAME="%k"
KERNEL="osst*",		NAME="%k"
KERNEL="nosst*",	NAME="%k"

# diskonkey devices
KERNEL="diskonkey*",	NAME="%k", GROUP="disk"

# rem_ide devices
KERNEL="microdrive*",	NAME="%k", GROUP="disk"

# kbd devices
KERNEL="kbd",		NAME="%k", MODE="0664"

# Sony Vaio Jogdial sonypi device
KERNEL="sonypi",	NAME="%k", MODE="0666"

# packet devices
KERNEL="pktcdvd",	NAME="pktcdvd/control", GROUP="cdrom", MODE="0660"
KERNEL="pktcdvd[0-9]*",	NAME="pktcdvd/pktcdvd%n", GROUP="cdrom", MODE="0660"

# infiniband devices
KERNEL="umad*",	NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k"

## These lines are causing race conditions with the symlink to udevstart in
## /etc/hotplug.d/default/, so they are being commented out for now.  Udev
## seems to work better that way...  YMMV.
#
## be backward compatible for a while with the /etc/dev.d and /etc/hotplug.d/.
## systems run /etc/hotplug.d/ stuff only if we came from a hotplug event,
## not for udevstart
#ENV{UDEVD_EVENT}=="1", RUN+="/sbin/udev_run_hotplugd"
#
## always run /etc/dev.d/ stuff for now
#RUN+="/sbin/udev_run_devd"

