watchdog: stop watchdog first on startup
[oweals/busybox.git] / docs / mdev.txt
index a8a816ce9d9771c97010112fb5c39a0454ec7591..b24025f7b73587cab98d25c23ed5de906b7df0d6 100644 (file)
@@ -17,12 +17,12 @@ updates, you also need to have hotplugging enabled in your kernel.
 Here's a typical code snippet from the init script:
 [0] mount -t proc proc /proc
 [1] mount -t sysfs sysfs /sys
-[2] echo /bin/mdev > /proc/sys/kernel/hotplug
+[2] echo /sbin/mdev > /proc/sys/kernel/hotplug
 [3] mdev -s
 
 Alternatively, without procfs the above becomes:
 [1] mount -t sysfs sysfs /sys
-[2] sysctl -w kernel.hotplug=/bin/mdev
+[2] sysctl -w kernel.hotplug=/sbin/mdev
 [3] mdev -s
 
 
@@ -33,7 +33,7 @@ code snippet:
 [6] mount -t devpts devpts /dev/pts
 
 The simple explanation here is that [1] you need to have /sys mounted before
-executing mdev.  Then you [2] instruct the kernel to execute /bin/mdev whenever
+executing mdev.  Then you [2] instruct the kernel to execute /sbin/mdev whenever
 a device is added or removed so that the device node can be created or
 destroyed.  Then you [3] seed /dev with all the device nodes that were created
 while the system was booting.
@@ -51,19 +51,25 @@ device nodes if your system needs something more than the default root/root
 660 permissions.
 
 The file has the format:
-    <device regex>       <uid>:<gid> <octal permissions>
- or @<maj[,min1[-min2]]> <uid>:<gid> <octal permissions>
+       [-][envmatch]<device regex>     <uid>:<gid> <permissions>
+or
+       [envmatch]@<maj[,min1[-min2]]>  <uid>:<gid> <permissions>
+or
+       $envvar=<regex>         <uid>:<gid> <permissions>
 
 For example:
-    hd[a-z][0-9]* 0:3 660
+       hd[a-z][0-9]* 0:3 660
 
 The config file parsing stops at the first matching line.  If no line is
 matched, then the default of 0:0 660 is used.  To set your own default, simply
 create your own total match like so:
+
        .* 1:1 777
 
 You can rename/move device nodes by using the next optional field.
-       <device regex> <uid>:<gid> <octal permissions> [=path]
+
+       <device regex> <uid>:<gid> <permissions> [=path]
+
 So if you want to place the device node into a subdirectory, make sure the path
 has a trailing /.  If you want to rename the device node, just place the name.
        hda 0:3 660 =drives/
@@ -74,11 +80,29 @@ This will rename "hdb" to "cdrom".
 Similarly, ">path" renames/moves the device but it also creates
 a direct symlink /dev/DEVNAME to the renamed/moved device.
 
+You can also prevent creation of device nodes with the 4th field as "!":
+       tty[a-z]. 0:0 660 !
+       pty[a-z]. 0:0 660 !
+
 If you also enable support for executing your own commands, then the file has
 the format:
-       <device regex> <uid>:<gid> <octal permissions> [=path] [@|$|*<command>]
+       <device regex> <uid>:<gid> <permissions> [=path] [@|$|*<command>]
     or
-       <device regex> <uid>:<gid> <octal permissions> [>path] [@|$|*<command>]
+       <device regex> <uid>:<gid> <permissions> [>path] [@|$|*<command>]
+    or
+       <device regex> <uid>:<gid> <permissions> [!] [@|$|*<command>]
+
+For example:
+---8<---
+# block devices
+([hs]d[a-z])           root:disk       660     >disk/%1/0
+([hs]d[a-z])([0-9]+)   root:disk       660     >disk/%1/%2
+mmcblk([0-9]+)         root:disk       660     >disk/mmc/%1/0
+mmcblk([0-9]+)p([0-9]+)        root:disk       660     >disk/mmc/%1/%2
+# network devices
+(tun|tap)              root:network    660     >net/%1
+---8<---
+
 The special characters have the meaning:
        @ Run after creating the device.
        $ Run before removing the device.
@@ -122,6 +146,6 @@ IOW: this will serialize concurrent mdev invocations.
 
 If you want to activate this feature, execute "echo >/dev/mdev.seq" prior to
 setting mdev to be the hotplug handler. This writes single '\n' to the file.
-NB: mdev recognizes /dev/mdev.seq consisting of single '\n' characher
+NB: mdev recognizes /dev/mdev.seq consisting of single '\n' character
 as a special case. IOW: this will not make your first hotplug event
 to stall for two seconds.