Parameterise PXE kernel and initrd selection

When using custom-built kernels, their filenames may not necessarily
follow the standard naming conventions for the stock systems in question.

This patch permits the specification of an alternative pattern to use
when looking for the correct kernel to construct the PXE images from.

Example:
  export DIB_BAREMETAL_KERNEL_PATTERN="kernel*jang"
  export DIB_BAREMETAL_INITRD_PATTERN="initrd*jang"

Change-Id: I86e5254051addd5e89dd4e363e9bba117e65353d
This commit is contained in:
Jan Grant 2014-03-19 14:17:58 +00:00
parent 44922b8247
commit 6df7039ba1
2 changed files with 12 additions and 1 deletions

View File

@ -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.

View File

@ -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 "")