Gentoo also noticed the bug: https://bugs.gentoo.org/766743
Jannik Glückert proposed a fix: ``` --- a/pc-bios/descriptors/meson.build +++ b/pc-bios/descriptors/meson.build @@ -8,7 +8,7 @@ foreach f: [ ] configure_file(input: files(f), output: f, - configuration: {'DATADIR': qemu_datadir}, + configuration: {'DATADIR': get_option('prefix') / qemu_datadir}, install: get_option('install_blobs'), install_dir: qemu_datadir / 'firmware') endforeach ``` -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1913012 Title: Installed firmware descriptor files contain (invalid) relative paths Status in QEMU: New Bug description: After building and installing QEMU, the resulting installed firmware descriptor files contain relative paths for their `mapping.filename` properties. These relative paths are causing errors when using tools based on `libvirt` like `virt-install`, resulting in the inability to configure new VMs which reference these firmware descriptors. # QEMU version $ qemu-system-x86_64 -version QEMU emulator version 5.2.0 (I've also reproduced the issue with QEMU built from Git master @ v5.2.0-1300-g0e32462630, see next comment.) # OS version Void Linux x86_64 (glibc) Steps to reproduce (with results on my system): # Verify the symptom $ virt-install --boot firmware=efi --disk none --memory 2048 Using default --name vm4 WARNING No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results. Starting install... ERROR Failed to open file 'share/qemu/edk2-i386-vars.fd': No such file or directory Domain installation does not appear to have been successful. If it was, you can restart your domain by running: virsh --connect qemu:///session start vm4 otherwise, please restart your installation. # Verify that the file does exist on the system and is accessible $ ls -l /usr/share/qemu/edk2-i386-vars.fd -rw-r--r-- 1 root root 540672 12 dec 18:47 /usr/share/qemu/edk2-i386-vars.fd # Verify most likely cause $ grep filename /usr/share/qemu/firmware/*i386*.json /usr/share/qemu/firmware/50-edk2-i386-secure.json: "filename": "share/qemu/edk2-i386-secure-code.fd", /usr/share/qemu/firmware/50-edk2-i386-secure.json: "filename": "share/qemu/edk2-i386-vars.fd", /usr/share/qemu/firmware/60-edk2-i386.json: "filename": "share/qemu/edk2-i386-code.fd", /usr/share/qemu/firmware/60-edk2-i386.json: "filename": "share/qemu/edk2-i386-vars.fd", Note that all the paths are relative and are missing <prefix>, i.e. `/usr`. # Workaround Manually editing the firmware descriptor files in `/usr/share/qemu/firmware` to contain full absolute paths to the firmware blobs resolves the issue: $ sudo sed -i.bak -e 's,"share/qemu/,"/usr/share/qemu/,' /usr/share/qemu/firmware/*.json $ virt-install --boot firmware=efi --disk none --memory 2048 [...VM boots normally...] To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1913012/+subscriptions