aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/ubinize-image.sh
Commit message (Collapse)AuthorAgeFilesLines
* images: fix boot failures on NAND with small sub pagesJonas Gorski2019-09-141-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SquashFS has a minimum block size of at least 1k, so we need to make sure the last data block is also at least that big. This is not an issue on NOR or SD CARD devices, since their rootfs partitions go all the way to the end of the usable space. But on NAND with ubiblock, the rootfs partition will be the exact space, rounded up to LEB size. Unfortunately, some NAND chips with small sub pages have a LEB size of x.5 kiB. This can cause the the last data block to be less than 1k, which will cause the last block to be inaccessible, causing boot failures as seen on MR24: [ 1.532960] block ubiblock0_3: created from ubi0:3(rootfs) [ 1.538457] ubiblock: device ubiblock0_3 (rootfs) set to be root filesystem [ 1.552847] SQUASHFS error: squashfs_read_data failed to read block 0x621472 [ 1.559896] squashfs: SQUASHFS error: unable to read id index table [ 1.566474] VFS: Cannot open root device "(null)" or unknown-block(254,0): error -5 Since on most NOR devices, the start of the squashfs partition is not aligned. Since the start of the rootfs_data partition there is dependend on the SquashFS size, we cannot just always pad it, as the padding could creep into the rootfs_data partition, breaking jffs2. So fix this by ensuring a squashfs rootfs is always a multiple of 1k only for UBI and NAND sysupgrade images. Fixes #2460 without affecting NOR devices. Tested-by: Russell Senior <russell@personaltelco.net> Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
* scripts/ubinize-image.sh: fix buildbot breakagePetr Štetiar2019-07-301-1/+1
| | | | | | | | | | | | | | New Docker based buildslaves install just bare minimum of packages, thus not having bsdmainutils package installed which provides `hexdump` utility, leading to the following build breakage on buildbots: ubinize-image.sh: 12: /builder/scripts/ubinize-image.sh: hexdump: not found So this patch simply replaces `hexdump` with `od` utility provided by coreutils package, which should be likely available. Co-authored-by: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* scripts/ubinize-image.sh: add support for adding custom partitionsFelix Fietkau2016-08-311-1/+26
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* scripts: fix ubinize-image on OS XFelix Fietkau2015-03-151-2/+5
| | | | | | Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> SVN-Revision: 44761
* scripts/ubinize-image.sh: fix ubinize-image.sh when used with --kernelJohn Crispin2014-06-291-0/+1
| | | | | | | | | r41359 broke support for building ubinized images which do include a kernel volume. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 41368
* make UbinizeImage work nicely without a kernel volumeImre Kaloz2014-06-271-10/+4
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 41359
* scripts/ubinize-image.sh: fix parameter handlingJohn Crispin2014-06-261-24/+27
| | | | | | | | | | ubinize-image.sh previously used ${var:offset:length} substitutions which are not valid in standard shell. Replace the existing parameter matching by a case ... esac expression. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 41347
* scripts: add ubinize-image.sh to generate ubi imagesJohn Crispin2014-06-111-0/+113
This is a wrapper for the ubinize tool which integrates auto-generation of the ubinize.cfg for common volume layouts with and without a kernel volume. It supports auto-detecting the rootfs-type and decides whether or not to include a rootfs_data volume based on whether the rootfs is ubifs or not (and thus is read-only and needs rootfs_data ubifs overlay). The script allows to create layouts as found in all current ubinize{,-overlay}.cfg files using ubinize-image.sh --no-kernel root.{ubifs,squashfs} output.ubi $UBI_OPTS It also includes support for adding ubootenv and ubootenv2 volumes typically used by U-Boot for storing its environment in UBI using the "--uboot-env" parameter. See also https://gitorious.org/openwrt-oxnas/openwrt-oxnas/source/target/linux/ oxnas/image/Makefile Signed-off-by: Daniel Golle <daniel@makrotopia.org> create mode 100755 scripts/ubinize-image.sh SVN-Revision: 41121