PVE Guest MacOS 13 Venture Setup: Difference between revisions

From WikiMLT
Line 39: Line 39:
</syntaxhighlight>
</syntaxhighlight>


== Pot Installation Setup ==
== Post Installation Setup ==
Currently I'm using Spice/QXL for display driver. Note there is not MacOS guest tool available and this is the reason we can't change the resolution within the guest.
Currently I'm using Spice/QXL for display driver. Note there is not MacOS guest tool available and this is the reason we can't change the resolution within the guest.



Revision as of 18:03, 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.

Switch the Res­o­lu­tion 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.

Down­load Links

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

Misc Ref­er­ences