From 8a1d47919c266240f953810786e6f9f0e14bae00 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 5 Dec 2014 00:19:46 +0000 Subject: [PATCH] octeon: sysupgrade: get rootfsdev from kernel cmdline Signed-off-by: Stijn Tintel git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43517 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../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 e4c7b6f438..11399a2629 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 -- 2.11.0