[yocto] [meta-inte][rmc][PATCH v2 1/1] rmc: add support for alternative EFI bootloaders

Todor Minchev todor.minchev at linux.intel.com
Wed Dec 14 08:31:58 PST 2016


On Tue, 2016-12-13 at 17:50 -0800, Cal Sullivan wrote:
> I like where this is heading but does RMC function with bootloaders 
> besides systemd-boot yet?
> A quick boot test with this patch and RMC_BOOTLOADER = "grub-efi" seems 
> to give me vanilla grub-efi.

At the moment RMC works end-to-end only with systemd-boot. This patch
resolves bug 10212 which blocks the changes required for RMC support in
grub-efi (bug 10126).

https://bugzilla.yoctoproject.org/show_bug.cgi?id=10212

https://bugzilla.yoctoproject.org/show_bug.cgi?id=10226

Todor

> Thanks,
> Cal
> 
> On 12/13/2016 04:50 PM, Todor Minchev wrote:
> > On Tue, 2016-12-13 at 16:22 -0800, Jianxun Zhang wrote:
> >>> On Dec 13, 2016, at 2:56 PM, Todor Minchev <todor.minchev at linux.intel.com> wrote:
> >>>
> >>> RMC was previously configured to work only with the systemd-boot EFI
> >>> bootloader. With this commit we can specify alternative bootloaders by
> >>> setting the RMC_BOOTLOADER variable in local.conf. If RMC_BOOTLOADER is
> >>> not set systemd-boot will be used by default.
> >>>
> >>> Signed-off-by: Todor Minchev <todor.minchev at linux.intel.com>
> >>> ---
> >>> Remove references to grub-efi and gummiboot from V1.
> >>>
> >>> classes/{rmc-systemd-boot.bbclass => rmc-boot.bbclass} |  5 +++--
> >>> conf/machine/include/meta-intel.inc                    |  2 +-
> >>> documentation/rmc/README                               | 16 +++++++++++++---
> >>> 3 files changed, 17 insertions(+), 6 deletions(-)
> >>> rename classes/{rmc-systemd-boot.bbclass => rmc-boot.bbclass} (73%)
> >>>
> >>> diff --git a/classes/rmc-systemd-boot.bbclass b/classes/rmc-boot.bbclass
> >>> similarity index 73%
> >>> rename from classes/rmc-systemd-boot.bbclass
> >>> rename to classes/rmc-boot.bbclass
> >>> index ad2cf10..a1f2093 100644
> >>> --- a/classes/rmc-systemd-boot.bbclass
> >>> +++ b/classes/rmc-boot.bbclass
> >>> @@ -1,9 +1,10 @@
> >>> -# rmc-systemd-boot bbclass
> >>> +# rmc-boot bbclass
> >>> # Deploy central RMC database file to ESP
> >>>
> >>> IMAGE_INSTALL_append = " rmc"
> >>> +RMC_BOOTLOADER ?= "systemd-boot”
> >> Maybe this is what we could have now without bothering OE. It is better than the corrent code at the cost of another variable to user. I hope in the future we could get rid of  the dependency to EFI_PROVIDER (e.g. bz10084).
> >>
> >> Also refer to my comment for the document change at the below.
> >>> -inherit systemd-boot
> >>> +inherit ${RMC_BOOTLOADER}
> >>>
> >>> do_bootimg[depends] += "${MLPREFIX}rmc-db:do_deploy"
> >>>
> >>> diff --git a/conf/machine/include/meta-intel.inc b/conf/machine/include/meta-intel.inc
> >>> index c7555ce..fd0a792 100644
> >>> --- a/conf/machine/include/meta-intel.inc
> >>> +++ b/conf/machine/include/meta-intel.inc
> >>> @@ -32,7 +32,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS_append = "${@bb.utils.contains('MACHINE_FEATURE
> >>> # merge the microcode data in the final initrd image.
> >>> INITRD_LIVE_prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}"
> >>>
> >>> -EFI_PROVIDER ?= "rmc-systemd-boot"
> >>> +EFI_PROVIDER ?= "rmc-boot"
> >>>
> >>> # Add general MACHINEOVERRIDE for meta-intel
> >>> MACHINEOVERRIDES =. "intel-x86-common:"
> >>> diff --git a/documentation/rmc/README b/documentation/rmc/README
> >>> index 2427ffd..dbee6b6 100644
> >>> --- a/documentation/rmc/README
> >>> +++ b/documentation/rmc/README
> >>> @@ -165,14 +165,24 @@ steps still can override results from this hook for boot entries and KBOOTPARAM.
> >>>
> >>> Enable RMC Feature
> >>> --------------------------------------------------------------------------------
> >>> -To Enable RMC feature in build, add the below lines in a conf file:
> >>> +To enable the RMC feature please add the following variables to your local.conf.
> >>> +
> >>> DISTRO_FEATURES_append = " rmc"
> >>> -EFI_PROVIDER = "rmc-systemd-boot"
> >>> +EFI_PROVIDER = "rmc-boot"
> >>> +
> >>> +The default EFI bootloader used with RMC is systemd-boot. To change the default
> >>> +bootloader please overwrite the RMC_BOOTLOADER variable in your local.conf
> >>>
> >>> Note:
> >>> Image could be still bootable if you only have either of two lines, but RMC
> >>> feature won't be fully functional.
> >>>
> >>> +To install only the RMC client with the systemd-boot bootloader without
> >>> +including a default RMC database file, add the following lines to your
> >>> +local.conf:
> >>> +
> >>> +EFI_PROVIDER = "systemd-boot"
> >>> +IMAGE_INSTALL_append = " rmc”
> >> I think this use case could confuse for user without much benefit. And actually they still can set EFI_PROVIDER to any available efi bootloaders to get this effect as long as it is not “rmc-boot”, right?
> >> Maybe we should just say “you won’t get rmc database deployed if you set EFI_PROVIDER to any values not rmc-boot."
> > Yes, this can be another way to phrase this.
> >
> >>> Examples
> >>> @@ -190,7 +200,7 @@ EXAMPLE 1: Support a new board type:
> >>> (1) enable the feature and do a build to get a live-boot image by adding these
> >>>      lines in conf/local.conf:
> >>>      DISTRO_FEATURES_append = " rmc"
> >>> -    EFI_PROVIDER = "rmc-systemd-boot"
> >>> +    EFI_PROVIDER = "rmc-boot"
> >>>
> >>> (2) flash the image to a USB stick and boot it on your board
> >>>
> >>> -- 
> >>> 2.11.0
> >>>
> >
> 





More information about the yocto mailing list