summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2005-10-21 18:33:03 +0200
committermaximilian attems <maks@debian.org>2005-10-21 18:33:03 +0200
commitb96ed45312562bbfc976ce0c6cf32b7e704f1e2f (patch)
treebce6a45954775445d8231d9341883c9b888f3506
parenta5ceeefab355e57948134a8857f0b15fa56a8c6e (diff)
downloadinitramfs-tools-b96ed45312562bbfc976ce0c6cf32b7e704f1e2f.tar.gz
initramfs-tools-b96ed45312562bbfc976ce0c6cf32b7e704f1e2f.zip
waldi udev fixes
-rw-r--r--debian/changelog15
-rwxr-xr-xinit16
-rwxr-xr-xmkinitramfs6
-rw-r--r--scripts/functions22
4 files changed, 30 insertions, 29 deletions
diff --git a/debian/changelog b/debian/changelog
index 600d835..832a67d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,7 +7,20 @@ initramfs-tools (0.31) UNRELEASED; urgency=low
* mkinitramfs
- Use cp instead of copy_exec.
- Call mklibs-copy to collect necessary libs.
-
+ * Use udevsynthesize.
+ * Add hotplug agents.
+
+ * init udev fixes
+ - Start and kill udevd.
+ - Create /dev/.udevdb.
+ - Use udevsynthesize.
+ - Call depmod.
+ * mkinitramfs udev fixes
+ - Install udevd and udevsynthesize instead of udevstart.
+ - Install hotplug agents.
+ * scripts/functions (load_modules)
+ - Don't call depmod and udevstart.
+ - Don't crawl pci devices ourself.
-- Bastian Blank <waldi@debian.org> Mon, 10 Oct 2005 18:27:12 +0000
diff --git a/init b/init
index 4193dcd..113a224 100755
--- a/init
+++ b/init
@@ -67,15 +67,21 @@ run_scripts /scripts/init-top
. /scripts/${BOOT}
+depmod -a
+
+# Populate /dev tree
+log_begin_msg "Initializing /dev"
+mkdir /dev/.udevdb
+UDEVD_EXPECTED_SEQNUM=$(($(cat /sys/kernel/hotplug_seqnum) + 1)) udevd --daemon
+udevsynthesize
+sleep 2
+log_end_msg
+
log_begin_msg "Loading modules"
load_modules
log_end_msg
-# Populate /dev tree
-log_begin_msg "Initializing /dev"
parse_numeric ${ROOT}
-udevstart
-log_end_msg
if [ x${break} = xyes ]; then
panic "Spawning shell within the initramfs"
@@ -85,6 +91,8 @@ log_begin_msg "Running /scripts/init-premount"
run_scripts /scripts/init-premount
log_end_msg
+killall udevd
+
log_begin_msg "Mounting root file system"
mountroot
log_end_msg
diff --git a/mkinitramfs b/mkinitramfs
index 6ff9320..e870489 100755
--- a/mkinitramfs
+++ b/mkinitramfs
@@ -128,9 +128,11 @@ done
cp ${CONFDIR}/initramfs.conf ${DESTDIR}/conf
cp -a /etc/udev ${DESTDIR}/etc
-# Hack until udev is built with klibc
+# udev
cp /sbin/udev ${DESTDIR}/sbin
-cp /sbin/udevstart ${DESTDIR}/sbin
+cp /sbin/udevd ${DESTDIR}/sbin
+cp /sbin/udevsynthesize ${DESTDIR}/sbin
+cp -a /lib/hotplug ${DESTDIR}/lib
# Busybox
cp ${BUSYBOXDIR}/busybox ${DESTDIR}/bin/busybox
diff --git a/scripts/functions b/scripts/functions
index de2268c..68cfcea 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -203,8 +203,6 @@ i2o_boot_events()
load_modules()
{
- depmod -a
-
# Load custom modules first
if [ -e /conf/modules ]; then
cat /conf/modules | while read m; do
@@ -219,18 +217,6 @@ load_modules()
done
fi
- for x in /sys/bus/pci/devices/*; do
- if [ -e ${x}/class ]; then
- case $(cat ${x}/class) in
- 0x0100*|0x0101*)
- if [ -e ${x}/modalias ]; then
- modprobe -q $(cat ${x}/modalias)
- fi
- ;;
- esac
- fi
- done
-
ide_boot_events
scsi_boot_events
@@ -239,8 +225,6 @@ load_modules()
# FIXME - need to start LVM here
- udevstart
-
if [ -e /sys/power/resume ]; then
if [ -e "${resume}" ]; then
major=$((0x$(stat -c%t ${resume})))
@@ -249,12 +233,6 @@ load_modules()
fi
fi
- for x in /sys/bus/pci/devices/*; do
- if [ -e ${x}/modalias ]; then
- modprobe -q $(cat ${x}/modalias)
- fi
- done
-
# Give the USB bus a moment to catch up
sleep 2