#!/bin/sh -e # init script for udev # Check the package is still installed [ -x /sbin/udevd ] || exit 0 # Get LSB functions . /lib/lsb/init-functions . /etc/default/rcS case "$1" in start) # We need the uevent support introduced in 2.6.15, bail out if we # don't have it and fall back to a static /dev if [ ! -f /sys/class/mem/null/uevent ]; then if mountpoint -q /dev; then # uh-oh, initramfs made some kind of /dev, get rid of it umount -l /dev/.static/dev umount -l /dev fi exit 1 fi if ! mountpoint -q /dev; then # initramfs didn't mount /dev, so we'll need to do that mount -n --bind /dev /etc/udev mount -n -t tmpfs -o mode=0755,noexec,nosuid udev /dev mkdir -m 0700 -p /dev/.static/dev mount -n --move /etc/udev /dev/.static/dev fi # Copy over default device tree cp -a -f /lib/udev/devices/* /dev # It's all over netlink now if [ -e /proc/sys/kernel/hotplug ]; then echo "" > /proc/sys/kernel/hotplug fi # Start udevd log_begin_msg "Starting kernel event manager..." if start-stop-daemon --start --quiet --exec /sbin/udevd -- --daemon; then log_end_msg 0 else log_end_msg $? fi # This next bit can take a while if type usplash_write >/dev/null 2>&1; then usplash_write "TIMEOUT 360" trap "usplash_write 'TIMEOUT 15'" 0 fi # Log things that udevtrigger does (won't work on seb's machine) if [ -x /usr/sbin/udevmonitor ]; then /usr/sbin/udevmonitor -e >/dev/.udev.log & UDEV_MONITOR_PID=$! fi # Fix permissions and missing symlinks/programs for devices made in # initramfs, and catch up on everything we missed log_begin_msg "Loading hardware drivers..." /sbin/udevtrigger if /sbin/udevsettle; then log_end_msg 0 else log_end_msg $? fi # Kill the udevmonitor again if [ -n "$UDEV_MONITOR_PID" ]; then kill $UDEV_MONITOR_PID fi ;; stop) log_begin_msg "Stopping kernel event manager..." if start-stop-daemon --stop --quiet --oknodo --exec /sbin/udevd; then log_end_msg 0 else log_end_msg $? fi umount -l /dev/.static/dev umount -l /dev ;; restart) cp -au /lib/udev/devices/* /dev log_begin_msg "Loading additional hardware drivers..." /sbin/udevtrigger if /sbin/udevsettle; then log_end_msg 0 else log_end_msg $? fi ;; reload|force-reload) log_begin_msg "Reloading kernel event manager..." if start-stop-daemon --stop --signal 1 --exec /sbin/udevd; then log_end_msg 0 else log_end_msg $? fi ;; *) echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload}" exit 1 ;; esac exit 0