Message ID | 20230804185529.13282-1-reatmon@ti.com |
---|---|
State | Superseded |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [meta-arago,master/kirkstone,v2] init-manager-*: Mimic poky method of choosing init manager | expand |
In such case, why not use existing INIT_MANAGER variable along with the corresponding init-manager-*.inc files from OE-Core? On Fri, Aug 04, 2023 at 01:55:29PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote: > Change arago over to a single init-manager for all images instead of a > mixture of systemd/sysvinit based on perceived image size. With the > migration to a more targeted initramfs we have the space in the image to > support systemd and not require sysvinit for the smaller images. > > We will still support setups that use ARAGO_SYSVINIT, but the preferred > method will be to set ARAGO_INIT_MANAGER in the local.conf with the > deault being systemd. > > Signed-off-by: Ryan Eatmon <reatmon@ti.com> > --- > v2: - Add missing .inc in require. > - Fix assignment in init-manager-*.inc files. > - Remove packagegroup-arago-sysvinit-boot.bb since we stopped using > it. > > meta-arago-distro/conf/distro/arago.conf | 11 +++-------- > .../conf/distro/include/init-manager-systemd.inc | 10 ++++++++++ > .../conf/distro/include/init-manager-sysvinit.inc | 10 ++++++++++ > .../recipes-core/images/arago-image.inc | 2 +- > .../recipes-core/images/arago-tiny-image.inc | 4 ---- > .../packagegroup-arago-sysvinit-boot.bb | 15 --------------- > 6 files changed, 24 insertions(+), 28 deletions(-) > create mode 100644 meta-arago-distro/conf/distro/include/init-manager-systemd.inc > create mode 100644 meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > delete mode 100644 meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > > diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf > index 38c42ef8..698053cb 100644 > --- a/meta-arago-distro/conf/distro/arago.conf > +++ b/meta-arago-distro/conf/distro/arago.conf > @@ -58,14 +58,9 @@ DISTRO_FEATURES_FILTER_NATIVE:append = " opencl opencv openmp" > DISTRO_FEATURES_FILTER_NATIVESDK:append = " opencl opencv openmp" > > # Set global runtime providers for major components > -ARAGO_SYSVINIT ?= "0" > -VIRTUAL-RUNTIME_dev_manager = "${@'udev' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" > -VIRTUAL-RUNTIME_init_manager = "${@'sysvinit' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" > -VIRTUAL-RUNTIME_initscripts = "${@'initscripts' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-compat-units'}" > -VIRTUAL-RUNTIME_initramfs = "${@'sysvinit-initramfs' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-initramfs'}" > -VIRTUAL-RUNTIME_login_manager = "${@'busybox' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'shadow-base'}" > - > -DISTRO_FEATURES:append = " ${@'' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else ' systemd'}" > +ARAGO_SYSVINIT ??= "0" > +ARAGO_INIT_MANAGER ??= "${@['systemd','sysvinit'][int(d.getVar('ARAGO_SYSVINIT'))]}" > +require conf/distro/include/init-manager-${ARAGO_INIT_MANAGER}.inc > > # Distro-specific package configuration > PACKAGECONFIG:append:pn-systemd = " coredump networkd resolved serial-getty-generator" > diff --git a/meta-arago-distro/conf/distro/include/init-manager-systemd.inc b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc > new file mode 100644 > index 00000000..5d9d9a8e > --- /dev/null > +++ b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc > @@ -0,0 +1,10 @@ > +# Use systemd for system initialization > + > +DISTRO_FEATURES:append = " systemd" > +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" > + > +VIRTUAL-RUNTIME_dev_manager = "systemd" > +VIRTUAL-RUNTIME_init_manager = "systemd" > +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" > +VIRTUAL-RUNTIME_initramfs = "systemd-initramfs" > +VIRTUAL-RUNTIME_login_manager = "shadow-base" > diff --git a/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > new file mode 100644 > index 00000000..6ee41d6c > --- /dev/null > +++ b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > @@ -0,0 +1,10 @@ > +# Use sysvinit for system initialization > + > +DISTRO_FEATURES:append = " sysvinit" > +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" > + > +VIRTUAL-RUNTIME_dev_manager = "" > +VIRTUAL-RUNTIME_init_manager = "sysvinit" > +VIRTUAL-RUNTIME_initscripts = "initscripts" > +VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" > +VIRTUAL-RUNTIME_login_manager = "busybox" > diff --git a/meta-arago-distro/recipes-core/images/arago-image.inc b/meta-arago-distro/recipes-core/images/arago-image.inc > index d00c1f70..1c87afd5 100644 > --- a/meta-arago-distro/recipes-core/images/arago-image.inc > +++ b/meta-arago-distro/recipes-core/images/arago-image.inc > @@ -30,6 +30,6 @@ BAD_RECOMMENDATIONS += " \ > coreutils \ > coreutils-dev \ > " > -BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_SYSVINIT", "1", "", "busybox-syslog", d)}" > +BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_INIT_MANAGER", "sysvinit", "", "busybox-syslog", d)}" > > inherit core-image remove-net-rules > diff --git a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > index 242e763c..6c726c4d 100644 > --- a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > +++ b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > @@ -1,9 +1,5 @@ > -ARAGO_SYSVINIT = "1" > > require arago-image.inc > > IMAGE_FEATURES:remove = "splash" > > -IMAGE_INSTALL = " \ > - packagegroup-arago-sysvinit-boot \ > -" > diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > deleted file mode 100644 > index df7ff960..00000000 > --- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > +++ /dev/null > @@ -1,15 +0,0 @@ > -REQUIRED_DISTRO_FEATURES = "sysvinit" > -inherit features_check > - > -require recipes-core/packagegroups/packagegroup-core-boot.bb > - > -PR = "r0" > - > -# Cannot use eudev: > -# "eudev was skipped: 'systemd' in DISTRO_FEATURES" > -#VIRTUAL-RUNTIME_dev_manager = "eudev" > -VIRTUAL-RUNTIME_dev_manager = "" > -VIRTUAL-RUNTIME_init_manager = "sysvinit" > -VIRTUAL-RUNTIME_initscripts = "initscripts" > -VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" > -VIRTUAL-RUNTIME_login_manager = "busybox" > -- > 2.17.1
I thought about it. But we have so many other ARAGO_* variables that it seemed more on brand to use ARAGO_INIT_MANAGER... As for not reusing the files... ours have a minor difference. One variable I think. So again for consistency I made the files local. Plus, it can be really confusing to bounce between layers when including files and what not. If we did use those files, then I would definitely want to add a comment next the include line that states that the files are in oe-core. But On 8/4/2023 5:46 PM, Denys Dmytriyenko wrote: > In such case, why not use existing INIT_MANAGER variable along with the > corresponding init-manager-*.inc files from OE-Core? > > > On Fri, Aug 04, 2023 at 01:55:29PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote: >> Change arago over to a single init-manager for all images instead of a >> mixture of systemd/sysvinit based on perceived image size. With the >> migration to a more targeted initramfs we have the space in the image to >> support systemd and not require sysvinit for the smaller images. >> >> We will still support setups that use ARAGO_SYSVINIT, but the preferred >> method will be to set ARAGO_INIT_MANAGER in the local.conf with the >> deault being systemd. >> >> Signed-off-by: Ryan Eatmon <reatmon@ti.com> >> --- >> v2: - Add missing .inc in require. >> - Fix assignment in init-manager-*.inc files. >> - Remove packagegroup-arago-sysvinit-boot.bb since we stopped using >> it. >> >> meta-arago-distro/conf/distro/arago.conf | 11 +++-------- >> .../conf/distro/include/init-manager-systemd.inc | 10 ++++++++++ >> .../conf/distro/include/init-manager-sysvinit.inc | 10 ++++++++++ >> .../recipes-core/images/arago-image.inc | 2 +- >> .../recipes-core/images/arago-tiny-image.inc | 4 ---- >> .../packagegroup-arago-sysvinit-boot.bb | 15 --------------- >> 6 files changed, 24 insertions(+), 28 deletions(-) >> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-systemd.inc >> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >> delete mode 100644 meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >> >> diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf >> index 38c42ef8..698053cb 100644 >> --- a/meta-arago-distro/conf/distro/arago.conf >> +++ b/meta-arago-distro/conf/distro/arago.conf >> @@ -58,14 +58,9 @@ DISTRO_FEATURES_FILTER_NATIVE:append = " opencl opencv openmp" >> DISTRO_FEATURES_FILTER_NATIVESDK:append = " opencl opencv openmp" >> >> # Set global runtime providers for major components >> -ARAGO_SYSVINIT ?= "0" >> -VIRTUAL-RUNTIME_dev_manager = "${@'udev' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" >> -VIRTUAL-RUNTIME_init_manager = "${@'sysvinit' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" >> -VIRTUAL-RUNTIME_initscripts = "${@'initscripts' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-compat-units'}" >> -VIRTUAL-RUNTIME_initramfs = "${@'sysvinit-initramfs' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-initramfs'}" >> -VIRTUAL-RUNTIME_login_manager = "${@'busybox' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'shadow-base'}" >> - >> -DISTRO_FEATURES:append = " ${@'' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else ' systemd'}" >> +ARAGO_SYSVINIT ??= "0" >> +ARAGO_INIT_MANAGER ??= "${@['systemd','sysvinit'][int(d.getVar('ARAGO_SYSVINIT'))]}" >> +require conf/distro/include/init-manager-${ARAGO_INIT_MANAGER}.inc >> >> # Distro-specific package configuration >> PACKAGECONFIG:append:pn-systemd = " coredump networkd resolved serial-getty-generator" >> diff --git a/meta-arago-distro/conf/distro/include/init-manager-systemd.inc b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc >> new file mode 100644 >> index 00000000..5d9d9a8e >> --- /dev/null >> +++ b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc >> @@ -0,0 +1,10 @@ >> +# Use systemd for system initialization >> + >> +DISTRO_FEATURES:append = " systemd" >> +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" >> + >> +VIRTUAL-RUNTIME_dev_manager = "systemd" >> +VIRTUAL-RUNTIME_init_manager = "systemd" >> +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" >> +VIRTUAL-RUNTIME_initramfs = "systemd-initramfs" >> +VIRTUAL-RUNTIME_login_manager = "shadow-base" >> diff --git a/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >> new file mode 100644 >> index 00000000..6ee41d6c >> --- /dev/null >> +++ b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >> @@ -0,0 +1,10 @@ >> +# Use sysvinit for system initialization >> + >> +DISTRO_FEATURES:append = " sysvinit" >> +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" >> + >> +VIRTUAL-RUNTIME_dev_manager = "" >> +VIRTUAL-RUNTIME_init_manager = "sysvinit" >> +VIRTUAL-RUNTIME_initscripts = "initscripts" >> +VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" >> +VIRTUAL-RUNTIME_login_manager = "busybox" >> diff --git a/meta-arago-distro/recipes-core/images/arago-image.inc b/meta-arago-distro/recipes-core/images/arago-image.inc >> index d00c1f70..1c87afd5 100644 >> --- a/meta-arago-distro/recipes-core/images/arago-image.inc >> +++ b/meta-arago-distro/recipes-core/images/arago-image.inc >> @@ -30,6 +30,6 @@ BAD_RECOMMENDATIONS += " \ >> coreutils \ >> coreutils-dev \ >> " >> -BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_SYSVINIT", "1", "", "busybox-syslog", d)}" >> +BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_INIT_MANAGER", "sysvinit", "", "busybox-syslog", d)}" >> >> inherit core-image remove-net-rules >> diff --git a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >> index 242e763c..6c726c4d 100644 >> --- a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >> +++ b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >> @@ -1,9 +1,5 @@ >> -ARAGO_SYSVINIT = "1" >> >> require arago-image.inc >> >> IMAGE_FEATURES:remove = "splash" >> >> -IMAGE_INSTALL = " \ >> - packagegroup-arago-sysvinit-boot \ >> -" >> diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >> deleted file mode 100644 >> index df7ff960..00000000 >> --- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >> +++ /dev/null >> @@ -1,15 +0,0 @@ >> -REQUIRED_DISTRO_FEATURES = "sysvinit" >> -inherit features_check >> - >> -require recipes-core/packagegroups/packagegroup-core-boot.bb >> - >> -PR = "r0" >> - >> -# Cannot use eudev: >> -# "eudev was skipped: 'systemd' in DISTRO_FEATURES" >> -#VIRTUAL-RUNTIME_dev_manager = "eudev" >> -VIRTUAL-RUNTIME_dev_manager = "" >> -VIRTUAL-RUNTIME_init_manager = "sysvinit" >> -VIRTUAL-RUNTIME_initscripts = "initscripts" >> -VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" >> -VIRTUAL-RUNTIME_login_manager = "busybox" >> -- >> 2.17.1
On Sat, Aug 05, 2023 at 09:02:17PM -0500, Ryan Eatmon wrote: > I thought about it. But we have so many other ARAGO_* variables > that it seemed more on brand to use ARAGO_INIT_MANAGER... > > As for not reusing the files... ours have a minor difference. One > variable I think. So again for consistency I made the files local. > Plus, it can be really confusing to bounce between layers when > including files and what not. If we did use those files, then I > would definitely want to add a comment next the include line that > states that the files are in oe-core. But Was this reply truncated accidentally? ^^^ So, the only difference in those .inc files between OE-Core and meta-arago was due to trying to use both systemd and sysvinit at the same time. I had to add a custom VIRTUAL-RUNTIME_initramfs for that: https://git.yoctoproject.org/meta-arago/commit/?id=78efe456a884176cfd1f6794fd317fc1e51b9358 systemd recipe in OE-Core alredy provides a subpackage systemd-initramfs with the /init symlink pointing to systemd binary: https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd_254.bb#n273 When not using any init managers for a barebone ramdisk boot, you should provide a custom /init script to do boot chores, like initramfs-framework in OE-Core does: https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/initrdscripts/initramfs-framework/init BTW, sysvinit has /sbin/init and that one should be used first, or used as a fallback (don't remember the exact order now), so doing /init -> /sbin/init shouldn't be strictly necessary and was done for consistency with systemd. Also, I don't remember all the details, but it could have been also done to workaround early K3 simulation boot issues... Anyway, since you are now dismantling all this custom logic, it might be better to drop sysvinit-initramfs, VIRTUAL-RUNTIME_initramfs and fully embrace upstream INIT_MANAGER variable and existing init-manager-*.inc files from OE-Core. Maybe a bit of extra testing to ensure everything still boots as expected... :) > On 8/4/2023 5:46 PM, Denys Dmytriyenko wrote: > >In such case, why not use existing INIT_MANAGER variable along with the > >corresponding init-manager-*.inc files from OE-Core? > > > > > >On Fri, Aug 04, 2023 at 01:55:29PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote: > >>Change arago over to a single init-manager for all images instead of a > >>mixture of systemd/sysvinit based on perceived image size. With the > >>migration to a more targeted initramfs we have the space in the image to > >>support systemd and not require sysvinit for the smaller images. > >> > >>We will still support setups that use ARAGO_SYSVINIT, but the preferred > >>method will be to set ARAGO_INIT_MANAGER in the local.conf with the > >>deault being systemd. > >> > >>Signed-off-by: Ryan Eatmon <reatmon@ti.com> > >>--- > >>v2: - Add missing .inc in require. > >> - Fix assignment in init-manager-*.inc files. > >> - Remove packagegroup-arago-sysvinit-boot.bb since we stopped using > >> it. > >> > >> meta-arago-distro/conf/distro/arago.conf | 11 +++-------- > >> .../conf/distro/include/init-manager-systemd.inc | 10 ++++++++++ > >> .../conf/distro/include/init-manager-sysvinit.inc | 10 ++++++++++ > >> .../recipes-core/images/arago-image.inc | 2 +- > >> .../recipes-core/images/arago-tiny-image.inc | 4 ---- > >> .../packagegroup-arago-sysvinit-boot.bb | 15 --------------- > >> 6 files changed, 24 insertions(+), 28 deletions(-) > >> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-systemd.inc > >> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > >> delete mode 100644 meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > >> > >>diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf > >>index 38c42ef8..698053cb 100644 > >>--- a/meta-arago-distro/conf/distro/arago.conf > >>+++ b/meta-arago-distro/conf/distro/arago.conf > >>@@ -58,14 +58,9 @@ DISTRO_FEATURES_FILTER_NATIVE:append = " opencl opencv openmp" > >> DISTRO_FEATURES_FILTER_NATIVESDK:append = " opencl opencv openmp" > >> # Set global runtime providers for major components > >>-ARAGO_SYSVINIT ?= "0" > >>-VIRTUAL-RUNTIME_dev_manager = "${@'udev' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" > >>-VIRTUAL-RUNTIME_init_manager = "${@'sysvinit' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" > >>-VIRTUAL-RUNTIME_initscripts = "${@'initscripts' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-compat-units'}" > >>-VIRTUAL-RUNTIME_initramfs = "${@'sysvinit-initramfs' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-initramfs'}" > >>-VIRTUAL-RUNTIME_login_manager = "${@'busybox' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'shadow-base'}" > >>- > >>-DISTRO_FEATURES:append = " ${@'' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else ' systemd'}" > >>+ARAGO_SYSVINIT ??= "0" > >>+ARAGO_INIT_MANAGER ??= "${@['systemd','sysvinit'][int(d.getVar('ARAGO_SYSVINIT'))]}" > >>+require conf/distro/include/init-manager-${ARAGO_INIT_MANAGER}.inc > >> # Distro-specific package configuration > >> PACKAGECONFIG:append:pn-systemd = " coredump networkd resolved serial-getty-generator" > >>diff --git a/meta-arago-distro/conf/distro/include/init-manager-systemd.inc b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc > >>new file mode 100644 > >>index 00000000..5d9d9a8e > >>--- /dev/null > >>+++ b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc > >>@@ -0,0 +1,10 @@ > >>+# Use systemd for system initialization > >>+ > >>+DISTRO_FEATURES:append = " systemd" > >>+DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" > >>+ > >>+VIRTUAL-RUNTIME_dev_manager = "systemd" > >>+VIRTUAL-RUNTIME_init_manager = "systemd" > >>+VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" > >>+VIRTUAL-RUNTIME_initramfs = "systemd-initramfs" > >>+VIRTUAL-RUNTIME_login_manager = "shadow-base" > >>diff --git a/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > >>new file mode 100644 > >>index 00000000..6ee41d6c > >>--- /dev/null > >>+++ b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc > >>@@ -0,0 +1,10 @@ > >>+# Use sysvinit for system initialization > >>+ > >>+DISTRO_FEATURES:append = " sysvinit" > >>+DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" > >>+ > >>+VIRTUAL-RUNTIME_dev_manager = "" > >>+VIRTUAL-RUNTIME_init_manager = "sysvinit" > >>+VIRTUAL-RUNTIME_initscripts = "initscripts" > >>+VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" > >>+VIRTUAL-RUNTIME_login_manager = "busybox" > >>diff --git a/meta-arago-distro/recipes-core/images/arago-image.inc b/meta-arago-distro/recipes-core/images/arago-image.inc > >>index d00c1f70..1c87afd5 100644 > >>--- a/meta-arago-distro/recipes-core/images/arago-image.inc > >>+++ b/meta-arago-distro/recipes-core/images/arago-image.inc > >>@@ -30,6 +30,6 @@ BAD_RECOMMENDATIONS += " \ > >> coreutils \ > >> coreutils-dev \ > >> " > >>-BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_SYSVINIT", "1", "", "busybox-syslog", d)}" > >>+BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_INIT_MANAGER", "sysvinit", "", "busybox-syslog", d)}" > >> inherit core-image remove-net-rules > >>diff --git a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > >>index 242e763c..6c726c4d 100644 > >>--- a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > >>+++ b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc > >>@@ -1,9 +1,5 @@ > >>-ARAGO_SYSVINIT = "1" > >> require arago-image.inc > >> IMAGE_FEATURES:remove = "splash" > >>-IMAGE_INSTALL = " \ > >>- packagegroup-arago-sysvinit-boot \ > >>-" > >>diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > >>deleted file mode 100644 > >>index df7ff960..00000000 > >>--- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb > >>+++ /dev/null > >>@@ -1,15 +0,0 @@ > >>-REQUIRED_DISTRO_FEATURES = "sysvinit" > >>-inherit features_check > >>- > >>-require recipes-core/packagegroups/packagegroup-core-boot.bb > >>- > >>-PR = "r0" > >>- > >>-# Cannot use eudev: > >>-# "eudev was skipped: 'systemd' in DISTRO_FEATURES" > >>-#VIRTUAL-RUNTIME_dev_manager = "eudev" > >>-VIRTUAL-RUNTIME_dev_manager = "" > >>-VIRTUAL-RUNTIME_init_manager = "sysvinit" > >>-VIRTUAL-RUNTIME_initscripts = "initscripts" > >>-VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" > >>-VIRTUAL-RUNTIME_login_manager = "busybox" > >>-- > >>2.17.1
On 8/7/2023 7:59 PM, Denys Dmytriyenko wrote: > On Sat, Aug 05, 2023 at 09:02:17PM -0500, Ryan Eatmon wrote: >> I thought about it. But we have so many other ARAGO_* variables >> that it seemed more on brand to use ARAGO_INIT_MANAGER... >> >> As for not reusing the files... ours have a minor difference. One >> variable I think. So again for consistency I made the files local. >> Plus, it can be really confusing to bounce between layers when >> including files and what not. If we did use those files, then I >> would definitely want to add a comment next the include line that >> states that the files are in oe-core. But > > Was this reply truncated accidentally? ^^^ > > So, the only difference in those .inc files between OE-Core and meta-arago was > due to trying to use both systemd and sysvinit at the same time. I had to add > a custom VIRTUAL-RUNTIME_initramfs for that: > > https://git.yoctoproject.org/meta-arago/commit/?id=78efe456a884176cfd1f6794fd317fc1e51b9358 > > systemd recipe in OE-Core alredy provides a subpackage systemd-initramfs with > the /init symlink pointing to systemd binary: > > https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd_254.bb#n273 > > When not using any init managers for a barebone ramdisk boot, you should > provide a custom /init script to do boot chores, like initramfs-framework > in OE-Core does: > > https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/initrdscripts/initramfs-framework/init > > BTW, sysvinit has /sbin/init and that one should be used first, or used as a > fallback (don't remember the exact order now), so doing /init -> /sbin/init > shouldn't be strictly necessary and was done for consistency with systemd. > Also, I don't remember all the details, but it could have been also done to > workaround early K3 simulation boot issues... > > > Anyway, since you are now dismantling all this custom logic, it might be > better to drop sysvinit-initramfs, VIRTUAL-RUNTIME_initramfs and fully embrace > upstream INIT_MANAGER variable and existing init-manager-*.inc files from > OE-Core. Maybe a bit of extra testing to ensure everything still boots as > expected... :) Ok. I'll try that out. > >> On 8/4/2023 5:46 PM, Denys Dmytriyenko wrote: >>> In such case, why not use existing INIT_MANAGER variable along with the >>> corresponding init-manager-*.inc files from OE-Core? >>> >>> >>> On Fri, Aug 04, 2023 at 01:55:29PM -0500, Ryan Eatmon via lists.yoctoproject.org wrote: >>>> Change arago over to a single init-manager for all images instead of a >>>> mixture of systemd/sysvinit based on perceived image size. With the >>>> migration to a more targeted initramfs we have the space in the image to >>>> support systemd and not require sysvinit for the smaller images. >>>> >>>> We will still support setups that use ARAGO_SYSVINIT, but the preferred >>>> method will be to set ARAGO_INIT_MANAGER in the local.conf with the >>>> deault being systemd. >>>> >>>> Signed-off-by: Ryan Eatmon <reatmon@ti.com> >>>> --- >>>> v2: - Add missing .inc in require. >>>> - Fix assignment in init-manager-*.inc files. >>>> - Remove packagegroup-arago-sysvinit-boot.bb since we stopped using >>>> it. >>>> >>>> meta-arago-distro/conf/distro/arago.conf | 11 +++-------- >>>> .../conf/distro/include/init-manager-systemd.inc | 10 ++++++++++ >>>> .../conf/distro/include/init-manager-sysvinit.inc | 10 ++++++++++ >>>> .../recipes-core/images/arago-image.inc | 2 +- >>>> .../recipes-core/images/arago-tiny-image.inc | 4 ---- >>>> .../packagegroup-arago-sysvinit-boot.bb | 15 --------------- >>>> 6 files changed, 24 insertions(+), 28 deletions(-) >>>> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-systemd.inc >>>> create mode 100644 meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >>>> delete mode 100644 meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >>>> >>>> diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf >>>> index 38c42ef8..698053cb 100644 >>>> --- a/meta-arago-distro/conf/distro/arago.conf >>>> +++ b/meta-arago-distro/conf/distro/arago.conf >>>> @@ -58,14 +58,9 @@ DISTRO_FEATURES_FILTER_NATIVE:append = " opencl opencv openmp" >>>> DISTRO_FEATURES_FILTER_NATIVESDK:append = " opencl opencv openmp" >>>> # Set global runtime providers for major components >>>> -ARAGO_SYSVINIT ?= "0" >>>> -VIRTUAL-RUNTIME_dev_manager = "${@'udev' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" >>>> -VIRTUAL-RUNTIME_init_manager = "${@'sysvinit' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" >>>> -VIRTUAL-RUNTIME_initscripts = "${@'initscripts' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-compat-units'}" >>>> -VIRTUAL-RUNTIME_initramfs = "${@'sysvinit-initramfs' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-initramfs'}" >>>> -VIRTUAL-RUNTIME_login_manager = "${@'busybox' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'shadow-base'}" >>>> - >>>> -DISTRO_FEATURES:append = " ${@'' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else ' systemd'}" >>>> +ARAGO_SYSVINIT ??= "0" >>>> +ARAGO_INIT_MANAGER ??= "${@['systemd','sysvinit'][int(d.getVar('ARAGO_SYSVINIT'))]}" >>>> +require conf/distro/include/init-manager-${ARAGO_INIT_MANAGER}.inc >>>> # Distro-specific package configuration >>>> PACKAGECONFIG:append:pn-systemd = " coredump networkd resolved serial-getty-generator" >>>> diff --git a/meta-arago-distro/conf/distro/include/init-manager-systemd.inc b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc >>>> new file mode 100644 >>>> index 00000000..5d9d9a8e >>>> --- /dev/null >>>> +++ b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc >>>> @@ -0,0 +1,10 @@ >>>> +# Use systemd for system initialization >>>> + >>>> +DISTRO_FEATURES:append = " systemd" >>>> +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" >>>> + >>>> +VIRTUAL-RUNTIME_dev_manager = "systemd" >>>> +VIRTUAL-RUNTIME_init_manager = "systemd" >>>> +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" >>>> +VIRTUAL-RUNTIME_initramfs = "systemd-initramfs" >>>> +VIRTUAL-RUNTIME_login_manager = "shadow-base" >>>> diff --git a/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >>>> new file mode 100644 >>>> index 00000000..6ee41d6c >>>> --- /dev/null >>>> +++ b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc >>>> @@ -0,0 +1,10 @@ >>>> +# Use sysvinit for system initialization >>>> + >>>> +DISTRO_FEATURES:append = " sysvinit" >>>> +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" >>>> + >>>> +VIRTUAL-RUNTIME_dev_manager = "" >>>> +VIRTUAL-RUNTIME_init_manager = "sysvinit" >>>> +VIRTUAL-RUNTIME_initscripts = "initscripts" >>>> +VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" >>>> +VIRTUAL-RUNTIME_login_manager = "busybox" >>>> diff --git a/meta-arago-distro/recipes-core/images/arago-image.inc b/meta-arago-distro/recipes-core/images/arago-image.inc >>>> index d00c1f70..1c87afd5 100644 >>>> --- a/meta-arago-distro/recipes-core/images/arago-image.inc >>>> +++ b/meta-arago-distro/recipes-core/images/arago-image.inc >>>> @@ -30,6 +30,6 @@ BAD_RECOMMENDATIONS += " \ >>>> coreutils \ >>>> coreutils-dev \ >>>> " >>>> -BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_SYSVINIT", "1", "", "busybox-syslog", d)}" >>>> +BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_INIT_MANAGER", "sysvinit", "", "busybox-syslog", d)}" >>>> inherit core-image remove-net-rules >>>> diff --git a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >>>> index 242e763c..6c726c4d 100644 >>>> --- a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >>>> +++ b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc >>>> @@ -1,9 +1,5 @@ >>>> -ARAGO_SYSVINIT = "1" >>>> require arago-image.inc >>>> IMAGE_FEATURES:remove = "splash" >>>> -IMAGE_INSTALL = " \ >>>> - packagegroup-arago-sysvinit-boot \ >>>> -" >>>> diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >>>> deleted file mode 100644 >>>> index df7ff960..00000000 >>>> --- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb >>>> +++ /dev/null >>>> @@ -1,15 +0,0 @@ >>>> -REQUIRED_DISTRO_FEATURES = "sysvinit" >>>> -inherit features_check >>>> - >>>> -require recipes-core/packagegroups/packagegroup-core-boot.bb >>>> - >>>> -PR = "r0" >>>> - >>>> -# Cannot use eudev: >>>> -# "eudev was skipped: 'systemd' in DISTRO_FEATURES" >>>> -#VIRTUAL-RUNTIME_dev_manager = "eudev" >>>> -VIRTUAL-RUNTIME_dev_manager = "" >>>> -VIRTUAL-RUNTIME_init_manager = "sysvinit" >>>> -VIRTUAL-RUNTIME_initscripts = "initscripts" >>>> -VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" >>>> -VIRTUAL-RUNTIME_login_manager = "busybox" >>>> -- >>>> 2.17.1
diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf index 38c42ef8..698053cb 100644 --- a/meta-arago-distro/conf/distro/arago.conf +++ b/meta-arago-distro/conf/distro/arago.conf @@ -58,14 +58,9 @@ DISTRO_FEATURES_FILTER_NATIVE:append = " opencl opencv openmp" DISTRO_FEATURES_FILTER_NATIVESDK:append = " opencl opencv openmp" # Set global runtime providers for major components -ARAGO_SYSVINIT ?= "0" -VIRTUAL-RUNTIME_dev_manager = "${@'udev' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" -VIRTUAL-RUNTIME_init_manager = "${@'sysvinit' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd'}" -VIRTUAL-RUNTIME_initscripts = "${@'initscripts' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-compat-units'}" -VIRTUAL-RUNTIME_initramfs = "${@'sysvinit-initramfs' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'systemd-initramfs'}" -VIRTUAL-RUNTIME_login_manager = "${@'busybox' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else 'shadow-base'}" - -DISTRO_FEATURES:append = " ${@'' if oe.types.boolean(d.getVar('ARAGO_SYSVINIT')) else ' systemd'}" +ARAGO_SYSVINIT ??= "0" +ARAGO_INIT_MANAGER ??= "${@['systemd','sysvinit'][int(d.getVar('ARAGO_SYSVINIT'))]}" +require conf/distro/include/init-manager-${ARAGO_INIT_MANAGER}.inc # Distro-specific package configuration PACKAGECONFIG:append:pn-systemd = " coredump networkd resolved serial-getty-generator" diff --git a/meta-arago-distro/conf/distro/include/init-manager-systemd.inc b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc new file mode 100644 index 00000000..5d9d9a8e --- /dev/null +++ b/meta-arago-distro/conf/distro/include/init-manager-systemd.inc @@ -0,0 +1,10 @@ +# Use systemd for system initialization + +DISTRO_FEATURES:append = " systemd" +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" + +VIRTUAL-RUNTIME_dev_manager = "systemd" +VIRTUAL-RUNTIME_init_manager = "systemd" +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" +VIRTUAL-RUNTIME_initramfs = "systemd-initramfs" +VIRTUAL-RUNTIME_login_manager = "shadow-base" diff --git a/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc new file mode 100644 index 00000000..6ee41d6c --- /dev/null +++ b/meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc @@ -0,0 +1,10 @@ +# Use sysvinit for system initialization + +DISTRO_FEATURES:append = " sysvinit" +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " systemd" + +VIRTUAL-RUNTIME_dev_manager = "" +VIRTUAL-RUNTIME_init_manager = "sysvinit" +VIRTUAL-RUNTIME_initscripts = "initscripts" +VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" +VIRTUAL-RUNTIME_login_manager = "busybox" diff --git a/meta-arago-distro/recipes-core/images/arago-image.inc b/meta-arago-distro/recipes-core/images/arago-image.inc index d00c1f70..1c87afd5 100644 --- a/meta-arago-distro/recipes-core/images/arago-image.inc +++ b/meta-arago-distro/recipes-core/images/arago-image.inc @@ -30,6 +30,6 @@ BAD_RECOMMENDATIONS += " \ coreutils \ coreutils-dev \ " -BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_SYSVINIT", "1", "", "busybox-syslog", d)}" +BAD_RECOMMENDATIONS += "${@oe.utils.conditional("ARAGO_INIT_MANAGER", "sysvinit", "", "busybox-syslog", d)}" inherit core-image remove-net-rules diff --git a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc index 242e763c..6c726c4d 100644 --- a/meta-arago-distro/recipes-core/images/arago-tiny-image.inc +++ b/meta-arago-distro/recipes-core/images/arago-tiny-image.inc @@ -1,9 +1,5 @@ -ARAGO_SYSVINIT = "1" require arago-image.inc IMAGE_FEATURES:remove = "splash" -IMAGE_INSTALL = " \ - packagegroup-arago-sysvinit-boot \ -" diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb deleted file mode 100644 index df7ff960..00000000 --- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb +++ /dev/null @@ -1,15 +0,0 @@ -REQUIRED_DISTRO_FEATURES = "sysvinit" -inherit features_check - -require recipes-core/packagegroups/packagegroup-core-boot.bb - -PR = "r0" - -# Cannot use eudev: -# "eudev was skipped: 'systemd' in DISTRO_FEATURES" -#VIRTUAL-RUNTIME_dev_manager = "eudev" -VIRTUAL-RUNTIME_dev_manager = "" -VIRTUAL-RUNTIME_init_manager = "sysvinit" -VIRTUAL-RUNTIME_initscripts = "initscripts" -VIRTUAL-RUNTIME_initramfs = "sysvinit-initramfs" -VIRTUAL-RUNTIME_login_manager = "busybox"
Change arago over to a single init-manager for all images instead of a mixture of systemd/sysvinit based on perceived image size. With the migration to a more targeted initramfs we have the space in the image to support systemd and not require sysvinit for the smaller images. We will still support setups that use ARAGO_SYSVINIT, but the preferred method will be to set ARAGO_INIT_MANAGER in the local.conf with the deault being systemd. Signed-off-by: Ryan Eatmon <reatmon@ti.com> --- v2: - Add missing .inc in require. - Fix assignment in init-manager-*.inc files. - Remove packagegroup-arago-sysvinit-boot.bb since we stopped using it. meta-arago-distro/conf/distro/arago.conf | 11 +++-------- .../conf/distro/include/init-manager-systemd.inc | 10 ++++++++++ .../conf/distro/include/init-manager-sysvinit.inc | 10 ++++++++++ .../recipes-core/images/arago-image.inc | 2 +- .../recipes-core/images/arago-tiny-image.inc | 4 ---- .../packagegroup-arago-sysvinit-boot.bb | 15 --------------- 6 files changed, 24 insertions(+), 28 deletions(-) create mode 100644 meta-arago-distro/conf/distro/include/init-manager-systemd.inc create mode 100644 meta-arago-distro/conf/distro/include/init-manager-sysvinit.inc delete mode 100644 meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-sysvinit-boot.bb