[OpenWrt-Devel] [PATCH 2/2] ramips: mt7621: use lzma-loader for D-Link DIR-860L

Szabolcs Hubai szab.hu at gmail.com
Sun Apr 19 14:14:32 EDT 2020


Hello!

Chuanhong Guo <gch981213 at gmail.com> ezt írta (időpont: 2020. ápr. 19.,
V, 17:42):
>
> Hi!
>
> On Sun, Apr 19, 2020 at 8:38 AM Szabolcs Hubai <szab.hu at gmail.com> wrote:
> >
> > This device has trouble extracting big kernel from flash,
> > and supports LZMA compressed kernels only.
> >
> > Using OpenWrt kernel loader saves us 64 KB compared to the dictionary
> > size limiting workaround.
> >
> > Factory image sizes (commit: 5f126c541a74) with "CONFIG_ALL_KMODS=y":
> > - original ("-d23", default): 4784188 bytes, LZMA ERROR 1
> > - with "-d19": 4915260, LZMA ERROR 1
> > - with "-d18": 4915260, diff to original: +128 KB
> > - with "-d17": 4980796, diff to original: +192 KB
> > - with this patch: 4849724, diff to original: +64 KB
> >
> > To save some CPU cycle, use minimal compression ("-a0") for the LZMA
> > compressed uImage.
>
> My original thought on this device is to use a different loader. The first
> 4MB of SPI-NOR flash on mt7621 is mapped to 0x1fc00000 and lzma
> loader can read compressed kernel directly from flash. If the kernel
> can be put at a fixed offset in flash, we could compress lzma loader
> separately and let u-boot decompress only the loader.
> You could take a look at the tp-link-nolzma recipe in:
> target/linux/ath79/image/common-tp-link.mk
> and see if you could implement a similar solution for mt7621.
> Note: You need to fix AR71XX_FLASH_START defined in:
> target/linux/ramips/image/lzma-loader/src/loader.c
> to 0x1fc00000 for this method to work.
>

Yes, that new loader would be best solution.
I'm a DevOps guy and my C-fu is just Googling and copy-pasting. :D

I'm interested in the implementation, so I would play with the source code
as a homework, but those patches wouldn't be ready for the 20.xx release. ;)

> If you can't implement it, I'm fine with your current solution too.
> but I prefer to drop patch 1/2 and write the complete kernel
> recipe for dir-860l only. It's a bit confusing to use "KERNEL +="
>

I'm going to go this way. Thank you both for the comments.


--
BR,
Szabolcs



> --
> Regards,
> Chuanhong Guo

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list