From 4e4050b160c20946d07789a6f6c71b6b2c4c28b3 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
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/files')

diff --git a/package/base-files/files/etc/hotplug2.rules b/package/base-files/files/etc/hotplug2.rules
deleted file mode 100644
index 7f1aca9178..0000000000
--- 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 3461eab2fc..d5a42e2d7e 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 80078b5164..607c799682 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)<l)?$2-l:s}' /proc/meminfo)
+
 mount none /tmp -t tmpfs -o size=$size,nosuid,nodev,mode=1777
-if grep devfs /proc/filesystems > /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 </dev/console 2>&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