UEFI trouble with OVMF under Xen - nothing boots
Marcin Cieslak
saper at saper.info
Sat Apr 1 15:10:31 UTC 2017
This is a follow up to the UEFI Windows boot problems
reported after 4.7 got imported:
https://lists.freebsd.org/pipermail/freebsd-xen/2016-June/002745.html
I am using FreeBSD 12.0-CURRENT #6 r314708: Mon Mar 6 13:09:31 UTC 2017 root at o.saper.info:/usr/obj/usr/src/sys/GENERIC amd64 as dom0
In the 4.5 times I could install and boot Windows 2016 Technical Preview 5 without
major problems. In fact, I started using this as my default Windows
environment - it was working very well and very fast.
Since 4.7 upgrade I never got Tianocore OVMF to boot - it just stops
there listing available devices:
https://marcincieslak.com/tmp/ovmf/ovmf-no-boot.png
I can browse the FS0 and there is BootX64.efi there
https://marcincieslak.com/tmp/ovmf/ovmf-files.png
(not sure if "Unsupported" message is normal, never tried this
in the days Windows was working).
The zvol contains the same Windows that used to start properly, so
I suspect the filesystems there did not get corrupt. Trying
to boot the installation ISO image ends up with a same thing.
I have tried old and new ovmf images:
https://marcincieslak.com/tmp/ovmf/ovmf.bin
can be taken from http://efi.akeo.ie/OVMF/
https://marcincieslak.com/tmp/ovmf/ovmf-new.bin
extracted from https://www.kraxel.org/repos/jenkins/edk2/edk2.git-0-20170328.b2579.g2ed235f.x86_64.rpm
tried 32bit and 64bit versions, both start with the same effect.
To reproduce it, modify xen-tools Makefile to add two flags to CONFIGURE_ARGS:
CONFIGURE_ARGS+= --with-extra-qemuu-configure-args="${QEMU_ARGS}" \
--with-system-seabios=${LOCALBASE}/share/seabios/bios.bin \
--enable-ovmf \
--with-system-ovmf=${LOCALBASE}/share/ovmf/ovmf.bin
Complete Makefile I am using is at
https://marcincieslak.com/tmp/ovmf/Makefile
Domain configuration file:
https://marcincieslak.com/tmp/ovmf/windows-run.cfg
builder = "hvm"
memory = 4096
vcpus = 2
name = "Windows2016"
disk = [
'/dev/zvol/zroot/windows0,raw,hda,w',
# '/dev/zvol/zroot/vs2013,raw,hdb,w',
# '/root/win/install.iso,raw,hdc:cdrom,r'
]
boot = "c" # Boot to hard disk image
vnc = 2
#vnclisten = "0.0.0.0"
usbdevice = 'tablet'
on_poweroff = 'destroy'
on_reboot = 'restart'
#on_crash = 'restart'
on_crash = 'destroy'
acpi = 1
bios = 'ovmf'
vif = [ 'bridge=bridge0,mac=00:16:3e:5d:0d:48' ]
videoram=16
vga = "stdvga"
It does not matter if I use "hda" or "xvda"
The qemu driver domain running looks like this:
https://marcincieslak.com/tmp/ovmf/qemu-process
/usr/local/lib/xen/bin/qemu-system-i386 \
-xen-domid 30 \
-chardev socket,id=libxl-cmd,path=/var/run/xen/qmp-libxl-30,server,nowait \
-no-shutdown \
-mon chardev=libxl-cmd,mode=control \
-chardev socket,id=libxenstat-cmd,path=/var/run/xen/qmp-libxenstat-30,server,nowait \
-mon chardev=libxenstat-cmd,mode=control \
-nodefaults -no-user-config \
-name Windows2016 -vnc 127.0.0.1:0,to=99 \
-display none -device VGA,vgamem_mb=16 \
-boot order=c \
-usb -usbdevice tablet -smp 2,maxcpus=2 \
-device rtl8139,id=nic0,netdev=net0,mac=00:16:3e:5d:0d:48 \
-netdev type=tap,id=net0,ifname=xnb30.0-emu,script=no,downscript=no \
-machine xenfv -m 4080 \
-drive file=/dev/zvol/zroot/windows0,if=ide,index=0,media=disk,format=raw,cache=writeback
Nothing special in the "xl dmesg", Xen is just starting OVMF.
I don't know even where to start to troubleshoot this...
Anyway to get to the OVMF debug output, maybe?
I've tried some other UEFI non-Windows installers and all images behave
the same: no surprise, as no Windows code had a chance to run yet.
Marcin
More information about the freebsd-xen
mailing list