PVE Guest MacOS 13 Venture Setup: Difference between revisions

From WikiMLT
Line 2: Line 2:


== Proxmox Setup and MacOS Installation ==
== Proxmox Setup and MacOS Installation ==
'''Great manual provided by i12bretro which I've used to install MacOS 13 Venture:'''
'''Great manual provided by i12bretro which I've used to install <u>MacOS 13 Venture</u>:'''


* YouTube: [https://www.youtube.com/watch?v=KLNLRhcQPYU '''Running a MacOS Monterey VM in ProxMox VE'''] (also much comments about GPU PT are provided there)
* YouTube: [https://www.youtube.com/watch?v=KLNLRhcQPYU '''Running a MacOS Monterey VM in ProxMox VE'''] (also much comments about GPU PT are provided there)
Line 38: Line 38:


</syntaxhighlight>
</syntaxhighlight>
* Note my Proxmox VE host is installed on [[Lenovo ThinkServer TD350 Maintenance|ThinkServer TD350]] with [https://www.techpowerup.com/cpu-specs/xeon-e5-2673-v3.c2884 Intel Xeon E5-2673 V3] and I do not need to pass additional CPU args.


== Post Installation Setup ==
== Post Installation Setup ==
Line 103: Line 105:
Using other Display adapter types as "Standard VGA" and "VirGL GPU" will allow you to change the resolution from the MacOS 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.
Using other Display adapter types as "Standard VGA" and "VirGL GPU" will allow you to change the resolution from the MacOS 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.


== Switch the Resolution while using SPICE/QXL ==
=== 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:
*Use [https://github.com/corpnewt/MountEFI MountEFI] and mount the EFI.
*Use the MacOS'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">
<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 -->
</syntaxhighlight>
All available options are described within the [https://github.com/thenickdude/KVM-Opencore/releases 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 HTML5 videos fails in Safari.
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 HTML5 videos fails in Safari.


Line 114: Line 128:
** 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 MacOS. In this case you should create enough number of USB devices which use Spice driver within the Proxmox's VM configuration.
** 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 MacOS. 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 ===
The right way of installing VoodooHDA on MacOS 13 Venture is provide by Yahgoo at GitHub: [https://github.com/yahgoo/installVoodooHDA4BSnMont Install VoodooHDA for Big Sur and Monterey]. Here are the exact steps that I've performed.
'''1.''' Reboot the system and within OpenCores 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, from the top bar choice <code>Utilities</code> > <code>Terminal</code>. Execute the following commands.<syntaxhighlight lang="shell" line="1">
s
</syntaxhighlight>


== Download Links ==
== Download Links ==
Line 124: Line 147:
* 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>?]
* Sickcodes at GitHub: [https://github.com/sickcodes/osx-optimizer OSX-optimizer] (i.e. Skip the GUI login screen..)
* Sickcodes at GitHub: [https://github.com/sickcodes/osx-optimizer OSX-optimizer] (i.e. Skip the GUI login screen..)
*
*The Mac Admin: [https://themacadmin.com/2012/02/15/mounting-the-efi-boot-partition-on-mac-os-x/ Mounting the EFI Boot Partition on Mac OS X]


== Misc References ==
== Misc References ==
Line 132: Line 155:
** 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]
*
*Unix and Linux: [https://unix.stackexchange.com/a/217947 Long line wrapping in Nano]


<noinclude>
<noinclude>

Revision as of 19:15, 24 October 2022

Prox­mox Set­up and Ma­cOS In­stal­la­tion

Great man­u­al pro­vid­ed by i12bretro which I've used to in­stall Ma­cOS 13 Ven­ture:

Be­low is shown my fi­nal con­fig­u­ra­tion 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

Post In­stal­la­tion Set­up

Cur­rent­ly I'm us­ing Spice/​​​QXL for dis­play dri­ver. Note there is not Ma­cOS guest tool avail­able and this is the rea­son we can't change the res­o­lu­tion with­in the guest.

Switch the Res­o­lu­tion while us­ing SPICE/QXL

We can set dif­fer­ent res­o­lu­tions with­in the Open­Core EFI set­tings by the fol­low­ing steps (as ref­er­ence see the sec­tion Con­fig­ur­ing Boot­ing With­out Open­Core Mount­ed from the man­u­al cit­ed above).

  • Use Moun­tE­FI and mount the EFI.
  • Use the MacOS's file man­ag­er and nav­i­gate to the mount­ed EFI par­ti­tion.
  • Ed­it the file EFI/OC/config.plist – find and mod­i­fy the fol­low­ing <string> di­rec­tive, note on­ly one res­o­lu­tion will be ac­cept­ed and the fall­back res­o­lu­tion is that de­fined in the OVMF UE­FI set­tings:
    <key>Resolution</key>
    <string>1920x1080@32</string>
    
    <string>1280x960@32</string>
    
    <string>1280x960@16</string>
    

Here is a helper script that ro­tates two tem­plates of EFI/OC/config-{1920x1080,1280x960}.plist – note you need to pre­pare the two tem­plates.

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"

Us­ing oth­er Dis­play adapter types as "Stan­dard VGA" and "Vir­GL GPU" will al­low you to change the res­o­lu­tion from the Ma­cOS guest it­self, but the Spice con­nec­tion is much bet­ter than the VNC con­nec­tion that you can use with these de­vices. Us­ing these de­vices could be help­ful if you us­ing Team View­er as client.

Change the OpenCore's Pick­er Set­tings

You can change the OpenCore's boot menu Pick­er op­tions, via config.plist file in the fol­low­ing way:

  • Use Moun­tE­FI and mount the EFI.
  • Use the MacOS's file man­ag­er and nav­i­gate to the mount­ed EFI par­ti­tion.
  • Ed­it the file EFI/OC/config.plist and mod­i­fy the fol­low­ing di­rec­tives:
    <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 avail­able op­tions are de­scribed with­in the OpenCore's Con­fig­u­ra­tion man­u­al (PDF file).

En­able the Au­dio while us­ing SPICE/QXL

In my case get­ting the au­dio op­er­a­tional is crit­i­cal, be­cause I'm ac­tu­al­ly do­ing this set­up for brows­er com­pat­i­bil­i­ty tests of web pages and oth­er ap­pli­ca­tions. Oth­er­wise the flash videos and HTML5 videos fails in Sa­fari.

So I've test­ed the fol­low­ing suc­cess­ful so­lu­tions:

  • Set­up dum­my out­put by the help of Sound­flower (YouTube).
  • Use Team View­er: In­stall team Team View­er Host ap­pli­ca­tion (or the full ap­pli­ca­tion) it will set an Ag­gre­gate au­dio de­vice. Set­up the ap­pli­ca­tion to ac­cept di­rect LAN con­nec­tions and use Team View­er as client to con­nect to the guest via its IP. I think hav­ing dum­my out­put set­up by Sound­flower in­creas­es the au­dio qual­i­ty via Team View­er.
  • Use Spice client:
    • Pass an au­dio de­vice from the re­mote in­stance: With­in the Spice client at­tach some USB au­dio de­vice – i.e. Blue­tooth adapter and con­nect Head­phones to that de­vice from the guest Ma­cOS. In this case you should cre­ate enough num­ber of USB de­vices which use Spice dri­ver with­in the Proxmox's VM con­fig­u­ra­tion.
    • Set­up VoodooH­DA as it is shown in the fol­low­ing sec­tion.

Set­up VoodooH­DA and Make the Au­dio Avail­able with­in Spice Naive­ly

The right way of in­stalling VoodooH­DA on Ma­cOS 13 Ven­ture is pro­vide by Yah­goo at GitHub: In­stall VoodooH­DA for Big Sur and Mon­terey. Here are the ex­act steps that I've per­formed.

1. Re­boot the sys­tem and with­in Open­Cores Pick­er choice Re­cov­ery mode.

2. Then dis­able Dis­able Sys­tem In­tegri­ty Pro­tec­tion Tem­porar­i­ly oth­er­wise lat­er when we need to use kmu­til you will ex­pire the er­ror "Bad code sig­na­ture". One you are in the re­cov­ery mode, from the top bar choice Util­i­ties > Ter­mi­nal. Ex­e­cute the fol­low­ing com­mands.

s

Down­load Links

Ma­cOS us­age ref­er­ences:

Misc Ref­er­ences