Upgraded to 1:2.11+dfsg-1ubuntu7.7 and found no general issue (subset of the general regression test that we already ran on the identical PPA). As I was asked to check that the old blob-style PXE still works lets start with my old PXE config as in [1] but with the new qemu from proposed. The boot looks slightly different at first as the init sequence has a few mor things to say now since it is partially based on slof. But then it starts the pxelinux.0 blob that I asked dhcp to serve just fine. It is loaded, booted and then does whatever is in there. In my case this was the "old style" blob that then does restricted capability PXE from that blob. Here a log: $ virsh start --console netboot Domain netboot started Connected to domain netboot Escape character is ^] done Using IPv4 address: 192.168.122.222 Using TFTP server: 192.168.122.1 Bootfile name: 'pxelinux.0' Receiving data: 5882 KBytes TFTP: Received pxelinux.0 (5882 KBytes) Network loading done, starting kernel... Uncompressing Linux... Ok, booting the kernel. [ 0.372458] Linux version 4.13.0-16-generic (buildd@z13-010) (gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu2)) #19-Ubuntu SMP Wed Oct 11 18:33:05 UTC 2017 (Ubuntu 4.13.0-16.19-generic 4.13.4) [...] [ 0.522168] Write protected read-only-after-init data: 52k waiting for pxe config from DHCP (max 600 sec) udhcpc: started, v1.27.1 DHCP response deconfig: interface: eth0 udhcpc: sending discover udhcpc: sending select for 192.168.122.222 udhcpc: lease of 192.168.122.222 obtained, lease time 3600 DHCP response bound: interface: eth0 192.168.122.222 255.255.255.0 router: 192.168.122.1 domain: 192.168.122.1 tftp: 192.168.122.1 fetching config pxelinux.cfg/e2aee7f3-cc42-43e9-823f-c1973040984b from 192.168.122.1 Now classic/other PXE would do that without the blob in between and that is the test for the new code. If it does not find the (or didn't even get specified one) blob it will fall back to the - now available - PXE boot capabilities in the ROM. Also not bad to see if it woudl e.g. crash if a non existing blob is requested :-) # make unavailable $ mv /srv/tftp/pxelinux.0 /srv/tftp/pxelinux.0.notavail # boot again $ virsh start --console netboot Domain netboot started Connected to domain netboot Escape character is ^] done Using IPv4 address: 192.168.122.222 Using TFTP server: 192.168.122.1 Bootfile name: 'pxelinux.0' Receiving data: 0 KBytes TFTP error: file not found: pxelinux.0 Trying pxelinux.cfg files... Receiving data: 0 KBytes TFTP: Received pxelinux.cfg/default (113 bytes) Loading pxelinux.cfg entry 'ubuntu' Receiving data: 4292 KBytes TFTP: Received vmlinuz-4.15.0-33-generic (4292 KBytes) Receiving data: 16763 KBytes TFTP: Received initrd.img-4.15.0-33-generic (16763 KBytes) Network loading done, starting kernel... [ 0.433716] Linux version 4.15.0-33-generic (buildd@bos02-s390x-010) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #36-Ubuntu SMP Wed Aug 15 13:42:17 UTC 2018 (Ubuntu 4.15.0-33.36-generic 4.15.18) This now is directly my "target" configuration out of $ cat /srv/tftp/pxelinux.cfg/default label ubuntu kernel vmlinuz-4.15.0-33-generic initrd initrd.img-4.15.0-33-generic append root=/dev/vda1 No blob needed anymore, but in case it is used still working. I think this is just what we wanted. Thanks also to Andres for the MAAS KVM Pod verification. Setting verified [1]: http://ubuntu-on-big-iron.blogspot.com/2017/12/pxe-netboot-kvm-s390x.html