Jump to content

Proxmox VE OSX Guide discussion


fabiosun

Recommended Posts

Glad it worked out. 

 

On the reset topic - you can also replace "reboot" with "shutdown -f now" in the earlier version of my hookscript. Thus, when you shutdown your  VM, this will shut your host - clearly a misuse of the VM concept as you want your host to be up, but the reset bug (depending on your usage of the GPU) might force this to be the best option. I use the VM as a desktop proxy and not as a multi-VM server right now so such setting works for me.

 

Another thing in my hook is "tasksets" - depending on how many CPU's you pass to the VM, you can change this (mine is 0-63 in the hook as I have 128 logical cores and I pass 64 of them). You have 64 logical cores (SMT on 32 cores) and if you pass 32 of them to the VM, you can tweak this part to say 0-31. This will "pin" your VM tasks to these cores, which may bring some performance benefits (unlikely to be noticed in most benchmarks).

 

Finally if you ever pass ethernet, you may need different networking configs for your host - I recommend using VM ethernet due to this as it is fast enough.

Edited by meina222
Link to comment
Share on other sites

@dtek

 

I used the Dortania guide.

 

https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html

 

Basically you need to do this:

 

1. Find out the PCI id of your ethernet card in Proxmox and pass it through to the VM. Make sure your Porxmox host can get its connectivity from another place (2nd ethernet, wireless)

 

As an example, the highlighted id below is one my two ethernets (the 2nd I leave to Proxmox for host connectivity).

 

args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,+invtsc,vendor=GenuineIntel
balloon: 0
bios: ovmf
boot: cdn
bootdisk: virtio0
cores: 64
cpu: Penryn
efidisk0: aorus:vm-101-disk-1,size=1M
hookscript: local:snippets/vmhook.sh
hostpci0: 43:00,pcie=1,x-vga=1,romfile=vbios.bin

hostpci1: 86:00,pcie=1
hostpci2: 85:00,pcie=1
hostpci3: 88:00,pcie=1
hostpci4: 02:00,pcie=1
hugepages: 1024
ide2: local:iso/OpenCoreBeta.iso,size=150M
machine: q35
memory: 196608
name: bigsur
numa: 1
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=4b5493a6-6a73-48b7-8ce5-2be70a66a383
sockets: 1
vga: none
virtio0: aorus:vm-101-disk-0,cache=unsafe,discard=on,size=250G
vmgenid: 18d68c27-3a62-4059-9280-7f86a572af59
vmgenid: 0c7cc702-74ba-4d8e-ba4b-d52d5fe53847

 

 

 

2. Get the ROM/MAC address of the ethernet device you passed-thru and specify it in your OpenCore config.plist as described in the Dortania guide

3. Make sure your enX (e.g. en0) device matching the card is "primary" in MacOS as described in the guide

4. Make sure NVRAM works in MacOS as described in the guide

 

When done, you can activate iMessage. Worked for me.

 

Edited by meina222
Link to comment
Share on other sites

12 minutes ago, meina222 said:

@dtek

 

I used the Dortania guide.

 

https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html

 

Basically you need to do this:

 

1. Find out the PCI id of your ethernet card in Proxmox and pass it through to the VM. Make sure your Porxmox host can get its connectivity from another place (2nd ethernet, wireless)

 

As an example, the highlighted id below is one my two ethernets (the 2nd I leave to Proxmox for host connectivity).

 

args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,+invtsc,vendor=GenuineIntel
balloon: 0
bios: ovmf
boot: cdn
bootdisk: virtio0
cores: 64
cpu: Penryn
efidisk0: aorus:vm-101-disk-1,size=1M
hookscript: local:snippets/vmhook.sh
hostpci0: 43:00,pcie=1,x-vga=1,romfile=vbios.bin

hostpci1: 86:00,pcie=1
hostpci2: 85:00,pcie=1
hostpci3: 88:00,pcie=1
hostpci4: 02:00,pcie=1
hugepages: 1024
ide2: local:iso/OpenCoreBeta.iso,size=150M
machine: q35
memory: 196608
name: bigsur
numa: 1
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=4b5493a6-6a73-48b7-8ce5-2be70a66a383
sockets: 1
vga: none
virtio0: aorus:vm-101-disk-0,cache=unsafe,discard=on,size=250G
vmgenid: 18d68c27-3a62-4059-9280-7f86a572af59
vmgenid: 0c7cc702-74ba-4d8e-ba4b-d52d5fe53847

 

 

 

2. Get the ROM/MAC address of the ethernet and specify it in your OpenCore config.plist as described in the Dortania guide

3. Make sure your enX (e.g. en0) device matching the card is "primary" in MacOS as described in the guide

4. Make sure NVRAM works in MacOS as described in the guide

 

When done, you can activate iMessage. Worked for me.

 

I have 2 ethernet ports.  How do I find out which one is being used by Proxmox host?

Link to comment
Share on other sites

26 minutes ago, meina222 said:

Could you post the outputs of the following in Proxmox

 

1)   ls -l /sys/class/net

2)   less /etc/network/interfaces

 

root@dtk:~#  ls -l /sys/class/net
total 0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 eno1 -> ../../devices/pci0000:40/0000:40:01.1/0000:41:00.0/0000:42:04.0/0000:44:00.0/net/eno1
lrwxrwxrwx 1 root root 0 Nov  6 17:17 enp69s0 -> ../../devices/pci0000:40/0000:40:01.1/0000:41:00.0/0000:42:05.0/0000:45:00.0/net/enp69s0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwbr100i0 -> ../../devices/virtual/net/fwbr100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwbr101i0 -> ../../devices/virtual/net/fwbr101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwln100i0 -> ../../devices/virtual/net/fwln100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwln101i0 -> ../../devices/virtual/net/fwln101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwpr100p0 -> ../../devices/virtual/net/fwpr100p0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwpr101p0 -> ../../devices/virtual/net/fwpr101p0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Nov  6 17:17 tap100i0 -> ../../devices/virtual/net/tap100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 tap101i0 -> ../../devices/virtual/net/tap101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 vmbr0 -> ../../devices/virtual/net/vmbr0

 

 

auto lo
iface lo inet loopback

iface enp69s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.14
        netmask 255.255.255.0
        gateway 192.168.1.1
        bridge_ports enp69s0
        bridge_stp off
        bridge_fd 0

iface eno1 inet manual

 

 

Link to comment
Share on other sites

Based on below you need to add to VM config (assuming hostpci1 is free in your VM config if not use next free one say hostpci2):

 

hostpci1: 44:00,pcie=1

 

To verify make sure that 44:00 shows up in your ID's when you do

lspci | grep -i eth

you should see 2 ethernets and one of them will be 44:00 and the other 45:00. Try passing 44:00.

 

Is that your 10G card or 1G card? You may need a kext / patch in macOS if it is Aquantia. @fabiosun, has the same motherboard so he can share what kext / patch is needed, I don't have this device. The other one may be supported by default.

 

Explanation:

The yellow ethernet from your 1st output (PCI id 45:00) corresponds to enp69s0 which is used as the bridge/gateway for your Proxmox host. You need to pass the free card 44:00. If you want to swap you need to change the Proxmox host network config below.

 

 

root@dtk:~#  ls -l /sys/class/net
total 0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 eno1 -> ../../devices/pci0000:40/0000:40:01.1/0000:41:00.0/0000:42:04.0/0000:44:00.0/net/eno1
lrwxrwxrwx 1 root root 0 Nov  6 17:17 enp69s0 -> ../../devices/pci0000:40/0000:40:01.1/0000:41:00.0/0000:42:05.0/0000:45:00.0/net/enp69s0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwbr100i0 -> ../../devices/virtual/net/fwbr100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwbr101i0 -> ../../devices/virtual/net/fwbr101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwln100i0 -> ../../devices/virtual/net/fwln100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwln101i0 -> ../../devices/virtual/net/fwln101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwpr100p0 -> ../../devices/virtual/net/fwpr100p0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 fwpr101p0 -> ../../devices/virtual/net/fwpr101p0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Nov  6 17:17 tap100i0 -> ../../devices/virtual/net/tap100i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 tap101i0 -> ../../devices/virtual/net/tap101i0
lrwxrwxrwx 1 root root 0 Nov  6 17:17 vmbr0 -> ../../devices/virtual/net/vmbr0

 

 

auto lo
iface lo inet loopback

iface enp69s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.14
        netmask 255.255.255.0
        gateway 192.168.1.1
        bridge_ports enp69s0
        bridge_stp off
        bridge_fd 0

iface eno1 inet manual

Link to comment
Share on other sites

To test which one is which, unplug the cables 1 at a time (assuming both are connected) and see which one loses your Proxmox host network/internet connection and which one is ignored. The one that is not affecting Proxmox will be the 44:00 one you pass-thru.

 

This 44:00 card you give the VM will then connect to the virtual network bridge/gateway defined by Proxmox to get internet

 

auto lo
iface lo inet loopback

iface enp69s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.14
        netmask 255.255.255.0
        gateway 192.168.1.1
        bridge_ports enp69s0
        bridge_stp off
        bridge_fd 0

iface eno1 inet manual

Edited by meina222
Link to comment
Share on other sites

As last step, before you pass-thru, write-down the MAC address of the card you pass thru. Check the output of:

 

ip link

 

and find the entry for eno1 

 

The mac address will look like  for example (made up the HEX string separated by :)

 

link/ether a4:2e:79:bb:21:ff

 

You need to write down a4:2e:79:bb:21:ff (you will see your own MAC address of course this is dummy) as this will go in your OpenCore config.plist in binary format as described by Dortania. You can use XCode to encode it.

Edited by meina222
  • +1 1
Link to comment
Share on other sites

  • Supervisor

@dtek

our motherboard has 2 i211 intel ethernet 

they need of small5276 kext in other

aquantia is an external card and it is seen by default

in Bs it needs of a kexttopatch to work

personally never used imessage or facetime on my hackintosh

  • Like 1
  • +1 1
Link to comment
Share on other sites

Hello

 

I just started on a hackinstosh.

I have been reading this thread for 2 days and improving my efi.

I'm not done. I'm on page 42 of this thread.

