Jump to content
Leoyzen

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

607 posts in this topic Last Reply

Recommended Posts

It is time to start a new thread and share my tips, and we can discuss here.

For those who don't have much information, see  SpaceInvaderOne's **VIDEO GUIDE** How to Install MacOS Mojave or High Sierra as a VM

There is not much information about hackintosh in VM, so I will not make an installer guide but some important tips which everyone had miss.

 

If you wanna get quick start(with opencore), I made a github repo to help people.

 

*** if you like those tips, don't hesitate to push the button "like" below this thread, thanks ***

 

1. CPU

1.1 CPU Model

Every Tutorial told us to use Penryn but didn't tell us why. After some digging I've found that CLOVER had some limitation when using simulated newer cpu family than Ivy-Bridge.

So If u have older clover, you should use Ivy-Bridge instead of Penryn (I will explain later in performance part)(opencore do not have such problem).

 

with lastest clover (5093) and opencore:

  1. If you have Intel Process, you can just use host-passthrough or newer cpu family like Skylake/Cascade-Lake to get most features available.
  2. If you have AMD Process, it can't be passthrough directly yet in clover, but is possible when using latest opencore (0.5.2). see this PR I've made.

 

1.1.1 Why Penryn is recommanded before

After digging a lot of code, I have some conclusions why they recommanded Penryn as prefered CPU Model:

  1. Penryn is classic, and it missing some features compared to newer generation, which lead to a similar situation with VM.
    1. Penryn do not have a msr 0x00000198 leaf to read the perfstatus (like bus ratio, cpu frequency) which the same as a VM.
    2. Penryn do not have a msr 0x35 leaf to read topology structure, which also most hypervisors haven't implemented yet.Instead, the MacOS will try to get the topology from acpi when it detect a Penryn process, which the same as a VM.
    3. Some bootloaders do have some compatibility issues when using a newer generation in a VM, some causing dividing by zero errors(They can't get correct frequency from acpi or msr, so they may be zero).
  2. Some articles have outdated so long from now.
    1. It don't have some cpuid features like avx/avx2/bmi/fma so MacOS won't recognized those features even thought you just passed through.

 

 

1.2 CPU Topology

If you are not using Penryn or a wield cpu thread count, it is safe to remove the cpu-topology line in xml to avoid problems.

  <cpu mode='host-passthrough' check='none'>
    <!-- REMOVE THE LINE
    <topology sockets='1' cores='3' threads='2'/>
	-->
  </cpu>

I've found it is related to the lack of virtualization support in clover and opencore, also the MacOS.

If you using a model newer than Penryn, they try to get the topology from a MSR which the hypervisor(QEMU/KVM) not implement yet, causes some dividing by zero error, and the system won't boot.

 

Update:

It is safe to declare the topology of your cpu without any performance reduction now.

All you have to do is add one single patch to avoid a x86_validate_topology error (MacOS will compare the acpi topology and the one reading from msr 0x00000198(which most hypervisors don't have), then the error occured.)

image.png.4d10cc41b4f8c8cc46924b3639858069.png

 

Although there will still some issues in virtualization support in clover and opencore(like TSC/FSB frequency reading and topology, many hypervisors didn't implement some important msrs like 0x35). Details can be found here(which I submit a PR to opencore to support hypervisor.I'm not familar with svn so clover may not support in near future).

 

1.3 CPU Performance

1.3.1 Important cpuid features

If you gonna get a nearly bare metal cpu performance, you should pass some important cpu features in xml.I will list some and you may try to find which feature your cpu is supported.

  • AVX: without this the newer MacOS will not boot
  • FMA: it is important for metal support
  • AVX2
  • INVTSC: without this the newer MacOS will not boot
  • BMI1
  • BMI2

 

BTW, there is no more need to add "vmware-cpu-freq=on" in the xml because it is default to be on in latest QEMU.

 

1.3.2 Newer CPU Model is recommanded so MacOS will recognize the features correctly

And also, it is important to use a more newer cpu model to make MacOS recognizing the feature correctly. IvyBridge is the bottom line(This is why Penryn is not recommend any more, when you using Penryn, MacOS won't recognize some important feature like avx2 amd fma, then some application will not using those features).

 

1.3.3 How to check whether the features are recognized correctly in MacOS

image.png.212986eeef0ee6f52d062a97304905b0.png

image.png.c256056c87c4149669d348154c100959.png

 

1.3.4 Other flags should be notice

You should passthrough the "+hypervisor", "+invtsc" and "kvm=on" along with others features.

  • MacOS/opencore will read "0x40000010" to get TSC/FSB frequency only if the hypervisor flag is exposed.
  • QEMU only exposes "0x40000010" leaf when "kvm=on" and "invtsc" is passthroughed.

 

2. GPU

2.1 GPU assignment

It should be noticed that unRaid did not set GPU and its audio correctly by assigning them in same bus but different function, you have to mannaully adjuct it to make it work.

IT IS IMPORTANT FOR METAL AND HDMI AUDIO! AND SOMEHOW IT IS RELATED TO AMD PCI RESET BUG!

<hostdev mode='subsystem' type='pci' managed='yes'>
    <driver name='vfio'/>
    <source>
        <address domain='0x0000' bus='0x2d' slot='0x00' function='0x0'/>
    </source>
    <rom file='/mnt/user/domains/mojave/Sapphire.RX560.4096.170419.rom'/>
    <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/>
</hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
    <driver name='vfio'/>
    <source>
        <address domain='0x0000' bus='0x2d' slot='0x00' function='0x1'/>
    </source>
    <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
</hostdev>

As you can see , the gfx and graphic audio should be put in same bus (0x01) but different funciton (gfx in 0x0 and audio in 0x1), otherwise the HDMI audio will not work (even with Lilu/WEG/ALC).

If you misconfigured it, it will lead to some unknown issues:

  1. The HDMI Audio will not work at all
  2. If you using a AMD card, you may face the "pci reset error 127" (seems the driver will reset the grahpics in a wrong way)
  3. it also makes onboard audio recognized incorrectly. (AppleALC will confuse which audio is truely onbaord, details can be see here)

 

2.2 GPU Metal Support

Every tutorial told us to use Lilu/WEG to make graphic work and get metal support, but I've found Lilu doesn't work in QEMU/KVM at all!

I've submit an issues to Lilu, and Lilu add QEMU support after 1.3.9. You have to use this version or newer to make Lilu/WEG works.

(This is unofficially released yet, so use the attachment in this thread).

 

You do not need any patch after using the Lilu I mentioned, the Lilu and WEG do the magic tricks.

 

2.3 GPU DP/HDMI audio

Lilu/WEG/AppleALC only works with correct bus assigned gpu and audio so see part 2.1.

If you set under the instruction I've made, then check the other hackintosh audio guide to find next step.

 

3. Networking

There is no much choice of nic in hackintosh VM: e1000-82545em, vmxnet3, virtio, passthrough

 

3.1 e1000-82545em

Advantage:  Most stable and OOB, recommanded.

Disadvantage:  The nic will not work in installing a MacOS(seems the installer did not have such driver).So when installing the MacOS, you'd better change it to vmxnet3 or add a second vmxnet3 nic to get network working.

 

 

3.2 vmxnet3

Advantage: Better networking throughput (3Gbs~5Gbs) sometimes

Disadvantage: quite buggy ( icloud/apple store not work or lower upload speed).

 

3.3 virtio

apple add virtio-net support after catalina, I've found a way to make it work but now, See this post.

Advantage: 30Gb/s

Disadvantage: it is buggy too.

 

To use virtio net, you have to do two thing:

1. hotplug virtio ethernet instead of predefined

2. boot args with debug=0x100 and keepsyms=1

 

3.4 passthrough

3.4.1 ASUS XG-C100C

It is known to be problemic when using this nic, but after catalina, you will get native support after update the latest firmware.

 

3.4.2 X540-AT2 and X550-AT2

 

3.5 nic xml assignment

You should assign the nic in bus 0x00 and slot 0x0y(y is number ,recommand to be greater than 5 which not likely occupied by other devce) to make nic recognized by macos as builtin .This is important to make AppleStore and iCloud work.

 

4. onboard Audio

It's important that:

1. you make the graphics audio correctly by step 2.1

2.change your onboard audio from bus 0x0y, to bus 0x00 and slot 0x0z (where x, y means integer.

This will make your onboard audio built-in, so AppleALC can easily handle it. detail and discussion can be found here.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </hostdev>

the snippet set the onboard audio (00:1b.0) in bus 0x00, slot 0x02, and this makes the audio built-in.

 

 

5. USB

working on it now.

 

6. Others

6.1 SMBios

When using kvm, the MacPro7,1 and iMacPro1,1 is preferred, because we don't have iGPU and these two SMBios is super match for us.

Update 2019.10.29:

MacPro7,1 is no longer prefered as MacOS not officially release this product so will lead to some unpredictable problems.

 

6.2 Exceptions

Lilu-1.3.8-DEBUG.zip

Edited by Leoyzen
  • Like 4
  • Thanks 6

Share this post


Link to post
2 hours ago, Leoyzen said:

You should assign the nic in bus 0x00 and slot 0x0y to make nic recognized builtin by macos.This is important to make applestore and icloud work.

 

when attempting to change  to this, I get:

 

VM creation error

internal error: Cannot parse <address> 'slot' attribute

 

Share this post


Link to post
3 hours ago, Leoyzen said:

You should assign the nic in bus 0x00 and slot 0x0y to make nic recognized builtin by macos

I tried this, in a last attempt to make icloud working.

    <interface type='bridge'>
      <mac address='<redacted>'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

For me the change works, not error, but this breaks my built-in audio...need to study more.

Even with this (and not working audio) iCloud cannot verify.

 

I also tried the editing of com.apple.boot.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Kernel Flags</key>
	<string></string>
 	<key>device-properties</key>
	<string>4b00000001000000010000003f0000000100000002010c00d041030a0100000001010600051c
101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001</string>
</dict>
</plist>

Where the hex string changes accordingly to the output of gfxutil -f ethernet

 

However looking at my ioreg for en0 I can see IOBuiltin to be true, so I think this is not an issue related to ethernet: since I set the macpro7,1 smbios I think it can be related to this..Need to wait for the mac pro 2019 on the market.

 

@1812 If you didn't check, make sure your slot y in bus 0 is not used by something else.

 

Look at the source from where the error should come from:

      if (slot && virStrToLong_uip(slot, NULL, 0, &addr->slot) < 0) {
          virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                         _("Cannot parse <address> 'slot' attribute"));

Means an error related to negative number in address...??

 

Or maybe you put 0x0y as address? y is a number.

Edited by ghost82

Share this post


Link to post
4 hours ago, ghost82 said:

Where the hex string changes accordingly to the output of gfxutil -f ethernet

 

However looking at my ioreg for en0 I can see IOBuiltin to be true, so I think this is not an issue related to ethernet: since I set the macpro7,1 smbios I think it can be related to this..Need to wait for the mac pro 2019 on the market.

It seems not related to the ethernet but the ROM/board-id/Series Number/UUID. You should search for how to make a available id for you hackintosh.

My icloud and applestore works well not without problem.

Share this post


Link to post
6 hours ago, ghost82 said:

@1812 If you didn't check, make sure your slot y in bus 0 is not used by something else.

I checked and nothing else is occupying the slot assignment.

 

edit

 

looks like the original post was edited for clarification

 

 

 

 

Edited by 1812

Share this post


Link to post
6 hours ago, vxch00 said:

Is it possible to shrink an APFS Mojave vdisk ?

Its somewhat possible depending what format you have the vDisk in but generally it ends up corrupted APFS can sometimes be funny but if you have success let us know

 

 

Share this post


Link to post

Here is a link to a tutorial reported by @bland328 for iCloud/AppStore/iMessage with general and detailed information, also valid for our VMs.

 

It seems my problem was related to something messed up in my System Preference panel, as I noticed that the error was related to it and moreover I was not able to add any account under "Internet Account".

So, I deleted my administrator account and created a new one and after following all the advices in the tutorial I was able to login to iCloud; I didn't try iMessage as I'm not using it.

I also switched from MacPro7,1 to iMacPro1,1 since it appears that the serial is an important parameter, and serials for MacPro7,1 may be not recognized yet since it's not on the market.

Share this post


Link to post

Hi, I'm searching for a card to passthrough to have usb 3 with retrocompatibility of usb 2: cards based on fresco1100 and asm1142 should work out of the box in our mac os VM.

I know @1812 should have some 4-ports Inateck cards, based on Fresco chipset.

Instead of the 4-ports Inateck, I would like to connect the card to my front panel ports and the KTU3FR-5O2I has this option; however, not all ports are based on the Fresco chipset :( as you can see in the following picture:

 

601231982_Frescovli.png.d1128b6ff9443cc9475a43ccc9c3003d.png

 

 

Reading from here:

Quote

4th Card - Inateck KTU3FR-5O2I

Chipset: Fresco FL1100

Findings:  Worked natively in Linux, and worked beautifully in Windows or OSX VMs, able to use my hardware KVM switch with either, but unable to power my server off with the card plugged in, as soon as it powered off, it powered on again.  @aptalca has had the same issue with a Fresco FL1100 card and we both have Supermicro motherboards.

It seems the KTU3FR-5O2I works, apart a problem in shutdown that should be related to the Supermicro mainboard.

I would like to know if anyone has this card passed through to a mac os VM and if it works out of the box (please specify the OS, I'm interested for Catalina), especially for the internal ports (VLI chipset).

 

The Inateck KT4004 has only the Fresco chipset, but only 4 external ports:

 

KTU3FR-4P_03.jpg.35a5aa0552f5fd30b68758dba1c9581d.jpg

 

and it should work oob.

 

Or maybe the KT4006 fits my needs, as it seems it has only the Fresco chipset and the internal connector, but no power connector..mmmm:

 

71sFk512lrL._SL1300_.thumb.jpg.c6cbe13c6f4f69a6fef18dbf00bf1955.jpg

Edited by ghost82

Share this post


Link to post

I have found that when I use an “external drive” (.img that I have mapped as raw) and I copy files to/from the drive it seems to bring my CPU usage up to 100% on one core. It also brings my system to a crawl. 
 

I am using your clover image you uploaded with a Ryzen 1700X. 
 

any thoughts on how I can increase my performance? 

Edited by calebcoverdale

Share this post


Link to post

I found out that why we can't use topology line (equals to QEMU smp) uppon Penryn.

 

When using Penryn, clover or opencore will lookup the topology from cpuid which is correct; but we using newer cpu model, clover or opencore will check msr 0x35 which qemu/kvm not implemented yet then we get wrong cpu topology (1 core 1 thread) then the kernel panic occured.

 

Here is the details.

Share this post


Link to post
2 hours ago, Leoyzen said:

I found out that why we can't use topology line (equals to QEMU smp) uppon Penryn.

 

When using Penryn, clover or opencore will lookup the topology from cpuid which is correct; but we using newer cpu model, clover or opencore will check msr 0x35 which qemu/kvm not implemented yet then we get wrong cpu topology (1 core 1 thread) then the kernel panic occured.

 

Here is the details.

you get better performance in osx without setting a topology, or at least that was true when I last tested. it may not look as nice to see "core solo" or whatever, but you're using each vcpu to its full potential.

 

 

Edited by 1812

Share this post


Link to post
3 hours ago, 1812 said:

you get better performance in osx without setting a topology, or at least that was true when I last tested. it may not look as nice to see "core solo" or whatever, but you're using each vcpu to its full potential.

I read it before, but I have some reason to do so:

 

1. "what is the difference between vm and bare metal?" is the keypoint and I am trying to figure it out.

There definately something wrong in clover and opencore which makes qemu/kvm incompatitable, so I'm trying figure it out.

"Do things right" is my goal, I try to make vm as bare metal AMAP, so I'm digging every detail that different from bare metal hackintosh.

 

The point is not performance, but we can't use smp, then QEMU simulate 8 sockets instead of 8 cores for us.I don't know if MacOS handles it well or there is performance impact but I'm trying to do the right thing.

 

2. It is quite old from now so I'm not believe it.

There are many outdated tutorials in the net tell us to do this do that, but I found much of if useless by spending a lot of time, and there are little imformation tells about why doing this, why doing that, that's what I'm doing now.

So if it is a thread lately, I may convinced by it.

 

3. I'm not buyin the conclusion.

As a software engineer, I can't image that enable hyper-threading is worse than simulate cores.That does'nt make sense to me, there maybe something buggy in clover or opencore or other things.And as far as I tested, I can't find any performance reduction between those two.

 

There is a way to enable smp/topology in current opencore or clover, just add this patch:

image.thumb.png.41a39a9381ed73fe4acafd618e88104f.png

Edited by Leoyzen

Share this post


Link to post
3 hours ago, Leoyzen said:

"Do things right" is my goal, I try to make vm as bare metal AMAP, so I'm digging every detail that different from bare metal hackintosh.

leaving out topology may actually yield better results than bare metal if apple is throttling hyper threaded cores.

 

3 hours ago, Leoyzen said:

It is quite old from now so I'm not believe it.

you're welcome to retest and post your findings. until then, its the only definitive proof of performance and topology settings using KVM on unRaid

 

3 hours ago, Leoyzen said:

I'm not buyin the conclusion.

again, you're welcome to test and post your findings. I don't have time to do it for a month or so. but as a software engineer, you would know that if an OS throttles a hyper threaded core, it will reduce performance. And if a hypervisor lets it run to max by presenting it as a different topology, there is an increase in performance.

 

 

I like all the tweaks you've discovered, but sometimes trial and error are the best course with the less traveled territory of OSX virtual machines. I wouldn't get hung up on the "right thing" because it may not be "right" for virtualization.

Share this post


Link to post
On 10/25/2019 at 12:54 AM, 1812 said:

you're welcome to retest and post your findings. until then, its the only definitive proof of performance and topology settings using KVM on unRaid

 

On 10/25/2019 at 12:54 AM, 1812 said:

again, you're welcome to test and post your findings. I don't have time to do it for a month or so. but as a software engineer, you would know that if an OS throttles a hyper threaded core, it will reduce performance. And if a hypervisor lets it run to max by presenting it as a different topology, there is an increase in performance.

 

As I mentioned, I don't see any performance reduction before, to prove that, I just did some test to indicate the conclusion you've made is outdated now.

 

VM CPU: 4-7, 12-15, which 4 cores and 8 threads

VM OS: Catalina 10.15 (which is as clean as possible, only benchmark softwares)

VM Bootloader: opencore with modified to get correct FSBFrequency and Topology (from here)

Benchmark software: Cinabench 20 and Geekbench 5

CPU Model: IvyBridge with all features that host supported

Results:

  1. 4 cores and 8 threads with SMP topology
    1. Cinabench: 2554
    2. Geekbench: 1273(S)/5455(M)
  2. 8 cores with SMP topology (which MacOS recognized as 8 cores)
    1. Cinabench: 2551
    2. Geekbench: 1277(S)/5433(M)
  3. 8 cores without SMP topology (which MacOS recognized as 8 sockets, I don't know if there any differences)
    1. Cinabench: 2546
    2. Geekbench: 1279(S)/5387(M)

Conclusion:

I don't see any performance reduction between SMP using and not using hyper-threading during my test.

 

I'm not saying you did things wrong, it may just outdated or apple changes their codes.

My point is I won't just buyin someones' conclusion which is rather old from now.

 

On 10/25/2019 at 12:54 AM, 1812 said:

but as a software engineer, you would know that if an OS throttles a hyper threaded core, it will reduce performance. And if a hypervisor lets it run to max by presenting it as a different topology, there is an increase in performance.

It didn't make sense to me, if I fool the MacOS that it is not a thread but a core then there will get some performance gain?On the contrary, performance reduction makes more senses to me. Because it didn't change the fact it is actually a thread, its performance limit by the hardware anyway.

 

 

Host:

image.thumb.png.77842dbb7e69b269acc9db48d79c11d0.png

 

VM CPU pins:

image.thumb.png.c4b03deb94f79caa83d3e931189a3b25.png

 

CPU features:

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='IvyBridge,vendor=GenuineIntel,+hypervisor,-erms,+invtsc,kvm=on,+topoext,+svm,+invtsc,+fma,+mmxext,+avx,+avx2,+aes,+xsave,+xsaveopt,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2,+arat,+abm,+3dnowprefetch,+adx,+clflushopt,+cr8legacy,+fsgsbase,+fxsr_opt,+misalignsse,+movbe,+osvw,+pclmuldq,+pdpe1gb,+rdrand,+rdseed,+rdtscp,+sha-ni,+smap,+smep,+svm,+vme,+xgetbv1,+xsave,+xsavec,+clwb,+umip,+topoext,+perfctr-core,+amd-ssbd,+wbnoinvd'/>
    <qemu:arg value='-overcommit'/>
    <qemu:arg value='cpu-pm=on'/>
  </qemu:commandline>

 

Cinabench screenshots:

image.thumb.png.3836738fb30e21ba7120f502d3d16a16.png

 

Geekbench Screenshots:

image.thumb.png.ff4ce941b17c1b1222b27f0f8926835c.png

Edited by Leoyzen
OSK

Share this post


Link to post
1 hour ago, Leoyzen said:

VM CPU pins:

image.thumb.png.c4b03deb94f79caa83d3e931189a3b25.png

 

CPU features:



 

 

If this is what XML you're running all the time and only changing topology in clover/with bootloading software/etc, then you most likely won't see difference since you don't change how the cpu threads are presented as a vm, only modifying their presentation in the boot loader , and this is not what I tested.

 

Catalina and updated QEMU may be different (I haven't setup a Catalina VM yet), and apple may have caught up to windows finally on how they handle hyper-threaded cpus, but your testing still does not demonstrate that, if I'm understanding your testing and setup.. Test with xml variants like I tested and let me know. I have no problem eating crow if things have changed, but it has to be an actual apples to apples comparison. 

Share this post


Link to post
4 hours ago, 1812 said:

If this is what XML you're running all the time and only changing topology in clover/with bootloading software/etc

I demonstrated that I change the QEMU smp(which equal to topology defination in libvirt/xml) between those three tests. If not, how should I change the topology?

4 hours ago, 1812 said:

since you don't change how the cpu threads are presented as a vm, only modifying their presentation in the boot loader

As far as I know, I don't see a way to change the topology in a bootloader, mind tell me how?

4 hours ago, 1812 said:

but your testing still does not demonstrate that, if I'm understanding your testing and setup

 

Let me quote the conclusion you've made in your thread which I'm argued:

Quote

Declaring a topology that presents an OS X vm a hyper-threaded processor results in degraded performance numbers. This performance loss is not improved regardless if you use only physical cores or physical threaded/HT core pairs. It is continually lower vs. either setting a topology of 6 cores 1 thread, or no topology definition at all (which defaults to 6:1)

Quote

you get better performance in osx without setting a topology, or at least that was true when I last tested

The test I've made just demonstrated that "There is no performance difference between declare a topology with/without hyper-threading defination, even with no topology defined at all.", at least it is outdated now.

Edited by Leoyzen

Share this post


Link to post
On 10/24/2019 at 10:37 PM, Leoyzen said:

The test I've made just demonstrated that "There is no performance difference between declare a topology with/without hyper-threading defination, even with no topology defined at all.", at least it is outdated now.

fair enough!

 

----edit

@Leoyzen

Looking back through, I realize I misunderstood what you were doing. And this morning I had a little time and used spaceinvader's macinabox to quickly setup a Catalina vm. I was able to confirm your ascertain that topology no longer changes core utilization in macOS as all cores ran at 100% regardless of configuration or lacktherof. Weirdly, I got my best score (by 10%) giving a topology using hyperthreads on a processor that had none (E3-1220 v5). But regardless, you are correct and I've updated my original thread reflecting the change in macOS.

 

Thanks for all your input and work!

Edited by 1812

Share this post


Link to post
21 hours ago, Leoyzen said:

There is a way to enable smp/topology in current opencore or clover, just add this patch:

It doesn't work for me, 10.15 19A602 is not able to boot (no apple logo after clover); I don't know if it is related to AppleMCEReporterDisabler.kext

Just to make sure I'm doing the right things:

1- Patch in kernelToPatch (clover)

2- Adding to vm xml:
 

  <qemu:commandline>
    .......
    .......
    <qemu:arg value='-cpu'/>
    <qemu:arg value='IvyBridge,vendor=GenuineIntel,+hypervisor,-erms,+invtsc,kvm=on,+topoext,+invtsc,+avx,+aes,+xsave,+xsaveopt,+ssse3,+sse4_2,+popcnt,+arat,+pclmuldq,+pdpe1gb,+rdtscp,+vme,+xsave,+umip,+topoext,check'/>
    <qemu:arg value='-smp'/>
    <qemu:arg value='16,sockets=2,cores=8,threads=1'/>
    .......
    .......
  </qemu:commandline>

 

Moreover, it seems AppleMCEReporterDisabler.kext (read here) is not working with Catalina beta 3 10.15.1, so it is strongly suggested to check before updating, or at least save a clover image with a different SMBIOS (no imac pro 1,1, mac pro 6,1, mac pro 7,1) to be able to boot.

Share this post


Link to post

@ghost82 did you put -v in your boot args to see what the error is?

I'm on 19A602 with clover and the patch works for me.

I don't set it in qemu extra args but livirt topology defination, like this:

<cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='2'/>
    <feature policy='require' name='topoext'/>
</cpu>

I'm not upgrading yet so I'm not quite sure about then problem you say.

Share this post


Link to post

No luck, even with the verbose argument, not booting, black screen.

No problem, as you, I run some Geekbench tests (Penryn, IvyBridge, topology, no topology) and found no relevant differences.

Edited by ghost82

Share this post


Link to post

I'm a long time Mac user but very new to hackintosh. I skipped bare metal and dived into VFIO hackintosh right away. Google landed me on this page. I just created an account to express my appreciation that someone finally figured out the 'Penryn legend' in the land of KVM hackintosh! I believe my VM is more functional that before. For example, FMA3 instructions are rightly recognised and used by applications.

Share this post


Link to post

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.