procd: various improvements to nand.sh
Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41278 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
0f6578ce01
commit
87a9dcb506
|
@ -97,9 +97,9 @@ nand_restore_config() {
|
||||||
|
|
||||||
nand_upgrade_prepare_ubi() {
|
nand_upgrade_prepare_ubi() {
|
||||||
local rootfs_length="$1"
|
local rootfs_length="$1"
|
||||||
local rootfs_type="$1"
|
local rootfs_type="$2"
|
||||||
local has_kernel="${2:-0}"
|
local has_kernel="${3:-0}"
|
||||||
local has_env="${3:-0}"
|
local has_env="${4:-0}"
|
||||||
|
|
||||||
local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
|
local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
|
||||||
if [ ! "$mtdnum" ]; then
|
if [ ! "$mtdnum" ]; then
|
||||||
|
@ -188,6 +188,11 @@ nand_upgrade_ubinized() {
|
||||||
local ubi_file="$1"
|
local ubi_file="$1"
|
||||||
local mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
local mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
||||||
|
|
||||||
|
[ ! "$mtdnum" ] && {
|
||||||
|
CI_UBIPART="rootfs"
|
||||||
|
mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
||||||
|
}
|
||||||
|
|
||||||
if [ ! "$mtdnum" ]; then
|
if [ ! "$mtdnum" ]; then
|
||||||
echo "cannot find mtd device $CI_UBIPART"
|
echo "cannot find mtd device $CI_UBIPART"
|
||||||
reboot -f
|
reboot -f
|
||||||
|
@ -201,9 +206,19 @@ nand_upgrade_ubinized() {
|
||||||
nand_do_upgrade_success
|
nand_do_upgrade_success
|
||||||
}
|
}
|
||||||
|
|
||||||
nand_do_upgrade_stage2() {
|
nand_upgrade_ubifs() {
|
||||||
[ "$(identify $1)" == "ubi" ] && nand_upgrade_ubinized $1
|
local rootfs_length=`(cat $1 | wc -c) 2> /dev/null`
|
||||||
|
|
||||||
|
nand_upgrade_prepare_ubi "$rootfs_length" "ubifs" "0" "0"
|
||||||
|
|
||||||
|
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||||
|
local root_ubivol="$(nand_find_volume $ubidev rootfs)"
|
||||||
|
ubiupdatevol /dev/$root_ubivol -s $rootfs_length $1
|
||||||
|
|
||||||
|
nand_do_upgrade_success
|
||||||
|
}
|
||||||
|
|
||||||
|
nand_upgrade_tar() {
|
||||||
local tar_file="$1"
|
local tar_file="$1"
|
||||||
local board_name="$(cat /tmp/sysinfo/board_name)"
|
local board_name="$(cat /tmp/sysinfo/board_name)"
|
||||||
local kernel_mtd="$(find_mtd_index kernel)"
|
local kernel_mtd="$(find_mtd_index kernel)"
|
||||||
|
@ -237,6 +252,16 @@ nand_do_upgrade_stage2() {
|
||||||
nand_do_upgrade_success
|
nand_do_upgrade_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nand_do_upgrade_stage2() {
|
||||||
|
local file_type=$(identify $1)
|
||||||
|
|
||||||
|
[ ! "$(find_mtd_index "$CI_UBIPART")" ] && CI_UBIPART="rootfs"
|
||||||
|
|
||||||
|
[ "$file_type" == "ubi" ] && nand_upgrade_ubinized $1
|
||||||
|
[ "$file_type" == "ubifs" ] && nand_upgrade_ubifs $1
|
||||||
|
nand_upgrade_tar $1
|
||||||
|
}
|
||||||
|
|
||||||
nand_upgrade_stage2() {
|
nand_upgrade_stage2() {
|
||||||
[ $1 = "nand" ] && {
|
[ $1 = "nand" ] && {
|
||||||
[ -f "$2" ] && {
|
[ -f "$2" ] && {
|
||||||
|
@ -281,8 +306,9 @@ nand_do_platform_check() {
|
||||||
local board_name="$1"
|
local board_name="$1"
|
||||||
local tar_file="$2"
|
local tar_file="$2"
|
||||||
local control_length=`(tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null`
|
local control_length=`(tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null`
|
||||||
|
local file_type="$(identify $2)"
|
||||||
[ "$control_length" = 0 -a "$(identify $2)" != "ubi" ] && {
|
|
||||||
|
[ "$control_length" = 0 -a "$file_type" != "ubi" -a "$file_type" != "ubifs" ] && {
|
||||||
echo "Invalid sysupgrade file."
|
echo "Invalid sysupgrade file."
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue