From 2d6b53deec9dab294cb8e0aafe81ecc7aba5ba4e Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 5 May 2007 18:33:18 +0000 Subject: use hotplug2 for serializing hotplug events on 2.6 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7097 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/files/etc/hotplug2.rules | 12 ------------ package/base-files/files/etc/init.d/boot | 6 ++---- package/base-files/files/sbin/mount_root | 17 +++++++++++++---- 3 files changed, 15 insertions(+), 20 deletions(-) delete mode 100644 package/base-files/files/etc/hotplug2.rules (limited to 'package/base-files') diff --git a/package/base-files/files/etc/hotplug2.rules b/package/base-files/files/etc/hotplug2.rules deleted file mode 100644 index 7f1aca917..000000000 --- a/package/base-files/files/etc/hotplug2.rules +++ /dev/null @@ -1,12 +0,0 @@ -DEVICENAME ~~ (tun|tap[0-9]) { - makedev /dev/net/%DEVICENAME% 0644 - next -} - -DEVPATH is set { - makedev /dev/%DEVICENAME% 0644 -} - -MODALIAS is set { - exec /sbin/modprobe -q %MODALIAS% ; -} diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot index 3461eab2f..d5a42e2d7 100755 --- a/package/base-files/files/etc/init.d/boot +++ b/package/base-files/files/etc/init.d/boot @@ -27,13 +27,11 @@ start() { ln -s /tmp/resolv.conf.auto /tmp/resolv.conf [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe - # manually trigger hotplug before loading modules + # the coldplugging of network interfaces needs to happen later, so we do it manually here for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug-call net done - - /sbin/hotplug2 --persistent --max-children 5 & - echo /sbin/hotplug-call > /proc/sys/kernel/hotplug + /sbin/hotplug2 --persistent --max-children 1 & # create /dev/root if it doesn't exist [ -e /dev/root ] || { diff --git a/package/base-files/files/sbin/mount_root b/package/base-files/files/sbin/mount_root index 80078b516..607c79968 100755 --- a/package/base-files/files/sbin/mount_root +++ b/package/base-files/files/sbin/mount_root @@ -4,17 +4,26 @@ mount none /proc -t proc size=$(awk '/Mem:/ {l=5242880;print((s=$2/2) /dev/null; then +if grep devfs /proc/filesystems >/dev/null; then mount none /dev -t devfs else - mount -t sysfs none /sys mount -t tmpfs tmpfs /dev -o size=512K mknod /dev/console c 5 1 exec >/dev/console &1 - mkdir /dev/shm - /sbin/hotplug2 --no-persistent --coldplug --max-children 1 fi +mkdir /dev/shm +if grep sysfs /proc/filesystems >/dev/null; then + mount -t sysfs none /sys + HOTPLUG="" + # use a minimal ruleset only for creating device nodes + /sbin/hotplug2 --no-persistent --coldplug --set-rules-file /etc/hotplug2-init.rules +else + HOTPLUG="/sbin/hotplug2-dnode" +fi +echo "$HOTPLUG" > /proc/sys/kernel/hotplug + mkdir -p /dev/pts mount none /dev/pts -t devpts -- cgit v1.2.3