mirror of
https://github.com/kholia/OSX-KVM.git
synced 2026-02-04 04:53:35 +00:00
OSX-KVM - March 2021 - Batch Update 1
Changes: - Upgrade to OpenCore 0.6.7-RELEASE - Big Sur image building script updates (Nick) - See https://github.com/kholia/OSX-KVM/pull/169 for details. - Removed history to reduce repository size
This commit is contained in:
211
macOS-libvirt-Catalina.xml
Normal file
211
macOS-libvirt-Catalina.xml
Normal file
@@ -0,0 +1,211 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
||||
<!--
|
||||
macOS libvirt XML configuration.
|
||||
|
||||
Run "virt-xml-validate macOS-libvirt-Catalina.xml" to validate this file.
|
||||
|
||||
To install this file, you may place it at ~/.config/libvirt/qemu/
|
||||
and run: virsh define macOS-libvirt.xml.
|
||||
|
||||
This configuration has been tested in Ubuntu 20.04 with stock QEMU-KVM.
|
||||
|
||||
Move/rename images and loader/nvmram files and paths as you wish.
|
||||
|
||||
!!! Don't forget to replace CHANGEME with your values !!!
|
||||
|
||||
Adjust memory and currentMemory to 3145728 if you want only 3 GiB.
|
||||
|
||||
Consider removing some cpu features if your hardware lacks support.
|
||||
|
||||
Replace spice with vnc if you prefer it.
|
||||
|
||||
Current network configuration is a local bridge (192.157.12x.x).
|
||||
Change it to if you prefer a public bridge instead:
|
||||
Change interface to <interface type='user'>
|
||||
and remove the <source bridge='virbr0'/>
|
||||
Or use virt-manager to edit this line instead of virsh edit.
|
||||
|
||||
Note: Default configuration caused severe clock problems
|
||||
under Fedora 27 w/ i7-5820K. This is because Darwin uses
|
||||
tsc (time since last tick) for time, and for me did not
|
||||
fall back to rtc in the event of a clock mismatch with
|
||||
libvirt's default time source. Therefore we must explicitly
|
||||
give the clock a tsc timer for kvm to pass to the guest.
|
||||
See comments on the <kvm> and <clock> attributes.
|
||||
-->
|
||||
<name>macOS</name>
|
||||
<uuid>2aca0dd6-cec9-4717-9ab2-0b7b13d111c3</uuid>
|
||||
<title>macOS</title>
|
||||
<memory unit='KiB'>4194304</memory>
|
||||
<currentMemory unit='KiB'>4194304</currentMemory>
|
||||
<vcpu placement='static'>4</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc-q35-4.2'>hvm</type>
|
||||
<!-- We don't need patched OVMF anymore when using latest OpenCore, stock one is okay -->
|
||||
<loader readonly='yes' type='pflash'>/home/CHANGEME/OSX-KVM/OVMF_CODE.fd</loader>
|
||||
<nvram>/home/CHANGEME/OSX-KVM/OVMF_VARS-1024x768.fd</nvram>
|
||||
</os>
|
||||
<features>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
</features>
|
||||
<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' cache='writeback' io='threads'/>
|
||||
<source file='/home/CHANGEME/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2'/>
|
||||
<target dev='sda' bus='sata'/>
|
||||
<boot order='2'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2' cache='writeback' io='threads'/>
|
||||
<source file='/home/CHANGEME/OSX-KVM/mac_hdd_ng.img'/>
|
||||
<target dev='sdb' bus='sata'/>
|
||||
<boot order='1'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
|
||||
</disk>
|
||||
<disk type="file" device="disk">
|
||||
<driver name="qemu" type="raw" cache="writeback"/>
|
||||
<source file="/home/CHANGEME/OSX-KVM/BaseSystem.img"/>
|
||||
<target dev="sdc" bus="sata"/>
|
||||
<boot order="3"/>
|
||||
<address type="drive" controller="0" bus="0" target="0" unit="2"/>
|
||||
</disk>
|
||||
<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='virtio-serial' index='0'>
|
||||
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-ehci1'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
||||
<master startport='0'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci2'>
|
||||
<master startport='2'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci3'>
|
||||
<master startport='4'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
|
||||
</controller>
|
||||
<!-- Make sure you put your nic in bus 0x0 and slot 0x0y(y is numeric), this will make nic built-in and apple-store work-->
|
||||
<interface type='bridge'>
|
||||
<mac address='52:54:00:8e:e2:66'/>
|
||||
<source bridge='virbr0'/>
|
||||
<target dev='tap0'/>
|
||||
<model type='vmxnet3'/>
|
||||
</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>
|
||||
<channel type='unix'>
|
||||
<target type='virtio' name='org.qemu.guest_agent.0'/>
|
||||
<address type='virtio-serial' controller='0' bus='0' port='1'/>
|
||||
</channel>
|
||||
<graphics type='spice' autoport='yes'>
|
||||
<listen type='address'/>
|
||||
</graphics>
|
||||
<video>
|
||||
<model type="vga" vram="65536" heads="1" primary="yes"/>
|
||||
</video>
|
||||
<!-- If you wanna passthrough GPU, make sure the gfx and audio are in the same bus (like 0x01) but different function (0x00 and 0x01)-->
|
||||
<!-- <hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x2d' slot='0x00' function='0x0'/>
|
||||
</source>
|
||||
<rom file='/mnt/disks/backups/BIOS/RX580/Ellesmere.rom'/>
|
||||
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x2d' slot='0x00' function='0x1'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
|
||||
</hostdev> -->
|
||||
<!-- If you wanna passthrough onboard audio(like 30:00.4), make sure you put it in bus 0x00 and slot 0x0y(y is numeric), otherwise AppleALC won't recognized it -->
|
||||
<!-- <hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x30' slot='0x00' function='0x4'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||
</hostdev> -->
|
||||
<memballoon model='none'/>
|
||||
</devices>
|
||||
<!-- Note: Enable the next line when SELinux is enabled -->
|
||||
<!-- seclabel type='dynamic' model='selinux' relabel='yes'/> -->
|
||||
<qemu:commandline>
|
||||
<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='-device'/>
|
||||
<qemu:arg value='usb-tablet'/>
|
||||
<qemu:arg value='-device'/>
|
||||
<qemu:arg value='usb-kbd'/>
|
||||
<qemu:arg value='-cpu'/>
|
||||
<qemu:arg value='Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check'/>
|
||||
<!-- <qemu:arg value='Penryn,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2'/> -->
|
||||
<!-- If you wanna use cpu host-passthrough mode, uncomments below-->
|
||||
<!-- <qemu:arg value='host,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2'/> -->
|
||||
<!-- If you wanna use cpu emulating mode like Skylake-Server, uncomments below-->
|
||||
<!-- <qemu:arg value='Skylake-Server,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2'/> -->
|
||||
</qemu:commandline>
|
||||
</domain>
|
||||
Reference in New Issue
Block a user