#
# This is a sample mdev.conf.
#

# Devices:
# Syntax: %s %d:%d %s
# devices user:group mode

$MODALIAS=.*	root:root	0660	@modprobe -q -b "$MODALIAS"

# null does already exist; therefore ownership has to be changed with command
null	root:root 0666	@chmod 666 $MDEV
zero	root:root 0666
full	root:root 0666

random	root:root 0666
urandom	root:root 0444
hwrandom root:root 0660

console root:tty 0600

# load frambuffer console when first frambuffer is found
fb0	root:video 0660 @modprobe -q -b fbcon

fd0	root:floppy 0660
kmem	root:root 0640
mem	root:root 0640
port	root:root 0640
ptmx	root:tty 0666

# Kernel-based Virtual Machine.
kvm		root:kvm 660

# ram.*
ram([0-9]*)	root:disk 0660 >rd/%1
loop([0-9]+)	root:disk 0660 >loop/%1

# persistent storage
dasd.*		root:disk 0660 */lib/mdev/persistent-storage
mmcblk.*	root:disk 0660 */lib/mdev/persistent-storage
nbd.*		root:disk 0660 */lib/mdev/persistent-storage
nvme.*		root:disk 0660 */lib/mdev/persistent-storage
sd[a-z].*	root:disk 0660 */lib/mdev/persistent-storage
sr[0-9]+	root:cdrom 0660 */lib/mdev/persistent-storage
vd[a-z].*	root:disk 0660 */lib/mdev/persistent-storage
xvd[a-z].*	root:disk 0660 */lib/mdev/persistent-storage

md[0-9]		root:disk 0660

tty		root:tty 0666
tty[0-9]	root:root 0600
tty[0-9][0-9]	root:tty 0660
ttyS[0-9]*	root:uucp 0660
pty.*		root:tty 0660
vcs[0-9]*	root:tty 0660
vcsa[0-9]*	root:tty 0660

# rpi bluetooth
#ttyAMA0	root:tty 660 @btattach -B /dev/$MDEV -P bcm -S 115200 -N &

ttyACM[0-9]	root:dialout 0660 @ln -sf $MDEV modem
ttyUSB[0-9]	root:dialout 0660 @ln -sf $MDEV modem
ttyLTM[0-9]	root:dialout 0660 @ln -sf $MDEV modem
ttySHSF[0-9]	root:dialout 0660 @ln -sf $MDEV modem
slamr		root:dialout 0660 @ln -sf $MDEV slamr0
slusb		root:dialout 0660 @ln -sf $MDEV slusb0
fuse		root:root  0666

# mobile broadband modems
cdc-wdm[0-9]+	root:dialout 0660

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

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

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/

SUBSYSTEM=sound;.*	root:audio 0660

# PTP devices
ptp[0-9]	root:root 0660 */lib/mdev/ptpdev

# virtio-ports
SUBSYSTEM=virtio-ports;vport.* root:root 0600 @mkdir -p virtio-ports; ln -sf ../$MDEV virtio-ports/$(cat /sys/class/virtio-ports/$MDEV/name)

# misc stuff
agpgart		root:root 0660  >misc/
psaux		root:root 0660  >misc/
rtc		root:root 0664  >misc/

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

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

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

# VideoCore VC4 BCM GPU specific (as in Pi devices)
vchiq	root:video 0660
vcio	root:video 0660
vcsm-cma	root:video 0660
vc-mem	root:video 0660

# load drivers for usb devices
usb[0-9]+	root:root 0660 */lib/mdev/usbdev

# net devices
# 666 is fine: https://www.kernel.org/doc/Documentation/networking/tuntap.txt
net/tun[0-9]*	root:netdev 0666
net/tap[0-9]*	root:netdev 0666

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

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

# tape devices
nst[0-9]+.*	root:tape 0660
st[0-9]+.*	root:tape 0660

# fallback for any!device -> any/device
(.*)!(.*)	root:root 0660 =%1/%2
