X-Git-Url: https://git.archive.openwrt.org/?p=openwrt.git;a=blobdiff_plain;f=target%2Flinux%2Focteon%2Fbase-files%2Flib%2Fupgrade%2Fplatform.sh;h=11399a2629ec09b8d11742c8261caf7f03696f85;hp=e4c7b6f43873e912c34657a0ed0c094fe6b9f500;hb=511782c7da7e66398c16aa8dc8cb5ca29fe2b578;hpb=85a739cd33256cb663c970312f8eb8657a9b61c2 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