E.1. 55-lfs.rules

# /etc/udev/rules.d/55-lfs.rules: Rule definitions for LFS.

# Core kernel devices

# override both of these
KERNEL=="random",   MODE="0444"
KERNEL=="urandom",  MODE="0444"

KERNEL=="aio",      MODE="0444"
KERNEL=="kmsg",     MODE="0600"
KERNEL=="rtc",      MODE="0666"

# Comms devices

KERNEL=="rfcomm[0-9]*",     GROUP="uucp"
KERNEL=="ippp[0-9]*",       GROUP="uucp"
KERNEL=="isdn[0-9]*",       GROUP="uucp"
KERNEL=="isdnctrl[0-9]*",   GROUP="uucp"
KERNEL=="capi",             NAME="capi20",  SYMLINK+="isdn/capi20"
KERNEL=="capi?*",           NAME="capi/%n", GROUP="uucp"
KERNEL=="dcbri[0-9]*",      GROUP="uucp"

# ALSA devices go in their own subdirectory

KERNEL=="controlC[0-9]*",        GROUP="audio",  NAME="snd/%k"
KERNEL=="hwC[0-9]*D[0-9]*",      GROUP="audio",  NAME="snd/%k"
KERNEL=="pcmC[0-9]*D[0-9]*[cp]", GROUP="audio",  NAME="snd/%k"
KERNEL=="midiC[0-9]*D[0-9]*",    GROUP="audio",  NAME="snd/%k"
KERNEL=="timer",                 GROUP="audio",  NAME="snd/%k"
KERNEL=="seq",                   GROUP="audio",  NAME="snd/%k"

# Sound devices

KERNEL=="admmidi*",     GROUP="audio"
KERNEL=="adsp*",        GROUP="audio"
KERNEL=="aload*",       GROUP="audio"
KERNEL=="amidi*",       GROUP="audio"
KERNEL=="amixer*",      GROUP="audio"
KERNEL=="audio*",       GROUP="audio"
KERNEL=="dmfm*",        GROUP="audio"
KERNEL=="dmmidi*",      GROUP="audio"
KERNEL=="dsp*",         GROUP="audio"
KERNEL=="midi*",        GROUP="audio"
KERNEL=="mixer*",       GROUP="audio"
KERNEL=="music",        GROUP="audio"
KERNEL=="sequencer*",   GROUP="audio"

# Input devices

# override MODE on these four
KERNEL=="mice",     MODE="0644",    SYMLINK+="mouse"
KERNEL=="mouse*",   MODE="0644"
KERNEL=="event*",   MODE="0644"
KERNEL=="ts*",      MODE="0644"

KERNEL=="psaux",    MODE="0644"
KERNEL=="js",       MODE="0644"
KERNEL=="djs",      MODE="0644"

# USB devices go in their own subdirectory

KERNEL=="hiddev*",          NAME="usb/%k"
KERNEL=="legousbtower*",    NAME="usb/%k"
KERNEL=="dabusb*",          NAME="usb/%k"
SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"

# DRI devices are managed by the X server, so prevent udev from creating them

KERNEL=="card*",    OPTIONS+="ignore_device"

# Video devices

KERNEL=="fb[0-9]*",     GROUP="video"
KERNEL=="video[0-9]*",  GROUP="video"
KERNEL=="radio[0-9]*",  GROUP="video"
KERNEL=="vbi[0-9]*",    GROUP="video"
KERNEL=="vtx[0-9]*",    GROUP="video"

# DVB devices

SUBSYSTEM=="dvb", GROUP="video"

# Storage/memory devices

# override: make group-writable
SUBSYSTEM=="block", MODE="0660"

# dmsetup and lvm2 related programs create devicemapper devices so we prevent
# udev from creating them

KERNEL=="dm-*",             OPTIONS+="ignore_device"

# Tape devices

# override all these
KERNEL=="ht[0-9]*",     GROUP="tape"
KERNEL=="nht[0-9]*",    GROUP="tape"
KERNEL=="pt[0-9]*",     GROUP="tape"
KERNEL=="npt[0-9]*",    GROUP="tape"
KERNEL=="st[0-9]*",     GROUP="tape"
KERNEL=="nst[0-9]*",    GROUP="tape"

# Override floppy devices
KERNEL=="fd[0-9]",    GROUP="floppy"
KERNEL=="fd[0-9]", ACTION=="add", ATTRS{cmos}=="?*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/%k"