#
# This is a sample mdev.conf
#

# Provide user, group, and mode information for devices.  If a regex matches
# the device name provided by sysfs, use the appropriate user:group and mode
# instead of the default 0:0 660.
#
# Syntax:
# [-]devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
# [-]$ENVVAR=regex    user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
# [-]@maj,min[-min2]  user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
#
# [-]: do not stop on this match, continue reading mdev.conf
# =: move, >: move and create a symlink
# !: do not create device node
# @|$|*: run cmd if $ACTION=remove, @cmd if $ACTION=add, *cmd in all cases

# support module loading on hotplug
$MODALIAS=.*	root:root 660 @modprobe "$MODALIAS"

# null may already exist; therefore ownership has to be changed with command
null		root:root 666 @chmod 666 $MDEV
zero		root:root 666
full		root:root 666
random		root:root 444
urandom		root:root 444
hwrandom	root:root 444
grsec		root:root 660

kmem		root:root 640
mem		root:root 640
port		root:root 640
# console may already exist; therefore ownership has to be changed with command
console		root:tty 600 @chmod 600 $MDEV
ptmx		root:tty 666
pty.*		root:tty 660

# Typical devices

tty		root:tty 666
tty[0-9]*	root:tty 660
vcsa*[0-9]*	root:tty 660
ttyS[0-9]*	root:uucp 660

# block devices
ram([0-9]*)	root:disk 660 >rd/%1
loop([0-9]+)	root:disk 660 >loop/%1
sd[a-z].*	root:disk 660 */lib/mdev/usbdisk_link
hd[a-z][0-9]*	root:disk 660 */lib/mdev/ide_links
md[0-9]*	root:disk 660
sr[0-9]*	root:cdrom 660 @ln -sf $MDEV cdrom
fd[0-9]*	root:floppy 660

# net devices
tun[0-9]*	root:root 600 =net/
tap[0-9]*	root:root 600 =net/

# alsa sound devices and audio stuff
pcm.*		root:audio 660 =snd/
control.*	root:audio 660 =snd/
midi.*		root:audio 660 =snd/
seq		root:audio 660 =snd/
timer		root:audio 660 =snd/

adsp		root:audio 660 >sound/
audio		root:audio 660 >sound/
dsp		root:audio 660 >sound/
mixer		root:audio 660 >sound/
sequencer.*	root:audio 660 >sound/

# Less typical devices

# raid controllers
cciss!(.*)	root:disk 660 =cciss/%1
ida!(.*)	root:disk 660 =ida/%1
rd!(.*)		root:disk 660 =rd/%1

ttyLTM[0-9]	root:dialout 660 @ln -sf $MDEV modem
ttySHSF[0-9]	root:dialout 660 @ln -sf $MDEV modem
slamr		root:dialout 660 @ln -sf $MDEV slamr0
slusb		root:dialout 660 @ln -sf $MDEV slusb0

fuse		root:root 666

# dri device
card[0-9]	root:video 660 =dri/

# misc stuff
agpgart		root:root 660 >misc/
psaux		root:root 660 >misc/
rtc		root:root 664 >misc/

# input stuff
event[0-9]+	root:root 640 =input/
mice		root:root 640 =input/
mouse[0-9]	root:root 640 =input/
ts[0-9]		root:root 600 =input/

# v4l stuff
vbi[0-9]	root:video 660 >v4l/
video[0-9]	root:video 660 >v4l/

# dvb stuff
dvb.*		root:video 660 */lib/mdev/dvbdev

# load drivers for usb devices
usbdev[0-9].[0-9]	root:root 660 */lib/mdev/usbdev
usbdev[0-9].[0-9]_.*	root:root 660

# zaptel devices
zap(.*)		root:dialout 660 =zap/%1
dahdi!(.*)	root:dialout 660 =dahdi/%1