Uevent
linux的hotplug机制¶
busybox上的mdev是用sysfs写入需要触发时执行的程序的方式实现的hotplug.
这是mdev的启动脚本/etc/init.d/S10mdev
, 开机时给内核传入自身路径.
#!/bin/sh
#
# Start mdev....
#
case "$1" in
start)
echo "Starting mdev..."
echo /sbin/mdev >/proc/sys/kernel/hotplug
/sbin/mdev -s
# coldplug modules
find /sys/ -name modalias -print0 | xargs -0 sort -u | tr '\n' '\0' | \
xargs -0 modprobe -abq
;;
stop)
;;
restart|reload)
;;
...
根据linux的文档:
Kernel Hotplug Helper (/sbin/hotplug)
There is a kernel parameter: /proc/sys/kernel/hotplug, which normally holds the pathname /sbin/hotplug. That parameter names a program which the kernel may invoke at various times.
The /sbin/hotplug program can be invoked by any subsystem as part of its reaction to a configuration change, from a thread in that subsystem. Only one parameter is required: the name of a subsystem being notified of some kernel event. That name is used as the first key for further event dispatch; any other argument and environment parameters are specified by the subsystem making that invocation.
Hotplug software and other resources is available at:
http://linux-hotplug.sourceforge.net
Mailing list information is also available at that site.
可见早些年的linux发行版,使用的是一个叫hotplug的uevent_helper。
TODO:
uevent编写参考: