diff options
author | John Crispin <john@openwrt.org> | 2014-12-05 00:19:46 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2014-12-05 00:19:46 +0000 |
commit | 28a9d9853bdfc01735eefe3588bb7f63a8d6c8db (patch) | |
tree | b032d592a990b9a846c3160c5a102b7e083b9517 /target/linux | |
parent | e6858f5f3f46e5aabc6ffc6255a5be245fddaffe (diff) | |
download | upstream-28a9d9853bdfc01735eefe3588bb7f63a8d6c8db.tar.gz upstream-28a9d9853bdfc01735eefe3588bb7f63a8d6c8db.tar.bz2 upstream-28a9d9853bdfc01735eefe3588bb7f63a8d6c8db.zip |
octeon: sysupgrade: get rootfsdev from kernel cmdline
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
SVN-Revision: 43517
Diffstat (limited to 'target/linux')
-rwxr-xr-x | target/linux/octeon/base-files/lib/upgrade/platform.sh | 26 |
1 files 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 |