All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trevor Woerner <twoerner@gmail.com>
To: yocto-patches@lists.yoctoproject.org
Subject: Re: [yocto-patches] [meta-rockchip][PATCH 1/4] rename root partition
Date: Thu, 23 May 2024 16:29:02 -0400	[thread overview]
Message-ID: <20240523202902.GA26177@localhost> (raw)
In-Reply-To: <b34f9407-1c1e-4502-b76a-ea4e839a2f3a@cherry.de>

On Thu 2024-05-23 @ 09:52:21 AM, Quentin Schulz via lists.yoctoproject.org wrote:
> Hi Trevor,
> 
> On 5/23/24 1:08 AM, Trevor Woerner via lists.yoctoproject.org wrote:
> > Rename the root partition to "rootfsA" in the off-chance the user may someday
> > be interested in implementing some sort of whole-partition update mechanism.
> > 
> 
> But... wouldn't they need to write their own wks file for it anyway since
> they would need to add an additional partition?

Not necessarily. If you look at the example I give (patch 4/4) I'm not
touching the wic file at all; all the repartitioning is done via systemd's
`repart` mechanism. This has many advantages!

wic isn't "target device" aware, so if you flash it to a 16GB device versus a
32GB one, you have to design your wic to satisfy the smallest one otherwise
the bmaptool'ing/dd'ing will fail if your user uses a small device. If you
target a small device and your user uses a large device then they've wasted
space. You either have to hard-code the sizes in wic, which means you have to
make assumptions, or let wic do its "i'm going to take your filesystem and add
X%"

Secondly, if you add multiple copies of your root filesystem in your wic
layout, then when you bmaptool/dd your image, you're wasting time duplicating
the root filesystem a 2nd, 3rd, 4th... time, none of which you'll ever use. If
you have 2 exact copies of your root filesystem on your drive, you're never
going to reboot into the other partition as-is, you'll update the other
partition, then try booting into it. So adding additional root partitions via
wic increases the image size, increases the flashing time, and it's all
wasted.

So solving the multiple partition problem via wic isn't a great solution.

Using systemd+repart is perfect because it allows your image size to be as
small as possible (since it only has the one root partition in the image,
and it is the normal "size of partition + X%" size), but still have all the
additional partitions once you're up and running. The existing root partition
will be expanded, and additional ones added. And the user can specify their
sizes as a percentage of the total, so they're not needlessly small on larger
devices, or require a minimum size. There is a cost the first time you boot
while systemd does all the repartitioning, but that's only paid the one time.
In theory you could change your partitioning scheme by redefining the repart
configuration files, but it may be anyone's guess if any specific change might
actually work.

> Basically, I'm not sure we need to half-support those use-cases :)

The one and only root partition could be named anything... rootfsA is as good
a name as any ;-)

> Otherwise, looks good to me.
> 
> > Signed-off-by: Trevor Woerner <twoerner@gmail.com>
> > ---
> >   conf/machine/include/rockchip-extlinux.inc | 2 +-
> >   wic/rockchip.wks                           | 2 +-
> >   2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/conf/machine/include/rockchip-extlinux.inc b/conf/machine/include/rockchip-extlinux.inc
> > index ca33f4c7f42a..ab46b76d33a1 100644
> > --- a/conf/machine/include/rockchip-extlinux.inc
> > +++ b/conf/machine/include/rockchip-extlinux.inc
> > @@ -12,7 +12,7 @@
> >   NONFITDT ?= "${@d.getVar('KERNEL_DEVICETREE').split('/')[1]}"
> >   UBOOT_EXTLINUX ?= "1"
> > -UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=root"
> > +UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=rootfsA"
> >   UBOOT_EXTLINUX_FDTDIR ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot', d)}"
> >   UBOOT_EXTLINUX_FDT ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '${NONFITDT}', d)}"
> >   UBOOT_EXTLINUX_CONSOLE ?= "earlycon console=tty1 console=${RK_CONSOLE_DEVICE},${RK_CONSOLE_BAUD}n8"
> > diff --git a/wic/rockchip.wks b/wic/rockchip.wks
> > index bc65f73b0cf3..e1d74d9983ab 100644
> > --- a/wic/rockchip.wks
> > +++ b/wic/rockchip.wks
> > @@ -26,6 +26,6 @@ part uboot_env --offset 8128s  --fixed-size 32K   --fstype=none --part-name uboo
> >   part reserved2 --offset 8192s  --fixed-size 4096K --fstype=none --part-name reserved2
> >   part loader2   --offset 16384s --fixed-size 4096K --fstype=none --part-name loader2   --source rawcopy --sourceparams="file=u-boot.${UBOOT_SUFFIX}"
> >   part atf       --offset 24576s --fixed-size 4096K --fstype=none --part-name atf
> > -part /         --label root    --active           --fstype=ext4 --part-name root      --source rootfs
> > +part /         --label rootfsA --active           --fstype=ext4 --part-name rootfsA   --source rootfs
> >   bootloader --ptable gpt
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#172): https://lists.yoctoproject.org/g/yocto-patches/message/172
> Mute This Topic: https://lists.yoctoproject.org/mt/106253213/900817
> Group Owner: yocto-patches+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/yocto-patches/leave/13168745/900817/63955952/xyzzy [twoerner@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 
> 


      reply	other threads:[~2024-05-23 20:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-22 23:08 [meta-rockchip][PATCH 1/4] rename root partition Trevor Woerner
2024-05-22 23:08 ` [meta-rockchip][PATCH 2/4] specify root partition type Trevor Woerner
2024-05-23  7:59   ` [yocto-patches] " Quentin Schulz
2024-05-22 23:08 ` [meta-rockchip][PATCH 3/4] u-boot: remove upstreamed dependency Trevor Woerner
2024-05-23  8:02   ` [yocto-patches] " Quentin Schulz
2024-05-22 23:08 ` [meta-rockchip][PATCH 4/4] rauc demo: add Trevor Woerner
2024-05-23 12:53   ` [yocto-patches] " Quentin Schulz
2024-06-19  4:52     ` Trevor Woerner
2024-06-19  5:19       ` Trevor Woerner
2024-06-19 11:55       ` Quentin Schulz
2024-06-19 12:20         ` Trevor Woerner
2024-05-23  7:52 ` [yocto-patches] [meta-rockchip][PATCH 1/4] rename root partition Quentin Schulz
2024-05-23 20:29   ` Trevor Woerner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240523202902.GA26177@localhost \
    --to=twoerner@gmail.com \
    --cc=yocto-patches@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.