From ae73fb5aa0c8a39d6dc688d856483610ebe12682 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 22 Jan 2021 18:33:51 +0000 Subject: [PATCH] [build] Allow an initrd script to be provided via genfsimg Signed-off-by: Michael Brown --- src/util/genfsimg | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/util/genfsimg b/src/util/genfsimg index b30ffe44f..b9d5b3f44 100755 --- a/src/util/genfsimg +++ b/src/util/genfsimg @@ -11,9 +11,10 @@ help() { echo "usage: ${0} [OPTIONS] foo.lkrn|foo.efi [bar.lkrn|bar.efi,...]" echo echo "where OPTIONS are:" - echo " -h show this help" - echo " -o FILE save image to file" - echo " -p PAD pad filesystem (in kB)" + echo " -h show this help" + echo " -o FILE save image to file" + echo " -p PAD pad filesystem (in kB)" + echo " -s SCRIPT use executable script" } # Get hex byte from binary file @@ -113,7 +114,8 @@ copy_syslinux_file() { # OUTFILE= PAD=0 -while getopts "hlo:p:" OPTION ; do +SCRIPT= +while getopts "hlo:p:s:" OPTION ; do case "${OPTION}" in h) help @@ -125,6 +127,9 @@ while getopts "hlo:p:" OPTION ; do p) PAD="${OPTARG}" ;; + s) + SCRIPT="${OPTARG}" + ;; *) help exit 1 @@ -197,9 +202,15 @@ for FILENAME ; do echo "SAY iPXE boot image" > "${SYSLINUXCFG}" echo "TIMEOUT 30" >> "${SYSLINUXCFG}" echo "DEFAULT ${DESTFILE}" >> "${SYSLINUXCFG}" + if [ -n "${SCRIPT}" ] ; then + cp "${SCRIPT}" "${BIOSDIR}/autoexec.ipxe" + fi fi echo "LABEL ${DESTFILE}" >> "${SYSLINUXCFG}" echo " KERNEL ${DESTFILE}" >> "${SYSLINUXCFG}" + if [ -n "${SCRIPT}" ] ; then + echo " APPEND initrd=autoexec.ipxe" >> "${SYSLINUXCFG}" + fi LKRN=1 ;; *.efi)