diff mbox series

[v2] initramfs-framework: remove hard dependency with busybox

Message ID 20250407164456.4845-1-gavrosc@yahoo.com
State New
Headers show
Series [v2] initramfs-framework: remove hard dependency with busybox | expand

Commit Message

Christos Gavros April 7, 2025, 4:44 p.m. UTC
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]

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(-)

Comments

Khem Raj April 7, 2025, 5:04 p.m. UTC | #1
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

> 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 April 8, 2025, 12:19 a.m. UTC | #2
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
>>
Kevin Hao April 8, 2025, 1:34 a.m. UTC | #3
On Mon, Apr 07, 2025 at 08:19:50PM -0400, Randy MacLeod wrote:
> 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.

Appreciate the notification. This change appears safe for our use case, as our
primary focus is kernel console functionality. No objections from my side.

Thanks,
Kevin

> 
> 
> 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
>
diff mbox series

Patch

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