All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denis@denix.org>
To: Ryan Eatmon <reatmon@ti.com>
Cc: Praneeth Bajjuri <praneeth@ti.com>,
	Denys Dmytriyenko <denys@konsulko.com>,
	meta-arago@lists.yoctoproject.org
Subject: Re: [meta-arago][master/kirkstone][PATCH v2] init-manager-*: Mimic poky method of choosing init manager
Date: Mon, 7 Aug 2023 20:59:08 -0400	[thread overview]
Message-ID: <20230808005908.GE3359@denix.org> (raw)
In-Reply-To: <c2e2fdff-1b62-b6ff-7024-165819b7d66f@ti.com>

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


  reply	other threads:[~2023-08-08  0:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-04 18:55 [meta-arago][master/kirkstone][PATCH v2] init-manager-*: Mimic poky method of choosing init manager Ryan Eatmon
2023-08-04 22:46 ` Denys Dmytriyenko
2023-08-06  2:02   ` Ryan Eatmon
2023-08-08  0:59     ` Denys Dmytriyenko [this message]
2023-08-08 13:14       ` Ryan Eatmon

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=20230808005908.GE3359@denix.org \
    --to=denis@denix.org \
    --cc=denys@konsulko.com \
    --cc=meta-arago@lists.yoctoproject.org \
    --cc=praneeth@ti.com \
    --cc=reatmon@ti.com \
    /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.