Do not use deprecated path to functions.sh (/etc/functions.sh -> /lib/functions.sh)
[openwrt/svn-archive/archive.git] / target / linux / rb532 / base-files / sbin / cf2nand
index fb3717499bae59fcba7682769ac10181e217421f..0bfc259ef630d6af3664836244b66638e927232c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-. /etc/functions.sh
+. /lib/functions.sh
 
 copy_kernel() {
        local input="$1"
@@ -28,8 +28,8 @@ mount -t "$fstype" /dev/root /tmp/cf2nand/rootfs || {
        exit 1
 }
 
-boot="$(find_mtd_part 'RouterBoard NAND Boot')"
-main="$(find_mtd_part 'RouterBoard NAND Main')"
+boot="$(find_mtd_part 'Routerboard NAND boot')"
+main="$(find_mtd_part 'rootfs')"
 [ -z "$boot" -o -z "$main" ] && {
        echo "Cannot find NAND Flash partitions"
        exit 1
@@ -45,7 +45,7 @@ mount -t yaffs2 "$boot" /tmp/cf2nand/p1
 mount -t yaffs2 "$main" /tmp/cf2nand/p2
 
 echo "Copying kernel..."
-copy_kernel /dev/cf/card0/part1 /tmp/cf2nand/p1/kernel "root=/dev/mtdblock1 rootfstype=yaffs2 init=/etc/preinit " 2>/dev/null >/dev/null
+copy_kernel /dev/cfa1 /tmp/cf2nand/p1/kernel "root=/dev/mtdblock1 rootfstype=yaffs2 " 2>/dev/null >/dev/null
 umount /tmp/cf2nand/p1
 rmdir /tmp/cf2nand/p1
 
@@ -53,6 +53,11 @@ echo "Copying filesystem..."
 ( cd /tmp/cf2nand/rootfs; tar c . ) | ( cd /tmp/cf2nand/p2; tar x )
 echo "chmod ugo+x /" > /tmp/cf2nand/p2/etc/uci-defaults/set_root_permission
 sync
+# Use kexec is present
+[ -x /usr/bin/kexec ] && {
+       kexec -l /tmp/cf2nand/p1/kernel --command-line="$(cat /proc/cmdline) root=/dev/mtdblock1 rootfstype=yaffs2"
+       kexec -e
+}
 umount /tmp/cf2nand/p2
 rmdir /tmp/cf2nand/p2