Add pinentry for gnupg
[hvlinux.git] / stage2 / bootscripts / udev
old mode 100644 (file)
new mode 100755 (executable)
index 98542e8..12527a5
@@ -1,32 +1,38 @@
-#!/bin/sh
+#!/bin/bash
 
 # udev
 # Udev cold-plugging script
 
+DAEMON=/sbin/udevd
+DAEMON_DESC=UDEV
+DAEMON_OPTS="--daemon"
+
 # Source functions library
 source /etc/rc.d/init.d/functions
 
 log_script_name "$0 $*"
 
+udev_coldplug()
+{
+    # Unlikely, but we may be faster than the first event
+    mkdir -p /dev/udev/queue &&
+
+    # Configure all devices
+    /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
+}
+
 udev_start()
 {
     # 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/udevtrigger &&
-    
-    # Now wait for udevd to process the uevents we triggered
-    /sbin/udevsettle
+    echo "" > /sys/kernel/uevent_helper &&
+
+    # Start the udev daemon to continually watch for, and act on uevents
+    ${DAEMON} ${DAEMON_OPTS}
 }
 
 # See how we were called
@@ -36,18 +42,14 @@ case "$1" in
            boot_failure "FAILURE: Unable to create devices without a SysFS filesystem."
         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
-           boot_failure "FAILURE: Cannot mount a tmpfs onto /dev."
-        fi
+       cmd_run_log_box "Copying static /dev entries" cp --preserve=all --recursive --remove-destination /lib/udev/devices/* /dev
+       cmd_run_log_box "Setting permissons on /dev/shm" chmod 1777 /dev/shm
+
+       cmd_run_log_box_warn "${DAEMON_DESC} start" udev_start
 
-       cmd_run_log_box_warn "Udevd start" udev_start
+       cmd_run_log_box "Performing Coldplugging" udev_coldplug
        ;;
-    
+
     *)
        echo "Usage: $0 {start}"
        exit ${EXIT_CODE_FAILURE}