diff --git a/elements/baremetal/README.md b/elements/baremetal/README.md index 9c648245..bfbbb2d9 100644 --- a/elements/baremetal/README.md +++ b/elements/baremetal/README.md @@ -3,3 +3,11 @@ This is the baremetal (IE: real hardware) element. Does the following: * extracts the kernel and initial ramdisk of the built image. + +Optional parameters: + + * DIB_BAREMETAL_KERNEL_PATTERN and DIB_BAREMETAL_INITRD_PATTERN + may be supplied to specify which kernel files are preferred; this + can be of use when using custom kernels that don't fit the + standard naming patterns. Both variables must be provided in + order for them to have any effect. diff --git a/elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk b/elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk index 6c136577..21cfb0a1 100755 --- a/elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk +++ b/elements/baremetal/cleanup.d/99-extract-kernel-and-ramdisk @@ -23,7 +23,10 @@ set -o pipefail BOOTDIR="$TARGET_ROOT/boot" KERNEL= RAMDISK= -if [ -f $TARGET_ROOT/etc/redhat-release ]; then +if [ -n "${DIB_BAREMETAL_KERNEL_PATTERN:-}" -a -n "${DIB_BAREMETAL_INITRD_PATTERN:-}" ]; then + KERNEL=$(basename `eval ls -1rv "$BOOTDIR/${DIB_BAREMETAL_KERNEL_PATTERN}" | head -1`) + RAMDISK=$(basename `eval ls -1rv "$BOOTDIR/${DIB_BAREMETAL_INITRD_PATTERN}" | head -1`) +elif [ -f $TARGET_ROOT/etc/redhat-release ]; then # Prioritize PAE if present KERNEL=$(ls -1rv $BOOTDIR/vmlinuz* | grep PAE | grep -v debug | head -1 || echo "")