octeon: sysupgrade: get rootfsdev from kernel cmdline
authorJohn Crispin <john@openwrt.org>
Fri, 5 Dec 2014 00:19:46 +0000 (00:19 +0000)
committerJohn Crispin <john@openwrt.org>
Fri, 5 Dec 2014 00:19:46 +0000 (00:19 +0000)
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
SVN-Revision: 43517

target/linux/octeon/base-files/lib/upgrade/platform.sh

index e4c7b6f..11399a2 100755 (executable)
@@ -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