[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/1] support loading of custom initrd images
From: |
Christian Hesse |
Subject: |
[PATCH 1/1] support loading of custom initrd images |
Date: |
Fri, 5 Feb 2016 11:43:00 +0100 |
From: Christian Hesse <address@hidden>
Signed-off-by: Christian Hesse <address@hidden>
---
docs/grub.texi | 6 ++++++
util/grub-mkconfig.in | 1 +
util/grub.d/10_linux.in | 16 +++++++++-------
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/docs/grub.texi b/docs/grub.texi
index 0afdd8c..f65647c 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -1398,6 +1398,12 @@ for all respectively normal entries.
The values of these options replace the values of @samp{GRUB_CMDLINE_LINUX}
and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux and Xen menu entries.
address@hidden GRUB_CUSTOM_INITRD
+Give custom initrd images to be loaded in addition to the initrd image
+found for the kernel. One use case is to load Intel ucode image.
+
+This expects a space separated list of initrd images in @samp{/boot}.
+
@item GRUB_DISABLE_LINUX_UUID
Normally, @command{grub-mkconfig} will generate menu entries that use
universally-unique identifiers (UUIDs) to identify the root filesystem to
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 3183744..bbe9e62 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
@@ -211,6 +211,7 @@ export GRUB_DEFAULT \
GRUB_CMDLINE_NETBSD \
GRUB_CMDLINE_NETBSD_DEFAULT \
GRUB_CMDLINE_GNUMACH \
+ GRUB_CUSTOM_INITRD \
GRUB_TERMINAL_INPUT \
GRUB_TERMINAL_OUTPUT \
GRUB_SERIAL_COMMAND \
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 5a78513..8e060c5 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -136,10 +136,12 @@ EOF
if test -n "${initrd}" ; then
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
message="$(gettext_printf "Loading initial ramdisk ...")"
- sed "s/^/$submenu_indentation/" << EOF
- echo '$(echo "$message" | grub_quote)'
- initrd ${rel_dirname}/${initrd}
-EOF
+ printf ' %s\n' "echo '$(echo "$message" | grub_quote)'" | sed
"s/^/$submenu_indentation/"
+ printf ' %s ' 'initrd' | sed "s/^/$submenu_indentation/"
+ for I in "address@hidden"; do
+ printf ' %s/%s' "${rel_dirname}" "${I}"
+ done
+ printf '\n'
fi
sed "s/^/$submenu_indentation/" << EOF
}
@@ -188,7 +190,7 @@ while [ "x$list" != "x" ] ; do
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
- initrd=
+ initrd=(${GRUB_CUSTOM_INITRD})
for i in "initrd.img-${version}" "initrd-${version}.img"
"initrd-${version}.gz" \
"initrd-${version}" "initramfs-${version}.img" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
@@ -198,7 +200,7 @@ while [ "x$list" != "x" ] ; do
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
if test -e "${dirname}/${i}" ; then
- initrd="$i"
+ initrd+=("$i")
break
fi
done
@@ -217,7 +219,7 @@ while [ "x$list" != "x" ] ; do
fi
if test -n "${initrd}" ; then
- gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2
+ gettext_printf "Found initrd image(s) in %s: %s\n" "${dirname}"
"${initrd[*]}" >&2
elif test -z "${initramfs}" ; then
# "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's
# no initrd or builtin initramfs, it can't work here.
--
2.7.0
- [PATCH 1/1] support loading of custom initrd images,
Christian Hesse <=
Re: [PATCH 1/1] support loading of custom initrd images, Vladimir 'phcoder' Serbinenko, 2016/02/05