Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

running NetBSD under UTM (with QEMU) on macOS....



(I'm not sure current-users is the best place to discuss this, but I
don't know for sure where would be better -- it is current I'm running)

So I've got a beefy Mac Pro desktop and I've been wanting to run NetBSD
VMs in it.  For years I used to run VirtualBox for this, but in recent
times it is absolutely hopeless at allowing NetBSD VMs to keep good
time.

So since macOS now has its own hypervisor (Hypervisor.framework, and now
since macOS 12 a Virtualization.framework too) I wanted to try it.

There's a package called UTM (https://github.com/utmapp/UTM) that helps
manage VMs using QEMU with hardware acceleration via the macOS
hypervisor.

I set up a test VM with UTM sometime last year, but the networking
seemed a little unstable.  I'm not sure that's resolved yet.  It seems
like it might be a macOS problem with the underlying bridge disappearing
or changing.  The VM still thinks the interface is up, but packets from
either side stop being delivered anywhere.

Anyway, yesterday I installed a new VM with a new build of -current and
I tried a couple of different configuration options vs. the year-old
build I had been testing before.

One change was to try using a SCSI emulated device for the primary disk.

This did not work well -- it was fairly fast, but often seemed to hang,
causing time outs and bus resets.  I was unable to get very far in the
installation and gave up.

So I reverted to IDE, which has been reliable, but seems about 1/3 the
speed of the SCSI emulation.

So, my main question is with the device emulations available in QEMU,
which do people have the most luck and performance with?


For the curious here's a dmesg.boot:

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
    2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
    2024, 2025
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 10.99.12 (GENERIC) #0: Tue Feb 25 18:15:43 PST 2025
        woods@very.local:/Users/woods/build/woods/very.local/trunk-x86_64-amd64-obj/Volumes/work/woods/g-NetBSD-src/sys/arch/amd64/compile/GENERIC
