Issue with virt-manager, QEMU, libvirt and EFI boot

I have configured this in my config to get it working

networking.firewall.trustedInterfaces = [ "virbr0" ];
        programs.virt-manager.enable = true;
        virtualisation = {
                #useEFIBoot = true; does not exist???
                qemu.guestAgent.enable = true;
                libvirtd = {
                        enable = true;
                        qemu.runAsRoot = false;
                        #qemu.swtpm.enable = true;
                        allowedBridges = [ "virbr0" ];
                };
                spiceUSBRedirection.enable = true;
        };
        services = {
                qemuGuest.enable = true;
                spice-vdagentd.enable = true;
        };

search.nixos.org shows the “useEFIBoot” option, but nixos-rebuild tells me it doesnt exist.

I now am not able to boot VMs that were configured with UEFI as it cannot find any efi:

Fehler beim Starten der Domain: operation failed: Unable to find 'efi' firmware that is compatible with the current configuration

Traceback (most recent call last):
  File "/nix/store/pnzr2yg4g2jdv8dqaridgwchd08w7pnh-virt-manager-5.0.0/share/virt-manager/virtManager/asyncjob.py", line 71, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/pnzr2yg4g2jdv8dqaridgwchd08w7pnh-virt-manager-5.0.0/share/virt-manager/virtManager/asyncjob.py", line 107, in tmpcb
    callback(*args, **kwargs)
    ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/nix/store/pnzr2yg4g2jdv8dqaridgwchd08w7pnh-virt-manager-5.0.0/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
    ret = fn(self, *args, **kwargs)
  File "/nix/store/pnzr2yg4g2jdv8dqaridgwchd08w7pnh-virt-manager-5.0.0/share/virt-manager/virtManager/object/domain.py", line 1384, in startup
    self._backend.create()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/nix/store/93kjgm23gp4zd1ldn3i1ds2zaz8wbw4f-python3.13-libvirt-11.4.0/lib/python3.13/site-packages/libvirt.py", line 1390, in create
    raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: operation failed: Unable to find 'efi' firmware that is compatible with the current configuration

Did you stumble across Quickemu --vm windows-11.conf # ERROR! SecureBoot was requested but no SecureBoot capable firmware was found. Please install OVMF firmware - #2 by adomixaszvers yet? There are options to set the efi firmware.

1 Like

I am not sure what it was, selecting the generic “UEFI” option in virt-manager works, there are 2 other options with some specifics, maybe passthrough?

That worked for a new VM, also opening it again