blob: 630d2700a214a741799b604c2daefc06b204b5f2 [file] [log] [blame]
Denys Vlasenko6e8e6662009-11-07 04:00:03 +01001#
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:
Denys Vlasenko5bce1352013-02-27 10:51:41 +010010# [-][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...]
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010013#
Denys Vlasenkoea57f512012-05-18 11:39:57 +020014# [-]: do not stop on this match, continue reading mdev.conf
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010015# =: move, >: move and create a symlink
Denys Vlasenkoea57f512012-05-18 11:39:57 +020016# !: do not create device node
17# @|$|*: run cmd if $ACTION=remove, @cmd if $ACTION=add, *cmd in all cases
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010018
Denys Vlasenko44f8d012009-11-07 18:21:03 +010019# support module loading on hotplug
20$MODALIAS=.* root:root 660 @modprobe "$MODALIAS"
21
Denys Vlasenkoa0319592015-02-07 18:14:39 +010022# null may already exist; therefore mode has to be changed with command
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010023null root:root 666 @chmod 666 $MDEV
24zero root:root 666
25full root:root 666
Denys Vlasenkobf40f562009-11-07 17:54:44 +010026random root:root 444
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010027urandom root:root 444
Denys Vlasenkobf40f562009-11-07 17:54:44 +010028hwrandom root:root 444
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010029grsec root:root 660
30
31kmem root:root 640
32mem root:root 640
33port root:root 640
Denys Vlasenkoa0319592015-02-07 18:14:39 +010034# console may already exist; therefore mode has to be changed with command
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010035console 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
Denys Vlasenko5bce1352013-02-27 10:51:41 +010056SUBSYSTEM=net;.* root:root 600 @nameif
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010057tun[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/
Denys Vlasenkoa0319592015-02-07 18:14:39 +010066# 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
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010072
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
Denys Vlasenkobf40f562009-11-07 17:54:44 +010090
Denys Vlasenko6e8e6662009-11-07 04:00:03 +010091fuse 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
Denys Vlasenkoe306c112013-03-30 16:23:12 +0100121
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)
Denys Vlasenkoa0319592015-02-07 18:14:39 +0100148# Unfortunately, there is no event for "user pressed [Turn USB storage on] btn"!
Denys Vlasenkoe306c112013-03-30 16:23:12 +0100149# 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