[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/1] support loading of custom initrd images
From: |
Andrei Borzenkov |
Subject: |
Re: [PATCH 1/1] support loading of custom initrd images |
Date: |
Fri, 5 Feb 2016 20:04:29 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
05.02.2016 13:43, Christian Hesse пишет:
> 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.
> +
Is there any other use case? Both dracut and initramfs-tools already add
early cpio with microcode to generated initrd. This is bootloader
agnostic and better solution.
> +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})
We explicitly avoid bashisms in all scripts.
> 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.
>
Re: [PATCH 1/1] support loading of custom initrd images, Vladimir 'phcoder' Serbinenko, 2016/02/05