[OpenWrt-Devel] [PATCH RFC 2/5] ubinize-image: Change the rootfs to a static volume
Daniel Golle
daniel at makrotopia.org
Fri Dec 12 14:01:54 EST 2014
On Fri, Dec 12, 2014 at 04:21:02PM +0100, Maxime Ripard wrote:
> On boards with large page size, the rootfs we generate might end up using less
> PEB than the minimum number required by UBI for a dynamic volume.
>
> Change the rootfs to a static volume, which removes such a requirement, and
> isn't changing anything, since our rootfs is in read only anyway.
>
> Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> ---
> scripts/ubinize-image.sh | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/ubinize-image.sh b/scripts/ubinize-image.sh
> index 6762c22bc4a6..11c25ecc8ee1 100755
> --- a/scripts/ubinize-image.sh
> +++ b/scripts/ubinize-image.sh
> @@ -25,13 +25,17 @@ ubivol() {
> echo "[$name]"
> echo "mode=ubi"
> echo "vol_id=$volid"
> - echo "vol_type=dynamic"
> echo "vol_name=$name"
> if [ "$image" ]; then
> echo "image=$image"
> else
> echo "vol_size=1MiB"
> fi
> + if [ "$name" = "rootfs" ]; then
> + echo "vol_type=static"
> + else
> + echo "vol_type=dynamic"
> + fi
Once again, this will break read-write UBIFS rootfs, which is an option we
do offer on NAND/UBI targets, just as we do offer read-write JFFS2 rootfs on
NOR targets.
So to make your rootfs come out as a static volume only when it's ubifs, you
could do
if [ "$name" = "rootfs" -a -z "$autoresize" ]; then
echo "vol_type=static"
else
echo "vol_type=dynamic"
fi
However, also this didn't actually work on any of the UBIFS based boxes I got
here for testing (kirkwood, oxnas, lantiq-danube), I constantly get stuff like
when having rootfs a static volumes (contrary to your statement that suggests
that changing to a static volume removes exactly that problem):
[ 1.592535] UBIFS error (pid 1): init_constants_early: too few LEBs (16), min. is 17
[ 1.604008] UBI error: ubiblock_read_to_buf: ubiblock0_3 ubi_read error -22
[ 1.611025] end_request: I/O error, dev ubiblock0_3, sector 3860
[ 1.617093] SQUASHFS error: squashfs_read_data failed to read block 0x1e2ab3
[ 1.624107] SQUASHFS error: unable to read id index table
Why do you need that quite abandonned support for static UBI volumes so badly?
If there is a problem with small dynamic volumes, that is something to be
adressed properly rather than being worked around at the cost of breaking
other things.
Cheers
Daniel
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list