On 05/02/2017 14:26, Mathias Kresin wrote: > 05.02.2017 10:15, John Crispin: >> >> >> On 05/02/2017 09:59, Claudio Leite wrote: >>> mtdsplit_lzma requires that the rootfs be aligned to a block boundary. >>> Pad the kernel partition to make this so. >>> >>> Signed-off-by: Claudio Leite <lei...@gmail.com> >>> --- >>> target/linux/ramips/image/rt288x.mk | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/target/linux/ramips/image/rt288x.mk >>> b/target/linux/ramips/image/rt288x.mk >>> index 4a0d6d4..86a5063 100644 >>> --- a/target/linux/ramips/image/rt288x.mk >>> +++ b/target/linux/ramips/image/rt288x.mk >>> @@ -14,7 +14,7 @@ define Device/ar670w >>> BLOCKSIZE := 64k >>> DEVICE_TITLE := Airlink AR670W >>> IMAGE_SIZE := $(ralink_default_fw_size_4M) >>> - KERNEL := $(KERNEL_DTB) >>> + KERNEL := $(KERNEL_DTB) | pad-to $$(BLOCKSIZE) >>> IMAGES += factory.bin >>> IMAGE/factory.bin := $$(sysupgrade_bin) | check-size >>> $$$$(IMAGE_SIZE) | \ >>> wrg-header wrgn16a_airlink_ar670w >>> >> >> Hi >> >> although technically correct, the lzma splitter needs to be fixed to not >> have this requirement, instead of adding these patches for all boards. >> there is no need for any padding beyond 4byte padding. > > I'm in doubt that the lzma splitter can be fixed. > > The dependency to align the rootfs isn't specific to the lzma splitter. > mtd_find_rootfs_from() in mtdsplit.c uses the erase block size as step > size. > > For the other splitter an not erase block size aligned rootfs works only > because the headers provide informations about the kernel size and we > can pass the kernel size as offset to mtd_find_rootfs_from() to prevent > stepping over the mtd. > > But the lzma header doesn't provide any informations about > kernel/compressed size. Only the uncompressed size is stored in the > header. According to the LZMA SDK, the LZMA decoder simply stops > decompressing as soon as the amount of decompressed data matches the > value stored in the header. > > The only fix I can think of, would be to change the step size in > mtd_find_rootfs_from() to 1 byte. But that would introduce a huge > performance penalty. > > Hopefully I missed the obvious solution for the problem. > > Mathias >
would need to look but its been like that since ever. ramips and lantiq required a 4byte alignment. if this changed then its a regression that we need to fix John > _______________________________________________ > Lede-dev mailing list > Lede-dev@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/lede-dev _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev