PVE Guest MacOS 13 Venture Setup: Difference between revisions
Line 1: | Line 1: | ||
<noinclude><!--[[Category:Proxmox|?]]-->{{ContentArticleHeader/Proxmox}}</noinclude> | <noinclude><!--[[Category:Proxmox|?]]-->{{ContentArticleHeader/Proxmox}}</noinclude> | ||
== Proxmox Setup and | == Proxmox Setup and Mac OS Installation == | ||
'''Great manual provided by i12bretro which I've used to install <u> | '''Great manual provided by i12bretro which I've used to install <u>Mac OS 13 Venture</u>:''' | ||
* YouTube: [https://www.youtube.com/watch?v=KLNLRhcQPYU '''Running a | * YouTube: [https://www.youtube.com/watch?v=KLNLRhcQPYU '''Running a Mac OS Monterey VM in Proxmox VE'''] (also much comments about GPU PT are provided there) | ||
* Guide: [https://i12bretro.github.io/tutorials/0628.html '''Running a | * Guide: [https://i12bretro.github.io/tutorials/0628.html '''Running a Mac OS Monterey VM in Proxmox VE'''] ([[:File:Running a MacOS Monterey VM in ProxMox VE.pdf|local copy of the guide]]) | ||
Below is shown my final configuration file.<syntaxhighlight lang="shell" line="1"> | Below is shown my final configuration file.<syntaxhighlight lang="shell" line="1"> | ||
Line 39: | Line 39: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Note my Proxmox VE host is installed on [[Lenovo ThinkServer TD350 Maintenance| | * Note my Proxmox VE host is installed on [[Lenovo ThinkServer TD350 Maintenance|Think Server TD350]] with [https://www.techpowerup.com/cpu-specs/xeon-e5-2673-v3.c2884 Intel Xeon E5-2673 v.3] and I do not need to pass additional CPU args. | ||
== Post Installation Setup == | == Post Installation Setup == | ||
Currently I'm using Spice/QXL for display driver. Note there is not | Currently I'm using Spice/QXL for display driver. Note there is not Mac OS guest tool available and this is the reason we can't change the resolution within the guest. | ||
=== Switch the Resolution while using SPICE/QXL === | === Switch the Resolution while using SPICE/QXL === | ||
Line 48: | Line 48: | ||
* Use [https://github.com/corpnewt/MountEFI MountEFI] and mount the EFI. | * Use [https://github.com/corpnewt/MountEFI MountEFI] and mount the EFI. | ||
* Use the | * Use the Mac OS's file manager and navigate to the mounted EFI partition. | ||
* Edit the file <code>EFI/OC/'''config.plist'''</code> - find and modify the following <code><string></code> directive, note only one resolution will be accepted and the fallback resolution is that defined in the OVMF | * Edit the file <code>EFI/OC/'''config.plist'''</code> - find and modify the following <code><string></code> directive, note only one resolution will be accepted and the fallback resolution is that defined in the OVMF EFI settings.<syntaxhighlight lang="xml" class="code-continue"> | ||
<key>Resolution</key> | <key>Resolution</key> | ||
<string>1920x1080@32</string> | <string>1920x1080@32</string> | ||
Line 103: | Line 103: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Using other Display adapter types as "Standard VGA" and "VirGL GPU" will allow you to change the resolution from the | Using other Display adapter types as "Standard VGA" and "VirGL GPU" will allow you to change the resolution from the Mac OS guest itself, but the Spice connection is much better than the VNC connection that you can use with these devices. Using these devices could be helpful if you using [https://www.teamviewer.com/en/download/mac-os/ Team Viewer] as client. | ||
=== Change the OpenCore's Picker Settings === | === Change the OpenCore's Picker Settings === | ||
You can change the OpenCore's boot menu Picker options, via <code>'''config.plist'''</code> file in the following way: | You can change the OpenCore's boot menu Picker options, via <code>'''config.plist'''</code> file in the following way: | ||
*Use [https://github.com/corpnewt/MountEFI MountEFI] and mount the EFI. | *Use [https://github.com/corpnewt/MountEFI MountEFI] and mount the EFI. | ||
*Use the | *Use the Mac OS's file manager and navigate to the mounted EFI partition. | ||
*Edit the file <code>EFI/OC/'''config.plist'''</code> and modify the following directives:<syntaxhighlight lang="xml"> | *Edit the file <code>EFI/OC/'''config.plist'''</code> and modify the following directives:<syntaxhighlight lang="xml"> | ||
<key>ShowPicker</key> | <key>ShowPicker</key> | ||
Line 118: | Line 118: | ||
=== Enable the Audio while using SPICE/QXL === | === Enable the Audio while using SPICE/QXL === | ||
In my case getting the audio operational is critical, because I'm actually doing this setup for browser compatibility tests of web pages and other applications. Otherwise the flash videos and | In my case getting the audio operational is critical, because I'm actually doing this setup for browser compatibility tests of web pages and other applications. Otherwise the flash videos and HTML 5 videos fails in Safari. | ||
So I've tested the following successful solutions: | So I've tested the following successful solutions: | ||
Line 126: | Line 126: | ||
* Use Spice client: | * Use Spice client: | ||
** Pass an audio device from the remote instance: Within the Spice client attach some USB audio device - i.e. Bluetooth adapter and connect Headphones to that device from the guest | ** Pass an audio device from the remote instance: Within the Spice client attach some USB audio device - i.e. Bluetooth adapter and connect Headphones to that device from the guest Mac OS. In this case you should create enough number of USB devices which use Spice driver within the Proxmox's VM configuration. | ||
** Setup VoodooHDA as it is shown in the following section. | ** Setup VoodooHDA as it is shown in the following section. | ||
=== Setup VoodooHDA and Make the Audio Available within Spice Naively === | === Setup VoodooHDA and Make the Audio Available within Spice Naively === | ||
The right way of installing VoodooHDA on | The right way of installing VoodooHDA on Mac OS 13 Venture is provide by Yahgoo at GitHub: [https://github.com/yahgoo/installVoodooHDA4BSnMont/blob/main/README.md Install VoodooHDA for Big Sur and Monterey]. Here are the exact steps that I've performed. | ||
'''1.''' Reboot the system and within | '''1.''' Reboot the system and within OpenCore's Picker choice Recovery mode. | ||
'''2.''' Then disable [https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection/ Disable System Integrity Protection Temporarily] otherwise later when we need to use <code>kmutil</code> you will expire the error [https://developer.apple.com/forums/thread/711765 "Bad code signature"]. One you are in the recovery mode, | '''2.''' Then disable [https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection/ Disable System Integrity Protection Temporarily] otherwise later when we need to use <code>kmutil</code> you will expire the error [https://developer.apple.com/forums/thread/711765 "Bad code signature"]. One you are in the recovery mode, Launch <u>Terminal</u> from the <u>Utilities</u> menu (from the top bar). and execute the following commands. | ||
<syntaxhighlight lang="shell" line="1" class="root-prompt"> | <syntaxhighlight lang="shell" line="1" class="root-prompt"> | ||
csrutil clear | |||
</syntaxhighlight> | csrutil disable | ||
csrutil authenticated-root disable | |||
reboot | |||
</syntaxhighlight>3. After the reboot use [https://github.com/corpnewt/MountEFI MountEFI] or mount EFI manually as it is shown below. Use <code>diskutil list</code> to find which is your EFI device - in my case it is <code>disk0s1</code>.<syntaxhighlight lang="shell" line="1"> | |||
sudo mkdir -p /Volumes/efi | |||
sudo mount -t msdos /dev/disk0s1 /Volumes/efi | |||
</syntaxhighlight>'''4.''' Then use the file explorer and navigate to the <code>EFI/OC</code> directory. | |||
'''5.''' Use the [https://mackie100projects.altervista.org/opencore-configurator/ OpenCore Configurator] app and open the file <code>EFI/OC/'''config.plist'''</code>. You will need to open <u>System Settings</u> and at the bottom of the <u>Privacy & Security</u> menu allow the usage of OpenCore Configurator. | |||
'''6.''' Within the OpenCore Configurator navigate to the <u>NVRAM</u> section and find the entry <code>csr-active-config</code>. Make sure its value is <code>0x0285</code> or <code>000285</code>. (My original value was 260F and to be honest haven't tried the following steps without changing it.) Save the file and close the configurator application. | |||
== Download Links == | == Download Links == | ||
Line 144: | Line 155: | ||
* Thenickdude at GitHub: [https://github.com/thenickdude/KVM-Opencore/releases KVM-Opencore] | * Thenickdude at GitHub: [https://github.com/thenickdude/KVM-Opencore/releases KVM-Opencore] | ||
== | == Mac OS usage references: == | ||
* Ask Different: [https://apple.stackexchange.com/questions/234410/does-macos-have-equivalent-command-line-tools-like-lshw-or-lspci-for-enumera Does macOS have equivalent command line tools like <code>lshw</code> or <code>lspci</code>?] | * Ask Different: [https://apple.stackexchange.com/questions/234410/does-macos-have-equivalent-command-line-tools-like-lshw-or-lspci-for-enumera Does macOS have equivalent command line tools like <code>lshw</code> or <code>lspci</code>?] | ||
Line 153: | Line 164: | ||
* Another useful guide provided by Austin's Nerdy Things: | * Another useful guide provided by Austin's Nerdy Things: | ||
** YouTube: [https://www.youtube.com/watch?v=HBAPscDD30M How-to: Install | ** YouTube: [https://www.youtube.com/watch?v=HBAPscDD30M How-to: Install Mac OS Monterey in Proxmox 7 (Hackintosh)] | ||
** Guide: [https://www.nicksherlock.com/2021/10/installing-macos-12-monterey-on-proxmox-7/ Installing macOS 12 “Monterey” on Proxmox 7] | ** Guide: [https://www.nicksherlock.com/2021/10/installing-macos-12-monterey-on-proxmox-7/ Installing macOS 12 “Monterey” on Proxmox 7] | ||
* Mac Ports: [https://www.macports.org/install.php Quick start] | [https://ports.macports.org/port/spice-server/ spice-server] | * Mac Ports: [https://www.macports.org/install.php Quick start] | [https://ports.macports.org/port/spice-server/ spice-server] |
Revision as of 19:51, 24 October 2022
Proxmox Setup and Mac OS Installation
Great manual provided by i12bretro which I've used to install Mac OS 13 Venture:
- YouTube: Running a Mac OS Monterey VM in Proxmox VE (also much comments about GPU PT are provided there)
- Guide: Running a Mac OS Monterey VM in Proxmox VE (local copy of the guide)
Below is shown my final configuration file.
cat /etc/pve/qemu-server/207.conf
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
audio0: device=ich9-intel-hda,driver=spice
bios: ovmf
boot: order=virtio0
cores: 4
cpu: Penryn
efidisk0: ssd-1TB:207/vm-207-disk-0.qcow2,efitype=4m,size=528K
machine: q35
memory: 16384
meta: creation-qemu=7.0.0,ctime=1666276060
name: MacOS13
net0: vmxnet3=C2:63:A3:4E:7E:E7,bridge=vmbr0,firewall=1
numa: 0
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=ac933204-a2a1-4915-aeee-60259bfb3fc1
sockets: 4
spice_enhancements: foldersharing=1,videostreaming=all
tablet: 1
tpmstate0: ssd-1TB:207/vm-207-disk-1.raw,size=4M,version=v2.0
usb0: spice,usb3=1
usb1: spice,usb3=1
usb2: host=0bda:8179,usb3=1
vga: qxl,memory=128
virtio0: local-lvm:vm-207-disk-0,discard=on,size=80G
- Note my Proxmox VE host is installed on Think Server TD350 with Intel Xeon E5-2673 v.3 and I do not need to pass additional CPU args.
Post Installation Setup
Currently I'm using Spice/QXL for display driver. Note there is not Mac OS guest tool available and this is the reason we can't change the resolution within the guest.
Switch the Resolution while using SPICE/QXL
We can set different resolutions within the OpenCore EFI settings by the following steps (as reference see the section Configuring Booting Without OpenCore Mounted from the manual cited above).
- Use MountEFI and mount the EFI.
- Use the Mac OS's file manager and navigate to the mounted EFI partition.
- Edit the file
EFI/OC/config.plist
– find and modify the following<string>
directive, note only one resolution will be accepted and the fallback resolution is that defined in the OVMF EFI settings.<key>Resolution</key> <string>1920x1080@32</string>
<string>1280x960@32</string>
<string>1280x960@16</string>
Here is a helper script that rotates two templates of EFI/OC/config-{1920x1080,1280x960}.plist
– note you need to prepare the two templates.
nano ~/bin/change-resolution.sh
#!/bin/bash
# List the available devices
# diskutil list
function main() {
if [[ ! -z ${1+x} ]]
then
diskutil unmount /Volumes/efi 2>/dev/null
mkdir -p /Volumes/efi
mount -t msdos /dev/disk0s1 /Volumes/efi
sleep 1
if [[ -f /Volumes/efi/EFI/OC/config-${1}.plist ]]
then
echo "Template in use: /Volumes/efi/EFI/OC/config-${1}.plist"
sleep 1
cp /Volumes/efi/EFI/OC/{config-$1,config}.plist
sleep 1
diskutil unmount /Volumes/efi
reboot
exit
fi
diskutil unmount /Volumes/efi
fi
sleep 1
echo "Usage: $0 '1920x1080|1280x960'"
}
# https://unix.stackexchange.com/a/269080
FUNC=$(declare -f main)
sudo bash -c "$FUNC; main"
change-resolution.sh "1280x960"
Using other Display adapter types as "Standard VGA" and "VirGL GPU" will allow you to change the resolution from the Mac OS guest itself, but the Spice connection is much better than the VNC connection that you can use with these devices. Using these devices could be helpful if you using Team Viewer as client.
Change the OpenCore's Picker Settings
You can change the OpenCore's boot menu Picker options, via config.plist
file in the following way:
- Use MountEFI and mount the EFI.
- Use the Mac OS's file manager and navigate to the mounted EFI partition.
- Edit the file
EFI/OC/config.plist
and modify the following directives:<key>ShowPicker</key> <true/> <!-- Set this to 'false' if you want to disable the picker --> <key>Timeout</key> <integer>5</integer> <!-- 0 will disable the timeout, currently it is 5 seconds -->
All available options are described within the OpenCore's Configuration manual (PDF file).
Enable the Audio while using SPICE/QXL
In my case getting the audio operational is critical, because I'm actually doing this setup for browser compatibility tests of web pages and other applications. Otherwise the flash videos and HTML 5 videos fails in Safari.
So I've tested the following successful solutions:
- Setup dummy output by the help of Soundflower (YouTube).
- Use Team Viewer: Install team Team Viewer Host application (or the full application) it will set an Aggregate audio device. Setup the application to accept direct LAN connections and use Team Viewer as client to connect to the guest via its IP. I think having dummy output setup by Soundflower increases the audio quality via Team Viewer.
- Use Spice client:
- Pass an audio device from the remote instance: Within the Spice client attach some USB audio device – i.e. Bluetooth adapter and connect Headphones to that device from the guest Mac OS. In this case you should create enough number of USB devices which use Spice driver within the Proxmox's VM configuration.
- Setup VoodooHDA as it is shown in the following section.
Setup VoodooHDA and Make the Audio Available within Spice Naively
The right way of installing VoodooHDA on Mac OS 13 Venture is provide by Yahgoo at GitHub: Install VoodooHDA for Big Sur and Monterey. Here are the exact steps that I've performed.
1. Reboot the system and within OpenCore's Picker choice Recovery mode.
2. Then disable Disable System Integrity Protection Temporarily otherwise later when we need to use kmutil
you will expire the error "Bad code signature". One you are in the recovery mode, Launch Terminal from the Utilities menu (from the top bar). and execute the following commands.
csrutil clear
csrutil disable
csrutil authenticated-root disable
reboot
3. After the reboot use MountEFI or mount EFI manually as it is shown below. Use diskutil list
to find which is your EFI device – in my case it is disk0s1
.
sudo mkdir -p /Volumes/efi
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
4. Then use the file explorer and navigate to the EFI/OC
directory.
5. Use the OpenCore Configurator app and open the file EFI/OC/config.plist
. You will need to open System Settings and at the bottom of the Privacy & Security menu allow the usage of OpenCore Configurator.
6. Within the OpenCore Configurator navigate to the NVRAM section and find the entry csr-active-config
. Make sure its value is 0x0285
or 000285
. (My original value was 260F and to be honest haven't tried the following steps without changing it.) Save the file and close the configurator application.
Download Links
- RuTracker.org: macOS Ventura 13.0 Beta 8 (22A5352e) [ISO] [Intel/Apple]
- Corpnewt at GitHub: MountEFI
- Thenickdude at GitHub: KVM-Opencore
Mac OS usage references:
- Ask Different: Does macOS have equivalent command line tools like
lshw
orlspci
? - Sickcodes at GitHub: OSX-optimizer (i.e. Skip the GUI login screen..)
- The Mac Admin: Mounting the EFI Boot Partition on Mac OS X
Misc References
- Another useful guide provided by Austin's Nerdy Things:
- Mac Ports: Quick start | spice-server
- Unix and Linux: Long line wrapping in Nano