/init is the first pid 1 process in an initramfs environment. This fix adds
lines to check for the existence of /bin/ramfsinit or /sbin/ramfsinit and exec
if present. This allows packages to switch root early in the boot process. This
will help support booting or kexecing from external storage and go some way
toward fixing ticket #17465.

Signed-off-by: Stephen Parry <sgpa...@mainscreen.com>
---
V2: Improved script structure using elif
---
 target/linux/generic/base-files/init | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/target/linux/generic/base-files/init 
b/target/linux/generic/base-files/init
index 514be57..e80b324 100755
--- a/target/linux/generic/base-files/init
+++ b/target/linux/generic/base-files/init
@@ -1,4 +1,11 @@
 #!/bin/sh
 # Copyright (C) 2006 OpenWrt.org
 export INITRAMFS=1
-exec /sbin/init
+
+if [ -e /bin/ramfsinit ]; then
+       exec /bin/ramfsinit
+elif [ -e /sbin/ramfsinit ]; then
+       exec /sbin/ramfsinit
+else
+       exec /sbin/init
+fi
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to