aboutsummaryrefslogtreecommitdiffstats
path: root/bootscripts/contrib/lsb-v3/init.d/udev
diff options
context:
space:
mode:
Diffstat (limited to 'bootscripts/contrib/lsb-v3/init.d/udev')
-rw-r--r--bootscripts/contrib/lsb-v3/init.d/udev81
1 files changed, 81 insertions, 0 deletions
diff --git a/bootscripts/contrib/lsb-v3/init.d/udev b/bootscripts/contrib/lsb-v3/init.d/udev
new file mode 100644
index 000000000..1aa80a3ef
--- /dev/null
+++ b/bootscripts/contrib/lsb-v3/init.d/udev
@@ -0,0 +1,81 @@
+#!/bin/sh
+# Begin $rc_base/init.d/udev
+
+### BEGIN INIT INFO
+# Provides: udev
+# Required-Start: mountkernfs
+# Should-Start:
+# Required-Stop:
+# Should-Stop:
+# Default-Start: sysinit
+# Default-Stop:
+# Short-Description: Populated /dev with device nodes.
+# Description: Mounts a tempfs on /dev and starts the udevd daemon.
+# Device nodes are created as defined by udev.
+# X-LFS-Default-Start: S15
+# X-LFS-Default-Stop:
+# X-LFS-Provided-By: LFS
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+MESSAGE="Populating /dev with device nodes..."
+
+case "${1}" in
+ start)
+ if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
+ echo_failure
+ boot_mesg -n "FAILURE:\n\nUnable to create" ${FAILURE}
+ boot_mesg -n " devices without a SysFS filesystem"
+ boot_mesg -n "\n\nAfter you press Enter, this system"
+ boot_mesg -n " will be halted and powered off."
+ boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
+ boot_mesg "" ${NORMAL}
+ read ENTER
+ /etc/rc.d/init.d/halt stop
+ fi
+
+ # Mount a temporary file system over /dev, so that any devices
+ # made or removed during this boot don't affect the next one.
+ # The reason we don't write to mtab is because we don't ever
+ # want /dev to be unavailable (such as by `umount -a').
+ mount -n -t tmpfs tmpfs /dev -o mode=755
+ if [ ${?} != 0 ]; then
+ echo_failure
+ boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE}
+ boot_mesg -n " onto /dev, this system will be halted."
+ boot_mesg -n "\n\nAfter you press Enter, this system"
+ boot_mesg -n " will be halted and powered off."
+ boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
+ boot_mesg "" ${NORMAL}
+ read ENTER
+ /etc/rc.d/init.d/halt stop
+ fi
+
+ # Udev handles uevents itself, so we don't need to have
+ # the kernel call out to any binary in response to them
+ echo > /proc/sys/kernel/hotplug
+
+ # Copy static device nodes to /dev
+ cp -a /lib/udev/devices/* /dev
+
+ # Start the udev daemon to continually watch for, and act on,
+ # uevents
+ /sbin/udevd --daemon
+
+ # Now traverse /sys in order to "coldplug" devices that have
+ # already been discovered
+ /sbin/udevadm trigger
+
+ # Now wait for udevd to process the uevents we triggered
+ /sbin/udevadm settle
+ evaluate_retval standard
+ ;;
+
+ *)
+ echo "Usage ${0} {start}"
+ exit 1
+ ;;
+esac
+
+# End $rc_base/init.d/udev