[meta-intel] [PATCHv5 10/10] rmc: don't install boot entries when RMC entries exist
Saul Wold
saul.wold at intel.com
Wed Aug 3 13:27:31 PDT 2016
On Wed, 2016-08-03 at 11:04 -0700, Jianxun Zhang wrote:
> RMC installer copies RMC entries after copying default entries. But
> default entries aren't overwritten when RMC entries have different
> file
> names from them, so they will be kept on target after installation.
>
> RMC Bootloader skips loading default entries when it can get RMC
> entries
> from RMC database file. However, RMC database file isn't deployed
> onto
> target in installation by design.
>
> As a result, default entries show up along with deployed RMC entries
> once
> target reboots after installation.
>
> We cannot get rid of these default entries in RMC deployment section
> because
> it doesn't know which entry file should be removed.
>
> An easier way is not to deploy default entries when any boot entry
> files
> assumingly from RMC are already deployed at a later step. Similar
> logic
> applies to loader.conf too.
>
> Signed-off-by: Jianxun Zhang <jianxun.zhang at linux.intel.com>
Reviewed-by: Saul Wold <sgw at linux.intel.com>
> ---
> .../initrdscripts/files/init-install-efi.sh | 31
> +++++++++++++---------
> 1 file changed, 18 insertions(+), 13 deletions(-)
>
> diff --git a/common/recipes-core/initrdscripts/files/init-install-
> efi.sh b/common/recipes-core/initrdscripts/files/init-install-efi.sh
> index 0b2ee46..7148005 100644
> --- a/common/recipes-core/initrdscripts/files/init-install-efi.sh
> +++ b/common/recipes-core/initrdscripts/files/init-install-efi.sh
> @@ -208,21 +208,14 @@ fi
> mount $bootfs /boot
> echo "Preparing boot partition..."
>
> -# RMC deployment
> -RMC_CMD=/src_root/usr/bin/rmc
> -RMC_DB=/run/media/$1/rmc.db
> -
> EFIDIR="/boot/EFI/BOOT"
> mkdir -p $EFIDIR
> -
> # Copy the efi loader
> cp /run/media/$1/EFI/BOOT/*.efi $EFIDIR
>
> -# We only support gummiboot/systemd-boot. Leave grub-efi not
> changed.
> -if [ -d /run/media/$1/loader ]; then
> - # copy config files for gummiboot
> - cp -dr /run/media/$1/loader /boot
> -fi
> +# RMC deployment
> +RMC_CMD=/src_root/usr/bin/rmc
> +RMC_DB=/run/media/$1/rmc.db
>
> # We don't want to quit when a step failed. For example,
> # a file system could not support some operations.
> @@ -298,9 +291,21 @@ fi
> if [ -d /run/media/$1/loader ]; then
> rootuuid=$(blkid -o value -s PARTUUID ${rootfs})
> GUMMIBOOT_CFGS="/boot/loader/entries/*.conf"
> - # delete the install entry
> - # fixme: If RMC did deploy install.conf at previous steps, it is
> purged here...
> - rm -f /boot/loader/entries/install.conf
> + if [ -d /boot/loader ]; then
> + # Don't override loader.conf RMC already deployed
> + if [ ! -f /boot/loader/loader.conf ]; then
> + cp /run/media/$1/loader/loader.conf /boot/loader/
> + fi
> + # only copy built OE entries when RMC entries don't exist.
> + if [ ! -d /boot/loader/entries ] || [ ! ls
> /boot/loader/entries/*.conf &>/dev/null ]; then
> + cp -dr /run/media/$1/loader/entries /boot/loader
> + fi
> + else
> + # copy config files for gummiboot
> + cp -dr /run/media/$1/loader /boot
> + # delete the install entry
> + rm -f /boot/loader/entries/install.conf
> + fi
> # delete the initrd lines
> sed -i "/initrd /d" $GUMMIBOOT_CFGS
> # delete any LABEL= strings
> --
> 2.7.4
>
More information about the meta-intel
mailing list