total memory = 8188 MB
avail memory = 7890 MB
timecounter: Timecounters tick every 10.000 msec
Kernelized RAIDframe activated
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
efi: systbl at pa bf9ee018
mainbus0 (root)
ACPI: RSDP 0x00000000BFB7E014 000024 (v02 BOCHS )
ACPI: XSDT 0x00000000BFB7D0E8 000044 (v01 BOCHS  BXPC     00000001      01000013)
ACPI: FACP 0x00000000BFB7A000 000074 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
ACPI: DSDT 0x00000000BFB7B000 001BE6 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
ACPI: FACS 0x00000000BFBDD000 000040
ACPI: APIC 0x00000000BFB79000 0000B0 (v03 BOCHS  BXPC     00000001 BXPC 00000001)
ACPI: WAET 0x00000000BFB78000 000028 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
ACPI: BGRT 0x00000000BFB77000 000038 (v01 INTEL  EDK2     00000002      01000013)
ACPI: 1 ACPI AML tables successfully acquired and loaded
ioapic0 at mainbus0 apid 0: pa 0xfec00000, version 0x20, 24 pins
cpu0 at mainbus0 apid 0
cpu0: Use lfence to serialize rdtsc
cpu0: Intel Core Processor (Skylake), id 0x506e3
cpu0: node 0, package 0, core 0, smt 0
cpu1 at mainbus0 apid 1
cpu1: Intel Core Processor (Skylake), id 0x506e3
cpu1: node 0, package 0, core 1, smt 0
cpu2 at mainbus0 apid 2
cpu2: Intel Core Processor (Skylake), id 0x506e3
cpu2: node 0, package 0, core 2, smt 0
cpu3 at mainbus0 apid 3
cpu3: Intel Core Processor (Skylake), id 0x506e3
cpu3: node 0, package 0, core 3, smt 0
cpu4 at mainbus0 apid 4
cpu4: Intel Core Processor (Skylake), id 0x506e3
cpu4: node 0, package 0, core 4, smt 0
cpu5 at mainbus0 apid 5
cpu5: Intel Core Processor (Skylake), id 0x506e3
cpu5: node 0, package 0, core 5, smt 0
cpu6 at mainbus0 apid 6
cpu6: Intel Core Processor (Skylake), id 0x506e3
cpu6: node 0, package 0, core 6, smt 0
cpu7 at mainbus0 apid 7
cpu7: Intel Core Processor (Skylake), id 0x506e3
cpu7: node 0, package 0, core 7, smt 0
acpi0 at mainbus0: Intel ACPICA 20241212
acpi0: X/RSDT: OemId <BOCHS ,BXPC    ,00000001>, AslId <    ,01000013>
LNKS: ACPI: Found matching pin for 0.1.INTA at func 3: 10
LNKS: BIOS IRQ 10 for 0.1.INTA is invalid
LNKD: ACPI: Found matching pin for 0.1.INTD at func 2: 11
LNKD: BIOS IRQ 11 does not match initial IRQ 10
LNKB: ACPI: Found matching pin for 0.2.INTA at func 0: 10
LNKB: BIOS IRQ 10 does not match initial IRQ 11
LNKC: ACPI: Found matching pin for 0.3.INTA at func 0: 11
LNKC: BIOS IRQ 11 does not match initial IRQ 10
LNKD: ACPI: Found matching pin for 0.4.INTA at func 0: 11
LNKA: ACPI: Found matching pin for 0.5.INTA at func 0: 10
LNKA: BIOS IRQ 10 does not match initial IRQ 11
LNKB: ACPI: Found matching pin for 0.6.INTA at func 0: 10
LNKC: ACPI: Found matching pin for 0.7.INTA at func 0: 11
acpi0: SCI interrupting at int 9
acpi0: fixed power button present
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
qemufwcfg0 at acpi0 (FWCF, QEMU0002): io 0x510-0x51b
qemufwcfg0: <QEMU>
fdc0 at acpi0 (FDC0, PNP0700): io 0x3f2-0x3f5,0x3f7 irq 6 drq 2
ACPI: Enabled 2 GPEs in block 00 to 0F
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: Intel 82441FX (PMC) PCI and Memory Controller (rev. 0x02)
pcib0 at pci0 dev 1 function 0: Intel 82371SB (PIIX3) PCI-ISA Bridge (rev. 0x00)
piixide0 at pci0 dev 1 function 1: Intel 82371SB IDE Interface (PIIX3) (rev. 0x00)
piixide0: bus-master DMA support present
piixide0: primary channel wired to compatibility mode
piixide0: primary channel interrupting at ioapic0 pin 14
atabus0 at piixide0 channel 0
piixide0: secondary channel wired to compatibility mode
piixide0: secondary channel ignored (disabled)
uhci0 at pci0 dev 1 function 2: Intel 82371SB (PIIX3) USB Host Controller (rev. 0x01)
uhci0: interrupting at ioapic0 pin 11
usb0 at uhci0: USB revision 1.0
piixpm0 at pci0 dev 1 function 3: Intel 82371AB (PIIX4) Power Management Controller (rev. 0x03)
timecounter: Timecounter "piixpm0" frequency 3579545 Hz quality 1000
piixpm0: 24-bit timer
piixpm0: interrupting at ioapic0 pin 9
iic0 at piixpm0 port 0: I2C bus
wm0 at pci0 dev 2 function 0, 64-bit DMA: Intel i82540EM 1000BASE-T Ethernet (rev. 0x03)
wm0: interrupting at ioapic0 pin 10
wm0: 32-bit 33MHz PCI bus
wm0: 64 words (6 address bits) MicroWire EEPROM
wm0: RX packet buffer size: 48KB
wm0: Ethernet address ca:33:23:2b:e6:0b
wm0: 0x200002<LOCK_EECD,WOL>
makphy0 at wm0 phy 1: Marvell 88E1011 Gigabit PHY, rev. 0
makphy0: Failed to access EADR. Are you an emulator?
makphy0: Failed to read EXTSR. Are you an emulator?. Regard as 1000BASE-T.
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
genfb0 at pci0 dev 3 function 0: Qumranet Virtio (rev. 0x01)
genfb0: framebuffer at 0xc0000000, size 1024x768, depth 32, stride 4096
genfb0: shadow framebuffer enabled, size 3072 KB
wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at genfb0 not configured
auich0 at pci0 dev 4 function 0: i82801AA (ICH) AC-97 Audio
auich0: interrupting at ioapic0 pin 11
auich0: ac97: SigmaTel STAC9700 codec; no 3D stereo
auich0: ac97: ext id 0x809<AC97_23,VRM,VRA>
xhci0 at pci0 dev 5 function 0: NEC Renesas Electronics USB 3.0 Host Controller (rev. 0x03)
xhci0: 64-bit DMA
xhci0: interrupting at msix0 vec 0
xhci0: xHCI version 0.0 not known to be supported
usb1 at xhci0: USB revision 3.0
usb2 at xhci0: USB revision 2.0
virtio0 at pci0 dev 6 function 0
virtio0: console device (id 3, rev. 0x00)
viocon0 at virtio0: features: 0x10000000<INDIRECT_DESC>
virtio0: allocated 8192 byte for virtqueue 0 for p0rx, size 128
virtio0: allocated 8192 byte for virtqueue 1 for p0tx, size 128
virtio0: interrupting at ioapic0 pin 10
virtio1 at pci0 dev 7 function 0
virtio1: entropy device (id 4, rev. 0x00)
viornd0 at virtio1: features: 0x10000000<INDIRECT_DESC>
virtio1: allocated 8192 byte for virtqueue 0 for Entropy request, size 8
virtio1: interrupting at ioapic0 pin 11
isa0 at pcib0
attimer0 at isa0 port 0x40-0x43
pcppi0 at isa0 port 0x61
spkr0 at pcppi0: PC Speaker
wsbell at spkr0 not configured
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
attimer0: attached to pcppi0
acpicpu0 at cpu0: ACPI CPU
acpicpu0: C1: HLT, lat   0 us, pow     0 mW
acpicpu1 at cpu1: ACPI CPU
acpicpu2 at cpu2: ACPI CPU
acpicpu3 at cpu3: ACPI CPU
acpicpu4 at cpu4: ACPI CPU
acpicpu5 at cpu5: ACPI CPU
acpicpu6 at cpu6: ACPI CPU
acpicpu7 at cpu7: ACPI CPU
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
auich0: measured ac97 link rate at 46544 Hz, will use 48000 Hz
audio0 at auich0: playback, capture, full duplex, independent
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for playback
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for recording
spkr1 at audio0: PC Speaker (synthesized)
wsbell at spkr1 not configured
uhub0 at usb1: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0
uhub0: 4 ports with 4 removable, self powered
uhub1 at usb2: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0
uhub1: 4 ports with 4 removable, self powered
uhub2 at usb0: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
IPsec: Initialized Security Association Processing.
uhub3 at uhub1 port 4: QEMU (0x0409) QEMU USB Hub (0x55aa), class 9/0, rev 1.10/1.01, addr 1
uhub3: 8 ports with 8 removable, self powered
umass0 at uhub3 port 1 configuration 1 interface 0
umass0: QEMU (0x46f4) QEMU USB HARDDRIVE (0x0001), rev 2.00/0.00, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <QEMU, QEMU HARDDISK, 2.5+> disk removable
sd0: drive offline
uhub3: autoconfiguration error: illegal enable change, port 1
uhidev0 at uhub2 port 1 configuration 1 interface 0
uhidev0: QEMU (0x0627) QEMU USB Tablet (0x0001), rev 2.00/0.00, addr 2, iclass 3/0
ums0 at uhidev0: 3 buttons and Z dir
wsmouse0 at ums0 mux 0
uhub4 at uhub2 port 2: QEMU (0x0409) QEMU USB Hub (0x55aa), class 9/0, rev 1.10/1.01, addr 3
uhub4: 8 ports with 8 removable, self powered
wd0 at atabus0 drive 0
wd0: <QEMU HARDDISK>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 120 GB, 249660 cyl, 16 head, 63 sec, 512 bytes/sect x 251658240 sectors
wd0: GPT GUID: 5af8ef39-4a9e-482a-94a0-80c8f8fb1b89
dk0 at wd0: "13f031d1-cbfc-4771-ad2d-d40bb404bb86", 262144 blocks at 64, type: msdos
dk1 at wd0: "45659a4a-c7d7-4ae7-afd8-d8aef0165c53", 56366976 blocks at 262208, type: ffs
dk2 at wd0: "ea477db9-63b1-4c71-a573-20d512678ef1", 16771072 blocks at 56629184, type: swap
dk3 at wd0: "8a6d4a48-45a1-446f-9eeb-f62948a16781", 10485760 blocks at 73400256, type: ffs
dk4 at wd0: "119b0881-f6ae-4e23-b400-3427ccb1cabe", 125829120 blocks at 83886016, type: ffs
dk5 at wd0: "77305030-238e-4b04-9e2a-b19f52412a9b", 41943040 blocks at 209715136, type: ffs
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(piixide0:0:0): using PIO mode 4, DMA mode 2 (using DMA)
uhidev1 at uhub4 port 1 configuration 1 interface 0
uhidev1: QEMU (0x0627) QEMU USB Mouse (0x0001), rev 2.00/0.00, addr 4, iclass 3/1
ums1 at uhidev1: 5 buttons and Z dir
wsmouse1 at ums1 mux 0
uhidev2 at uhub4 port 2 configuration 1 interface 0
uhidev2: QEMU (0x0627) QEMU USB Keyboard (0x0001), rev 2.00/0.00, addr 5, iclass 3/1
ukbd0 at uhidev2
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uhub4: autoconfiguration error: illegal enable change, port 1
uhub4: autoconfiguration error: illegal enable change, port 2
swwdog0: software watchdog initialized
WARNING: 3 errors while detecting hardware; check system log.
boot device: wd0
root on dk1 dumps on dk2
root file system type: ffs
kern.module.path=/stand/amd64/10.99.12/modules
wsdisplay0: screen 1 added (default, vt100 emulation)
wsdisplay0: screen 2 added (default, vt100 emulation)
wsdisplay0: screen 3 added (default, vt100 emulation)
wsdisplay0: screen 4 added (default, vt100 emulation)


--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgpsU_wFEWr8S.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index