diff --git a/OVMF_VARS-1920x1080.fd b/OVMF_VARS-1920x1080.fd index 09921a0..3b8bb9b 100644 Binary files a/OVMF_VARS-1920x1080.fd and b/OVMF_VARS-1920x1080.fd differ diff --git a/OpenCore-Boot.sh b/OpenCore-Boot.sh index 6f10bad..fa94855 100755 --- a/OpenCore-Boot.sh +++ b/OpenCore-Boot.sh @@ -37,11 +37,12 @@ args=( # -device usb-mouse,bus=ehci.0 -device nec-usb-xhci,id=xhci -global nec-usb-xhci.msi=off + # -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off # -device usb-host,vendorid=0x8086,productid=0x0808 # 2 USD USB Sound Card # -device usb-host,vendorid=0x1b3f,productid=0x2008 # Another 2 USD USB Sound Card -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -drive if=pflash,format=raw,readonly=on,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd" - -drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1024x768.fd" + -drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1920x1080.fd" -smbios type=2 -device ich9-intel-hda -device hda-duplex -device ich9-ahci,id=sata @@ -52,10 +53,10 @@ args=( -drive id=MacHDD,if=none,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2 -device ide-hd,bus=sata.4,drive=MacHDD # -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=net0,id=net0,mac=52:54:00:c9:18:27 - -netdev user,id=net0 -device virtio-net-pci,netdev=net0,id=net0,mac=52:54:00:c9:18:27 + -netdev user,id=net0,hostfwd=tcp::2222-:22 -device virtio-net-pci,netdev=net0,id=net0,mac=52:54:00:c9:18:27 # -netdev user,id=net0 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27 # Note: Use this line for High Sierra -monitor stdio - -device VGA,vgamem_mb=128 + -device vmware-svga ) qemu-system-x86_64 "${args[@]}" diff --git a/OpenCore/EFI/BOOT/.contentFlavour b/OpenCore/EFI/BOOT/.contentFlavour new file mode 100644 index 0000000..8b66bff --- /dev/null +++ b/OpenCore/EFI/BOOT/.contentFlavour @@ -0,0 +1 @@ +OpenCore \ No newline at end of file diff --git a/OpenCore/EFI/BOOT/.contentVisibility b/OpenCore/EFI/BOOT/.contentVisibility new file mode 100644 index 0000000..cd16b9f --- /dev/null +++ b/OpenCore/EFI/BOOT/.contentVisibility @@ -0,0 +1 @@ +Disabled \ No newline at end of file diff --git a/OpenCore/EFI/BOOT/BOOTx64.efi b/OpenCore/EFI/BOOT/BOOTx64.efi index 6611a65..60687b7 100644 Binary files a/OpenCore/EFI/BOOT/BOOTx64.efi and b/OpenCore/EFI/BOOT/BOOTx64.efi differ diff --git a/OpenCore/EFI/OC/Drivers/ArpDxe.efi b/OpenCore/EFI/OC/Drivers/ArpDxe.efi index 92496fb..e3ec1ad 100644 Binary files a/OpenCore/EFI/OC/Drivers/ArpDxe.efi and b/OpenCore/EFI/OC/Drivers/ArpDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/AudioDxe.efi b/OpenCore/EFI/OC/Drivers/AudioDxe.efi index b2453d7..3fc9172 100644 Binary files a/OpenCore/EFI/OC/Drivers/AudioDxe.efi and b/OpenCore/EFI/OC/Drivers/AudioDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/BiosVideo.efi b/OpenCore/EFI/OC/Drivers/BiosVideo.efi index fa6b3d1..65c431d 100644 Binary files a/OpenCore/EFI/OC/Drivers/BiosVideo.efi and b/OpenCore/EFI/OC/Drivers/BiosVideo.efi differ diff --git a/OpenCore/EFI/OC/Drivers/CrScreenshotDxe.efi b/OpenCore/EFI/OC/Drivers/CrScreenshotDxe.efi index b2b76a7..cca62e9 100644 Binary files a/OpenCore/EFI/OC/Drivers/CrScreenshotDxe.efi and b/OpenCore/EFI/OC/Drivers/CrScreenshotDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Dhcp4Dxe.efi b/OpenCore/EFI/OC/Drivers/Dhcp4Dxe.efi index b46ebb9..3c7254e 100644 Binary files a/OpenCore/EFI/OC/Drivers/Dhcp4Dxe.efi and b/OpenCore/EFI/OC/Drivers/Dhcp4Dxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/DnsDxe.efi b/OpenCore/EFI/OC/Drivers/DnsDxe.efi index 2efbaf1..26fce1c 100644 Binary files a/OpenCore/EFI/OC/Drivers/DnsDxe.efi and b/OpenCore/EFI/OC/Drivers/DnsDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/DpcDxe.efi b/OpenCore/EFI/OC/Drivers/DpcDxe.efi index 22584fb..58d4aa0 100644 Binary files a/OpenCore/EFI/OC/Drivers/DpcDxe.efi and b/OpenCore/EFI/OC/Drivers/DpcDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Ext4Dxe.efi b/OpenCore/EFI/OC/Drivers/Ext4Dxe.efi index 35a9508..bb3392f 100644 Binary files a/OpenCore/EFI/OC/Drivers/Ext4Dxe.efi and b/OpenCore/EFI/OC/Drivers/Ext4Dxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/HiiDatabase.efi b/OpenCore/EFI/OC/Drivers/HiiDatabase.efi index 6f0a372..7050e67 100644 Binary files a/OpenCore/EFI/OC/Drivers/HiiDatabase.efi and b/OpenCore/EFI/OC/Drivers/HiiDatabase.efi differ diff --git a/OpenCore/EFI/OC/Drivers/HttpBootDxe.efi b/OpenCore/EFI/OC/Drivers/HttpBootDxe.efi index 58c56e1..88abfb5 100644 Binary files a/OpenCore/EFI/OC/Drivers/HttpBootDxe.efi and b/OpenCore/EFI/OC/Drivers/HttpBootDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/HttpDxe.efi b/OpenCore/EFI/OC/Drivers/HttpDxe.efi index 0c04623..3d42971 100644 Binary files a/OpenCore/EFI/OC/Drivers/HttpDxe.efi and b/OpenCore/EFI/OC/Drivers/HttpDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/HttpUtilitiesDxe.efi b/OpenCore/EFI/OC/Drivers/HttpUtilitiesDxe.efi index e79040a..5f1a7b3 100644 Binary files a/OpenCore/EFI/OC/Drivers/HttpUtilitiesDxe.efi and b/OpenCore/EFI/OC/Drivers/HttpUtilitiesDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Ip4Dxe.efi b/OpenCore/EFI/OC/Drivers/Ip4Dxe.efi index b54de7c..425f579 100644 Binary files a/OpenCore/EFI/OC/Drivers/Ip4Dxe.efi and b/OpenCore/EFI/OC/Drivers/Ip4Dxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/MnpDxe.efi b/OpenCore/EFI/OC/Drivers/MnpDxe.efi index 6bfb2b0..8b8fd92 100644 Binary files a/OpenCore/EFI/OC/Drivers/MnpDxe.efi and b/OpenCore/EFI/OC/Drivers/MnpDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/NvmExpressDxe.efi b/OpenCore/EFI/OC/Drivers/NvmExpressDxe.efi index b93a6f2..e107f0b 100644 Binary files a/OpenCore/EFI/OC/Drivers/NvmExpressDxe.efi and b/OpenCore/EFI/OC/Drivers/NvmExpressDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenCanopy.efi b/OpenCore/EFI/OC/Drivers/OpenCanopy.efi index f47b941..0baef76 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenCanopy.efi and b/OpenCore/EFI/OC/Drivers/OpenCanopy.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenHfsPlus.efi b/OpenCore/EFI/OC/Drivers/OpenHfsPlus.efi index d939687..84b1b35 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenHfsPlus.efi and b/OpenCore/EFI/OC/Drivers/OpenHfsPlus.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenLinuxBoot.efi b/OpenCore/EFI/OC/Drivers/OpenLinuxBoot.efi index c38fc97..564f1c5 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenLinuxBoot.efi and b/OpenCore/EFI/OC/Drivers/OpenLinuxBoot.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenNtfsDxe.efi b/OpenCore/EFI/OC/Drivers/OpenNtfsDxe.efi index d8ae54e..f1f8fcf 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenNtfsDxe.efi and b/OpenCore/EFI/OC/Drivers/OpenNtfsDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenPartitionDxe.efi b/OpenCore/EFI/OC/Drivers/OpenPartitionDxe.efi index d23cf84..16099e9 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenPartitionDxe.efi and b/OpenCore/EFI/OC/Drivers/OpenPartitionDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenRuntime.efi b/OpenCore/EFI/OC/Drivers/OpenRuntime.efi index 24e0073..5e7f202 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenRuntime.efi and b/OpenCore/EFI/OC/Drivers/OpenRuntime.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenUsbKbDxe.efi b/OpenCore/EFI/OC/Drivers/OpenUsbKbDxe.efi index 8dfb20e..c7dd1ad 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenUsbKbDxe.efi and b/OpenCore/EFI/OC/Drivers/OpenUsbKbDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/OpenVariableRuntimeDxe.efi b/OpenCore/EFI/OC/Drivers/OpenVariableRuntimeDxe.efi index 50208ec..27e8593 100644 Binary files a/OpenCore/EFI/OC/Drivers/OpenVariableRuntimeDxe.efi and b/OpenCore/EFI/OC/Drivers/OpenVariableRuntimeDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Ps2KeyboardDxe.efi b/OpenCore/EFI/OC/Drivers/Ps2KeyboardDxe.efi index 383df0b..ec884b5 100644 Binary files a/OpenCore/EFI/OC/Drivers/Ps2KeyboardDxe.efi and b/OpenCore/EFI/OC/Drivers/Ps2KeyboardDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Ps2MouseDxe.efi b/OpenCore/EFI/OC/Drivers/Ps2MouseDxe.efi index c2bcf08..f1c92bc 100644 Binary files a/OpenCore/EFI/OC/Drivers/Ps2MouseDxe.efi and b/OpenCore/EFI/OC/Drivers/Ps2MouseDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/ResetNvramEntry.efi b/OpenCore/EFI/OC/Drivers/ResetNvramEntry.efi index d3710c4..d0ec589 100644 Binary files a/OpenCore/EFI/OC/Drivers/ResetNvramEntry.efi and b/OpenCore/EFI/OC/Drivers/ResetNvramEntry.efi differ diff --git a/OpenCore/EFI/OC/Drivers/SnpDxe.efi b/OpenCore/EFI/OC/Drivers/SnpDxe.efi index 379bd17..ae9f2b7 100644 Binary files a/OpenCore/EFI/OC/Drivers/SnpDxe.efi and b/OpenCore/EFI/OC/Drivers/SnpDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/TcpDxe.efi b/OpenCore/EFI/OC/Drivers/TcpDxe.efi index fde07bc..8ff9e50 100644 Binary files a/OpenCore/EFI/OC/Drivers/TcpDxe.efi and b/OpenCore/EFI/OC/Drivers/TcpDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/ToggleSipEntry.efi b/OpenCore/EFI/OC/Drivers/ToggleSipEntry.efi index 73a9034..198b21b 100644 Binary files a/OpenCore/EFI/OC/Drivers/ToggleSipEntry.efi and b/OpenCore/EFI/OC/Drivers/ToggleSipEntry.efi differ diff --git a/OpenCore/EFI/OC/Drivers/Udp4Dxe.efi b/OpenCore/EFI/OC/Drivers/Udp4Dxe.efi index 21bcab9..8b3cc3c 100644 Binary files a/OpenCore/EFI/OC/Drivers/Udp4Dxe.efi and b/OpenCore/EFI/OC/Drivers/Udp4Dxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/UsbMouseDxe.efi b/OpenCore/EFI/OC/Drivers/UsbMouseDxe.efi index 2e58bd1..c59ba81 100644 Binary files a/OpenCore/EFI/OC/Drivers/UsbMouseDxe.efi and b/OpenCore/EFI/OC/Drivers/UsbMouseDxe.efi differ diff --git a/OpenCore/EFI/OC/Drivers/XhciDxe.efi b/OpenCore/EFI/OC/Drivers/XhciDxe.efi index 9d3ad8e..6a47bc9 100644 Binary files a/OpenCore/EFI/OC/Drivers/XhciDxe.efi and b/OpenCore/EFI/OC/Drivers/XhciDxe.efi differ diff --git a/OpenCore/EFI/OC/OpenCore.efi b/OpenCore/EFI/OC/OpenCore.efi index d3b5803..ea26db9 100644 Binary files a/OpenCore/EFI/OC/OpenCore.efi and b/OpenCore/EFI/OC/OpenCore.efi differ diff --git a/OpenCore/EFI/OC/Tools/BootKicker.efi b/OpenCore/EFI/OC/Tools/BootKicker.efi index 53b651b..9b2998c 100644 Binary files a/OpenCore/EFI/OC/Tools/BootKicker.efi and b/OpenCore/EFI/OC/Tools/BootKicker.efi differ diff --git a/OpenCore/EFI/OC/Tools/ChipTune.efi b/OpenCore/EFI/OC/Tools/ChipTune.efi index f7ea1b0..8a8b99c 100644 Binary files a/OpenCore/EFI/OC/Tools/ChipTune.efi and b/OpenCore/EFI/OC/Tools/ChipTune.efi differ diff --git a/OpenCore/EFI/OC/Tools/CleanNvram.efi b/OpenCore/EFI/OC/Tools/CleanNvram.efi index 6f9d661..8671973 100644 Binary files a/OpenCore/EFI/OC/Tools/CleanNvram.efi and b/OpenCore/EFI/OC/Tools/CleanNvram.efi differ diff --git a/OpenCore/EFI/OC/Tools/ControlMsrE2.efi b/OpenCore/EFI/OC/Tools/ControlMsrE2.efi index 854d13c..6089916 100644 Binary files a/OpenCore/EFI/OC/Tools/ControlMsrE2.efi and b/OpenCore/EFI/OC/Tools/ControlMsrE2.efi differ diff --git a/OpenCore/EFI/OC/Tools/CsrUtil.efi b/OpenCore/EFI/OC/Tools/CsrUtil.efi index 7f0ee39..3843eac 100644 Binary files a/OpenCore/EFI/OC/Tools/CsrUtil.efi and b/OpenCore/EFI/OC/Tools/CsrUtil.efi differ diff --git a/OpenCore/EFI/OC/Tools/GopStop.efi b/OpenCore/EFI/OC/Tools/GopStop.efi index 96a7eda..950bfbc 100644 Binary files a/OpenCore/EFI/OC/Tools/GopStop.efi and b/OpenCore/EFI/OC/Tools/GopStop.efi differ diff --git a/OpenCore/EFI/OC/Tools/KeyTester.efi b/OpenCore/EFI/OC/Tools/KeyTester.efi index f9293f7..7ec1ae2 100644 Binary files a/OpenCore/EFI/OC/Tools/KeyTester.efi and b/OpenCore/EFI/OC/Tools/KeyTester.efi differ diff --git a/OpenCore/EFI/OC/Tools/ListPartitions.efi b/OpenCore/EFI/OC/Tools/ListPartitions.efi new file mode 100644 index 0000000..62459f1 Binary files /dev/null and b/OpenCore/EFI/OC/Tools/ListPartitions.efi differ diff --git a/OpenCore/EFI/OC/Tools/MmapDump.efi b/OpenCore/EFI/OC/Tools/MmapDump.efi index bfe4d0f..fc2b5f5 100644 Binary files a/OpenCore/EFI/OC/Tools/MmapDump.efi and b/OpenCore/EFI/OC/Tools/MmapDump.efi differ diff --git a/OpenCore/EFI/OC/Tools/OpenControl.efi b/OpenCore/EFI/OC/Tools/OpenControl.efi index 992368e..76db3f7 100644 Binary files a/OpenCore/EFI/OC/Tools/OpenControl.efi and b/OpenCore/EFI/OC/Tools/OpenControl.efi differ diff --git a/OpenCore/EFI/OC/Tools/OpenShell.efi b/OpenCore/EFI/OC/Tools/OpenShell.efi index 54437fb..da11bc2 100644 Binary files a/OpenCore/EFI/OC/Tools/OpenShell.efi and b/OpenCore/EFI/OC/Tools/OpenShell.efi differ diff --git a/OpenCore/EFI/OC/Tools/ResetSystem.efi b/OpenCore/EFI/OC/Tools/ResetSystem.efi index 6727bde..8971088 100644 Binary files a/OpenCore/EFI/OC/Tools/ResetSystem.efi and b/OpenCore/EFI/OC/Tools/ResetSystem.efi differ diff --git a/OpenCore/EFI/OC/Tools/RtcRw.efi b/OpenCore/EFI/OC/Tools/RtcRw.efi index 8f27930..b750f67 100644 Binary files a/OpenCore/EFI/OC/Tools/RtcRw.efi and b/OpenCore/EFI/OC/Tools/RtcRw.efi differ diff --git a/OpenCore/EFI/OC/Tools/TpmInfo.efi b/OpenCore/EFI/OC/Tools/TpmInfo.efi index 37fb2f9..902158d 100644 Binary files a/OpenCore/EFI/OC/Tools/TpmInfo.efi and b/OpenCore/EFI/OC/Tools/TpmInfo.efi differ diff --git a/OpenCore/OpenCore.qcow2 b/OpenCore/OpenCore.qcow2 index 2ba3ba7..afaba70 100644 Binary files a/OpenCore/OpenCore.qcow2 and b/OpenCore/OpenCore.qcow2 differ diff --git a/README.md b/README.md index ba7d6c6..846791b 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ instructions are included!). :green_heart: Looking for **commercial** support with this stuff? I am [available over email](mailto:dhiru.kholia@gmail.com?subject=[GitHub]%20OSX-KVM%20Commercial%20Support%20Request&body=Hi%20-%20We%20are%20interested%20in%20purchasing%20commercial%20support%20options%20for%20your%20project.) for a chat for **commercial support options only**. Note: Project sponsors get access to the `Private OSX-KVM` repository, and direct support. +Struggling with `Content Caching` stuff? We can help. + Working with `Proxmox` and macOS? See [Nick's blog for sure](https://www.nicksherlock.com/). Yes, we support offline macOS installations now 🎉 @@ -51,43 +53,22 @@ help (pull-requests!) with the following work items: * A CPU with AVX2 support is required for >= macOS Mojave -Note: Older AMD CPU(s) are known to be problematic. AMD FX-8350 works but -Phenom II X3 720 does not. Ryzen processors work just fine. +Note: Older AMD CPU(s) are known to be problematic but modern AMD Ryzen +processors work just fine. ### Installation Preparation -* KVM may need the following tweak on the host machine to work. - - ``` - echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs - ``` - - To make this change permanent, you may use the following command. - - ``` - sudo cp kvm.conf /etc/modprobe.d/kvm.conf # for intel boxes only, after cloning the repo below - ``` - * Install QEMU and other packages. ``` sudo apt-get install qemu uml-utilities virt-manager git \ - wget libguestfs-tools p7zip-full make dmg2img -y + wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \ + tesseract-ocr-eng -y ``` This step may need to be adapted for your Linux distribution. -* Add user to the `kvm` and `libvirt` groups (might be needed). - - ``` - sudo usermod -aG kvm $(whoami) - sudo usermod -aG libvirt $(whoami) - sudo usermod -aG input $(whoami) - ``` - - Note: Re-login after executing this command. - * Clone this repository on your QEMU system. Files from this repository are used in the following steps. @@ -107,6 +88,30 @@ Phenom II X3 720 does not. Ryzen processors work just fine. This repository uses rebase based workflows heavily. +* KVM may need the following tweak on the host machine to work. + + ``` + sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs + ``` + + To make this change permanent, you may use the following command. + + ``` + sudo cp kvm.conf /etc/modprobe.d/kvm.conf # for intel boxes only + + sudo cp kvm_amd.conf /etc/modprobe.d/kvm.conf # for amd boxes only + ``` + +* Add user to the `kvm` and `libvirt` groups (might be needed). + + ``` + sudo usermod -aG kvm $(whoami) + sudo usermod -aG libvirt $(whoami) + sudo usermod -aG input $(whoami) + ``` + + Note: Re-login after executing this command. + * Fetch macOS installer. ``` @@ -127,9 +132,9 @@ Phenom II X3 720 does not. Ryzen processors work just fine. 1. High Sierra (10.13) 2. Mojave (10.14) 3. Catalina (10.15) - 4. Big Sur (11.7) - RECOMMENDED + 4. Big Sur (11.7) 5. Monterey (12.6) - 6. Ventura (13) + 6. Ventura (13) - RECOMMENDED Choose a product to download (1-6): 4 ``` @@ -165,7 +170,7 @@ Phenom II X3 720 does not. Ryzen processors work just fine. ./OpenCore-Boot.sh ``` - Note: This same script works for Big Sur, Catalina, Mojave, and High Sierra. + Note: This same script works for all recent macOS versions. - Use the `Disk Utility` tool within the macOS installer to partition, and format the virtual disk attached to the macOS VM. @@ -202,6 +207,15 @@ Phenom II X3 720 does not. Ryzen processors work just fine. - Launch `virt-manager` and start the `macOS` virtual machine. +### Headless macOS + +- Use the provided [boot-macOS-headless.sh](./boot-macOS-headless.sh) script. + + ``` + ./boot-macOS-headless.sh + ``` + + ### Setting Expectations Right Nice job on setting up a `Virtual Hackintosh` system! Such a system can be used @@ -220,24 +234,7 @@ work, patience, and a bit of luck (perhaps?). ### Post-Installation -* See [networking notes](networking-qemu-kvm-howto.txt) to setup guest networking. - - I have the following commands present in `/etc/rc.local`. - - ``` - #!/usr/bin/env bash - - sudo ip tuntap add dev tap0 mode tap - sudo ip link set tap0 up promisc on - sudo ip link set dev virbr0 up - sudo ip link set dev tap0 master virbr0 - ``` - - This has been enough for me so far. - - Note: You may need to enable the `rc.local` functionality manually on modern - Ubuntu versions. Check out the [notes](notes.md) included in this repository - for details. +* See [networking notes](networking-qemu-kvm-howto.txt) on how to setup networking in your VM, outbound and also inbound for remote access to your VM via SSH, VNC, etc. * To passthrough GPUs and other devices, see [these notes](notes.md#gpu-passthrough-notes). diff --git a/boot-macOS-headless.sh b/boot-macOS-headless.sh index 63d89cc..894841a 100755 --- a/boot-macOS-headless.sh +++ b/boot-macOS-headless.sh @@ -23,16 +23,12 @@ # NOTE: Tweak the "MY_OPTIONS" line in case you are having booting problems! ############################################################################ -# Changelog: -# - Add support for 'savevm' -# - Fix cpuid related warning on EPYC -# - Fix 'savevm' support - MY_OPTIONS="+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check" -# This script works for Catalina as well as Mojave. Tested with macOS 10.14.6 and macOS 10.15.6. +# This script works for Big Sur, Catalina, Mojave, and High Sierra. Tested with +# macOS 10.15.6, macOS 10.14.6, and macOS 10.13.6. -ALLOCATED_RAM="3072" # MiB +ALLOCATED_RAM="7192" # MiB CPU_SOCKETS="1" CPU_CORES="2" CPU_THREADS="4" @@ -40,32 +36,36 @@ CPU_THREADS="4" REPO_PATH="." OVMF_DIR="." -# for snapshots -export TMPDIR=$PWD - # shellcheck disable=SC2054 args=( -enable-kvm -m "$ALLOCATED_RAM" -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,"$MY_OPTIONS" -machine q35 -usb -device usb-kbd -device usb-tablet -smp "$CPU_THREADS",cores="$CPU_CORES",sockets="$CPU_SOCKETS" + -device usb-ehci,id=ehci + # -device usb-kbd,bus=ehci.0 + # -device usb-mouse,bus=ehci.0 + -device nec-usb-xhci,id=xhci + -global nec-usb-xhci.msi=off + -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off + # -device usb-host,vendorid=0x8086,productid=0x0808 # 2 USD USB Sound Card + # -device usb-host,vendorid=0x1b3f,productid=0x2008 # Another 2 USD USB Sound Card -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" - -drive if=pflash,format=raw,snapshot=off,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd" - -drive if=pflash,format=raw,snapshot=on,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1024x768.fd" + -drive if=pflash,format=raw,readonly=on,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd" + -drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1920x1080.fd" -smbios type=2 -device ich9-ahci,id=sata -drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore/OpenCore.qcow2" -device ide-hd,bus=sata.2,drive=OpenCoreBoot -device ide-hd,bus=sata.3,drive=InstallMedia -drive id=InstallMedia,if=none,file="$REPO_PATH/BaseSystem.img",format=raw - # -drive id=MacHDD,if=none,snapshot=on,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2 - -drive id=MacHDD,if=none,snapshot=off,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2 + -drive id=MacHDD,if=none,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2 -device ide-hd,bus=sata.4,drive=MacHDD - -netdev user,id=net0 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27 + -netdev user,id=net0,hostfwd=tcp::2222-:22 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27 -monitor stdio - -vga vmware + -device vmware-svga -display none - -vnc 0.0.0.0:1,password -k en-us + -vnc 0.0.0.0:1,password=on -k en-us ) qemu-system-x86_64 "${args[@]}" diff --git a/bridge.conf b/bridge.conf index a573665..f4b9cc3 100644 --- a/bridge.conf +++ b/bridge.conf @@ -1 +1 @@ -allow virbr0 +allow br0 diff --git a/customized/boot-macOS-headless.sh b/customized/boot-macOS-headless.sh new file mode 100755 index 0000000..06415f5 --- /dev/null +++ b/customized/boot-macOS-headless.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +# https://learn.microsoft.com/en-us/xamarin/ios/get-started/installation/windows/connecting-to-mac/ + +# Special thanks to: +# https://github.com/Leoyzen/KVM-Opencore +# https://github.com/thenickdude/KVM-Opencore/ +# https://github.com/qemu/qemu/blob/master/docs/usb2.txt +# +# qemu-img create -f qcow2 mac_hdd_ng.img 128G +# +# echo 1 | sudo tee -a /sys/module/kvm/parameters/ignore_msrs # this is required +# +# Usage: +# +# $ boot-macOS-headless.sh +# +# (qemu) change vnc password +# Password: ******** +# +# Note: Using RealVNC client, connect to ``. +# E.g. `vncviewer localhost:5901` +# +# If using Nested-KVM (running macOS guest under a Ubuntu guest), use socat +# and/or bridged network to exposed the macOS ports. + +############################################################################ +# NOTE: Tweak the "MY_OPTIONS" line in case you are having booting problems! +############################################################################ + +MY_OPTIONS="+ssse3,+sse4.2,+popcnt,+aes,+xsave,+xsaveopt,check" + +# This script works for Big Sur, Catalina, Mojave, and High Sierra. Tested with +# macOS 10.15.6, macOS 10.14.6, and macOS 10.13.6. + +ALLOCATED_RAM="4096" # MiB +CPU_SOCKETS="1" +CPU_CORES="2" +CPU_THREADS="4" + +REPO_PATH="." +OVMF_DIR="." + +# shellcheck disable=SC2054 +args=( + -enable-kvm -m "$ALLOCATED_RAM" -cpu Penryn,kvm=on,vendor=GenuineIntel,vmware-cpuid-freq=on,"$MY_OPTIONS" + -machine q35 + -usb -device usb-kbd -device usb-tablet + -smp 2 + -device usb-ehci,id=ehci + # -device usb-kbd,bus=ehci.0 + # -device usb-mouse,bus=ehci.0 + -device nec-usb-xhci,id=xhci + -global nec-usb-xhci.msi=off + # -device usb-host,vendorid=0x8086,productid=0x0808 # 2 USD USB Sound Card + # -device usb-host,vendorid=0x1b3f,productid=0x2008 # Another 2 USD USB Sound Card + -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" + -drive if=pflash,format=raw,readonly=on,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd" + -drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1920x1080.fd" + -smbios type=2 + -device ich9-ahci,id=sata + -drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore/OpenCore.qcow2" + -device ide-hd,bus=sata.2,drive=OpenCoreBoot + -device ide-hd,bus=sata.3,drive=InstallMedia + -drive id=InstallMedia,if=none,file="$REPO_PATH/BaseSystem.img",format=raw + -drive id=MacHDD,if=none,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2 + -device ide-hd,bus=sata.4,drive=MacHDD + # Note: Shift the host's ssh port some somewhere else! + -netdev user,id=net0,hostfwd=tcp::22-:22 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27 + -monitor stdio + -device vmware-svga + -display none + -vnc 0.0.0.0:1,password=on -k en-us +) + +qemu-system-x86_64 "${args[@]}" diff --git a/fetch-macOS-v2.py b/fetch-macOS-v2.py index 0905131..bffdf16 100755 --- a/fetch-macOS-v2.py +++ b/fetch-macOS-v2.py @@ -434,7 +434,7 @@ def main(): help='use specified os type, defaults to default ' + MLB_ZERO) parser.add_argument('-diag', '--diagnostics', action='store_true', help='download diagnostics image') parser.add_argument('-s', '--shortname', type=str, default='', - help='available options: high-sierra, mojave, catalina, big-sur, monterey') + help='available options: high-sierra, mojave, catalina, big-sur, monterey, ventura') parser.add_argument('-v', '--verbose', action='store_true', help='print debug information') parser.add_argument('-db', '--board-db', type=str, default=os.path.join(SELF_DIR, 'boards.json'), help='use custom board list for checking, defaults to boards.json') diff --git a/kvm_amd.conf b/kvm_amd.conf new file mode 100644 index 0000000..ab80c86 --- /dev/null +++ b/kvm_amd.conf @@ -0,0 +1,2 @@ +options kvm_amd nested=1 +options kvm ignore_msrs=1 report_ignored_msrs=0 diff --git a/macOS-libvirt-Catalina.xml b/macOS-libvirt-Catalina.xml index 8621746..faaa38d 100644 --- a/macOS-libvirt-Catalina.xml +++ b/macOS-libvirt-Catalina.xml @@ -44,7 +44,7 @@ hvm /home/CHANGEME/OSX-KVM/OVMF_CODE.fd - /home/CHANGEME/OSX-KVM/OVMF_VARS-1024x768.fd + /home/CHANGEME/OSX-KVM/OVMF_VARS.fd @@ -161,7 +161,7 @@