nuke mdev and replace it with hotplug2 :)
authorFelix Fietkau <nbd@openwrt.org>
Sun, 4 Mar 2007 20:31:53 +0000 (20:31 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 4 Mar 2007 20:31:53 +0000 (20:31 +0000)
SVN-Revision: 6512

19 files changed:
include/kernel-build.mk
package/base-files/files/etc/functions.sh
package/base-files/files/etc/hotplug2.rules [new file with mode: 0644]
package/base-files/files/etc/init.d/boot
package/base-files/files/etc/mdev.conf [deleted file]
package/base-files/files/lib/network/config.sh
package/base-files/files/sbin/hotplug [deleted file]
package/base-files/files/sbin/hotplug-call [new file with mode: 0755]
package/base-files/files/sbin/ifdown
package/base-files/files/sbin/mount_root
package/base-files/files/usr/share/udhcpc/default.script
package/busybox/config/util-linux/Config.in
package/busybox/target-config.in
package/comgt/files/3g.button
package/ppp/files/etc/ppp/ip-down
package/ppp/files/etc/ppp/ip-up
package/udev/patches/02-udevtrigger_no_config.patch [new file with mode: 0644]
target/linux/brcm-2.4/base-files/default/etc/preinit
target/linux/generic-2.6/files/init

index 93bf66d..3193e9d 100644 (file)
@@ -37,6 +37,9 @@ FEATURES:=$(sort $(FEATURES))
 
 # For target profile selection - the default set
 DEFAULT_PACKAGES:=base-files libgcc uclibc bridge busybox dnsmasq dropbear iptables mtd ppp ppp-mod-pppoe mtd kmod-ipt-nathelper
+ifneq ($(KERNEL),2.4)
+  DEFAULT_PACKAGES+=udevtrigger hotplug2
+endif
 
 ifeq ($(DUMP),1)
   all: dumpinfo
index c29ae77..4d84bb8 100755 (executable)
@@ -12,7 +12,7 @@ _C=0
 NO_EXPORT=1
 
 hotplug_dev() {
-       env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net
+       env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug-call net
 }
 
 append() {
diff --git a/package/base-files/files/etc/hotplug2.rules b/package/base-files/files/etc/hotplug2.rules
new file mode 100644 (file)
index 0000000..d2a931a
--- /dev/null
@@ -0,0 +1,7 @@
+DEVPATH is set {
+                       makedev /dev/%DEVICENAME% 0644
+}
+
+MODALIAS is set {
+                       exec /sbin/modprobe -q %MODALIAS% ;
+}
index db7ec8c..ed5e7d8 100755 (executable)
@@ -20,8 +20,11 @@ start() {
        
        # manually trigger hotplug before loading modules
        for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do
-               /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug net
+               /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug-call net
        done
-       
+
+       /sbin/hotplug2 --persistent &
+       echo /sbin/hotplug-call > /proc/sys/kernel/hotplug
+
        load_modules /etc/modules.d/*
 }
diff --git a/package/base-files/files/etc/mdev.conf b/package/base-files/files/etc/mdev.conf
deleted file mode 100644 (file)
index 8935583..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-null 0:0 777
-zero 0:0 666
-console 0:5 0600
-tty 0:5 0660
-ttyS* 0:20 640
index 95954bf..8a59687 100755 (executable)
@@ -157,7 +157,7 @@ setup_interface() {
                                done
                        }
 
-                       env -i ACTION="ifup" INTERFACE="$config" DEVICE="$iface" PROTO=static /sbin/hotplug "iface" &
+                       env -i ACTION="ifup" INTERFACE="$config" DEVICE="$iface" PROTO=static /sbin/hotplug-call "iface" &
                ;;
                dhcp)
                        # prevent udhcpc from starting more than once
diff --git a/package/base-files/files/sbin/hotplug b/package/base-files/files/sbin/hotplug
deleted file mode 100755 (executable)
index 189cfee..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
-
-[ -x /sbin/mdev -a -n "$ACTION" -a -n "$DEVPATH" ] && /sbin/mdev "$@"
-
-# bypass the normal hotplug path for firmware loading
-# would otherwise cause problems with drivers like bcm43xx
-[ "$1" = "firmware" -a "$ACTION" = "add" ] && {
-       [ -f "/lib/firmware/$FIRMWARE" ] && {
-               echo 1 > "/sys$DEVPATH/loading"
-               cp "/lib/firmware/$FIRMWARE" "/sys$DEVPATH/data"
-               echo 0 > "/sys$DEVPATH/loading"
-       }
-       exit 0
-}
-
-. /etc/functions.sh
-
-PATH=/bin:/sbin:/usr/bin:/usr/sbin
-LOGNAME=root
-USER=root
-export PATH LOGNAME USER
-
-[ \! -z "$1" -a -d /etc/hotplug.d/$1 ] && {
-       for script in $(ls /etc/hotplug.d/$1/* 2>&-); do (
-               [ -f $script ] && . $script
-       ); done
-}
diff --git a/package/base-files/files/sbin/hotplug-call b/package/base-files/files/sbin/hotplug-call
new file mode 100755 (executable)
index 0000000..b1b6f97
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+
+# bypass the normal hotplug path for firmware loading
+# would otherwise cause problems with drivers like bcm43xx
+[ "$1" = "firmware" -a "$ACTION" = "add" ] && {
+       [ -f "/lib/firmware/$FIRMWARE" ] && {
+               echo 1 > "/sys$DEVPATH/loading"
+               cp "/lib/firmware/$FIRMWARE" "/sys$DEVPATH/data"
+               echo 0 > "/sys$DEVPATH/loading"
+       }
+       exit 0
+}
+
+. /etc/functions.sh
+
+PATH=/bin:/sbin:/usr/bin:/usr/sbin
+LOGNAME=root
+USER=root
+export PATH LOGNAME USER
+
+[ \! -z "$1" -a -d /etc/hotplug.d/$1 ] && {
+       for script in $(ls /etc/hotplug.d/$1/* 2>&-); do (
+               [ -f $script ] && . $script
+       ); done
+}
index 540c69f..e00a4e3 100755 (executable)
@@ -21,7 +21,7 @@ config_get proto "$cfg" proto
 
 config_get iface "$cfg" device
 [ "$proto" = "static" ] && {
-       env -i ACTION="ifdown" INTERFACE="$config" DEVICE="$iface" PROTO=static /sbin/hotplug "iface" &
+       env -i ACTION="ifdown" INTERFACE="$config" DEVICE="$iface" PROTO=static /sbin/hotplug-call "iface" &
 }
 
 # call interface stop handler
index 9a87fad..dd9d99d 100755 (executable)
@@ -12,7 +12,7 @@ else
        mount -t tmpfs tmpfs /dev -o size=512K
        mknod /dev/console c 5 1
        mkdir /dev/shm
-       /sbin/mdev -s
+       /sbin/hotplug2 --no-persistent --coldplug
 fi
 mkdir -p /dev/pts
 mount none /dev/pts -t devpts
index f39d21e..c723953 100755 (executable)
@@ -14,7 +14,7 @@ hotplug_event() {
                config_get proto $ifc proto
                [ "$proto" = "dhcp" ] || continue
 
-               env -i ACTION="$1" INTERFACE="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug iface
+               env -i ACTION="$1" INTERFACE="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug-call iface
        done
 }
 
index 0f219d7..ab3dc37 100644 (file)
@@ -267,7 +267,7 @@ config BUSYBOX_CONFIG_LOSETUP
 
 config BUSYBOX_CONFIG_MDEV
        bool "mdev"
-       default y
+       default n
        help
          mdev is a mini-udev implementation: call it with -s to populate
          /dev from /sys, then "echo /sbin/mdev > /proc/sys/kernel/hotplug" to
@@ -276,7 +276,7 @@ config BUSYBOX_CONFIG_MDEV
 
 config BUSYBOX_CONFIG_FEATURE_MDEV_CONF
        bool "Support /etc/mdev.conf"
-       default y
+       default n
        depends on BUSYBOX_CONFIG_MDEV
        help
          The mdev config file contains lines that look like:
index 77c58ce..86f270b 100644 (file)
@@ -2,10 +2,3 @@ config BUSYBOX_CONFIG_FEATURE_DEVFS
        default y if LINUX_2_4
        default n if LINUX_2_6
 
-config BUSYBOX_CONFIG_MDEV
-       default n if LINUX_2_4
-       default y if LINUX_2_6
-
-config BUSYBOX_CONFIG_FEATURE_MDEV_CONF
-       default n if LINUX_2_4
-       default y if LINUX_2_6
index 54997d8..57f4286 100644 (file)
@@ -13,6 +13,7 @@ button_action() {(
 )}
 
 [ "$ACTION" = "released" -a "$BUTTON" = "3g" ] && {
+       HOTPLUG="$(cat /proc/sys/kernel/hotplug)"
        (echo /bin/true > /proc/sys/kernel/hotplug)
 
        include /lib/network
@@ -31,5 +32,5 @@ button_action() {(
        }
        config_load network
 
-       (echo /sbin/hotplug > /proc/sys/kernel/hotplug)
+       (echo $HOTPLUG > /proc/sys/kernel/hotplug)
 } &
index 334bcb8..6bff00c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
+[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug-call "iface"
 
 [ -d /etc/ppp/ip-down.d ] && {
        for SCRIPT in /etc/ppp/ip-down.d/*
index 34b4b50..53a9134 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
+[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug-call "iface"
 
 [ -d /etc/ppp/ip-up.d ] && {
        for SCRIPT in /etc/ppp/ip-up.d/*
diff --git a/package/udev/patches/02-udevtrigger_no_config.patch b/package/udev/patches/02-udevtrigger_no_config.patch
new file mode 100644 (file)
index 0000000..e9c22d4
--- /dev/null
@@ -0,0 +1,10 @@
+--- udev.old/udevtrigger.c     2007-03-03 18:42:09.000000000 +0100
++++ udev.dev/udevtrigger.c     2007-03-04 21:15:18.459211632 +0100
+@@ -446,7 +446,6 @@
+       };
+       logging_init("udevtrigger");
+-      udev_config_init();
+       dbg("version %s", UDEV_VERSION);
+       sysfs_init();
index 1c4e59f..b7a9f04 100755 (executable)
@@ -65,7 +65,7 @@ eval ${FAILSAFE:+failsafe}
 
 lock -w /tmp/.failsafe
 set_state preinit
-echo /sbin/hotplug > /proc/sys/kernel/hotplug
+echo /sbin/hotplug-call > /proc/sys/kernel/hotplug
 
 ifconfig $ifname 0.0.0.0 down
 
index 292d429..af397d9 100755 (executable)
@@ -12,7 +12,7 @@ else
        mknod /dev/console c 5 1
        mkdir /dev/pts
        mkdir /dev/shm
-       /sbin/mdev -s
+       /sbin/hotplug2 --no-persistent --coldplug
 fi
 
 mount none /dev/pts -t devpts