Date: Sun, 20 Nov 2022 14:04:25 -0800 From: Mark Millard <marklmi@yahoo.com> To: freebsd-virtualization@freebsd.org Subject: A few notes about 2018 macMini macOS host's virtualization vs. trying to install FreeBSD into such a VM Message-ID: <9FC48347-C448-4773-8A21-C7B14CBD197B@yahoo.com> References: <9FC48347-C448-4773-8A21-C7B14CBD197B.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Recent experiments were done trying to use a FreeBSD .img or .iso
for the Apple macOS 13.0.1's virtualization example that provides
a EFI/ACPI loading environment. After FreeBSD's EFI loader things
did not even get to seeing any kernel output. It is a macOS 2018
macMini environment, so amd64 FreeBSD.
So I installed a Fedora 37 Server via a .iso is order to see
what it would report as the environment it sees itself as
working in for a 2018 macMini under macOS 13.0.1. Apple's
software provides 4 GiBytes for the VM normally, but I'd
changed that as an experiment, thus, the 48 GiBytes below.
(macOS does not see a loss of 48 GiBytes as of when I'd
logged into the VM: It is not an up front allocation of that
much RAM.)
# lshw -short -numeric
H/W path Device Class Description
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
system Apple Virtualization Generic =
Platform
/0 bus Motherboard
/0/2 processor Intel(R) Core(TM) i7-8700B CPU @ =
3.20GHz
/0/3 memory 48GiB System Memory
/0/3/0 memory 16GiB DIMM DRAM
/0/3/1 memory 16GiB DIMM DRAM
/0/3/2 memory 16GiB DIMM DRAM
/0/7 memory 1MiB BIOS
/0/100 bridge Apple Inc. [106B:1A05]
/0/100/1 network Virtio network device =
[1AF4:1041]
/0/100/1/0 enp0s1 network Ethernet interface
/0/100/5 storage Virtio block device [1AF4:1042]
/0/100/5/0 /dev/vda disk 68GB Virtual I/O device
/0/100/5/0/1 /dev/vda1 volume 600MiB Apple HFS+ partition
/0/100/5/0/2 /dev/vda2 volume 1023MiB EFI partition
/0/100/5/0/3 /dev/vda3 volume 62GiB LVM Physical Volume
/0/100/6 display Virtio GPU [1AF4:1050]
/0/100/6/0 generic Virtual I/O device
/0/100/7 multimedia Red Hat, Inc. [1AF4:1059]
/0/100/7/0 generic Virtual I/O device
/0/100/8 multimedia Red Hat, Inc. [1AF4:1059]
/0/100/8/0 generic Virtual I/O device
/0/100/9 communication Virtio console [1AF4:1043]
/0/100/9/0 generic Virtual I/O device
/0/100/a bus Apple Inc. [106B:1A06]
/0/100/a/0 usb1 bus xHCI Host Controller [1D6B:2]
/0/100/a/0/1 input Virtual USB Keyboard [5AC:8105]
/0/100/a/0/2 input Virtual USB Digitizer [5AC:8106]
/0/100/a/1 usb2 bus xHCI Host Controller [1D6B:3]
/0/100/1f bridge 82801IR (ICH9R) LPC Interface =
Controller [8086:2916]
/0/0 system PnP device PNP0c02
/0/1 system PnP device PNP0b00
# lspci -nn
00:00.0 Host bridge [0600]: Apple Inc. Device [106b:1a05]
00:01.0 Ethernet controller [0200]: Red Hat, Inc. Virtio network device =
[1af4:1041] (rev 01)
00:05.0 Mass storage controller [0180]: Red Hat, Inc. Virtio block =
device [1af4:1042] (rev 01)
00:06.0 Display controller [0380]: Red Hat, Inc. Virtio GPU [1af4:1050] =
(rev 01)
00:07.0 Multimedia audio controller [0401]: Red Hat, Inc. Device =
[1af4:1059] (rev 01)
00:08.0 Multimedia audio controller [0401]: Red Hat, Inc. Device =
[1af4:1059] (rev 01)
00:09.0 Communication controller [0780]: Red Hat, Inc. Virtio console =
[1af4:1043] (rev 01)
00:0a.0 USB controller [0c03]: Apple Inc. Device [106b:1a06]
00:1f.0 ISA bridge [0601]: Intel Corporation 82801IR (ICH9R) LPC =
Interface Controller [8086:2916]
This context, being Fedora 37 Server, is not using X11 or
such. I can (and do) ssh into the VM from the macMini's macOS.
This allows copy/paste, unlike the VM's own window. (My
understanding is that X11 use can be set up to do such.)
I can say that, with "quiet" removed from Fedora's kernel
command line, there is fairly early on (grabbed from
dmesg output):
[ 0.134176] fbcon: Taking over console
It appears that, prior to that, I do not see much of anything
after grub. So I expect that is when the Fedora kernel
establishes its ability to make visible output via the VM.
Based on my FreeBSD experiments, the VM's EFI/ACPI loading
context requires the VM to have the "Virtio GPU" for it to
present the FreeBSD EFI loader UI --but once the FreeBSD EFI
loader hands off to FreeBSD's kernel, it may be that "Virtio
GPU" is the only way to see a UI, even a basic console.
FreeBSD does not have a virtio_gpu driver. (GPL2 licensing
issue involved in some of the source code in the normal
implementation?)
(FreeBSD also does not have a virtio audio driver.)
However, the failure seems immediate perceptually. An example
was:
2022-11-14 20:25:26.386776-0800 =
GUIFreeBSDVirtualMachineSampleApp[9747:1406091] +[CATransaction =
synchronize] called within transaction
Virtual machine successfully started.
Virtual machine did stop with error: Internal Virtualization error. The =
virtual machine stopped unexpectedly.
For all I know, this could be happening before anything
related to video support in the FreeBSD kernel is involved.
I've no clue how to get evidence of what FreeBSD was doing
when then failure happens, given the in-VM context.
Another issue is that VZBridgedNetworkDeviceAttachment
(instead of the example's VZNATNetworkDeviceAttachment)
involves:
"Important
If you assign a VZBridgedNetworkDeviceAttachment object to this =
property, your app must have the com.apple.vm.networking entitlement. =
Without that entitlement, validation of your =
VZVirtualMachineConfiguration object fails."
( =
https://developer.apple.com/documentation/virtualization/vzbridgednetworkd=
eviceattachment )
but also:
"Note
This entitlement is restricted to developers of virtualization software. =
To request this entitlement, contact your Apple representative."
( =
https://developer.apple.com/documentation/bundleresources/entitlements/com=
_apple_vm_networking )
Overall: unless someone with an appropriate knowledge base
happens to be motivated to try to make this VM context work
for FreeBSD (with NAT), it does not seem to be a viable
alternative for any kind of use without such an effort.
I'd expect Apple silicon macOS VM's to have the same sort
of properties for aarch64 FreeBSD. But I've no access to an
Apple silicon context to check with.
=3D=3D=3D
Mark Millard
marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9FC48347-C448-4773-8A21-C7B14CBD197B>
