[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFLxGvw1UoC3whDoQ5w6zfDNe=cLYi278y6vvSadQhOV9MGvTA@mail.gmail.com>
Date: Sun, 27 Jun 2021 10:42:10 +0200
From: Richard Weinberger <richard.weinberger@...il.com>
To: Pintu Agarwal <pintu.ping@...il.com>
Cc: open list <linux-kernel@...r.kernel.org>,
linux-mtd <linux-mtd@...ts.infradead.org>,
Richard Weinberger <richard@....at>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
Phillip Lougher <phillip@...ashfs.org.uk>,
Sean Nyekjaer <sean@...nix.com>,
Kernelnewbies <kernelnewbies@...nelnewbies.org>
Subject: Re: Query: UBIFS: How to detect empty volumes
On Thu, Jun 24, 2021 at 6:09 PM Pintu Agarwal <pintu.ping@...il.com> wrote:
> I have one basic query related to UBIFS volumes on a system with NAND partition.
There is no such thing as a UBIFS volume. Do you mean UBI volumes?
> In short, how to detect a particular empty volume inside a system
> partition while flashing the partition image?
What do you mean by system partition? A MTD partition?
> Suppose I have one big system partition that consists of 4-5 ubi
> volumes inside it with varying sizes.
> Lets say:
> -- System Partition (ubi image)
> - rootfs volume (ro, squashfs)
> - data volume (rw, ubifs)
> - firmware volume (ro, ubifs)
> - some-other volume (ro, squashfs)
So by system partition you mean the MTD partition that hosts UBI itself?
> Consider that all these could be flashed together as part of
> system.ubi image in a single shot from the bootloader.
> Now, suppose, one of the volume image (say firmware) is missing or
> remains empty (as you know we can have empty volumes).
>
> So, during system image flashing, we wanted to detect if one of the
> volume (firmware) is empty.
> Since this is an important volume, so we wanted to detect if this
> volume is empty/missing we will abort flashing the system partition.
> As there is no point in booting the system without this partition.
>
> So, I am exploring options, how can this be detected ?
Read from the volume after flashing. If you get only 0xFF bytes it is empty.
> I mean is there any kind of magic number or header information which
> we can read to detect a particular empty volume ?
> Can we get any information from just "system.ubi" image to indicate
> about the volume information ?
You'll need to perform a proper UBI scan on all blocks.
If for the sad volume no LEBs have been found it is empty.
> Also it could be possible that 2 or more volumes are empty, but we are
> only concerned about one particular volume (firmware), so how to
> detect particular volume ?
I don't understand the use case. Is your image creation process so error prone
that you can't be sure whether critical parts got included or not?
--
Thanks,
//richard
Powered by blists - more mailing lists