[meta-intel] [PATCHv5 00/10] Runtime Machine Configuration (RMC)

Tom Zanussi tom.zanussi at linux.intel.com
Thu Aug 4 14:26:46 PDT 2016


On 08/04/2016 04:11 PM, Jianxun Zhang wrote:
> 
>> On Aug 4, 2016, at 7:31 AM, Tom Zanussi <tom.zanussi at linux.intel.com> wrote:
>>
>> On 08/03/2016 07:49 PM, Jianxun Zhang wrote:
>>>
>>>> On Aug 3, 2016, at 4:15 PM, Tom Zanussi <tom.zanussi at linux.intel.com> wrote:
>>>>
>>>> Hi Jianxun,
>>>>
>>>> On 08/03/2016 01:04 PM, Jianxun Zhang wrote:
>>>>> Hi Saul, Tom & others,
>>>>>
>>>>> This is the V5 submission of RMC work with new enhancements and fixes over
>>>>> V4 also with some minor adjustments in rmc README file and commit messages.
>>>>>
>>>>
>>>> Although I'm a bit dismayed that we seem to have come full circle and
>>>> are back at the EFI_PROVIDER="rmc-systemd-boot" interface, I went ahead
>>>> and merged these 10 patches anyway- it doesn't seem we'll be able to
>>>> make progress toward fleshing out this feature otherwise.
>>>
>>> I agree and also feel we are circling on this matter with what we can have now.
>>>
>>> () multiple switches are logically predictable if no overriding is allowed. We also need to clarify our thoughts on if we really want to have a single feature switch in this case.
>>>
>>> () What we can do is to seek/improve another interface in OE, not to use EFI_PROVIDER for non-bootloader RMC functions like db deployment stuff.
>>>
>>>
>>>>
>>>> Please file a bug addressing that interface issue, as well as for the
>>>> other issues we identified along the way and that remain unaddressed.
>>>>
>>>
>>> Yes, I will add this one into bz ticket list I am going to file, just waiting their merge (I just don’t feel filing bugs for pending patches make much sense technically.)
>>>
>>
>> All merged, so no need to wait now.  Please add me to the cc: list for
>> all the bugs you file related to this, thanks.
> 
> Tom,
> This is the list of tickets I filed today. The first section is what I collected during submission. The later part is for other improvement in RMC and test case.
> I should have added you in CC list of each of them. But if I missed any, feel free to add yourself. Please also add comments for anything inaccurately reflects our discussion.
> 
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10081
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10083
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10084
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10085
> 

Looks ok, but I think there are a couple things missing, mainly the
interface issue we keep going around in circles on, and there's
something about detecting errors at build-time, but nothing about runtime.

There are also minor things that were touched on, such as the complete
copy of the installer from oe-core, and forcing the user to specify each
part of the path individually to create a file in the installer, etc.

Tom

> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10086
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10087
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10088
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10089
> 
> I appreciate your effort on RMC review and merge, and specially enjoy our good discussion in these threads.
> 
> 
>>
>>>
>>>> The most important ones in addition being:
>>>>
>>>> - rmc should be useful for all yocto-supported platforms, not just the
>>>> ones in meta-intel.  Because it only supports Intel platforms at the
>>>> moment, and to give it some exposure, it makes sense to have it in
>>>> meta-intel at least initially, but it really should be in oe-core.
>>>> Adding support for other platforms should also help generalize the code
>>>> in the process.  So please file a bug to add support for the other
>>>> platforms and move it out of meta-intel.
>>>>
>>>
>>> I agree with you to push it to OE, just want to be more precisely for supported scope even when it is in OE. RMC is based on EFI and SMBIOS so I should say any platforms with these FW features should be supported naturally.
>>> We have EFI features in OE already, so this won’t be a blocker. But for other arch not with required FW, I am not sure how much RMC could help.
>>>
>>
>> Well, the first step as implemented here requires those things.  But
>> surely the general idea of tailoring images based on fingerprints
>> generalizes to other platforms.
>>
>>> Also sharing my understanding on generating code/file approach in OE, I think when people don’t have an alternative solution to manage customizations, they need the approach. But I hope we can rethink it when a runtime solution
>>> is on horizon.
>>>
>>> I cannot see why providing variables, with logic behind them, to users could be better or more flexible than having board-specific files, if the later way can managed file copies outside of generic stack. 
>>>
>>> I don’t mind you or anyone forward this newbie’s opinion to any OE people, seriously. I do have concern on this OE philosophy.
>>>
>>> But I will file a ticket so that we can check in these thoughts and requirements.
>>>
>>>
>>>> - there currently is really no way to debug a failing rmc configuration
>>>> or run-time other than by inspection.  There needs to be support in both
>>>> the host and the target to flag invalid configurations and trace what's
>>>> happening at run-time when something goes wrong and it's not apparent
>>>> what the problem is.
>>>>
>>>
>>> RMC is designed as “don’t fail anything at runtime if we don’t fetch board-data successfully”. And image with RMC shall be functional on non-supported boards in general.
>>>
>>
>> Sorry, failing silently even if that maps to something legal isn't useful.
>>
>>> These design goals could be a part of reasons attracting complains.
>>>
>>> I will file a ticket for this with others. Let me see what I can improve, no worries.
>>>
>>
>> Thanks,
>>
>> Tom
>>
>>>
>>>> Thanks,
>>>>
>>>> Tom
>>>>
>>>>> I tried my best to keep doc, commit msg and function consistent when we
>>>>> modify the feature's behavior back and forth. Feel free to let me know any-
>>>>> thing out of sync...
>>>>>
>>>>> Jianxun Zhang (10):
>>>>> rmc: Add Runtime Machine Configuration (RMC) project
>>>>> gnu-efi: Add GUID for SMBIOS 3 entry point structure
>>>>> systemd-boot: load board-specific entry and kernel cmdline
>>>>> EFI installer: deploy board-specific data and kernel cmdline
>>>>> rmc: add recipe and bbclass for RMC feature
>>>>> rmc: document and examples for RMC feature
>>>>> rmc: support broxton-m platform
>>>>> rmc: support post-installation hook POSTINSTALL.sh
>>>>> rmc: update document and NUC Gen 6 for post-installation hook
>>>>> rmc: don't install boot entries when RMC entries exist
>>>>>
>>>>> classes/rmc-db.bbclass                             |  92 ++++++
>>>>> classes/rmc-systemd-boot.bbclass                   |  12 +
>>>>> ...d-GUID-for-SMBIOS-3-entry-point-structure.patch |  32 ++
>>>>> common/recipes-bsp/gnu-efi/gnu-efi_%.bbappend      |   2 +
>>>>> .../rmc/boards/T100-32bit/BOOTENTRY.CONFIG         |   2 +
>>>>> .../rmc/boards/T100-32bit/T100-32bit.fp            | Bin 0 -> 116 bytes
>>>>> common/recipes-bsp/rmc/boards/T100-32bit/boot.conf |   4 +
>>>>> .../recipes-bsp/rmc/boards/T100-32bit/install.conf |   4 +
>>>>> common/recipes-bsp/rmc/boards/broxton-m/KBOOTPARAM |   1 +
>>>>> common/recipes-bsp/rmc/boards/broxton-m/bm.fp      | Bin 0 -> 83 bytes
>>>>> .../rmc/boards/minnowmax/BOOTENTRY.CONFIG          |   1 +
>>>>> common/recipes-bsp/rmc/boards/minnowmax/boot.conf  |   4 +
>>>>> .../recipes-bsp/rmc/boards/minnowmax/minnowmax.fp  | Bin 0 -> 143 bytes
>>>>> .../rmc/boards/minnowmaxB3/BOOTENTRY.CONFIG        |   1 +
>>>>> .../recipes-bsp/rmc/boards/minnowmaxB3/boot.conf   |   4 +
>>>>> .../rmc/boards/minnowmaxB3/minnowmaxB3.fp          | Bin 0 -> 148 bytes
>>>>> .../rmc/boards/nucgen6/BOOTENTRY.CONFIG            |   2 +
>>>>> .../rmc/boards/nucgen6/INSTALLER.CONFIG            |   6 +
>>>>> common/recipes-bsp/rmc/boards/nucgen6/KBOOTPARAM   |   1 +
>>>>> .../recipes-bsp/rmc/boards/nucgen6/POSTINSTALL.sh  |   7 +
>>>>> common/recipes-bsp/rmc/boards/nucgen6/boot.conf    |   4 +
>>>>> common/recipes-bsp/rmc/boards/nucgen6/install.conf |   4 +
>>>>> common/recipes-bsp/rmc/boards/nucgen6/mylib.conf   |   7 +
>>>>> common/recipes-bsp/rmc/boards/nucgen6/nuc6.fp      | Bin 0 -> 149 bytes
>>>>> common/recipes-bsp/rmc/rmc-db.bb                   |  48 +++
>>>>> common/recipes-bsp/rmc/rmc.bb                      |  46 +++
>>>>> .../recipes-bsp/systemd-boot/systemd-boot.bbappend |  20 ++
>>>>> ...d-boot-Link-RMC-libraries-into-bootloader.patch |  31 ++
>>>>> ...d-board-specific-boot-entries-from-RMC-da.patch | 263 +++++++++++++++
>>>>> ...pport-global-kernel-command-line-fragment.patch |  66 ++++
>>>>> .../initrdscripts/files/init-install-efi.sh        | 339 ++++++++++++++++++++
>>>>> .../initramfs-live-install-efi_%.bbappend          |   1 +
>>>>> conf/layer.conf                                    |  10 +
>>>>> documentation/rmc/README                           | 356 +++++++++++++++++++++
>>>>> 34 files changed, 1370 insertions(+)
>>>>> create mode 100644 classes/rmc-db.bbclass
>>>>> create mode 100644 classes/rmc-systemd-boot.bbclass
>>>>> create mode 100644 common/recipes-bsp/gnu-efi/gnu-efi/0001-Add-GUID-for-SMBIOS-3-entry-point-structure.patch
>>>>> create mode 100644 common/recipes-bsp/gnu-efi/gnu-efi_%.bbappend
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/T100-32bit/BOOTENTRY.CONFIG
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/T100-32bit/T100-32bit.fp
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/T100-32bit/boot.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/T100-32bit/install.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/broxton-m/KBOOTPARAM
>>>>> create mode 100755 common/recipes-bsp/rmc/boards/broxton-m/bm.fp
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmax/BOOTENTRY.CONFIG
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmax/boot.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmax/minnowmax.fp
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmaxB3/BOOTENTRY.CONFIG
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmaxB3/boot.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/minnowmaxB3/minnowmaxB3.fp
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/BOOTENTRY.CONFIG
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/INSTALLER.CONFIG
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/KBOOTPARAM
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/POSTINSTALL.sh
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/boot.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/install.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/mylib.conf
>>>>> create mode 100644 common/recipes-bsp/rmc/boards/nucgen6/nuc6.fp
>>>>> create mode 100644 common/recipes-bsp/rmc/rmc-db.bb
>>>>> create mode 100644 common/recipes-bsp/rmc/rmc.bb
>>>>> create mode 100644 common/recipes-bsp/systemd-boot/systemd-boot.bbappend
>>>>> create mode 100644 common/recipes-bsp/systemd-boot/systemd-boot/0001-sd-boot-Link-RMC-libraries-into-bootloader.patch
>>>>> create mode 100644 common/recipes-bsp/systemd-boot/systemd-boot/0002-sd-boot-Load-board-specific-boot-entries-from-RMC-da.patch
>>>>> create mode 100644 common/recipes-bsp/systemd-boot/systemd-boot/0003-sd-boot-Support-global-kernel-command-line-fragment.patch
>>>>> create mode 100644 common/recipes-core/initrdscripts/files/init-install-efi.sh
>>>>> create mode 100644 common/recipes-core/initrdscripts/initramfs-live-install-efi_%.bbappend
>>>>> create mode 100644 documentation/rmc/README
>>>>>
>>>>
>>>
>>
> 



More information about the meta-intel mailing list