The kernel searches in initramfs for an executable /init file. So if we
want to use initramfs as rootfs it is convenient to have a link from
/init to /sbin/init.

Signed-off-by: Markus Pargmann <[email protected]>
---
 rules/rootfs.in   | 25 ++++++++++++++++++++++++-
 rules/rootfs.make |  7 +++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/rules/rootfs.in b/rules/rootfs.in
index 80a730594892..5c3565f2f44d 100644
--- a/rules/rootfs.in
+++ b/rules/rootfs.in
@@ -440,5 +440,28 @@ config ROOTFS_SERVICES
          If enabled, it installs the "./projectroot/etc/services" file if
          present, else a generic one from the ptxdist directory.
 
-endmenu
+choice
+       prompt "install /init"
+       default ROOTFS_INIT_LINK
+
+       config ROOTFS_INIT_LINK
+               bool
+               prompt "link to /sbin/init"
+               help
+                 Create a symlink from /init to /sbin/init. This is useful for
+                 initramfs for example in which /init is executed by default.
+
+       config ROOTFS_INIT_BIN
+               bool
+               prompt "binary from file"
+               help
+                 Install the /init binary instead of a symlink to /sbin/init.
 
+       config ROOTFS_INIT_NONE
+               bool
+               prompt "none"
+               help
+                 If enabled, no /init will be install.
+endchoice
+
+endmenu
diff --git a/rules/rootfs.make b/rules/rootfs.make
index 65cf0d126336..7c2e61df9eb9 100644
--- a/rules/rootfs.make
+++ b/rules/rootfs.make
@@ -240,6 +240,13 @@ ifdef PTXCONF_ROOTFS_SERVICES
        @$(call install_alternative, rootfs, 0, 0, 0644, /etc/services)
 endif
 
+ifdef PTXCONF_ROOTFS_INIT_LINK
+       @$(call install_link, rootfs, /sbin/init, /init)
+endif
+ifdef PTXCONF_ROOTFS_INIT_BIN
+       @$(call install_alternative, rootfs, 0, 0, 0755, /init)
+endif
+
        @$(call install_finish, rootfs)
 
        @$(call touch)
-- 
2.7.0.rc3


_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to