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]
