From: Darren Hart <dvhart@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 3/8] mkefidisk.sh: Add gummiboot support
Date: Thu, 17 Jul 2014 14:44:33 -0700 [thread overview]
Message-ID: <12558457.OAARH0HRUX@rage> (raw)
In-Reply-To: <c41e55b6a7ec02343c546642c931fde671f47718.1405520111.git.dvhart@linux.intel.com>
On Wednesday, July 16, 2014 02:15:59 PM Darren Hart wrote:
> Fixes [YOCTO 6295]
>
> Add gummiboot support for images built using:
>
> EFI_PROVIDER="gummiboot"
>
> Add conditional configuration for GRUB and gummiboot. Provide some
> messaging about which is being performed.
>
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> ---
> scripts/contrib/mkefidisk.sh | 53
> ++++++++++++++++++++++++++++++++++---------- 1 file changed, 41
> insertions(+), 12 deletions(-)
>
> diff --git a/scripts/contrib/mkefidisk.sh
> b/scripts/contrib/mkefidisk.sh index 0d0674b..9b13041 100755
> --- a/scripts/contrib/mkefidisk.sh
> +++ b/scripts/contrib/mkefidisk.sh
> @@ -265,31 +265,60 @@ umount $HDDIMG_ROOTFS_MNT
> echo "Preparing boot partition..."
> EFIDIR="$BOOTFS_MNT/EFI/BOOT"
> mkdir -p $EFIDIR
> -GRUBCFG="$EFIDIR/grub.cfg"
>
> cp $HDDIMG_MNT/vmlinuz $BOOTFS_MNT
> -# Copy the efi loader and config (booti*.efi and grub.cfg)
> +# Copy the efi loader and configs (booti*.efi and grub.cfg if it
> exists) cp $HDDIMG_MNT/EFI/BOOT/* $EFIDIR
> +# Silently ignore a missing gummiboot loader dir (we might just be a
> GRUB image) +cp -r $HDDIMG_MNT/loader $BOOTFS_MNT 2> /dev/null
>
> -# Update grub config for the installed image
> -# Delete the install entry
> -sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG
> -# Delete the initrd lines
> -sed -i "/initrd /d" $GRUBCFG
> -# Delete any LABEL= strings
> -sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG
> +# Update the boot loaders configurations for an installed image
> # Remove any existing root= kernel parameters and:
> # o Add a root= parameter with the target rootfs
> # o Specify ro so fsck can be run during boot
> # o Specify rootwait in case the target media is an asyncronous block
> device # such as MMC or USB disks
> # o Specify "quiet" to minimize boot time when using slow serial
> consoles -sed -i "s@ root=[^ ]*@ @" $GRUBCFG
> -sed -i "s@vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait quiet @"
> $GRUBCFG +
> +# Look for a GRUB installation
> +GRUB_CFG="$EFIDIR/grub.cfg"
> +if [ -e "$GRUB_CFG" ]; then
> + echo "Configuring GRUB"
> + # Delete the install entry
> + sed -i "/menuentry 'install'/,/^}/d" $GRUB_CFG
> + # Delete the initrd lines
> + sed -i "/initrd /d" $GRUB_CFG
> + # Delete any LABEL= strings
> + sed -i "s/ LABEL=[^ ]*/ /" $GRUB_CFG
> +
> + sed -i "s@ root=[^ ]*@ @" $GRUB_CFG
> + sed -i "s@vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait quiet
@"
> $GRUB_CFG +fi
> +
> +# Look for a gummiboot installation
> +GUMMI_ENTRIES="$BOOTFS_MNT/loader/entries"
> +GUMMI_CFG="$GUMMI_ENTRIES/boot.conf"
> +if [ -d "$GUMMI_ENTRIES" ]; then
> + echo "Configuring Gummiboot"
> + # remove the install target if it exists
> + rm $GUMMI_ENTRIES/install.conf &> /dev/null
> +
> + if [ ! -e "$GUMMI_CFG" ]; then
> + echo "ERROR: $GUMMI_CFG not found"
> + fi
> +
Oops, this is missing:
+ sed -i "/initrd /d" $GUMMI_CFG
I have updated this git branch with this change.
--
Darren
> + sed -i "s@ root=[^ ]*@ @" $GUMMI_CFG
> + sed -i "s@options *LABEL=boot @options LABEL=Boot
> root=$TARGET_ROOTFS ro rootwait quiet @" $GUMMI_CFG +fi
> +
> +# Ensure we have at least one EFI bootloader configured
> +if [ ! -e $GRUB_CFG ] && [ ! -e $GUMMI_CFG ]; then
> + echo "ERROR: No EFI bootloader configuration found"
> +fi
>
> umount $BOOTFS_MNT
> umount $HDDIMG_MNT
> rm -rf $TMPDIR
> sync
>
> -echo "Installation complete."
> +echo "Installation complete"
--
Darren Hart
Intel Open Source Technology Center
next prev parent reply other threads:[~2014-07-17 21:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-16 14:15 [PATCH 0/8] mkefidisk updates and gummiboot support Darren Hart
2014-07-16 14:15 ` [PATCH 1/8] mkefidisk.sh: Use all caps for volume names Darren Hart
2014-07-16 14:15 ` [PATCH 2/8] mkefidisk.sh: Add mount error checking Darren Hart
2014-07-16 14:15 ` [PATCH 3/8] mkefidisk.sh: Add gummiboot support Darren Hart
2014-07-17 21:44 ` Darren Hart [this message]
2014-07-16 14:16 ` [PATCH 4/8] mkefidisk.sh: Copy the EFI dir recursively Darren Hart
2014-07-16 14:16 ` [PATCH 5/8] mkefidisk.sh: Improve logging Darren Hart
2014-07-16 14:16 ` [PATCH 6/8] mkefidisk.sh: Add die() and cleanup() routines Darren Hart
2014-07-16 14:16 ` [PATCH 7/8] mkefidisk.sh: Make the rootfs copy the last step Darren Hart
2014-07-16 14:16 ` [PATCH 8/8] mkefidisk.sh: Reduce output and add verbose flag Darren Hart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12558457.OAARH0HRUX@rage \
--to=dvhart@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.