Message ID | 20240522230808.14409-1-twoerner@gmail.com |
---|---|
State | New |
Headers | show |
Series | [meta-rockchip,1/4] rename root partition | expand |
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? Basically, I'm not sure we need to half-support those use-cases :) 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
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] > -=-=-=-=-=-=-=-=-=-=-=- > >
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
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. 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(-)