Thank you for your dissemination of your knowledge.

 

I confirm Fabiosun's trick this one:

637971134_Capturedcran2020-11-1118_50_24.png.200fe8365db1de420f0bb71ae58b7785.png637971134_Capturedcran2020-11-1118_50_24.png.200fe8365db1de420f0bb71ae58b7785.png

 

unleash the performance of the cpu / gpu couple here is proof.

Image 1 before

RYZENTOSH.thumb.png.7e838b8e60714b0e27ee31b2851eef2b.png

Image 2 after.

965711565_RYZENTOSH2.thumb.png.9b38558b82f31e10f420efabc4734bc2.png

I will get back to you as soon as I have plenty of time.

Sincerely thanks to Fabiosun, Ploddles, meina222, iGPU, Pavo and the others.

 

 

  • +1 1
Link to comment
Share on other sites

GPU reset now works on 5700XT (tested with mine) and possibly Vega 64/56 (unable to test) by using a non-kernel module install generously offered by https://github.com/gnif/vendor-reset/

 

@dtek,  and others using Proxmox - worth trying! I can now reboot my single GPU VM in MacOS to upgrade it and regain it back via pass-thru. It works pretty reliably in Windows 10 VMs too. You can checkout the repo and install the module to try it.

  • Like 1
  • Thanks 1
  • +1 1
Link to comment
Share on other sites

6 hours ago, fabiosun said:

@meina222I have tested a little my new Vega 64 GPU in Proxmox..

I have had not reset bug problem with it without using the non-kernel module..

However good to know it

Thank you

That's interesting. I have been plagued by my Navi 10 not resetting since day 1 - to the point where in order to update MacOS I had to disable GPU passthru and use VMWARE compatible remote display to reboot the VM. This module seems to do the magic. I can now reboot or shutdown my VM and bring up another VM and GPU is picked up by new VM - before I'd get a blank screen (with the exception of WIndows 10 which would launch with driver disabled).

Edited by meina222
Link to comment
Share on other sites

11 minutes ago, Driftwood said:

Hopefully this will work on Radeon VIIs under Proxmox.

 It is listed in supported devices, but don't have one to test. I did encounter a potential bug still, but need to test more - one a reset, my DisplayPort sound stopped working. Still much better than the complete hang before.

 

Supported Devices

Vendor Family Common Name(s)
AMD Polaris 10  
AMD Polaris 11  
AMD Polaris 12  
AMD Vega 10 Vega 56/64
AMD Vega 20 Radeon VII
AMD Navi 10 5600XT, 5700, 5700XT
AMD Navi 12 Pro 5600M
AMD Navi 14 Pro 5300, RX 5300, 5500XT
Edited by meina222
  • Like 1
Link to comment
Share on other sites

9 minutes ago, meina222 said:

one a reset, my DisplayPort sound stopped working. Still much better than the complete hang before.

This is my worry. I use predominantly the DP ports. Dont really want to use the HDMI unless forced. Editing in 4K/8K monitors.

Link to comment
Share on other sites

  • Supervisor

however it is a big improvment

 

I am ashamed and a little embarrassed to tell you that I no longer have my EFI proxmox working 🙂

I have to research it, but when I got the Vega 64 I tried to do several restarts but I don't think I had the problem, I also seem to have written it As soon as I can try again

  • Like 1
Link to comment
Share on other sites

I don't know if the DP sound not working is a systematic or one-off issue. Noticed it when I shutdown Big Sur VM and started Windows 10 VM. I'll research more and report.

 

I continue to maintain Proxmox and find myself using my VMs more often than not. I have 4 VMs on it including a Win 10 VM I use to sometimes do light gaming.

 

I really hope to finally get a 6800XT/6900XT and make this VM the main gaming rig and try newest titles such as MS flight sim at max settings.

 

Just got my Valve Index VR headset recently - the new 6000 cards have a USB-C port direct that seems handy for that. Too bad the 6000 launch seems as bad as Nvidia's 3000.

  • +1 1
Link to comment
Share on other sites

I can confirm that the reset is not perfect, however still a huge leap. The reset works perfectly for video but not DP/HDMI audio so still WIP. Given how long this has taken and how complicated (and vendor specific) the issue seems to be, I am sure these imperfections will be fixed soon.

 

In particular this comment thread confirms Navi 10 is still work in progress and sound has some issues, but Vega and Polaris might fare better:

 

https://github.com/gnif/vendor-reset/issues/3

Link to comment
Share on other sites

On 11/24/2020 at 11:11 PM, meina222 said:

GPU reset now works on 5700XT (tested with mine) and possibly Vega 64/56 (unable to test) by using a non-kernel module install generously offered by https://github.com/gnif/vendor-reset/

 

@dtek,  and others using Proxmox - worth trying! I can now reboot my single GPU VM in MacOS to upgrade it and regain it back via pass-thru. It works pretty reliably in Windows 10 VMs too. You can checkout the repo and install the module to try it.

OMG I can't wait to try this.  GPU passthrough  was removed from my VM ever since I had to reinstall everything from scratch.  It refused to boot after multiple forceful resets 😣

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • There are no registered users currently online
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.