From 9b98c97338b4c3f985eca572d6a1e21324fa0fbc Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 1 Dec 2017 11:05:32 -0200 Subject: initramfs-framework: Add exec module This new module allow for easy execution of external scripts or applications. It runs anything found in /exec.d directory in order and in case of no scripts to be available, it opens a shell. Signed-off-by: Otavio Salvador Signed-off-by: Ross Burton --- .../initrdscripts/initramfs-framework/exec | 29 ++++++++++++++++++++++ .../initrdscripts/initramfs-framework_1.0.bb | 9 +++++++ 2 files changed, 38 insertions(+) create mode 100644 meta/recipes-core/initrdscripts/initramfs-framework/exec diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/exec b/meta/recipes-core/initrdscripts/initramfs-framework/exec new file mode 100644 index 0000000000..a8e2432bb6 --- /dev/null +++ b/meta/recipes-core/initrdscripts/initramfs-framework/exec @@ -0,0 +1,29 @@ +#!/bin/sh +# Copyright (C) 2017 O.S. Systems Software LTDA. +# Licensed on MIT + +EXEC_DIR=/exec.d # place to look for modules + +exec_enabled() { + return 0 +} + +exec_run() { + if [ ! -d $EXEC_DIR ]; then + msg "No contents to exec in $EXEC_DIR. Starting shell ..." + sh + fi + + # Load and run modules + for m in $EXEC_DIR/*; do + # Skip backup files + if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then + continue + fi + + debug "Starting $m" + + # process module + ./$m + done +} diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb index 2afc37ee75..75d965f069 100644 --- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb +++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb @@ -8,6 +8,7 @@ PR = "r4" inherit allarch SRC_URI = "file://init \ + file://exec \ file://rootfs \ file://finish \ file://mdev \ @@ -26,6 +27,9 @@ do_install() { install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish + # exec + install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec + # mdev install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev @@ -45,6 +49,7 @@ do_install() { } PACKAGES = "${PN}-base \ + initramfs-module-exec \ initramfs-module-mdev \ initramfs-module-udev \ initramfs-module-e2fs \ @@ -62,6 +67,10 @@ FILES_${PN}-base = "/init /init.d/99-finish /dev" # and mounts the rootfs. Then 90-rootfs will proceed immediately. RRECOMMENDS_${PN}-base += "initramfs-module-rootfs" +SUMMARY_initramfs-module-exec = "initramfs support for easy execution of applications" +RDEPENDS_initramfs-module-exec = "${PN}-base" +FILES_initramfs-module-exec = "/init.d/89-exec" + SUMMARY_initramfs-module-mdev = "initramfs support for mdev" RDEPENDS_initramfs-module-mdev = "${PN}-base busybox-mdev" FILES_initramfs-module-mdev = "/init.d/01-mdev" -- cgit 1.2.3-korg