Skip to content

Commit

Permalink
Batch Update 1 - August 2023
Browse files Browse the repository at this point in the history
Changes:

- Update to OpenCore 0.9.1

- Switch around the emulated video device (required for Ventura)

- Change default resolution to 1920x1080

- Include ventura in shortname CLI help

- Add notes on 'bridged networking'
  • Loading branch information
kholia committed Jul 29, 2023
1 parent 1184c09 commit 3b40c75
Show file tree
Hide file tree
Showing 65 changed files with 146 additions and 24 deletions.
Binary file modified OVMF_VARS-1920x1080.fd
Binary file not shown.
5 changes: 3 additions & 2 deletions OpenCore-Boot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -55,7 +56,7 @@ args=(
-netdev user,id=net0 -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[@]}"
1 change: 1 addition & 0 deletions OpenCore/EFI/BOOT/.contentFlavour
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
OpenCore
1 change: 1 addition & 0 deletions OpenCore/EFI/BOOT/.contentVisibility
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Disabled
Binary file modified OpenCore/EFI/BOOT/BOOTx64.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/ArpDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/AudioDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/BiosVideo.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/CrScreenshotDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Dhcp4Dxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/DnsDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/DpcDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Ext4Dxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/HiiDatabase.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/HttpBootDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/HttpDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/HttpUtilitiesDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Ip4Dxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/MnpDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/NvmExpressDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenCanopy.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenHfsPlus.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenLinuxBoot.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenNtfsDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenPartitionDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenRuntime.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenUsbKbDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/OpenVariableRuntimeDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Ps2KeyboardDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Ps2MouseDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/ResetNvramEntry.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/SnpDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/TcpDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/ToggleSipEntry.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/Udp4Dxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/UsbMouseDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Drivers/XhciDxe.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/OpenCore.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/BootKicker.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/ChipTune.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/CleanNvram.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/ControlMsrE2.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/CsrUtil.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/GopStop.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/KeyTester.efi
Binary file not shown.
Binary file added OpenCore/EFI/OC/Tools/ListPartitions.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/MmapDump.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/OpenControl.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/OpenShell.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/ResetSystem.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/RtcRw.efi
Binary file not shown.
Binary file modified OpenCore/EFI/OC/Tools/TpmInfo.efi
Binary file not shown.
Binary file modified OpenCore/OpenCore.qcow2
Binary file not shown.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 🎉
Expand Down Expand Up @@ -165,7 +167,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.
Expand Down Expand Up @@ -202,6 +204,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
Expand Down
34 changes: 17 additions & 17 deletions boot-macOS-headless.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,49 +23,49 @@
# 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"

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[@]}"
2 changes: 1 addition & 1 deletion bridge.conf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
allow virbr0
allow br0
76 changes: 76 additions & 0 deletions customized/boot-macOS-headless.sh
Original file line number Diff line number Diff line change
@@ -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 `<localhost:5901>`.
# 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[@]}"
2 changes: 1 addition & 1 deletion fetch-macOS-v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
27 changes: 27 additions & 0 deletions networking-qemu-kvm-howto.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,30 @@ to work, it needs to be setuid root. This can be accomplished with this command:

Note that this is sometimes viewed as a security hole. Be careful and understand
what you are doing before running this command.


-----------------------
Bridged Networking 2023
-----------------------

sudo mkdir -p /etc/qemu

sudo cp bridge.conf /etc/qemu

sudo chmod u+s /usr/lib/qemu/qemu-bridge-helper

sudo ip link add name br0 type bridge

sudo ip link set dev br0 up

sudo ip link set enx00e04c680a67 master br0 && sudo dhclient br0

$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ead0ee60b7c1 yes enx00e04c680a67
tap0
Use the following network device in scripts:

-netdev bridge,id=net0,br=br0,"helper=/usr/lib/qemu/qemu-bridge-helper" -device virtio-net-pci,netdev=net0,id=net0,mac=00:16:CB:00:11:34

Also see https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html to tweak the config.plist file.
9 changes: 7 additions & 2 deletions notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@ This fix was found by `Glnk2012` of https://www.tonymacx86.com/ site.
Also tweaking the `smbios.plist` file can help (?).


### Resolution in Ventura (WIP)
### Resolution in Ventura

Update: Switching to `vmware-svga` device seems to have "fixed" the following
problem!

...

From https://superuser.com: macOS Ventura screen resolution settings includes
only 3 predefined options but choosing any of them breaks my installation (I'm
Expand Down Expand Up @@ -355,7 +360,7 @@ Other host CPU features can be similarly exposed to the macOS guest.
The following command can be used on macOS to verify that AES-NI instructions are exposed,

```
sysctl -a | grep machdep.features
sysctl -a | grep machdep.cpu.features
```

On machines with OpenSSL installed, the following two commands can be used to
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Screenshot_2023-04-08_10-07-09.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Screenshot_2023-04-08_12-33-15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Screenshot_2023-04-08_23-17-52.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/Ventura_2023-04-08_09-40-45.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3b40c75

Please sign in to comment.