summaryrefslogtreecommitdiffstats
path: root/src/kernel-install
diff options
context:
space:
mode:
authorcvlc12 <cvlc12@outlook.fr>2023-06-06 17:14:57 +0200
committercvlc12 <cvlc12@outlook.fr>2023-06-18 20:38:20 +0200
commita6d8884120822c090c0aad6667f1795c5b18d3be (patch)
tree674ae549c01dca9f8b33c1de05bc9c4d81284993 /src/kernel-install
parentMerge pull request #28069 from medhefgo/boot-dp (diff)
downloadsystemd-a6d8884120822c090c0aad6667f1795c5b18d3be.tar.xz
systemd-a6d8884120822c090c0aad6667f1795c5b18d3be.zip
Define 'microcode' type of initrd for the kernel-install staging area.
This allows microcode to be referenced first for UKIs and loader entries.
Diffstat (limited to 'src/kernel-install')
-rwxr-xr-xsrc/kernel-install/90-loaderentry.install.in9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/kernel-install/90-loaderentry.install.in b/src/kernel-install/90-loaderentry.install.in
index f4ba4708ba..e1cab0dc23 100755
--- a/src/kernel-install/90-loaderentry.install.in
+++ b/src/kernel-install/90-loaderentry.install.in
@@ -117,9 +117,12 @@ chown root:root "$KERNEL_DEST" || :
shift "$INITRD_OPTIONS_SHIFT"
# All files listed as arguments, and staged files starting with "initrd" are installed as initrds.
-for initrd in "$@" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do
+for initrd in "${KERNEL_INSTALL_STAGING_AREA}/microcode*" "${@}" "${KERNEL_INSTALL_STAGING_AREA}/initrd*"; do
[ -f "$initrd" ] || {
- [ "$initrd" = "${KERNEL_INSTALL_STAGING_AREA}/initrd*" ] && continue
+ case "$initrd" in
+ "${KERNEL_INSTALL_STAGING_AREA}/initrd*" | "${KERNEL_INSTALL_STAGING_AREA}/microcode*")
+ continue ;;
+ esac
echo "Error: initrd '$initrd' not a file." >&2
exit 1
}
@@ -153,7 +156,7 @@ mkdir -p "${LOADER_ENTRY%/*}" || {
echo "linux $KERNEL_ENTRY"
have_initrd=
- for initrd in "${@}" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do
+ for initrd in "${KERNEL_INSTALL_STAGING_AREA}/microcode*" "${@}" "${KERNEL_INSTALL_STAGING_AREA}/initrd*"; do
[ -f "$initrd" ] || continue
echo "initrd $ENTRY_DIR/${initrd##*/}"
have_initrd=yes