From 24739081c80609ad45ba78147e2b55cddf7c29a2 Mon Sep 17 00:00:00 2001 From: Nathan Wagner Date: Thu, 9 Jan 2014 11:24:56 +0000 Subject: [PATCH] Add support for mdev mdev will now be the default hotplug handler. This effectively adds a requirement for busybox. udevd can still be used if it's installed and USE_UDEVD is defined as something true in /etc/rc.conf Added a mount -f / to attempt to get the root filesystem recorded in /etc/mtab, which df wants. --- scripts/rc.sysinit | 93 +++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/scripts/rc.sysinit b/scripts/rc.sysinit index 150bf70..2967951 100644 --- a/scripts/rc.sysinit +++ b/scripts/rc.sysinit @@ -20,8 +20,8 @@ # need to mount sys because fsck might use it # try to mount them directly if they fail from fstab? # TODO bail to emergency shell if these fail? -# try to mount them directly if they fail from fstab? -# TODO bail to emergency shell if these fail? +# TODO set NOVIRTFS='/var/run' and the like to skip some of these? + status_begin mounting virtual filesystems mountpoint -q /proc || mount -t proc proc /proc -o nosuid,noexec,nodev mountpoint -q /sys || mount -t sysfs sys /sys -o nosuid,noexec,nodev @@ -61,47 +61,53 @@ status_begin loading sysctl.conf sysctl -q -p status_check -# * set up /dev (via udev on modern linux systems) - -## -## begin voodoo scripting from lfs-initscripts -## - -# udev will handle hotplugs -echo > /proc/sys/kernel/hotplug - -# start udev -# this should probably be moved to inittab or started via -# something that could monitor it -status_starting udevd daemon -/lib/udev/udevd --daemon -status_check - -# Now traverse /sys in order to "coldplug" devices that have -# already been discovered -# this is going to fail if sys isn't mounted -status_begin populating udevadm triggers -udevadm trigger --action=add --type=subsystems && -udevadm trigger --action=add --type=devices && -udevadm trigger --action=change --type=devices -status_check - -# Now wait for udevd to process the uevents we triggered -# if ! is_true "$OMIT_UDEV_SETTLE"; then -status_begin waiting for udevadm to settle -udevadm settle -status_check -# fi - -# If any LVM based partitions are on the system, ensure they -# are activated so they can be used. -# if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi - -# log_success_msg2 - -## -## end voodoo scripting -## +# * set up /dev + +if [ -x /bin/mdev ] && [ ! is_true "$USE_UDEVD" ]; then + echo /bin/mdev > /proc/sys/kernel/hotplug +elif [ -x /lib/udev/udevd ]; then + ## + ## begin voodoo scripting from lfs-initscripts + ## + + # udev will handle hotplugs + echo > /proc/sys/kernel/hotplug + + # start udev + # this should probably be moved to inittab or started via + # something that could monitor it + status_starting udevd daemon + /lib/udev/udevd --daemon + status_check + + # Now traverse /sys in order to "coldplug" devices that have + # already been discovered + # this is going to fail if sys isn't mounted + status_begin populating udevadm triggers + udevadm trigger --action=add --type=subsystems && + udevadm trigger --action=add --type=devices && + udevadm trigger --action=change --type=devices + status_check + + # Now wait for udevd to process the uevents we triggered + # if ! is_true "$OMIT_UDEV_SETTLE"; then + + # quoted here so 'for' doesn't confuse syntax highlighting + status_begin 'waiting for udevadm to settle' + udevadm settle + status_check + # fi + + # If any LVM based partitions are on the system, ensure they + # are activated so they can be used. + # if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi + + # log_success_msg2 + + ## + ## end voodoo scripting + ## +fi # * set up swap @@ -124,6 +130,7 @@ status_check rm -f /etc/mtab mount -af +mount -f / # * do any boot time /tmp cleanup or similar -- 2.40.0