# Thanks to Piotr Karbowski for mdev-like-a-boss.
# TODO: audit the helpers and adapt them to Adélie

$MODALIAS=.*    0:0 0600  @modprobe -b "$MODALIAS"

console     0:0 0600
null        0:0 0666
urandom     0:0 0666
random      0:0 0444
kmem        0:0 0000
zero        0:0 0444
full        0:0 0222
ptmx        0:0 0666
pty.*       0:0 0600
fuse        0:0 0666

mem         root:kmem 0640
ptmx        root:tty 0666

# Typical devices
tty         root:tty 0666
tty[0-9]*   root:tty 0660
vcs*        root:tty 0660
ttyS[0-9]*  root:dialout 0660

# block devices
ram([0-9]*)     root:disk 0660
loop([0-9]+)    root:disk 0660
fd[0-9]*        root:floppy 0660
sd[a-z].*       root:disk 0660 # */opt/mdev/helpers/storage-device
vd[a-z].*       root:disk 0660 # */opt/mdev/helpers/storage-device
hd[a-z].*       root:disk 0660 # */opt/mdev/helpers/storage-device
md[0-9]*        root:disk 0660 # */opt/mdev/helpers/storage-device
dm-[0-9]*       root:disk 0660 # */opt/mdev/helpers/storage-device
bcache[0-9]*    root:disk 0660 # */opt/mdev/helpers/storage-device
mmcblk[0-9].*   root:disk 0660 # */opt/mdev/helpers/storage-device
sr[0-9]*        root:cdrom 0660 @ln -sf $MDEV cdrom

# Run settle-nics every time new NIC appear.
# If you don't want to auto-populate /etc/mactab with NICs, run 'settle-nics' without '--write-mactab' param.
# -SUBSYSTEM=net;DEVPATH=.*/net/.*;.*     root:root 600 @/opt/mdev/helpers/settle-nics --write-mactab

net/tun[0-9]*   root:kvm 0660
net/tap[0-9]*   root:root 0600

# alsa sound devices and audio stuff
SUBSYSTEM=sound;.*  root:audio 0660 # @/opt/mdev/helpers/sound-control

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


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

agpgart     root:root 0660 # >misc/
psaux       root:root 0660 # >misc/
rtc[0-9]*   root:root 0600 @ln -sf $MDEV rtc

# input stuff
SUBSYSTEM=input;.* root:input 0660

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

# dvb stuff
dvb.*       root:video 660

# drm etc
card[0-9]   root:video 0660 =dri/
dri/.*      root:video 0660