busybox/examples/mdev_fat.conf
<<
>>
Prefs
   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