+# load any kernel modules
+# there's probably a better way to do this
+# this could also be done in the initial ram-disk, but
+# this covers the case where there isn't one, but we still want
+# to load more hardware
+if ! is_true "$NOPROBEHW" ; then
+ status_begin "looking for kernel modules to load"
+ lspci -k|grep 'Kernel modules:' | awk '{print $3}'| sort -u | xargs -n1 modprobe
+ status_check
+fi
+
+# set up /dev
+
+if [ -x /sbin/mdev ] && ! is_true "$USE_UDEV" ; then
+ status_begin setting up mdev
+ echo > /dev/mdev.seq
+ echo /sbin/mdev > /proc/sys/kernel/hotplug
+ /sbin/mdev -s
+ status_check
+elif [ -x /sbin/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
+ /sbin/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
+ ##
+ ## end voodoo scripting
+ ##
+fi