[oe-commits] : SlugOS 5.0: enable mdraid support

OE GIT Trial gittrial at amethyst.openembedded.net
Fri Aug 29 23:31:35 UTC 2008


Module: OE.dev
Branch: master
Commit: 7486d51adf31ef17343a50fb70e06cca4b0163a7
URL:    http://gitweb.openembedded.net//OE.dev.git/?a=commit;h=7486d51adf31ef17343a50fb70e06cca4b0163a7

Author:  <mwester at openembedded.org>
Date:   Fri Aug 29 17:00:48 2008 +0000

SlugOS 5.0: enable mdraid support

---

 packages/slugos-init/files/boot/disk    |   14 +++++++++++++-
 packages/slugos-init/files/turnup       |   23 +++++++++++++++++++++--
 packages/slugos-init/slugos-init_5.0.bb |    2 +-
 3 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/packages/slugos-init/files/boot/disk b/packages/slugos-init/files/boot/disk
index 63370ce..34c002b 100644
--- a/packages/slugos-init/files/boot/disk
+++ b/packages/slugos-init/files/boot/disk
@@ -24,9 +24,21 @@ then
 	# waiting for disk
 	if test "$sleep" -gt 0
 	then
-		echo "Waiting $sleep seconds for disk"
+		echo "boot: waiting $sleep seconds for disk"
 		sleep "$sleep"
 	fi
+	# Attempt to assemble the RAID if necessary
+	if (echo $device | grep -q "^/dev/md")
+	then
+		if test -n "$MDUUID"
+		then
+			echo "boot: assembling RAID array (UUID)"
+			mdadm -Acpartitions --auto=md --uuid="$MDUUID" $device
+		else
+			echo "boot: assembling RAID array (config file)"
+			mdadm -As --auto=md $device
+		fi
+	fi
 	#
 	# fire the boot
 	echo "boot: rootfs: mount $* $device [$UUID]"
diff --git a/packages/slugos-init/files/turnup b/packages/slugos-init/files/turnup
index 2bbc902..51b801d 100644
--- a/packages/slugos-init/files/turnup
+++ b/packages/slugos-init/files/turnup
@@ -274,7 +274,13 @@ setup_dev() {
 	#	/dev/null
 	# syslog, and maybe other things, only work if fd 1 is valid, therefore
 	# we must create these devices here...
-	makedevs --root="$1" --devtable="$2"
+	# (if makedevs is a symlink, it's the busybox version, different syntax)
+	if [ -h /sbin/makedevs ]
+	then
+		makedevs -d "$2" "$1"
+	else
+		makedevs --root="$1" --devtable="$2"
+	fi
 	:>"$1"/dev/.noram
 	return 0
 }
@@ -290,7 +296,13 @@ setup_bootdev() {
 	}
 	# NOTE: this fails silently with 0 return code(!) when a directory
 	# does not exist yet things are created within it.
-	makedevs -r "$1" -D "$2"
+	# (if makedevs is a symlink, it's the busybox version, different syntax)
+	if [ -h /sbin/makedevs ]
+	then
+		makedevs -d "$2" "$1"
+	else
+		makedevs -r "$1" -D "$2"
+	fi
 }
 
 #
@@ -432,6 +444,7 @@ boot_rootfs() {
 	sleep="$3"
 	device="$4"
 	uuid=
+	mduuid=
 
 	# test this first as the test does not depend on the correctness
 	# of the other arguments
@@ -452,6 +465,11 @@ boot_rootfs() {
 			return 1
 		}
 		uuid="$3"
+		if (echo "$device" | grep -q '^/dev/md')
+		then
+			# FIXME: should use awk to do the below extraction
+			mduuid=`mdadm --detail --brief "$device" | sed 's/^.*UUID=//'`
+		fi
 		shift 3;;
 	nfs)	shift 2;;
 	flash)	;;
@@ -493,6 +511,7 @@ boot_rootfs() {
 			echo 'leds beep'
 			test "$sleep" -gt 0 && echo -n "sleep='$sleep' "
 			test -n "$uuid" && echo -n "UUID='$uuid' "
+			test -n "$mduuid" && echo -n "MDUUID='$mduuid' "
 			echo -n "exec '/boot/$type' '$device'"
 			for opt in "$@"
 			do
diff --git a/packages/slugos-init/slugos-init_5.0.bb b/packages/slugos-init/slugos-init_5.0.bb
index 9b7c2cd..4babf89 100644
--- a/packages/slugos-init/slugos-init_5.0.bb
+++ b/packages/slugos-init/slugos-init_5.0.bb
@@ -4,7 +4,7 @@ PRIORITY = "required"
 LICENSE = "GPL"
 DEPENDS = "base-files devio"
 RDEPENDS = "busybox devio"
-PR = "r1.2"
+PR = "r2"
 
 SRC_URI = "file://boot/flash \
 	   file://boot/disk \





More information about the Openembedded-commits mailing list