** Hackintosh ** Tips to make a bare metal MacOS


Leoyzen

Recommended Posts

16 minutes ago, augustopaulo said:

 Hi ab5g,

For your mentioned confi.plist, your mean this one: 

 

The reason why I chose a Gigabyte Z390 Designare EFI is because my motherboard is the Gigabyte Z390 Xtreme, which is very, very similar to the Designare. Only extra is the 10G Aquantia ethernet port, RGD lights and massive overclock ability, I think...

What about my unraid VM .xml file ? Any optimizations required ?

 

 

The config.plist is on page 36 posted by ghost82 (13th Sept) - you can use that as a reference. The XML should be ok as you are able to boot the VM and passthrough the devices. You are running the VM on Unraid so the Designare config.plist will not apply. The config.plist needs to be KVM specific.

 

Edited by ab5g
  • Like 2
Link to comment
6 hours ago, ab5g said:

 

The config.plist is on page 36 posted by ghost82 (13th Sept) - you can use that as a reference. The XML should be ok as you are able to boot the VM and passthrough the devices. You are running the VM on Unraid so the Designare config.plist will not apply. The config.plist needs to be KVM specific.

 

Thanks again, the logic makes sense!

Now, looking into ghost82's config.plist, there are a couple of SSDTs (SSDT-cpu.aml & SSDT-EC-USBX.aml), is there anywhere a unRaid VM guide for my processor/motherboard or similar?  

 

Link to comment
12 hours ago, augustopaulo said:

Thanks again, the logic makes sense!

Now, looking into ghost82's config.plist, there are a couple of SSDTs (SSDT-cpu.aml & SSDT-EC-USBX.aml), is there anywhere a unRaid VM guide for my processor/motherboard or similar?  

 

A guide if any would be KVM specific (Intel or AMD). You can look into macinabox to start (some videos on Youtube from spaceinvador one) - recommended if  you do not want to start configuring the config.plist from beginning. Or look at kholia/OSX-KVM, foxlet/macOS-Simple-KVM on Github. OR simply look at the config.plist from ghost82 and compare from dortania to see why certain options are turned on/off.

  • Like 1
Link to comment

Would anyone know the reason for audio issues ? I have a USB speaker connected and a USB wireless earphone. Both of them seem to go off randomly on Microsoft Teams and Webex. They will work for a random time and then no sound or the other party can't hear me. There are no logs on the macOS console . Toggling between the inputs seems to get them back to work. 

 

Initially I though it was Microsoft Teams, but then one day I did a Webex webinar and behold - my audio and video cut out so many times that I use the IPAD for the webinar. 

 

Edit: I do not have a sound device passed to the VM . The USB devices are the only sound devices.

 

 

Screen Shot 2021-09-23 at 5.47.12 PM.png

Screen Shot 2021-09-23 at 5.47.29 PM.png

Edited by ab5g
Link to comment

Just a quick question here. Someone already tried OpenCore 0.7.3 or 0.7.4? If I try both I just get stuck while booting where it says:

Aquantia Patch Failed - Failed 0

 

xD

 

I really dont know why this just happens with OpenCore 0.7.3 and 0.7.4 with 0.7.2 and lower I wont see that error in anyway xD

Link to comment
On 9/23/2021 at 11:49 AM, ab5g said:

Would anyone know the reason for audio issues ? I have a USB speaker connected and a USB wireless earphone. Both of them seem to go off randomly on Microsoft Teams and Webex

This may be tricky...because also real macs suffer audio issues with usb.

What you can do here is to make sure that you have the correct usb map port kext with applied power values.

Link to comment
On 9/22/2021 at 3:35 PM, augustopaulo said:

Now, looking into ghost82's config.plist, there are a couple of SSDTs (SSDT-cpu.aml & SSDT-EC-USBX.aml), is there anywhere a unRaid VM guide for my processor/motherboard or similar? 

