1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #!/bin/sh
- ########################################################################
- # Begin udev
- #
- # Description : Udev cold-plugging script
- #
- # Authors : Zack Winkles, Alexander E. Patrakov
- # DJ Lucas - dj@linuxfromscratch.org
- # Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
- #
- # Version : LFS 7.0
- #
- ########################################################################
- ### BEGIN INIT INFO
- # Provides: udev
- # Required-Start:
- # Should-Start: modules
- # Required-Stop:
- # Should-Stop:
- # Default-Start: S
- # Default-Stop:
- # Short-Description: Populates /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-Provided-By: LFS
- ### END INIT INFO
- . /lib/lsb/init-functions
- case "${1}" in
- start)
- log_info_msg "Populating /dev with device nodes... "
- if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
- log_failure_msg2
- msg="FAILURE:\n\nUnable to create "
- msg="${msg}devices without a SysFS filesystem\n\n"
- msg="${msg}After you press Enter, this system "
- msg="${msg}will be halted and powered off.\n\n"
- log_info_msg "$msg"
- log_info_msg "Press Enter to continue..."
- wait_for_user
- /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').
- if ! mountpoint /dev > /dev/null; then
- mount -n -t tmpfs tmpfs /dev -o mode=755
- fi
- if [ ${?} != 0 ]; then
- log_failure_msg2
- msg="FAILURE:\n\nCannot mount a tmpfs "
- msg="${msg}onto /dev, this system will be halted.\n\n"
- msg="${msg}After you press Enter, this system "
- msg="${msg}will be halted and powered off.\n\n"
- log_failure_msg "$msg"
- log_info_msg "Press Enter to continue..."
- wait_for_user
- /etc/rc.d/init.d/halt stop
- fi
- ln -s /run/shm /dev/shm
- # 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 the only static device node that Udev >= 155 doesn't
- # handle to /dev
- cp -a /lib/udev/devices/null /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 --action=add --type=subsystems
- /sbin/udevadm trigger --action=add --type=devices
- # Now wait for udevd to process the uevents we triggered
- /sbin/udevadm settle
- log_success_msg2
- ;;
- *)
- echo "Usage ${0} {start}"
- exit 1
- ;;
- esac
- exit 0
- # End udev
|