diff options
Diffstat (limited to 'target/linux/ar71xx/base-files')
-rwxr-xr-x | target/linux/ar71xx/base-files/lib/upgrade/platform.sh | 30 | ||||
-rwxr-xr-x | target/linux/ar71xx/base-files/sbin/wget2nand | 85 |
2 files changed, 30 insertions, 85 deletions
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 6341a31791..82ed041d66 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -7,6 +7,7 @@ PART_NAME=firmware RAMFS_COPY_DATA=/lib/ar71xx.sh +[ -x /usr/sbin/nandwrite ] && RAMFS_COPY_BIN=/usr/sbin/nandwrite CI_BLKSZ=65536 CI_LDADR=0x80060000 @@ -164,6 +165,15 @@ alfa_check_image() { return 0 } +platform_nand_board_name() { + local board=$(ar71xx_board_name) + + case "$board" in + rb*) echo "routerboard";; + *) echo "$board";; + esac +} + platform_check_image() { local board=$(ar71xx_board_name) local magic="$(get_magic_word "$1")" @@ -443,6 +453,10 @@ platform_check_image() { tew-673gru) dir825b_check_image "$1" && return 0 ;; + rb*) + nand_do_platform_check routerboard $1 + return $? + ;; c-60|\ nbg6716|\ r6100|\ @@ -570,6 +584,7 @@ platform_pre_upgrade() { local board=$(ar71xx_board_name) case "$board" in + rb*|\ c-60|\ nbg6716|\ r6100|\ @@ -584,6 +599,21 @@ platform_pre_upgrade() { esac } +platform_nand_pre_upgrade() { + local board=$(ar71xx_board_name) + + case "$board" in + rb*) + CI_KERNPART=none + local fw_mtd=$(find_mtd_part kernel) + fw_mtd="${fw_mtd/block/}" + [ -n "$fw_mtd" ] || return + mtd erase kernel + tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" - + ;; + esac +} + platform_do_upgrade() { local board=$(ar71xx_board_name) diff --git a/target/linux/ar71xx/base-files/sbin/wget2nand b/target/linux/ar71xx/base-files/sbin/wget2nand deleted file mode 100755 index c80e21ccc7..0000000000 --- a/target/linux/ar71xx/base-files/sbin/wget2nand +++ /dev/null @@ -1,85 +0,0 @@ -#!/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 -. /lib/functions.sh - -wget2nand_dir=/tmp/wget2nand -mnt_kernel=$wget2nand_dir/mnt_kernel -mnt_rootfs=$wget2nand_dir/mnt_rootfs -src_rootfs=$wget2nand_dir/rootfs.tgz -src_kernel=$wget2nand_dir/kernel - -[ -d "$wget2nand_dir" ] && { - echo "$wget2nand_dir 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 -} - -url_kernel=$url/lede-ar71xx-mikrotik-vmlinux-lzma.elf -url_rootfs=$url/lede-ar71xx-mikrotik-defaultnowifi-rootfs.tar.gz - -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 -} - -mkdir "$wget2nand_dir" -wget $url_kernel -O "$src_kernel" || { - echo "Unable to download $url_kernel" - exit 1 -} - -wget $url_rootfs -O "$src_rootfs" || { - echo "Unable to download $url_rootfs" - 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 "$mnt_kernel" -mkdir "$mnt_rootfs" -mount -t yaffs2 "$mtd_kernel" "$mnt_kernel" -mount -t yaffs2 "$mtd_rootfs" "$mnt_rootfs" - -echo "Copying kernel..." -cp $src_kernel $mnt_kernel/kernel || { - echo "Error occured while copying the kernel" - exit 1 -} -chmod +x $mnt_kernel/kernel - -echo "Preparing filesystem..." -( cd "$mnt_rootfs"; tar xvz -f "$src_rootfs" ) - -# make sure everything is written before we unmount the partitions -echo "chmod ugo+x /" > $mnt_rootfs/etc/uci-defaults/set_root_permission -sync -ls $mnt_kernel >/dev/null -ls $mnt_rootfs >/dev/null - -echo "Cleaning up..." -# unmount the partitions and remove the directories into which they were mounted -umount $mnt_kernel -umount $mnt_rootfs -rm -rf $wget2nand_dir - -# all done -echo "Image written, you can now reboot. Remember to change the boot source to Boot from Nand" |