For those of us who know how to use mdev, a primer might seem lame. For
everyone else, mdev is a weird black box that they hear is awesome, but
seem to get their head around how it works. Thus, a primer.
Mdev has two primary uses: initial population and dynamic updates. Both
require sysfs support in the kernel and have it mounted at /sys. For
updates, you also need to have hotplugging enabled in your kernel.
Here's a typical code snippet from the init script:
 mount -t sysfs sysfs /sys
 echo /bin/mdev > /proc/sys/kernel/hotplug
 mdev -s
Of course, a more "full" setup would entail executing this before the
 mount -t tmpfs mdev /dev
 mkdir /dev/pts
 mount -t devpts devpts /dev/pts
The simple explanation here is that  you need to have /sys mounted
executing mdev. Then you  instruct the kernel to execute /bin/mdev
a device is added or removed so that the device node can be created or
destroyed. Then you  seed /dev with all the device nodes that were
while the system was booting.
For the "full" setup, you want to  make sure /dev is a tmpfs
(assuming you're running out of flash). Then you want to  create the
/dev/pts mount point and finally  mount the devpts filesystem on it.
MDEV Config (/etc/mdev.conf)
Mdev has an optional config file for controlling ownership/permissions
device nodes if your system needs something more than the default
The file has the format:
<device regex> <uid>:<gid> <octal permissions>
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,
create your own total match like so:
.* 1:1 777
If you also enable support for executing your own commands, then the
<device regex> <uid>:<gid> <octal permissions> [<@|$|*> <command>]
The special characters have the meaning:
@ Run after creating the device.
$ Run before removing the device.
* Run both after creating and before removing the device.
The command is executed via the system() function (which means you're
command to the shell), so make sure you have a shell installed
For your convenience, the shell env var $MDEV is set to the device name.
the device 'hdc' was matched, MDEV would be set to "hdc