Patchwork initramfs-live-boot: handle multiple udev locations

login
register
mail settings
Submitter Ross Burton
Date Jan. 17, 2013, 4:29 p.m.
Message ID <1358440179-32242-1-git-send-email-ross.burton@intel.com>
Download mbox | patch
Permalink /patch/42823/
State Accepted
Commit e7ebff0a9865cfbb5ce00de095a47a7b12b26196
Headers show

Comments

Ross Burton - Jan. 17, 2013, 4:29 p.m.
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.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 meta/recipes-core/initrdscripts/files/init-live.sh |   20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
index 0ae359d..f0d4f22 100644
--- a/meta/recipes-core/initrdscripts/files/init-live.sh
+++ b/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -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
 }