summaryrefslogtreecommitdiff
path: root/examples/mdev_fat.conf
blob: 630d2700a214a741799b604c2daefc06b204b5f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#
# 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:
# [-][ENVVAR=regex;]...devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
# [-][ENVVAR=regex;]...@maj,min[-min2]  user:group mode [=path]|[>path]|[!] [@|$|*cmd args...]
# [-]$ENVVAR=regex                      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 mode 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 mode 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
SUBSYSTEM=net;.* root:root 600 @nameif
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/
# for kernels/mdevs which expose full path of alsa devices:
snd/pcm.*	root:audio 660
snd/control.*	root:audio 660
snd/midi.*	root:audio 660
snd/seq		root:audio 660
snd/timer	root:audio 660

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

# HTC Android
# Attaching it via USB cable causes a flurry of activity:
#
# mdev[1271]: 48.639459 ACTION:add SUBSYSTEM:usb DEVNAME:bus/usb/001/009 DEVPATH:/devices/pci0000:00/0000:00:02.1/usb1/1-5
# mdev[1271]: mknod bus/usb/001/009 (189,8) 20660 0:0
# 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
# mdev[1272]: running: modprobe "$MODALIAS"
# 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
# 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
# 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
# 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
# mdev[1276]: running: modprobe "$MODALIAS"
# modprobe: module scsi:t-0x00 not found in modules.dep
# 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
# 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:
# 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
# mdev[1279]: mknod bsg/11:0:0:0 (253,1) 20660 0:0
# mdev[1280]: 49.663516 ACTION:add SUBSYSTEM:bdi DEVNAME:(null) DEVPATH:/devices/virtual/bdi/8:16
# mdev[1281]: 49.664748 ACTION:add SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
# mdev[1281]: mknod sdb (8,16) 60660 0:0
# mdev[1282]: 49.677597 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
# mdev[1283]: 50.692936 ACTION:change SUBSYSTEM:block DEVNAME:sdb DEVPATH:/block/sdb
#
# We are hooking to the last events. To avoid having two scripts running,
# we check for DISK_MEDIA_CHANGE=1 (prev to last event has it,
# and it's the _only_ difference in env for these two events as of kernel 3.7.7)
# Unfortunately, there is no event for "user pressed [Turn USB storage on] btn"!
# Script merely backgrounds and tries to rescan partition table for 1 minute:
ACTION=change;SUBSYSTEM=block;DISK_MEDIA_CHANGE=1;.*    0:0 660 */etc/mdev.conf.change_blockdev.sh