On 2025-04-07 1:04 p.m., Khem Raj wrote:
On Mon, Apr 7, 2025 at 9:45 AM Christos Gavros <gavrosc@yahoo.com> wrote:
In 'finish'script the Switch_root command with option -c is busybox specific.
When package-core-base-utils is selected the boot is breaking with message
"Switch_root: invalid option — ‘c’.It was reproduced using qemu.
Remove -c option to make it compatible with both providers.
It is tested using qemu with busybox and package-core-base-utils. In both cases
qemu boots successfully and filesystem is accessible.
Fixes [YOCTO #15716]

Looks good

Probably, and it's a small change, but :

1.  Usually the busybox version has fewer features but
here util-linux doesn't have the option, which is a bit odd.

I also checked the git repo/master branch and it hasn't been added.
Note that toybox, a BSD-Zero licensed, re-implementation of busybox *does* have the -c option.

I wonder if anyone has asked util-linux if they'd like that feature for embedded boards...

No sign of that as PR or issue:

https://github.com/util-linux/util-linux/pulls?q=is%3Apr++switch_root
https://github.com/util-linux/util-linux/issues?q=is%3Aissue%20switch_root

and

2. More importantly, embedded folks are often emotionally attached to there serial lines/ console
for doing BSP development and low-level debug work.

CCing Kexin who will hopefully comment on whether  he and the WR team would care if we drop the console specification.


If not, then I have no objection since one can easily enable the -c option
when debugging and then ship without it.


../Randy



CC: Yoann Congal <yoann.congal@smile.fr>
CC: Randy MacLeod <randy.macleod@windriver.com>
CC: jbk <jbk@mm-software.com>
CC: Raj Khem <raj.khem@gmail.com>
CC: Adrian Freihofer <adrian.freihofer@gmail.com>
Signed-off-by: Christos Gavros <gavrosc@yahoo.com>
---
v1->v2
* the commit message is extended with more info
---
 meta/recipes-core/initrdscripts/initramfs-framework/finish | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/finish b/meta/recipes-core/initrdscripts/initramfs-framework/finish
index ac0de9f996..716c2f44af 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/finish
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/finish
@@ -41,7 +41,7 @@ finish_run() {
                mount --move /sys $ROOTFS_DIR/sys

                cd $ROOTFS_DIR
-               exec switch_root -c /dev/console $ROOTFS_DIR ${bootparam_init:-/sbin/init}
+               exec switch_root $ROOTFS_DIR ${bootparam_init:-/sbin/init}
        else
                debug "No rootfs has been set"
        fi
--
2.34.1


-- 
# Randy MacLeod
# Wind River Linux