[SOLVED] [macOS] No internet access when starting VM from `virt-manager`
User8395 opened this issue · 7 comments
Solution
Remove the NIC hardware from the libvirt VM and add the following lines to the end of the qemu:commandline tag
<qemu:arg value="-netdev"/>
<qemu:arg value="user,id=net0"/>
<qemu:arg value="-device"/>
<qemu:arg value="vmxnet3,netdev=net0,id=net0,mac=00:16:cb:00:40:24,bus=pcie.0,addr=9"/>
You may have to edit the XML inside the ultimate-macOS-KVM folder and redefine it.
Describe the Issue
Please describe your issue relating to macOS running under ULTMOS.
My VM cant connect to the internet if I start it from a libvirt client. It can connect if I start it with boot.sh.
Steps to Reproduce
Describe how to accurately reproduce / exhibit the issue.
- Convert boot.sh to XML
- Import XML to libvirt
- Start VM from libvirt
- Wait until boot finishes
- Run
ping google.com
from the terminal - Expect the
Request timed out
's from ping
Expectation
What did you expect to happen instead?
I expected the VM to get internet access and show ping replies from google.com
Screenshots
If you can, please add some screenshots showing the issue.
N/A
System Information
Please enter your host system details to help contextualise the issue.
OS: Manjaro Linux 23.1.0 Vulcan
Kernel: Linux iAintShowinMyHostname 6.5.13-6-MANJARO #1 SMP PREEMPT_DYNAMIC Mon Dec 18 03:57:17 UTC 2023 x86_64 GNU/Linux
Processor: Intel Core i7-1270P 12th Gen
Memory: 32GB integrated, 30GB swap
Graphics: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (not used with ULTMOS)
macOS
Please provide details of your macOS guest.
Version: Ventura
ULTMOS
Please provide details of your ULTMOS repo setup.
Version: 0.10.5
Branch: main
AutoPilot (if applicable)
If your issue occurs during or after running AutoPilot (either with AutoPilot itself or a file generated by it), please enter the relevant info.
Generated Script File:
#!/usr/bin/env bash
# shellcheck disable=SC2054
#
# APC-RUN_19-12-2023_15-51-16
#
# THIS FILE WAS GENERATED USING AUTOPILOT.
#
# To boot this script, run the following command:
# $ ./boot.sh
#
#
# boot.sh
# Created by Coopydood as part of the ultimate-macOS-KVM project.
#
# Profile: https://github.com/Coopydood
# Repo: https://github.com/Coopydood/ultimate-macOS-KVM
#
# Adapted from OSX-KVM among others.
# Greetz to TheNickDude, Dortania, khoalia, foxlet, and other contributors :]
#
ID="macOS"
NAME="macOS 13"
FILE="boot.sh"
ULTMOS=0.10.5
IGNORE_FILE=0
REQUIRES_SUDO=0
VFIO_PTA=0
VFIO_DEVICES=0
GEN_EPOCH=1703019076
FEATURE_LEVEL=6
VERBOSE=1
DISCORD_RPC=0
SCREEN_RES="1920x1080"
ALLOCATED_RAM="10G"
CPU_SOCKETS="1"
CPU_CORES="4"
CPU_THREADS="32"
CPU_MODEL="Haswell-noTSX"
CPU_FEATURE_ARGS="+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check"
REPO_PATH="/home/user8395/ultimate-macOS-KVM"
OVMF_DIR="/home/user8395/ultimate-macOS-KVM/ovmf"
VFIO_ID_0="$USR_VFIO_ID_0"
VFIO_ID_1="$USR_VFIO_ID_1"
VFIO_ROM="$USR_VFIO_ROM"
USB_DEVICES="$USR_USB_DEVICES"
NETWORK_DEVICE="vmxnet3"
MAC_ADDRESS="00:16:cb:00:14:28"
OS_ID="Ventura"
HDD_PATH="$REPO_PATH/HDD.qcow2"
DISK_TYPE="NVMe"
# You should not have to touch anything below this line, especially if you
# don't really know what you're doing. It'll probably break something.
args=(
-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
-enable-kvm -m "$ALLOCATED_RAM" -cpu "$CPU_MODEL",kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,"$CPU_FEATURE_ARGS"
-machine q35
-usb -device usb-kbd -device usb-tablet #USB_DEV
-smp "$CPU_THREADS",cores="$CPU_CORES",sockets="$CPU_SOCKETS"
-device usb-ehci,id=ehci
-device qemu-xhci,id=xhci
-device pcie-root-port,bus=pcie.0,slot=1,x-speed=16,x-width=32
#VFIO_DEV_BEGIN
#VFIO_DEV_END
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
-drive if=pflash,format=raw,readonly=on,file="$OVMF_DIR/OVMF_CODE.fd"
-drive if=pflash,format=raw,file="$OVMF_DIR/OVMF_VARS.fd"
-smbios type=2
-device ich9-intel-hda -device hda-duplex
-device ich9-ahci,id=sata
-drive id=OpenCore,if=none,format=qcow2,file="$REPO_PATH/boot/OpenCore.qcow2"
-drive id=HDD,if=none,file="$HDD_PATH",format=qcow2
-device ide-hd,bus=sata.2,drive=OpenCore
-device nvme,drive=HDD,serial=ULTMOS
############## REMOVE THESE LINES AFTER MACOS INSTALLATION ###############
-drive id=BaseSystem,if=none,file="$REPO_PATH/BaseSystem.img",format=raw
-device ide-hd,bus=sata.4,drive=BaseSystem
##########################################################################
-netdev user,id=net0 -device "$NETWORK_DEVICE",netdev=net0,id=net0,mac="$MAC_ADDRESS"
-device qxl-vga,vgamem_mb=128,vram_size_mb=128
-monitor stdio
#-display none
#-vga qxl
################ UNCOMMENT IF YOU WANT TO USE VNC MONITOR ################
#-vnc 0.0.0.0:1,password=on -k en-us
##########################################################################
)
while getopts d: flag
do
case "${flag}" in
d) DISCORD_RPC=${OPTARG};;
esac
done
if [ $VERBOSE = 1 ]
then
echo
echo \ \ \──────────────────────────────────────────────
echo \ \ \ \ \ $NAME
echo
echo \ \ \ \ \ $FILE
echo \ \ \ \ \ Built with ULTMOS v$ULTMOS
echo \ \ \ \ \ Using $CPU_MODEL CPU model
if [ $REQUIRES_SUDO = 1 ]
then
echo \ \ \ \ \ Superuser privileges enabled
fi
if [ $VFIO_PTA = 1 ]
then
echo \ \ \ \ \ Passthrough enabled
else
echo \ \ \ \ \ Passthrough disabled
fi
if [ $DISCORD_RPC = 1 ]
then
echo \ \ \ \ \ Discord RPC enabled
else
echo \ \ \ \ \ Discord RPC disabled
fi
echo \ \ \──────────────────────────────────────────────
echo
fi
if [ $DISCORD_RPC = 1 ]
then
"$REPO_PATH/scripts/drpc.py" --os "$OS_ID" --pt $VFIO_DEVICES --wd "$REPO_PATH" &
fi
qemu-system-x86_64 "${args[@]}"
if [ $DISCORD_RPC = 1 ]
then
pkill -f drpc.py
fi
Generated XML File (if applicable):
<!--
APC-RUN_19-12-2023_15-55-54
THIS FILE WAS GENERATED USING AUTOPILOT.
To be used with virsh / virt-manager.
boot.xml
Created by Coopydood as part of the ultimate-macOS-KVM project.
Profile: https://github.com/Coopydood
Repo: https://github.com/Coopydood/ultimate-macOS-KVM
-->
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
<name>ultmos-13</name>
<title>macOS Ventura (ULTMOS)</title>
<description> macOS Ventura
Converted from boot.sh
This virtual machine was created using ultimate-macOS-KVM, a project by Coopydood.
Visit https://github.com/Coopydood/ultimate-macOS-KVM for help and support, or provide some feedback!
DEBUG
ULTMOS: v0.10.5
XML: boot.xml
AP: boot.sh
APFLOW: No
AUTO: Yes
USEBLOBS: Yes
RUNTIME: 15:55:54 19/12/2023
</description>
<uuid>07b55bf5-d32a-4265-84dd-e24fdd291190</uuid>
<memory unit="KiB">10485760</memory>
<currentMemory unit="KiB">10485760</currentMemory>
<vcpu placement="static">32</vcpu>
<os>
<type arch="x86_64" machine="pc-q35-4.2">hvm</type>
<loader readonly="yes" type="pflash">/home/user8395/ultimate-macOS-KVM/ovmf/OVMF_CODE.fd</loader>
<nvram>/home/user8395/ultimate-macOS-KVM/ovmf/OVMF_VARS.fd</nvram>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" cores="4" threads="8"/>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/home/user8395/ultimate-macOS-KVM/boot/OpenCore.qcow2"/>
<target dev="sda" bus="sata"/>
<address type="drive" controller="0" bus="0" target="0" unit="0"/>
</disk>
<!-- <disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/home/user8395/ultimate-macOS-KVM/HDD.qcow2"/>
<target dev="sdb" bus="sata" rotation_rate="7200"/>
<address type="drive" controller="0" bus="0" target="0" unit="1"/>
</disk> -->
<!--############# REMOVE THESE LINES AFTER MACOS INSTALLATION #############-->
<disk type="file" device="disk"> <!-- BASESYSTEM HEADER -->
<driver name="qemu" type="raw"/>
<source file="/home/user8395/ultimate-macOS-KVM/BaseSystem.img"/>
<target dev="sdc" bus="sata"/>
<address type="drive" controller="0" bus="0" target="0" unit="2"/>
</disk> <!-- BASESYSTEM FOOTER -->
<!--#######################################################################-->
<controller type="sata" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
</controller>
<controller type="pci" index="0" model="pcie-root"/>
<controller type="pci" index="1" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="1" port="0x8"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="2" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="2" port="0x9"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
</controller>
<controller type="pci" index="3" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="3" port="0xa"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
</controller>
<controller type="pci" index="4" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="4" port="0xb"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x3"/>
</controller>
<controller type="pci" index="5" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="5" port="0xc"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x4"/>
</controller>
<controller type="pci" index="6" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="6" port="0xd"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x5"/>
</controller>
<controller type="pci" index="7" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="7" port="0xe"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x6"/>
</controller>
<controller type="pci" index="8" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="8" port="0xf"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x7"/>
</controller>
<controller type="pci" index="9" model="pcie-to-pci-bridge">
<model name="pcie-pci-bridge"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</controller>
<controller type="usb" index="0" model="ich9-ehci1">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1d" function="0x7"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci1">
<master startport="0"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x1d" function="0x0" multifunction="on"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci2">
<master startport="2"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x1d" function="0x1"/>
</controller>
<controller type="usb" index="0" model="ich9-uhci3">
<master startport="4"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x1d" function="0x2"/>
</controller>
<interface type="network">
<mac address="00:16:cb:00:14:28"/>
<source network="default"/>
<model type="vmxnet3"/>
<address type="pci" domain="0x0000" bus="0x09" slot="0x02" function="0x0"/>
</interface>
<serial type="pty">
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
</serial>
<console type="pty">
<target type="serial" port="0"/>
</console>
<input type="mouse" bus="ps2"/>
<input type="keyboard" bus="ps2"/>
<input type="keyboard" bus="usb">
<address type="usb" bus="0" port="3"/>
</input>
<input type="mouse" bus="usb">
<address type="usb" bus="0" port="4"/>
</input>
<graphics type="spice">
<listen type="none"/>
</graphics>
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<audio id="1" type="none"/>
<video>
<model type="vga" vram="16384" heads="1" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x09" slot="0x01" function="0x0"/>
</video>
<!-- VFIO-PCI HEADER -->
<!--<watchdog model="itco" action="reset"/> -->
<memballoon model="none"/>
</devices>
<qemu:commandline>
<qemu:arg value="-global"/>
<qemu:arg value="ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off"/>
<qemu:arg value="-device"/>
<qemu:arg value="isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"/>
<qemu:arg value="-smbios"/>
<qemu:arg value="type=2"/>
<qemu:arg value="-cpu"/>
<qemu:arg value="Haswell-noTSX,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check"/>
<qemu:arg value="-global"/>
<qemu:arg value="nec-usb-xhci.msi=off"/>
<qemu:arg value="-drive"/>
<qemu:arg value="file=/home/user8395/ultimate-macOS-KVM/HDD.qcow2,format=raw,if=none,id=HDD"/>
<qemu:arg value="-device"/>
<qemu:arg value="nvme,drive=HDD,serial=ULTMOS,bus=pcie.0,addr=10"/>
</qemu:commandline>
</domain>
Generated Log File:
ULTMOS AUTOPILOT LOG 19-12-2023 15:48:46
──────────────────────────────────────────────────────────────
[15:48:46.062][ ✦ ]: ULTMOS v0.10.5
[15:48:46.062][ ✦ ]:
[15:48:46.062][ ✦ ]: Name : AutoPilot
[15:48:46.062][ ✦ ]: File : autopilot.py
[15:48:46.062][ ✦ ]: Identifier : APC
[15:48:46.062][ ✦ ]: Vendor : Coopydood
[15:48:46.062][ ✦ ]:
[15:48:46.062][ ✦ ]: Logging to ./logs/APC_RUN_19-12-2023_15-48-46.log
[15:48:46.062][ ⚠ ]: Unable to initialise Discord rich presence module, disabling for this session
[15:48:46.062][ ✦ ]: Displaying menu
[15:48:46.063][ ✔ ]: Menu displayed
[15:48:46.063][ ➜ ]: Waiting on user input
[15:48:46.881][ ✔ ]: User input received
[15:48:46.881][ ✔ ]: ───────────────── STARTING INTERROGATION SEQUENCE ─────────────────
[15:48:46.881][ ✦ ]: FEATURE LEVEL 6
[15:48:46.881][ ✔ ]: Stage 1 sequence initiated
[15:48:46.881][ ✔ ]: Removing stale blobs
[15:48:47.745][ ✔ ]: Using default value of boot.sh
[15:48:47.745][ ✔ ]: Stage 2 sequence initiated
[15:48:48.388][ ✔ ]: Using default value of 1015
[15:48:48.388][ ✔ ]: Stage 3 sequence initiated
[15:48:54.703][ ✔ ]: Stage 3 sequence initiated
[15:48:54.703][ ✦ ]: Custom value requested, setting up
[15:48:55.660][ ✔ ]: Custom value was set to 4
[15:48:55.661][ ✔ ]: Stage 4 sequence initiated
[15:48:58.626][ ✔ ]: Stage 4 sequence initiated
[15:48:58.627][ ✦ ]: Custom value requested, setting up
EDIT: switched to Monterey
EDIT 2: switching to Monterey just causes panics now
Welcome to ULTMOS repo! For comments and edits, please use this comment function - it's for everyone's convenience.
What's the output of
sudo virsh net-list
$ sudo virsh net-list
Enter Password or Place finger on fingerprint reader:
Name State Autostart Persistent
--------------------------------------------
default active no yes
Try removing the "NIC" entry in virt-manager and adding this to the bottom of the domain XML:
<qemu:arg value="-netdev"/>
<qemu:arg value="user,id=net0"/>
<qemu:arg value="-device"/>
<qemu:arg value="vmxnet3,netdev=net0,id=net0,mac=00:16:cb:00:40:24,bus=pcie.0,addr=9"/>
This is basically using the network config from your original script as you said that worked.
Can't understand your issue here. If you're about the resolution, that can be changed by copying/replacing the OVMF file in /ovmf
with the preferred resolution from the /resources/ovmf
folder.
But the resolution is good in QEMU
Ill just close the issue for now