OK, this ended up being quite interesting. Let me share the solution.
We actually maintain our own iPXE package at my company. It's just a fork of https://github.com/ipxe/ipxe where we adjust come configurations (like enabling HTTPS in my case), add our own certificate authority, etc. But we didn't build all the targets in the iPXE Makefile, just a few.
According to the NIC driver Qemu-KVM uses, you can use one of the targets in the Makefile
. In our case, the relevant part of our VM configuration file (what you get by running virsh edit
) was:
<interface type='bridge'>
<mac address='12:34:56:12:34:56'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
It's that "virtio" that got us to identify the proper target in the Makefile
: bin/1af41000.rom
. This was already used by Qemu-KVM, but of course it wasn't using our own. We updated the symlink after building that target to refer to our own, and that was it.
This article helped us figure out how to deal with the NIC drivers part.