SSDT-cpu.aml is to have x86platformplugin loaded, because I need agpm to work for my gpu passthrough; if x86platformplugin is not loaded agpm will not work.

SSDT-EC-USBX.aml is to inject a fake EC device and USBX for usb power properties.

Both are attached.

 

SSDT-cpu (note that my cpus are recognized in mac os as C0xx):

DefinitionBlock ("", "SSDT", 2, "CpuRef", "CpuPlug", 0x00003000)
{
    External (_SB_.CPUS.C000, ProcessorObj)

    Scope (\_SB.CPUS.C000)
    {
        Method (DTGP, 5, NotSerialized)
        {
            If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b") /* Unknown UUID */))
            {
                If ((Arg1 == One))
                {
                    If ((Arg2 == Zero))
                    {
                        Arg4 = Buffer (One)
                            {
                                 0x03
                            }
                        Return (One)
                    }

                    If ((Arg2 == One))
                    {
                        Return (One)
                    }
                }
            }

            Arg4 = Buffer (One)
                {
                     0x00
                }
            Return (Zero)
        }

        Method (_DSM, 4, NotSerialized)
        {
            Local0 = Package (0x02)
                {
                    "plugin-type", 
                    One
                }
            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
            Return (Local0)
        }
    }
}

 

SSDT-EC-USBX:

