-
Notifications
You must be signed in to change notification settings - Fork 929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Force SeaBIOS instead of OVMF-based firmware & some firmware lookup logic changes #12750
Conversation
…of OVMF EDKII CSM module was removed (https://bugzilla.tianocore.org/show_bug.cgi?id=4588), we want to force all existing VMs those are using a OVMF-based CSM firmware to step on the SeaBIOS. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
I have tested this with a VM which was created on the LXD 5.19 and then upgraded to the LXD version with these patches. It works without any problems. |
182772e
to
f61b99c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with only tiny suggestions.
f61b99c
to
b4d6b41
Compare
b4d6b41
to
2ccefc7
Compare
e451116
to
2fe9d31
Compare
- introduce new env variable LXD_QEMU_FW_PATH in addition to LXD_OVMF_PATH as this name is more correct. OVMF is a specific firmware name, while we can use SeaBIOS or, for example, ArmVirt. - make support of array of paths in the LXD_QEMU_FW_PATH/LXD_OVMF_PATH separated by ":" like PATH/LD_LIBRARY_PATH/etc. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Let's rename ovmf mentions to vmf (virtual machine firmware) depending on the context. As OVMF is a specific name of the EDK2-based firmware for x86_64. For arm64 we also use edk2-based firmware called ArmVirtQemu (from ArmVirtPkg). No functional changes here. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
1. It makes no sense to set security.csm=true for arches except x86_64 as we don't have any kind of a "legacy" firmware for them. x86_64 architecture is a very special case cause we have a legacy (BIOS) and modern (UEFI) firmwares supported in LXD. 2. Same about having CSM enabled together with boot.debug_edk2, cause the last one means that EDK2 is used. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
…s.bin bios-256k.bin is a standard name for SeaBIOS firmware, while seabios.bin is a specific one. Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
2fe9d31
to
62ee9ff
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM thanks!
@mihalicyn I took the liberty to edit the PR description for posterity to reflect the incompatibility with |
We want our users to step out from EDK2-based CSM firmwares to SeaBIOS as these firmwares were removed from upstream (see https://bugzilla.tianocore.org/show_bug.cgi?id=4588).
@tomponline suggested to extend firmware lookup algorithm to handle multiple paths specified in the
LXD_OVMF_PATH
.Do some renaming
Forbid
security.csm
for arches exceptx86_64
Forbid
boot.debug_edk2
whensecurity.csm=true
Forbid
security.secureboot
whensecurity.csm=true
Fixes ##12730