mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
ath79: mikrotik: update kernel on NAND using Yafut
Instead of erasing the entire NAND partition holding the kernel during
every system upgrade and then flashing a Yaffs file system image
prepared using kernel2minor (not accounting for bad blocks in the
process), use the Yafut utility to replace the kernel executable on
MikroTik NAND devices, preserving the existing Yaffs file system
(including bad block information) on the partition holding the kernel.
Add Yafut to DEFAULT_PACKAGES for the ath79/mikrotik target, so that the
tool is included in the initramfs images created when building for
multiple profiles. However, exclude Yafut from the images built for
MikroTik devices with NOR flash as the tool is currently only meant to
be used on devices with NAND flash.
As this addresses the concerns for MikroTik NAND devices discussed in
commit 9d96b6fb72
("ath79/mikrotik: disable building NAND images"),
re-enable building images for these devices.
Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
This commit is contained in:
parent
27acf2413e
commit
5264296ce4
@ -9,6 +9,7 @@ endef
|
|||||||
|
|
||||||
define Device/mikrotik_nor
|
define Device/mikrotik_nor
|
||||||
$(Device/mikrotik)
|
$(Device/mikrotik)
|
||||||
|
DEVICE_PACKAGES := -yafut
|
||||||
IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | \
|
IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | \
|
||||||
pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \
|
pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \
|
||||||
check-size | append-metadata
|
check-size | append-metadata
|
||||||
@ -16,8 +17,5 @@ endef
|
|||||||
|
|
||||||
define Device/mikrotik_nand
|
define Device/mikrotik_nand
|
||||||
$(Device/mikrotik)
|
$(Device/mikrotik)
|
||||||
IMAGE/sysupgrade.bin = append-kernel | kernel2minor -s 2048 -e -c | \
|
IMAGE/sysupgrade.bin = append-kernel | sysupgrade-tar | append-metadata
|
||||||
sysupgrade-tar kernel=$$$$@ | append-metadata
|
|
||||||
DEVICE_PACKAGES := nand-utils
|
|
||||||
DEFAULT := n
|
|
||||||
endef
|
endef
|
||||||
|
@ -7,7 +7,7 @@ platform_check_image() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
RAMFS_COPY_BIN='nandwrite'
|
RAMFS_COPY_BIN='yafut'
|
||||||
|
|
||||||
platform_do_upgrade_mikrotik_nand() {
|
platform_do_upgrade_mikrotik_nand() {
|
||||||
CI_KERNPART=none
|
CI_KERNPART=none
|
||||||
@ -20,8 +20,7 @@ platform_do_upgrade_mikrotik_nand() {
|
|||||||
board_dir=${board_dir%/}
|
board_dir=${board_dir%/}
|
||||||
[ -n "$board_dir" ] || return
|
[ -n "$board_dir" ] || return
|
||||||
|
|
||||||
mtd erase kernel
|
tar xf "$1" ${board_dir}/kernel -O | yafut -d "$fw_mtd" -w -i - -o kernel -m 0755 || return
|
||||||
tar xf "$1" ${board_dir}/kernel -O | nandwrite -o "$fw_mtd" -
|
|
||||||
|
|
||||||
nand_do_upgrade "$1"
|
nand_do_upgrade "$1"
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ FEATURES += minor nand
|
|||||||
KERNELNAME := vmlinux vmlinuz
|
KERNELNAME := vmlinux vmlinuz
|
||||||
IMAGES_DIR := ../../..
|
IMAGES_DIR := ../../..
|
||||||
|
|
||||||
DEFAULT_PACKAGES += wpad-basic-mbedtls
|
DEFAULT_PACKAGES += wpad-basic-mbedtls yafut
|
||||||
|
|
||||||
define Target/Description
|
define Target/Description
|
||||||
Build firmware images for MikroTik devices based on Qualcomm Atheros
|
Build firmware images for MikroTik devices based on Qualcomm Atheros
|
||||||
|
Loading…
Reference in New Issue
Block a user