DefinitionBlock ("", "SSDT", 2, "ACDT", "SsdtEC", 0x00001000)
{
    External (_SB_.PCI0.ISA_, DeviceObj)

    Scope (\_SB)
    {
        Device (USBX)
        {
            Name (_ADR, Zero)
            Method (_DSM, 4, NotSerialized)
            {
                If ((Arg2 == Zero))
                {
                    Return (Buffer (One)
                    {
                         0x03
                    })
                }

                Return (Package (0x08)
                {
                    "kUSBSleepPowerSupply", 
                    0x13EC, 
                    "kUSBSleepPortCurrentLimit", 
                    0x0834, 
                    "kUSBWakePowerSupply", 
                    0x13EC, 
                    "kUSBWakePortCurrentLimit", 
                    0x0834
                })
            }

            Method (_STA, 0, NotSerialized)
            {
                If (_OSI ("Darwin"))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }

    Scope (\_SB.PCI0.ISA)
    {
        Device (EC)
        {
            Name (_HID, "ACID0001")
            Method (_STA, 0, NotSerialized)
            {
                If (_OSI ("Darwin"))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }
}

 

As already written by ab5g if you emulate the processor (penryn for example), you don't need any patch required in the config.plist.

If you passthrough an intel processor it should just work, without any patch.

If you are trying to passthrough an amd processor, just emulate it with an intel one, or read the last line of Pavo's post:

 

Again, the physical motherboard you have doesn't matter, we have all the same emulated motherboard, and no patch is required.

 

SSDT-cpu.aml SSDT-EC-USBX.aml

Edited by ghost82
  • Like 1
Link to comment
On 7/24/2021 at 4:47 PM, ghost82 said:

it's true that 3.0 qemu XHCI is not supported by mac os

Yesterday I tried to migrate from EHCI/UHCI virtual controllers to qemu-XHCI controller in big sur 11.6.

qemu-XHCI is now supported by mac os, but the only usb device I'm passing through to the emulated usb controller is a logitech c920 webcam.

Unfortunately I can see the webcam attached to the usb 3.0 virtual controller but no video output from the webcam.

The c920 is a usb 2.0 device, but compatible with 3.0 usb port, at least this is what the datasheet reports.

Switching back to EHCI/UHCI.

Link to comment
On 9/25/2021 at 12:05 PM, ghost82 said:

What patch do you apply in the config.plist for that aquantia card? (paste the code)

What happens if you delete that patch from the config.plist? Does it boot?

Thank you for your help. But it fixed it self. Booted from wrong partition xD

Edited by RiDDiX
Link to comment

The quite new (December 2020) kext developed by acidanthera, RestricEvents, is becoming a "must have" in our configuration, especially for the new upcoming monterey.

Developers have just fixed the "ota update issue", not showing on recent betas of monterey, because of the os and of a change at apple server side.

https://github.com/acidanthera/RestrictEvents

https://github.com/acidanthera/RestrictEvents/commit/2430ed06c15a9f3dd94634ab68e208c8b762e11d

  • Like 1
Link to comment

Bad news for nvidia users: it seems that from monterey beta 7 we lost native compatibility for kepler nvidia gpus.

Good news is that a patch is available, but it requires a new snapshot disk, because it will copy old kepler drivers in the system.

Edited by ghost82
Link to comment
On 10/1/2021 at 7:04 AM, ghost82 said:

The quite new (December 2020) kext developed by acidanthera, RestricEvents, is becoming a "must have" in our configuration, especially for the new upcoming monterey.

Developers have just fixed the "ota update issue", not showing on recent betas of monterey, because of the os and of a change at apple server side.

https://github.com/acidanthera/RestrictEvents

https://github.com/acidanthera/RestrictEvents/commit/2430ed06c15a9f3dd94634ab68e208c8b762e11d

 

Is this going to be needed for upgrading to Monterey?

Link to comment
1 hour ago, paulmorabi said:

 

Is this going to be needed for upgrading to Monterey?

Not strictly, what will happen without the kext is that most probably you will be able to update from big sur to monterey, but once in monterey you will not get notifications updates from software update.

In monterey, let's say 12.0, one can download the full installer image (let's say of 12.1) (note: only full installers are available since apple doesn't release combo/delta updates anymore..) and perform the update manually.

 

With the kext we will be able to have notifications in software update and we will be able to get the delta update: this usually means less headache and less data to download, a full installer is usually about 12 GB, a delta update is 2-3 GB.

 

This is valid for monterey only, with big sur delta updates will show even without this kext.

  • Like 1
Link to comment
23 minutes ago, ghost82 said:

Not strictly, what will happen without the kext is that most probably you will be able to update from big sur to monterey, but once in monterey you will not get notifications updates from software update.

In monterey, let's say 12.0, one can download the full installer image (let's say of 12.1) (note: only full installers are available since apple doesn't release combo/delta updates anymore..) and perform the update manually.

 

With the kext we will be able to have notifications in software update and we will be able to get the delta update: this usually means less headache and less data to download, a full installer is usually about 12 GB, a delta update is 2-3 GB.

 

This is valid for monterey only, with big sur delta updates will show even without this kext.

 

OK, thanks. I’ll wait for the next release of the kext with Monterey support and add it to my OC. Is any special configuration required?

 

Are there any compatibility issues with the latest betas of Monterey? I was considering moving my OSX to a separate SSD and passing through a dedicated SSD rather than using an image file. When Monterey arrives, I’ll do a clean reinstall and then restore from Time Machine. If so, I’ll use the same OC EFI and get a 12.0 install image.

Link to comment
1 minute ago, paulmorabi said:

Is any special configuration required?

No, just put the kext in EFI/OC/Kexts and enable it in config.plist, no boot-args required.

 

2 minutes ago, paulmorabi said:

Are there any compatibility issues with the latest betas of Monterey?

As far as I tested no, but obviously it depends on passed through hardware.

Only thing I found as I wrote is the ended support for nvidia kepler...why? because it's apple and it likes to break support for old hardware, which isn't old btw...a kepler gpu runs fine with monterey, but apple is apple...

  • Like 1
Link to comment
On 9/25/2021 at 6:06 PM, ghost82 said:

This may be tricky...because also real macs suffer audio issues with usb.

What you can do here is to make sure that you have the correct usb map port kext with applied power values.

 

The USB map seems to be correct and so do the power properties. I'll see if the issue persists in Monterey. 

On a side note I was trying to pass through a iGPU to the VM - just to see if it works instead of the dGPU. The iGPU passthrough works fine in a Windows VM - except I don't get the Tiano Core splash screen. The screen initialized some time into the windows boot process.

For MacOS I tried altering the config.plist, applying the framebuffer patches and also changing the smbios to 19.1 but I can't get it to boot. Would be easier to troubleshoot if I could see the verbose logs but that doesn't happen because the display using iGPU does not get initialized. So the question is - is it normal for the display to initialize long after the OS boot process when doing a iGPU passthrough ?

 

 

 

Link to comment
On 10/1/2021 at 8:04 AM, ghost82 said:

The quite new (December 2020) kext developed by acidanthera, RestricEvents, is becoming a "must have" in our configuration, especially for the new upcoming monterey.

Developers have just fixed the "ota update issue"

Nevermind, opencore was updated a couple of hours ago to directly fix the ota updates in monterey, so no need for RestrictEvents.

  • Like 2
Link to comment
  • 3 weeks later...
On 10/3/2021 at 8:17 PM, ghost82 said:

Nevermind, opencore was updated a couple of hours ago to directly fix the ota updates in monterey, so no need for RestrictEvents.

I've been trying to make sense of what is required to get OTA updates working in Monterey beta with my MacPro7,1 SMBIOS. So far I've tried SecureBootModel Disabled, Default (> MacPro7,1 per OC 0.7.4) and x86legacy, and nothing seems to work (all without the kext, since the patch you linked above was removed from release). Any ideas?

Link to comment
4 hours ago, ofawx said:

I've been trying to make sense of what is required to get OTA updates working in Monterey beta with my MacPro7,1 SMBIOS. So far I've tried SecureBootModel Disabled, Default (> MacPro7,1 per OC 0.7.4) and x86legacy, and nothing seems to work (all without the kext, since the patch you linked above was removed from release). Any ideas?

Khronokernel reply, apple changed this very recently:

Quote

Apple removed VMM from the Pallas Catalog temporarily, should be restored in the coming days. Either use a non-T2 SMBIOS or set SecureBootModel with a T2 ID and ensure VMM is not exposed

Nothing to be done on our end, wait for Apple to fix this

 

https://github.com/acidanthera/bugtracker/issues/1827

 

We need to wait for apple to fix this.

Edited by ghost82
  • Thanks 1
Link to comment
On 9/12/2021 at 2:30 PM, ghost82 said:

Moreover, I'm testing qemu on another machine (not unraid) and it seems that machine type pc-q35-6.1 is unable to boot, we should remind this when qemu 6.1 will be part of unraid.

 

Source:

 

I confirm both methods are working, i.e. use qemu 6.1 with machine type 6.0, or use qemu 6.1, machine type 6.1 and global custom argument in libvirt.

  • Like 1
  • Thanks 1
Link to comment
11 minutes ago, doesntaffect said:

my BigSur VM is still using the Vmxnet network adapter,

How are you saying this?Is this because of the name in system preference panel-->networks?

 

11 minutes ago, doesntaffect said:

And, is there a chance to get rid of this pre-boot screen? 

If you want to hide this, mount the efi partition, open EFI/OC/config.plist and change showpicker from true to false, save, unmount and you're done. <-- PLEASE USE TEXTEDIT TO OPEN config.plist

If you press '0' key when the vm boots you can show the bootpicker again, otherwise it will directly boot the default device.

Edited by ghost82
Link to comment

That is just a name, you can rename to what you want.

To check if the correct model is applied you can check your qemu logs, for example you can save the diagnostics file of unraid and once extracted you can check inside "qemu" folder the file "vmname.txt" and you should find the model in use.

As an example, this is for a virtio-net network:

-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:c5:5d:33,bus=pci.0,addr=0x2 \

 

BTW, using vmxnet3 should not prevent the os to get an ip (it had some issues with upload speed and with apple id logins, did not try if now it's still an issue), so you need to check your network settings in the host and the vm settings.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.