1# 2# This is a sample mdev.conf 3# 4 5# Provide user, group, and mode information for devices. If a regex matches 6# the device name provided by sysfs, use the appropriate user:group and mode 7# instead of the default 0:0 660. 8# 9# Syntax: 10# [-][ENVVAR=regex;]...devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 11# [-][ENVVAR=regex;]...@maj,min[-min2] user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 12# [-]$ENVVAR=regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 13# 14# [-]: do not stop on this match, continue reading mdev.conf 15# =: move, >: move and create a symlink 16# !: do not create device node 17# @|$|*: run cmd if $ACTION=remove, @cmd if $ACTION=add, *cmd in all cases 18 19# support module loading on hotplug 20$MODALIAS=.* root:root 660 @modprobe "$MODALIAS" 21 22# null may already exist; therefore mode has to be changed with command 23null root:root 666 @chmod 666 $MDEV 24zero root:root 666 25full root:root 666 26random root:root 444 27urandom root:root 444 28hwrandom root:root 444 29grsec root:root 660 30 31kmem root:root 640 32mem root:root 640 33port root:root 640 34# console may already exist; therefore mode has to be changed with command 35console root:tty 600 @chmod 600 $MDEV 36ptmx root:tty 666 37pty.* root:tty 660 38 39# Typical devices 40 41tty root:tty 666 42tty[0-9]* root:tty 660 43vcsa*[0-9]* root:tty 660 44ttyS[0-9]* root:uucp 660 45 46# block devices 47ram([0-9]*) root:disk 660 >rd/%1 48loop([0-9]+) root:disk 660 >loop/%1 49sd[a-z].* root:disk 660 */lib/mdev/usbdisk_link 50hd[a-z][0-9]* root:disk 660 */lib/mdev/ide_links 51md[0-9]* root:disk 660 52sr[0-9]* root:cdrom 660 @ln -sf $MDEV cdrom 53fd[0-9]* root:floppy 660 54 55# net devices 56SUBSYSTEM=net;.* root:root 600 @nameif 57tun[0-9]* root:root 600 =net/ 58tap[0-9]* root:root 600 =net/ 59 60# alsa sound devices and audio stuff 61pcm.* root:audio 660 =snd/ 62control.* root:audio 660 =snd/ 63midi.* root:audio 660 =snd/ 64seq root:audio 660 =snd/ 65timer root:audio 660 =snd/ 66# for kernels/mdevs which expose full path of alsa devices: 67snd/pcm.* root:audio 660 68snd/control.* root:audio 660 69snd/midi.* root:audio 660 70snd/seq root:audio 660 71snd/timer root:audio 660 72 73adsp root:audio 660 >sound/ 74audio root:audio 660 >sound/ 75dsp root:audio 660 >sound/ 76mixer root:audio 660 >sound/ 77sequencer.* root:audio 660 >sound/ 78 79# Less typical devices 80 81# raid controllers 82cciss!(.*) root:disk 660 =cciss/%1 83ida!(.*) root:disk 660 =ida/%1 84rd!(.*) root:disk 660 =rd/%1 85 86ttyLTM[0-9] root:dialout 660 @ln -sf $MDEV modem 87ttySHSF[0-9] root:dialout 660 @ln -sf $MDEV modem 88slamr root:dialout 660 @ln -sf $MDEV slamr0 89slusb root:dialout 660 @ln -sf $MDEV slusb0 90 91fuse root:root 666 92 93# dri device 94card[0-9] root:video 660 =dri/ 95 96# misc stuff 97agpgart root:root 660 >misc/ 98psaux root:root 660 >misc/ 99rtc root:root 664 >misc/ 100 101# input stuff 102event[0-9]+ root:root 640 =input/ 103mice root:root 640 =input/ 104mouse[0-9] root:root 640 =input/ 105ts[0-9] root:root 600 =input/ 106 107# v4l stuff 108vbi[0-9] root:video 660 >v4l/ 109video[0-9] root:video 660 >v4l/ 110 111# dvb stuff 112dvb.* root:video 660 */lib/mdev/dvbdev 113 114# load drivers for usb devices 115usbdev[0-9].[0-9] root:root 660 */lib/mdev/usbdev 116usbdev[0-9].[0-9]_.* root:root 660 117 118# zaptel devices 119zap(.*) root:dialout 660 =zap/%1 120dahdi!(.*) root:dialout 660 =dahdi/%1 121 122# HTC Android 123# Attaching it via USB cable causes a flurry of activity: 124# 125# mdev[1271]: 48.639459 ACTION:add SUBSYSTEM:usb DEVNAME:bus/usb/001/009 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5 126# mdev[1271]: mknod bus/usb/001/009 (189,8) 20660 0:0 127# mdev[1272]: 48.642354 ACTION:add SUBSYSTEM:usb DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0 128# mdev[1272]: running: modprobe "$MODALIAS" 129# mdev[1273]: 48.650078 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11 130# mdev[1274]: 48.651297 ACTION:add SUBSYSTEM:scsi_host DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/scsi_host/host11 131# mdev[1275]: 49.649422 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0 132# mdev[1276]: 49.650703 ACTION:add SUBSYSTEM:scsi DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0 133# mdev[1276]: running: modprobe "$MODALIAS" 134# modprobe: module scsi:t-0x00 not found in modules.dep 135# mdev[1277]: 49.658002 ACTION:add SUBSYSTEM:scsi_disk DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_disk/11:0:0:0 136# mdev[1278]: 49.659244 ACTION:add SUBSYSTEM:scsi_device DEVNAME:(null) DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/scsi_device/11:0:0: 137# mdev[1279]: 49.660535 ACTION:add SUBSYSTEM:bsg DEVNAME:bsg/11:0:0:0 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5/1-5:1.0/host11/target11:0:0/11:0:0:0/bsg/11:0:0:0 138# mdev[1279]: mknod bsg/11:0:0:0 (253,1) 20660 0:0 139# mdev[1280]: 49.663516 ACTION:add SUBSYSTEM:bdi DEVNAME:(null) DEVPATH:/devices/virtual/bdi/8:16 140# mdev[1281]: 49.664748 ACTION:add SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb 141# mdev[1281]: mknod sdb (8,16) 60660 0:0 142# mdev[1282]: 49.677597 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb 143# mdev[1283]: 50.692936 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb 144# 145# We are hooking to the last events. To avoid having two scripts running, 146# we check for DISK_MEDIA_CHANGE=1 (prev to last event has it, 147# and it's the _only_ difference in env for these two events as of kernel 3.7.7) 148# Unfortunately, there is no event for "user pressed [Turn USB storage on] btn"! 149# Script merely backgrounds and tries to rescan partition table for 1 minute: 150ACTION=change;SUBSYSTEM=block;DISK_MEDIA_CHANGE=1;.* 0:0 660 */etc/mdev.conf.change_blockdev.sh 151