#!/bin/sh # wget2nand # This script can be used to download a TGZ file from your build system which # contains the files to be installed on the NAND flash on your RB1xx card. # The one parameter is the URL of the TGZ file to be downloaded. # Licence GPL V2 # Author david.goodenough@linkchoose.co.uk # Based on cf2nand from RB532 support . /etc/functions.sh [ -d /tmp/wget2nand-rootfs ] && { echo "/tmp/wget2nand-rootfs already exists" exit 1 } [ -d /tmp/wget2nand-kernel ] && { echo "/tmp/wget2nand-kernel already exists" exit 1 } # need to find the wget server from the command line url=$1 [ -z "$url" ] && { echo "No URL specified for image TGZ" echo "Usage : $0 URL" exit 1 } # first get an address for br-lan using udhcpc killall udhcpc /sbin/udhcpc -i br-lan mtd_kernel="$(find_mtd_part 'kernel')" mtd_rootfs="$(find_mtd_part 'rootfs')" [ -z "$mtd_kernel" -o -z "$mtd_rootfs" ] && { echo "Cannot find NAND Flash partitions" exit 1 } echo "Erasing filesystem..." mtd erase kernel 2>/dev/null >/dev/null mtd erase rootfs 2>/dev/null >/dev/null echo "Mounting $mtd_rootfs as new root and $mtd_kernel as kernel partition" mkdir /tmp/wget2nand-rootfs mkdir /tmp/wget2nand-kernel mount -t yaffs2 "$mtd_rootfs" /tmp/wget2nand-rootfs mount -t yaffs2 "$mtd_kernel" /tmp/wget2nand-kernel echo "Erasing existing files..." rm -rf /tmp/wget2nand-rootfs/* echo "Copying filesystem..." ( wget -O - $url/openwrt-ar71xx-rootfs.tgz) | ( cd /tmp/wget2nand-rootfs/; tar xvz ) # RouterBOOT is looking for a kernel named "kernel" wget -O /tmp/wget2nand-kernel/kernel $url/openwrt-ar71xx-vmlinux.elf chmod +x /tmp/wget2nand-kernel/kernel # make sure everything is written before we unmount the partitions echo "chmod ugo+x /" > /tmp/wget2nand-rootfs/etc/uci-defaults/set_root_permission sync ls /tmp/wget2nand-kernel/ ls /tmp/wget2nand-rootfs/ # unmount the partitions and remove the directories into which they were mounted umount /tmp/wget2nand-kernel umount /tmp/wget2nand-rootfs rmdir /tmp/wget2nand-kernel rmdir /tmp/wget2nand-rootfs # all done echo "Image written, you can now reboot. Remember to change the boot source to Boot from Nand"