Commit Graph

14 Commits

Author SHA1 Message Date
Daniel Golle
da13ff30ef scripts: ubinize-image.sh: fix support for static volume
Apart from being misspelled ('dymamic' vs. 'dynamic') and a mismatch of
the number of parameters, there is also simply no need to add the 'dynamic'
volume type keyword as 6th parameter as that's the default anyway.
Fix and simplify the ubinize-image.sh script to work as intended.

Fixes: 6c17d71973 ("scripts: ubinize-image.sh: support static volumes, make size optional")
Reported-by: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-04-24 02:32:22 +01:00
Daniel Golle
67beab2b2b scripts: ubinize-image.sh: fix on POSIX shell, allow custom images
Make sure ubinize-image.sh also works with more simple POSIX Shell and
allow creating complete custom images to be used as ARTIFACT/foo.img
and thereby allow including uImage.FIT, TF-A FIP and what ever else
is required on a specific board.

Fixes: 6c17d71973 ("scripts: ubinize-image.sh: support static volumes, make size optional")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-16 05:32:51 +00:00
Daniel Golle
6c17d71973 scripts: ubinize-image.sh: support static volumes, make size optional
In order to support devices having TF-A FIP image or UBI-aware U-Boot
SPL we need to include a static volume for the bootloader.

Introduce support for adding additional static volumes by prefixing
the filename with ':', eg.

UBINIZE_PARTS := fip:=$(STAGING_DIR_IMAGE)/u-boot.fip

Also add support for rootfs-in-uImage.FIT setups which don't require a
rootfs partition and make the (3rd) size parameter in UBINIZE_PARTS
optional (see example above without declared size).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-15 19:30:08 +00:00
Ansuel Smith
88204bfa82 treewide: drop use of which
Ubuntu started to flag which as deprecated and it
seems which is not really standard and may vary
across Distro.
Drop the use of which and use the standard 'command -v'
for this simple task.
Which is still present in the prereq if some package/script
still use which.
A utility script called command_all.sh is implemented that
will just mimic the output of which -a.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2022-01-17 09:14:26 +01:00
Robert Marko
5a305e429f scripts: ubinize-image: make rootfs optional
Currently ubinize-image script always expects the
rootfs image to be passed and a volume for it created.

So, to allow only ubinizing a kernel for example which
the MikroTik hAP ac3 and other new NAND devices from
MikroTik require make rootfs an optional parameter like
kernel.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2021-11-28 17:17:22 +01:00
Alexander Couzens
5625a02e77
ubinize-image: set image sequence from SOURCE_DATE_EPOCH
Set the image sequence number to SOURCE_DATE_EPOCH.
If not set, ubinize will use rand() as image sequence.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2019-11-03 04:20:21 +01:00
Jonas Gorski
ee76bd11bb images: fix boot failures on NAND with small sub pages
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>
2019-09-14 11:43:19 +02:00
Petr Štetiar
c6d41c320c scripts/ubinize-image.sh: fix buildbot breakage
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>
2019-07-30 10:16:16 +02:00
Felix Fietkau
a84a74f618 scripts/ubinize-image.sh: add support for adding custom partitions
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-08-31 13:05:19 +02:00
Felix Fietkau
08706120bb scripts: fix ubinize-image on OS X
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 44761
2015-03-15 05:12:11 +00:00
John Crispin
d1898b84c6 scripts/ubinize-image.sh: fix ubinize-image.sh when used with --kernel
r41359 broke support for building ubinized images which do
include a kernel volume.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 41368
2014-06-29 06:59:29 +00:00
Imre Kaloz
dc9ebfc9e6 make UbinizeImage work nicely without a kernel volume
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 41359
2014-06-27 12:58:08 +00:00
John Crispin
0f39877bac scripts/ubinize-image.sh: fix parameter handling
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
2014-06-26 11:43:42 +00:00
John Crispin
28a563dec3 scripts: add ubinize-image.sh to generate ubi images
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
2014-06-11 12:59:19 +00:00