ramips: define lzma-loader recipe for SEAMA devices

Define "Device/seama-lzma-loader" recipe for SEAMA devices to help
contributors avoid doing recipe mistakes.

In a forum topic [0] I was under the impression that the good old
uimage-lzma-loader didn't fix the LZMA ERROR 1 for a device.

It was found out, that the uimage-lzma-loader never worked because the
KERNEL variable was overriden earlier (also an LZMA ERROR 1 related
commit, 6fba88de19), and the "use lzma-loader" fix (commit
09faa73c53) didn't catch that to include the "loader-kernel" part.

I contributed an LZMA ERROR 1 fix (commit ce19571004) for the SEAMA
device D-Link DIR-860L B1, where I had to duplicate the whole
uimage-lzma-loader recipe because of the special needs of the vendor
bootloader.

This new recipe reuse most of uimage-lzma-loader's KERNEL definiton to
avoid duplication.

It uses "relocate-kernel" as it needed for D-Link DIR-860L B1 to
boot from flash, and it's compatible with D-Link DIR-645 too.

It repacks lzma-loader with lzma for kernel (without uImage), because
these weird hacked vendor bootloaders accepts only LZMA compressed
kernels from flash:

    We have SEAMA, Image Size = 4759794
    Verifying Checksum ...
    Uncompressing SEAMA linux.lzma ... OK

It uses uImage header for initramfs kernel to be little bit verbose.

0: https://forum.openwrt.org/t/136435/10

Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
This commit is contained in:
Szabolcs Hubai 2022-09-26 08:42:54 +02:00 committed by Hauke Mehrtens
parent ffa4b5283b
commit e7ad68d682

View File

@ -213,7 +213,15 @@ endef
define Device/uimage-lzma-loader
LOADER_TYPE := bin
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | uImage none
KERNEL/lzma-loader := kernel-bin | append-dtb | lzma | loader-kernel
KERNEL := $$(KERNEL/lzma-loader) | uImage none
endef
define Device/seama-lzma-loader
$(Device/seama)
$(Device/uimage-lzma-loader)
KERNEL := $$(KERNEL/lzma-loader) | relocate-kernel | lzma -a0
KERNEL_INITRAMFS := $$(KERNEL/lzma-loader) | uImage none
endef
include $(SUBTARGET).mk