# /etc/udev/udev.rules: device naming rules for udev
-# $Header: /home/cvsroot/gentoo-x86/sys-fs/udev/files/udev.rules,v 1.1 2003/12/26 23:32:44 azarah Exp $
#
-# There are a number of modifiers that are allowed to be used in the NAME or PROGRAM fields.
-# They provide the following subsitutions:
-# %n - the "kernel number" of the device.
-# for example, 'sda3' has a "kernel number" of '3'
-# %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 return value for the CALLOUT program (note, this doesn't work within
-# the PROGRAM field for the obvious reason.)
-# %D - use the devfs style disk name for this device.
-# For partitions, this will result in 'part%n'
-# If this is not a partition, it will result in 'disc'
+# Gentoo specific rules, based a bit on devfs rules, but much simpler.
#
-
-###########################################################
-#
-# Add your own rules here
-#
-###########################################################
-
-# Looking for scsi bus id 42:0:0:1
-CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n test-%b", ID="test-42:0:0:1", NAME="%c"
-
-# A usb camera.
-LABEL, BUS="usb", SYSFS_vendor="FUJIFILM", SYSFS_model="M100", NAME="camera%n"
-
-# USB Epson printer to be called lp_epson
-LABEL, BUS="usb", SYSFS_serial="HXOLL0012202323480", NAME="lp_epson"
-
-# USB HP printer to be called lp_hp
-LABEL, BUS="usb", SYSFS_serial="W09090207101241330", NAME="lp_hp"
-
-# sound card with PCI bus id 00:0b.0 to be the first sound card
-NUMBER, BUS="pci", ID="00:0b.0", NAME="dsp"
-
-# sound card with PCI bus id 00:07.1 to be the second sound card
-NUMBER, BUS="pci", ID="00:07.1", NAME="dsp1"
-
-# USB mouse plugged into the third port of the first hub to be called mouse0
-TOPOLOGY, BUS="usb", PLACE="1.3", NAME="mouse0"
-
-# USB tablet plugged into the third port of the second hub to be called mouse1
-TOPOLOGY, BUS="usb", PLACE="2.3", NAME="mouse1"
-TOPOLOGY, BUS="usb", PLACE="2.4", NAME="mouse2"
-
-# ttyUSB1 should always be called visor
-REPLACE, KERNEL="ttyUSB1", NAME="visor"
-REPLACE, KERNEL="ttyUSB0", NAME="pl2303"
+# 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.
###########################################################
# devfs-names for ide-devices (uncomment only one)
# /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names
-CALLOUT, BUS="ide", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", ID="hd*", NAME="%1c", SYMLINK="%2c %3c"
-
+BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
+
+# DRI devices
+KERNEL="card*", NAME="dri/card%n"
+
+# alsa devices
+KERNEL="controlC[0-9]*", NAME="snd/%k"
+KERNEL="hw[CD0-9]*", NAME="snd/%k"
+KERNEL="pcm[CD0-9cp]*", NAME="snd/%k"
+KERNEL="midiC[D0-9]*", NAME="snd/%k"
+KERNEL="timer", NAME="snd/%k"
+KERNEL="seq", NAME="snd/%k"
+
+# 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
-REPLACE, KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k"
+KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k"
+
+# floppy devices
+KERNEL="fd[0-9]*", NAME="floppy/%n", SYMLINK="%k"
+
+# i2c devices
+KERNEL="i2c-[0-9]*", NAME="i2c/%n", SYMLINK="%k"
+
+# input devices
+KERNEL="mice", NAME="input/%k"
+KERNEL="mouse*", NAME="input/%k"
+KERNEL="event*", NAME="input/%k"
+KERNEL="js*", NAME="input/%k"
+KERNEL="ts*", NAME="input/%k"
# loop devices
-REPLACE, KERNEL="loop[0-9]*", NAME="loop/%n", SYMLINK="%k"
+KERNEL="loop[0-9]*", NAME="loop/%n", SYMLINK="%k"
# md block devices
-REPLACE, KERNEL="md[0-9]*", NAME="md/%n", SYMLINK="%k"
+KERNEL="md[0-9]*", NAME="md/%n", SYMLINK="%k"
-# pty devices
-REPLACE, KERNEL="pty[p-za-e][0-9a-f]*", NAME="pty/m%n", SYMLINK="%k"
-REPLACE, KERNEL="tty[p-za-e][0-9a-f]*", NAME="tty/s%n", SYMLINK="%k"
+# misc devices
+KERNEL="rtc", NAME="misc/%k", SYMLINK="%k"
+KERNEL="psaux", NAME="misc/%k", SYMLINK="%k"
+KERNEL="agpgart", NAME="misc/%k", SYMLINK="%k"
+KERNEL="rtc", NAME="misc/%k", SYMLINK="%k"
+KERNEL="psaux", NAME="misc/%k", SYMLINK="%k"
+KERNEL="uinput", NAME="misc/%k", SYMLINK="%k"
-# ram devices
-REPLACE, KERNEL="ram[0-9]*", NAME="rd/%n", SYMLINK="%k"
+# pty devices
+KERNEL="pty[p-za-e][0-9a-f]*", NAME="pty/m%n", SYMLINK="%k"
+KERNEL="tty[p-za-e][0-9a-f]*", NAME="tty/s%n", SYMLINK="%k"
+
+# ramdisk devices
+KERNEL="ram[0-9]*", NAME="rd/%n", SYMLINK="%k"
+
+# sound devices
+KERNEL="adsp", NAME="sound/%k", SYMLINK="%k"
+KERNEL="adsp[0-9]*", NAME="sound/%k", SYMLINK="%k"
+KERNEL="audio", NAME="sound/%k", SYMLINK="%k"
+KERNEL="audio[0-9]*", NAME="sound/%k", SYMLINK="%k"
+KERNEL="dsp", NAME="sound/%k", SYMLINK="%k"
+KERNEL="dsp[0-9]*", NAME="sound/%k", SYMLINK="%k"
+KERNEL="mixer", NAME="sound/%k", SYMLINK="%k"
+KERNEL="mixer[0-9]*", NAME="sound/%k", SYMLINK="%k"
+KERNEL="sequencer", NAME="sound/%k", SYMLINK="%k"
+KERNEL="sequencer[0-9]*", NAME="sound/%k", SYMLINK="%k"
# tty devices
-REPLACE, KERNEL="tty[0-9]*", NAME="vc/%n", SYMLINK="%k"
-REPLACE, KERNEL="ttyS[0-9]*", NAME="tts/%n", SYMLINK="%k"
-REPLACE, KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
+KERNEL="tty[0-9]*", NAME="vc/%n", SYMLINK="%k"
+KERNEL="ttyS[0-9]*", NAME="tts/%n", SYMLINK="%k"
+KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
# vc devices
-REPLACE, KERNEL="vcs", NAME="vcc/0", SYMLINK="%k"
-REPLACE, KERNEL="vcs[0-9]*", NAME="vcc/%n", SYMLINK="%k"
-REPLACE, KERNEL="vcsa", NAME="vcc/a0", SYMLINK="%k"
-REPLACE, KERNEL="vcsa[0-9]*", NAME="vcc/a%n", SYMLINK="%k"
+KERNEL="vcs", NAME="vcc/0", SYMLINK="%k"
+KERNEL="vcs[0-9]*", NAME="vcc/%n", SYMLINK="%k"
+KERNEL="vcsa", NAME="vcc/a0", SYMLINK="%k"
+KERNEL="vcsa[0-9]*", NAME="vcc/a%n", SYMLINK="%k"
# v4l devices
-REPLACE, KERNEL="video[0-9]*", NAME="v4l/video%n"
-REPLACE, KERNEL="radio[0-9]*", NAME="v4l/radio%n"
-REPLACE, KERNEL="vbi[0-9]*", NAME="v4l/vbi%n"
-REPLACE, KERNEL="vtx[0-9]*", NAME="v4l/vtx%n"
-
+KERNEL="video[0-9]*", NAME="v4l/video%n"
+KERNEL="radio[0-9]*", NAME="v4l/radio%n"
+KERNEL="vbi[0-9]*", NAME="v4l/vbi%n"
+KERNEL="vtx[0-9]*", NAME="v4l/vtx%n"
+
+# USB devices
+KERNEL="hiddev*", NAME="usb/%k"
+KERNEL="auer*", NAME="usb/%k"
+KERNEL="legousbtower*", NAME="usb/%k"
+KERNEL="dabusb*", NAME="usb/%k"
+
+# 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"