Comment 8 for bug 1790901

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

You are the tftp/pxelinux experts more than I am.
I follow our tftp and libvirt setup as in [1]

But instead of building a complex single purpose pxelinux.0

All the new "code" youneed is actually inside that boot image.
So no need to build huge things, instead replace
  /usr/share/qemu/s390-netboot.img
with the one from upstream
  https://git.qemu.org/?p=qemu.git;a=blob_plain;f=pc-bios/s390-netboot.img;hb=HEAD

This works Bionics Qemu well.

Now I can now just use kernel/initrd and pxeconfig as "usual"
  $ sudo cp /boot/vmlinuz-4.15.0-33-generic /srv/tftp/
  $ sudo cp /boot/initrd.img-4.15.0-33-generic /srv/tftp/

Then I put this in my config for pxelinux:
$ cat pxelinux.cfg/default
label ubuntu
   kernel vmlinuz-4.15.0-33-generic
   initrd initrd.img-4.15.0-33-generic
   append root=/dev/vda1

Starting the guest from that:

$ virsh start netboot --console
Domain netboot started
Connected to domain netboot
Escape character is ^]
  Using MAC address: 52:54:00:1e:b5:2a
  Requesting information via DHCP: 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.425566] 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)
[ 0.425572] setup.289988: Linux is running under KVM in 64-bit mode

You know much better than I do how to control the PXE details.
I think this gets you going without massive PPAs/Backport needs at all right?

I will set "invalid" (as no source change is needed) and modify the title a bit to match the solution.

I'll keep my test env up for the sprint so that we can try more if you need.
But actually I think you can start as-is by providing that extra ROM just as you would provide any other updated data file to the target you want to deploy to.

[1]: http://ubuntu-on-big-iron.blogspot.com/2017/12/pxe-netboot-kvm-s390x.html