Support for ovmf => 2019 or "current Tumbleweed can not execute UEFI tests anymore"
ybonatakis reported a problem that he fails to successfully run a cloned UEFI Tumbleweed test onto their openSUSE Tumbleweed 20190704 . The package qemu-ovmf-x86_64 is installed but apparently in newer versions it does not ship the file
/usr/share/qemu/ovmf-x86_64-ms.bin anymore which the openQA tests reference in the variable "BIOS".
os-autoinst still adds the BIOS and UEFI_PFLASH variables referencing the shared code+vars file but also complains that the deprecated BIOS and UEFI_PFLASH variables are used.
The following adjustements to vars.json are necessary:
# diff -Naur vars.json.orig vars.json --- vars.json.orig 2019-08-02 14:41:15.404504951 +0200 +++ vars.json 2019-08-02 14:56:50.819597082 +0200 @@ -2,7 +2,7 @@ "ARCH" : "x86_64", "ASSETDIR" : "/var/lib/openqa/share/factory", "BACKEND" : "qemu", - "BIOS" : "/usr/share/qemu/ovmf-x86_64-ms.bin", + "BIOS" : "/usr/share/qemu/ovmf-x86_64-ms-code.bin", "BUILD" : "20190801", "CASEDIR" : "/var/lib/openqa/share/tests/opensuse", "CDMODEL" : "scsi-cd", @@@ -56,9 +56,12 @@ "SUSEMIRROR" : "openqa.opensuse.org/assets/repo/openSUSE-Tumbleweed-oss-i586-x86_64-Snapshot20190801", "SYSTEM_ROLE_STYLE" : "1", "TEST" : "uefi", "UEFI" : 1, - "UEFI_PFLASH" : 1, + "UEFI_BIOS" : "/usr/share/qemu/ovmf-x86_64-ms-code.bin", + "UEFI_PFLASH" : null, + "UEFI_PFLASH_CODE" : "/usr/share/qemu/ovmf-x86_64-ms-code.bin", + "UEFI_PFLASH_VARS" : "/usr/share/qemu/ovmf-x86_64-ms-vars.bin", "VERSION" : "Tumbleweed", "VIRTIO_CONSOLE" : 1, "VNC" : "102",
simply cloning the job with the additional override settings
BIOS=/usr/share/qemu/ovmf-x86_64-ms-code.bin UEFI_PFLASH_CODE=/usr/share/qemu/ovmf-x86_64-ms-code.bin UEFI_PFLASH_VARS=/usr/share/qemu/ovmf-x86_64-ms-vars.bin should work
first checking if I can run tests on o3 with explicitly specified code and vars files:
for i in 997893 997802 997878; do openqa-clone-job --within-instance https://openqa.opensuse.org --skip-chained-deps $i UEFI=1 UEFI_PFLASH= BIOS= UEFI_PFLASH_CODE=/usr/share/qemu/ovmf-x86_64-ms-code.bin UEFI_PFLASH_VARS=/usr/share/qemu/ovmf-x86_64-ms-vars.bin _GROUP=0 TEST=okurz_uefi_code_vars_poo55052 BUILD=okurz_poo55052; done
Created job #998609: opensuse-Tumbleweed-DVD-x86_64-Build20190801-uefi@64bit -> https://openqa.opensuse.org/t998609
Created job #998610: opensuse-Tumbleweed-NET-x86_64-Build20190801-uefi@64bit -> https://openqa.opensuse.org/t998610
Created job #998611: opensuse-Tumbleweed-DVD-x86_64-Build20190801-uefi@USBboot_64 -> https://openqa.opensuse.org/t998611
Need to check results later. In the code we have hardcoded lookup paths for the firmware files, e.g. '/usr/share/qemu/ovmf-x86_64-ms.bin' . The other paths for fedora and Debian look like they already reference the "code" firmware already, e.g. '/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd' . I wonder if we actually still need to support the pflash mode or can just say that UEFI requires code and vars. For convience we should look the firmware files still up though.
Also, our tests os-autoinst-distri-opensuse set UEFI_PFLASH for all except aarch64 which already explicitly select firmware files. I wonder if we can simply lookup the correct code/vars files and get rid of UEFI_PFLASH in the test code to use that mode.
EDIT: All three tests worked the same as the ones for production tests using UEFI_PFLASH hardcoded.
- Status changed from New to Feedback
after that should apply the change for os-autoinst-distri-opensuse to remove UEFI_PFLASH
merged. https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/8124 for the tests adaption which we should do only after rolling out the changes to both o3 and osd.
hm, I thought we could have os-autoinst bring in the new support while working with old test code but apparently this did not work out as expected as all the UEFI tests on o3 broke since today's nightly os-autoinst update. https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/8124 merged and I will retrigger according tests. Test code is deployed to o3, retriggered all uefi incompletes I could find on https://openqa.opensuse.org/tests/?&resultfilter=Incomplete . Monitoring
https://openqa.opensuse.org/tests/1000511#live , passed disk_boot of installed system. ended successfully now. Let's monitor this on OSD later then.