[OpenWrt-Devel] [PATCH 1/3] octeon: sysupgrade: get rootfsdev from kernel cmdline

Stijn Tintel stijn at linux-ipv6.be
Thu Dec 4 19:01:48 EST 2014


Signed-off-by: Stijn Tintel <stijn at linux-ipv6.be>
---
 .../octeon/base-files/lib/upgrade/platform.sh      | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/target/linux/octeon/base-files/lib/upgrade/platform.sh b/target/linux/octeon/base-files/lib/upgrade/platform.sh
index e4c7b6f..11399a2 100755
--- a/target/linux/octeon/base-files/lib/upgrade/platform.sh
+++ b/target/linux/octeon/base-files/lib/upgrade/platform.sh
@@ -1,11 +1,33 @@
 #
-# Copyright (C) 2010 OpenWrt.org
+# Copyright (C) 2014 OpenWrt.org
 #
 
 . /lib/functions/octeon.sh
 
+platform_get_rootfs() {
+	local rootfsdev
+
+	if read cmdline < /proc/cmdline; then
+		case "$cmdline" in
+			*block2mtd=*)
+				rootfsdev="${cmdline##*block2mtd=}"
+				rootfsdev="${rootfsdev%%,*}"
+			;;
+			*root=*)
+				rootfsdev="${cmdline##*root=}"
+				rootfsdev="${rootfsdev%% *}"
+			;;
+		esac
+
+		echo "${rootfsdev}"
+	fi
+}
+
 platform_do_upgrade() {
 	local board=$(octeon_board_name)
+	local rootfs="$(platform_get_rootfs)"
+
+	[ -d "${rootfs}" ] || return 1
 
 	case "$board" in
 	erlite)
@@ -22,7 +44,7 @@ platform_do_upgrade() {
 		mount -t vfat /dev/sda1 /boot
 		tar xf $tar_file sysupgrade-erlite/kernel -O > /boot/vmlinux.64
 		md5sum /boot/vmlinux.64 | cut -f1 -d " " > /boot/vmlinux.64.md5
-		tar xf $tar_file sysupgrade-erlite/root -O | dd of=/dev/sda2 bs=4096
+		tar xf $tar_file sysupgrade-erlite/root -O | dd of="${rootfs}" bs=4096
 		sync
 		umount /mnt
 		return 0
-- 
1.8.5.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list