On Fri, Aug 18, 2023 at 02:05:31PM -0700, Elliott Mitchell wrote: > >From reading the available information I suspect Tianocore/EDK2 may have > tried to move some functionality to a distinct build and neither setup > quite works. Notably there is now a "OvmfPkg/OvmfXen.dsc" build > configuration. The OVMF.fd for Qemu for Xen functionality may have been > moved /here/. There might also be an attempt at functionality similar to > "ArmVirtPkg/ArmVirtXen.dsc" (Debian 978595) for x86.
Now confirmed reverting to 2020.11-2+deb11u1 takes care of the issues I'm running into. I've been able to build OvmfPkg/OvmfXen.dsc, but haven't gotten it to do anything. I'm suspecting the support for running headless didn't get into OvmfXen. I'm interacting with someone knowledgeable, but nothing yet. I suspect the "ovmf" package needs to be split. I've gotten the impression the build needed for normal `qemu` isn't going to be the same as the build needed for xen-qemu. I think what is really needed is for xen-utils-X.YY to Recommend a virtual package "xen-domu-bootloader" which is then provided by tools which can load VMs. The current other in-service tool is grub-xen-host, but it appears OvmfXen may also be able to provide the service. I'm attaching two patches which should help organize the source package. These leave all the "./edksetup.sh" lines identical. Perhaps make use of this to make the build cleaner? -- (\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/) \BS ( | ehem+sig...@m5p.com PGP 87145445 | ) / \_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/ 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
>From 910f6592733dbef2166ceb469320b8e21c4fa977 Mon Sep 17 00:00:00 2001 Message-Id: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com> From: Elliott Mitchell <ehem+deb...@m5p.com> Date: Wed, 20 Jan 2021 17:40:15 -0800 Subject: [PATCH 1/2] debian/rules: Rework edksetup.sh invocations Instead of using "set -e", instead overtly test return codes using a conditional. Move commonly used build flags to front of command as a precursor to merging into a macro. This also makes the varying flags more overt by being on the end. --- debian/rules | 45 +++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/debian/rules b/debian/rules index 116c9c74b7..36b1ffc045 100755 --- a/debian/rules +++ b/debian/rules @@ -59,8 +59,7 @@ undefine CONF_PATH override_dh_auto_build: build-qemu-efi-aarch64 build-qemu-efi-arm build-ovmf build-ovmf32 debian/setup-build-stamp: - set -e; . ./edksetup.sh; \ - make -C BaseTools ARCH=$(EDK2_BUILD_ARCH) + . ./edksetup.sh && make -C BaseTools ARCH=$(EDK2_BUILD_ARCH) touch $@ OVMF_INSTALL_DIR = debian/ovmf-install @@ -95,11 +94,10 @@ build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES) $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp rm -rf $(OVMF32_INSTALL_DIR) mkdir $(OVMF32_INSTALL_DIR) - set -e; . ./edksetup.sh; \ - build -a IA32 \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a IA32 \ -p OvmfPkg/OvmfPkgIa32.dsc \ - $(OVMF32_4M_SMM_FLAGS) -b $(BUILD_TYPE) + $(OVMF32_4M_SMM_FLAGS) cp $(OVMF32_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF32_INSTALL_DIR)/OVMF32_CODE_4M.secboot.fd cp $(OVMF32_BUILD_DIR)/FV/OVMF_VARS.fd \ @@ -109,38 +107,34 @@ build-ovmf: $(OVMF_BINARIES) $(OVMF_IMAGES) $(OVMF_PREENROLLED_VARS) $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp rm -rf $(OVMF_INSTALL_DIR) mkdir $(OVMF_INSTALL_DIR) - set -e; . ./edksetup.sh; \ - build -a X64 \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a X64 \ -p OvmfPkg/OvmfPkgX64.dsc \ - $(OVMF_2M_FLAGS) -b $(BUILD_TYPE) + $(OVMF_2M_FLAGS) cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF_BUILD_DIR)/FV/OVMF.fd $(OVMF_INSTALL_DIR)/ cp $(OVMF_BUILD_DIR)/FV/OVMF_VARS.fd $(OVMF_INSTALL_DIR)/ rm -rf Build/OvmfX64 - set -e; . ./edksetup.sh; \ - build -a IA32 -a X64 \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a IA32 -a X64 \ -p OvmfPkg/OvmfPkgIa32X64.dsc \ - $(OVMF_4M_FLAGS) -b $(BUILD_TYPE) + $(OVMF_4M_FLAGS) cp $(OVMF3264_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF_INSTALL_DIR)/OVMF_CODE_4M.fd cp $(OVMF3264_BUILD_DIR)/FV/OVMF_VARS.fd \ $(OVMF_INSTALL_DIR)/OVMF_VARS_4M.fd rm -rf Build/OvmfX64 - set -e; . ./edksetup.sh; \ - build -a X64 \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a X64 \ -p OvmfPkg/OvmfPkgX64.dsc \ - $(OVMF_2M_SMM_FLAGS) -b $(BUILD_TYPE) + $(OVMF_2M_SMM_FLAGS) cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF_INSTALL_DIR)/OVMF_CODE.secboot.fd rm -rf Build/OvmfX64 - set -e; . ./edksetup.sh; \ - build -a IA32 -a X64 \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a IA32 -a X64 \ -p OvmfPkg/OvmfPkgIa32X64.dsc \ - $(OVMF_4M_SMM_FLAGS) -b $(BUILD_TYPE) + $(OVMF_4M_SMM_FLAGS) cp $(OVMF3264_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF_INSTALL_DIR)/OVMF_CODE_4M.secboot.fd @@ -202,11 +196,10 @@ ArmPkg/Library/GccLto/liblto-arm.a: ArmPkg/Library/GccLto/liblto-arm.s $($(EDK2_TOOLCHAIN)_ARM_PREFIX)gcc -c -fpic $< -o $@ build-qemu-efi: debian/setup-build-stamp - set -e; . ./edksetup.sh; \ - build -a $(EDK2_HOST_ARCH) \ - -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + -a $(EDK2_HOST_ARCH) \ -p ArmVirtPkg/ArmVirtQemu.dsc \ - $(AAVMF_FLAGS) -b $(BUILD_TYPE) + $(AAVMF_FLAGS) cp $(QEMU_EFI_BUILD_DIR)/FV/QEMU_EFI.fd \ $(QEMU_EFI_BUILD_DIR)/FV/$(FW_NAME)_CODE.fd cp $(QEMU_EFI_BUILD_DIR)/FV/QEMU_VARS.fd \ -- 2.39.2
>From 138b98c26b0f28ebff3f19e918c36ea2d463bff8 Mon Sep 17 00:00:00 2001 Message-Id: <138b98c26b0f28ebff3f19e918c36ea2d463bff8.1692832840.git.ehem+deb...@m5p.com> In-Reply-To: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com> References: <910f6592733dbef2166ceb469320b8e21c4fa977.1692832840.git.ehem+deb...@m5p.com> From: Elliott Mitchell <ehem+deb...@m5p.com> Date: Thu, 21 Jan 2021 20:18:37 -0800 Subject: [PATCH 2/2] debian/rules: Make edkbuild verbose Debian policy says the package build should be as verbose as reasonably possible. Also this helps with debugging build issues. --- debian/rules | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/rules b/debian/rules index 36b1ffc045..0d4e0eec62 100755 --- a/debian/rules +++ b/debian/rules @@ -94,7 +94,7 @@ build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES) $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp rm -rf $(OVMF32_INSTALL_DIR) mkdir $(OVMF32_INSTALL_DIR) - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a IA32 \ -p OvmfPkg/OvmfPkgIa32.dsc \ $(OVMF32_4M_SMM_FLAGS) @@ -107,7 +107,7 @@ build-ovmf: $(OVMF_BINARIES) $(OVMF_IMAGES) $(OVMF_PREENROLLED_VARS) $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp rm -rf $(OVMF_INSTALL_DIR) mkdir $(OVMF_INSTALL_DIR) - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a X64 \ -p OvmfPkg/OvmfPkgX64.dsc \ $(OVMF_2M_FLAGS) @@ -115,7 +115,7 @@ $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp $(OVMF_BUILD_DIR)/FV/OVMF.fd $(OVMF_INSTALL_DIR)/ cp $(OVMF_BUILD_DIR)/FV/OVMF_VARS.fd $(OVMF_INSTALL_DIR)/ rm -rf Build/OvmfX64 - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a IA32 -a X64 \ -p OvmfPkg/OvmfPkgIa32X64.dsc \ $(OVMF_4M_FLAGS) @@ -124,14 +124,14 @@ $(OVMF_BINARIES) $(OVMF_IMAGES): debian/setup-build-stamp cp $(OVMF3264_BUILD_DIR)/FV/OVMF_VARS.fd \ $(OVMF_INSTALL_DIR)/OVMF_VARS_4M.fd rm -rf Build/OvmfX64 - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a X64 \ -p OvmfPkg/OvmfPkgX64.dsc \ $(OVMF_2M_SMM_FLAGS) cp $(OVMF_BUILD_DIR)/FV/OVMF_CODE.fd \ $(OVMF_INSTALL_DIR)/OVMF_CODE.secboot.fd rm -rf Build/OvmfX64 - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a IA32 -a X64 \ -p OvmfPkg/OvmfPkgIa32X64.dsc \ $(OVMF_4M_SMM_FLAGS) @@ -196,7 +196,7 @@ ArmPkg/Library/GccLto/liblto-arm.a: ArmPkg/Library/GccLto/liblto-arm.s $($(EDK2_TOOLCHAIN)_ARM_PREFIX)gcc -c -fpic $< -o $@ build-qemu-efi: debian/setup-build-stamp - . ./edksetup.sh && build -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ + . ./edksetup.sh && V=1 build -v -b $(BUILD_TYPE) -t $(EDK2_TOOLCHAIN) \ -a $(EDK2_HOST_ARCH) \ -p ArmVirtPkg/ArmVirtQemu.dsc \ $(AAVMF_FLAGS) -- 2.39.2