[boot-wrapper-aarch64 PATCH] configure: Do not force kernel-dir as a mandatory input

Akos Denke akos.denke at arm.com
Thu May 23 04:49:31 PDT 2024


kernel-dir was required to fulfill the real dependencies:
 * kernel image
 * dtc
 * dtb

There are already checks for all of these real dependencies, so passing
the `--with-kernel-dir` does not need to be mandatory, in the case these
dependencies are provided separately.

An autoconf `--with-kernel-image` argument was added which allows to
specify the image with its exact location.
The `dtc` can be already provided via the PATH variable, whilst we
already have a `--with-dtb` argument to pass a specific `dtb` file.
These facts together deprecates the mandatoriness of kernel-dir and
allows to provide any arbitrary kernel image, with dtb, dtc and
initramfs, without a need for an assumed kernel directory structure.

This makes the boot-wrapper building easier for prebuilt kernels, where
we do not control the directory structure of the kernel artifacts.

Signed-off-by: Akos Denke <akos.denke at arm.com>
---
 configure.ac | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/configure.ac b/configure.ac
index 9e3b722..768506f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,14 +27,18 @@ AS_IF([test "x$BOOTWRAPPER_ES" = x32 -a "x$KERNEL_ES" != x32],
 
 # Allow a user to pass --with-kernel-dir
 AC_ARG_WITH([kernel-dir],
-	AS_HELP_STRING([--with-kernel-dir], [specify the root Linux kernel build directory (required)]),
-	AC_SUBST([KERN_DIR], [$withval]),
-	AC_MSG_ERROR([No kernel directory specified. Use --with-kernel-dir]))
+	AS_HELP_STRING([--with-kernel-dir], [specify the root Linux kernel build directory]),
+	AC_SUBST([KERN_DIR], [$withval]))
 AS_IF([test "x$KERNEL_ES" = x32],
 	[KERN_IMAGE=$KERN_DIR/arch/arm/boot/zImage],
 	[KERN_IMAGE=$KERN_DIR/arch/arm64/boot/Image])
 KERN_DTB=$KERN_DIR/arch/arm64/boot/dts/arm/fvp-base-revc.dtb
 
+# Allow a user to pass a specific kernel image file
+AC_ARG_WITH([kernel-image],
+	AS_HELP_STRING([--with-kernel-image], [specify kernel image]),
+	AC_SUBST([KERN_IMAGE], [$withval]))
+
 # Allow the user to override the default DTB
 AC_ARG_WITH([dtb],
 	AS_HELP_STRING([--with-dtb], [Specify a particular DTB to use]),
@@ -52,11 +56,6 @@ AS_IF([test "x$X_IMAGE" == "x"], [],
 AC_SUBST([XEN_IMAGE], [$X_IMAGE])
 AM_CONDITIONAL([XEN], [test "x$X_IMAGE" != "x"])
 
-# Ensure that the user has provided us with a sane kernel dir.
-if ! test -d $KERN_DIR; then
-	AC_MSG_ERROR([Could not find Linux kernel dir: $KERN_DIR.])
-fi
-
 AC_MSG_CHECKING([whether DTB file exists])
 if ! test -f $KERN_DTB; then
 	AC_MSG_RESULT([no])
@@ -126,7 +125,7 @@ AC_PROG_SED
 AC_PROG_LN_S
 AC_PATH_PROG([DTC], dtc, error, [$PATH$PATH_SEPARATOR$KERN_DIR/scripts/dtc])
 if test "x$DTC" = "xerror"; then
-	AC_MSG_ERROR([cannot find the device tree compiler (dtc)])
+	AC_MSG_ERROR([cannot find the device tree compiler (dtc). Use --with-kernel-dir or put dtc on the PATH])
 fi
 AC_CHECK_TOOL(LD, ld)
 
@@ -139,8 +138,12 @@ echo ""
 echo "  Boot wrapper configuration"
 echo "  =========================="
 echo ""
+if test "x${KERN_DIR}" != "x"; then
 echo "  Linux kernel build dir:            ${KERN_DIR}"
+fi
+echo "  Linux kernel image:                ${KERN_IMAGE}"
 echo "  Device tree blob:                  ${KERN_DTB}"
+echo "  Device tree compiler:              ${DTC}"
 echo "  Linux kernel command line:         ${CMDLINE}"
 echo "  Embedded initrd:                   ${FILESYSTEM:-NONE}"
 echo "  Use PSCI?                          ${USE_PSCI}"
-- 
2.43.0




More information about the linux-arm-kernel mailing list