initramfs-live-boot: handle multiple udev locations
authorRoss Burton <ross.burton@intel.com>
Thu, 17 Jan 2013 16:29:39 +0000 (16:29 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 18 Jan 2013 13:28:06 +0000 (13:28 +0000)
udevd isn't on $PATH and is in different places depending on what version of
udev is being used.  Copy the code from initramfs-framework to search for the
right udevd at boot time instead of hard-coding a location.

(From OE-Core rev: a5de76317112fc065a78a745c2f23775dca15d75)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/initrdscripts/files/init-live.sh

index 0ae359d..f0d4f22 100644 (file)
@@ -9,6 +9,23 @@ UMOUNT="/bin/umount"
 ISOLINUX=""
 UNIONFS="no"
 
+# Copied from initramfs-framework. The core of this script probably should be
+# turned into initramfs-framework modules to reduce duplication.
+udev_daemon() {
+       OPTIONS="/sbin/udevd /lib/udev/udevd /lib/systemd/systemd-udevd"
+
+       for o in $OPTIONS; do
+               if [ -x "$o" ]; then
+                       echo $o
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
+_UDEV_DAEMON=`udev_daemon`
+
 early_setup() {
     mkdir -p /proc
     mkdir -p /sys
@@ -21,7 +38,8 @@ early_setup() {
 
     mkdir -p /run
     mkdir -p /var/run
-    /lib/udev/udevd --daemon
+
+    $_UDEV_DAEMON --daemon
     udevadm trigger --action=add
 }