Open dag-erling opened 1 year ago
This PR is essential to make Linux VMs work in FreeBSD 13.2-RELEASE-p3 with edk2-bhyve-g202308. Without this, my Linux VMs would fail to finish booting entirely.
fwiw, I've applied this patch manually and my linux VM still refuses to start. The configuration is:
loader="uefi"
graphics="no"
xhci_mouse="no"
cpu=1
memory="512M"
(edited out disk and networking)
when trying to start it I get:
vm exit[0]
reason SVM
rip 0x000000001fb54b60
inst_length 2
exitcode 0x7b
exitinfo1 0x511021d
exitinfo2 0x1fb54b62
Probably the same problem here (1.5.0/uefi/13.2-RELEASE-p8). It worked until recent update to 13.2-RELEASE-p8. Now machine starts for a moment then exits with error 4 or 134. debug="yes"
does not give anything more in the log.
Unless I've confused myself it was adding bhyve_options="-A"
that fixed my Ubuntu guest. I'm installing an Ubuntu 24.04 guest. If I do it in UEFI mode with VNC, then the Ubuntu installer crashes usually around the mirror test. It does not crash in grub mode and it also does not crash in UEFI mode when adding the -A
. Thanks @dag-erling for this hint and thanks @vermaden (https://vermaden.wordpress.com/2023/08/18/freebsd-bhyve-virtualization/) for pointing me here!
Currently,
vm::run
initializes_opts
to-AHP
, then, in the UEFI case callsvm::uefi
which, instead of appending to_opts
, sets it to-Hwl bootrom,...
. This means UEFI VMs are started without-A
, which was never a good idea but which causes them to fail to boot with recent versions ofedk2-bhyve
(see https://bugs.freebsd.org/273560).The main purpose of this PR is to change
vm::uefi
to append to_opts
so-A
is not lost and UEFI VMs boot correctly.In addition, it moves the
-w
option from UEFI-only to default, and deduplicates the-H
option.