Jump to content
ErmaC

Clover General discussion

19,137 posts in this topic

Recommended Posts

6 hours ago, Slice said:

This is a patch for... {kernel, boot.efi, AppleRTC.kext, DSDT, others}

Choose one.

I am going to say DSDT because that what it says in the description but trying to confirm with Pupin. Found more info from him:

 

They are using an uninitialized variable "STAS" in Device(RTC), which makes macOS parser freak out. The patch disables the "If (LEqual (STAS, One)) call from Device(RTC). This call doesn't exist in earlier BIOS versions.

Share this post


Link to post
Share on other sites
Advertisement
9 minutes ago, Modmike said:

I am going to say DSDT because that what it says in the description but trying to confirm with Pupin. Found more info from him:

 

They are using an uninitialized variable "STAS" in Device(RTC), which makes macOS parser freak out. The patch disables the "If (LEqual (STAS, One)) call from Device(RTC). This call doesn't exist in earlier BIOS versions.

This is much more understandable. 

Probably it is true and you really need this patch but I want to say that this is unique situation only for your DSDT. It can't be common.

Share this post


Link to post
Share on other sites
Posted (edited)
16 hours ago, apianti said:

 

I was just being sarcastic. Most likely there is no information for your cpu in the frequency vectors for xcpm, have you tried looking at the output of sysctl machdep.cpu and sysctl machdep.xcpm? Have you tried injecting your exact same cpuid?

No problems @apianti I'm just an old noob and don't even realise that you were sarcastic.

 

For me hackintosh is all about "trial and error". I have zero knowledge in coding or developing so stuff like that is way above my head, but I can still read and hopefully learn how to put things together with some help from people like you.

So please advice me if you have some further input.

 

sysctl -n machdep.xcpm.mode return 1 and yeas I have tried to inject FakeCPUID 0x050654 without success.

 

AppleIntelinfo.rtf

Edited by obus

Share this post


Link to post
Share on other sites
2 hours ago, Slice said:

This is much more understandable. 

Probably it is true and you really need this patch but I want to say that this is unique situation only for your DSDT. It can't be common.

 

I am fine with the patch but it does seem common with Asus and Asrock.  I guess the million dollars question is what BIOS change could cause IGPU Z390-i systems to reboot at the second progress bar but work fine for DGPU users? What parameter or subsystem does the discrete graphics card affect?

 

Crazy as it seems, we couldn't get audio on these boards at the beginning until we installed a video card. Now we are ok but I wonder if that is a clue.

 

I will try to get a user to send me a video of the verbose boot and post to see if it has any more clues.

 

Thanks.

Share this post


Link to post
Share on other sites
13 hours ago, matgeo said:

That is too difficult to understand ....

 

Would you mind taking a look at my debug files , to suggest any droping tables? If there is a way to tell from debug files of course.

 

There's no way to tell without looking at your tables' source, sans a few that are known to cause problems or are unneeded in macOS, mainly DMAR and BGRT. There are plenty of guides on patching ACPI tables, even on this site. But truthfully, if no one has already patched those tables you'll have to either grind through learning ACPI or find someone who has the time, knows ACPI already, and is willing to modify your config to drop and patch tables as needed.

Share this post


Link to post
Share on other sites
6 hours ago, obus said:

No problems @apianti I'm just an old noob and don't even realise that you were sarcastic.

 

For me hackintosh is all about "trial and error". I have zero knowledge in coding or developing so stuff like that is way above my head, but I can still read and hopefully learn how to put things together with some help from people like you.

So please advice me if you have some further input.

 

sysctl -n machdep.xcpm.mode return 1 and yeas I have tried to inject FakeCPUID 0x050654 without success.

 

This is without the fakeid? Or with? Because it looks like you have the original id, and are hitting every p state. I'm not sure what is exactly wrong?

Processor Brandstring....................: Intel(R) Xeon(R) W-2175 CPU @ 2.50GHz

Processor Signature..................... : 0x50654
------------------------------------------
 - Family............................... : 6
 - Stepping............................. : 4
 - Model................................ : 0x55 (85)

CPU P-States [ 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 30 31 32 33 (34) 35 37 41 43 ]

 

Share this post


Link to post
Share on other sites
1 minute ago, apianti said:

 

This is without the fakeid? Or with? Because it looks like you have the original id, and are hitting every p state. I'm not sure what is exactly wrong?


Processor Brandstring....................: Intel(R) Xeon(R) W-2175 CPU @ 2.50GHz

Processor Signature..................... : 0x50654
------------------------------------------
 - Family............................... : 6
 - Stepping............................. : 4
 - Model................................ : 0x55 (85)

CPU P-States [ 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 30 31 32 33 (34) 35 37 41 43 ]

 

Noop this is with Skylake X fake id 0x5065E4 and with kernel patch: _xcpm_pkg_scope_msrs_PMhart   31 d2 e8 ae fc ff ff -> 31 d2 90 90 90 90 90

Share this post


Link to post
Share on other sites
7 hours ago, Slice said:

This is much more understandable. 

Probably it is true and you really need this patch but I want to say that this is unique situation only for your DSDT. It can't be common.

 

It depends, is it caused by the OEM modifying the firmware or because Aptio was modified and this propagated? He seemed to imply that two OEMs' motherboards with z730 chipset were affected.

 

@Modmike,

 

ACPI tables contain a lot of information related to graphics, it's possible that because the dGPU is there these addresses are corrected when read by macOS from the dGPU's ACPI table(s) instead of the iGPU's ACPI table(s) which then corrects issues.

Share this post


Link to post
Share on other sites
4 minutes ago, obus said:

Noop this is with Skylake X fake id 0x5065E4 and with kernel patch: _xcpm_pkg_scope_msrs_PMhart   31 d2 e8 ae fc ff ff -> 31 d2 90 90 90 90 90

 

Ok, what does sysctl -n machdep.xcpm.vectors_loaded_count say? I imagine what is happening is that there is an MSR not supported by your CPU that is by the mac-only models. You can boot with your original id right? But you're just not getting any actual power management? Pretty sure that there just isn't frequency vector information so it has no information about how to change states. There is a tool script to generate and patch frequency vectors. Also, you have a proper CPU SSDT right?

Share this post


Link to post
Share on other sites
Posted (edited)
27 minutes ago, apianti said:

 

Ok, what does sysctl -n machdep.xcpm.vectors_loaded_count say? I imagine what is happening is that there is an MSR not supported by your CPU that is by the mac-only models. You can boot with your original id right? But you're just not getting any actual power management? Pretty sure that there just isn't frequency vector information so it has no information about how to change states. There is a tool script to generate and patch frequency vectors. Also, you have a proper CPU SSDT right?

sysctl -n machdep.xcpm.vectors_loaded_count return 0

I can NOT boot with my original 1d for Skylake W 0x050654 and that is the weird thing because I can boot with a lot of other Skywell or Broadwell id.

 

Edited by obus

Share this post


Link to post
Share on other sites
1 hour ago, obus said:

sysctl -n machdep.xcpm.vectors_loaded_count return 0

I can NOT boot with my original 1d for Skylake W 0x050654 and that is the weird thing because I can boot with a lot of other Skywell or Broadwell id.

 

 

Can you not with your original id and the patch for scope_msrs? Did you not post two different pics in the other topic, one with pm and one without? I thought the difference was you just didn't use fakeid. What exactly happens when you boot with your original id and the patch?

Share this post


Link to post
Share on other sites
5 hours ago, apianti said:

 

It depends, is it caused by the OEM modifying the firmware or because Aptio was modified and this propagated? He seemed to imply that two OEMs' motherboards with z730 chipset were affected.

 

@Modmike,

 

ACPI tables contain a lot of information related to graphics, it's possible that because the dGPU is there these addresses are corrected when read by macOS from the dGPU's ACPI table(s) instead of the iGPU's ACPI table(s) which then corrects issues.

 

So that was embarrassing, turns out it was corrupt config.plist. Started from scratch and all is good again.

Share this post


Link to post
Share on other sites
Posted (edited)
8 hours ago, apianti said:

 

Can you not with your original id and the patch for scope_msrs? Did you not post two different pics in the other topic, one with pm and one without? I thought the difference was you just didn't use fakeid. What exactly happens when you boot with your original id and the patch?

Yes but even if I boot with Skylake X id 0x0506E4 the original id of Skylake W 0x050654 appears in the Darwin dump. The two pics in the other topics showing Darwin dump from my processor 2175 booted with 0x0506E4 and from an original iMac Pro1.1 with a 2140b processor. Both have the same id in Darwin dump 0x050654.

 

Original id gives me Hang at end random seed +++++++++++

 

You wrote in the other topic that: "the problem is because of the specialization of the mac-only CPU models, it has an MSR that is not present in other CPUs."

 

The last million dollar question is that there is a guy here with an ASUS C422 mobo and an original "Mac" Xenon W 2140b and he has exactely the same problem as we have with our processors. How can we explain that?

 

I'm really confused here and unfortunately not qualified to solve the problems with my lack of knowledge. That's why I should be so grateful if you or anybody else could help me to find a solution.

 

Best regards

obus

Edited by obus

Share this post


Link to post
Share on other sites

I was just speculating because that's what _xcpm_pkg_scope_msrs does, and you guys are getting it working by changing the id and skipping the call to that function. It's possible to not setup a device correctly from the firmware if it's not known that it needs setup in a certain way. I'm sorry, I meant the bootstrap patch, not the other. You posted that you used the bootstrap patch and then were able to boot but had full throttle, you had the correct situation then and you just need frequency vectors for your cpu to get pm.

Share this post


Link to post
Share on other sites
Posted (edited)
28 minutes ago, apianti said:

I was just speculating because that's what _xcpm_pkg_scope_msrs does, and you guys are getting it working by changing the id and skipping the call to that function. It's possible to not setup a device correctly from the firmware if it's not known that it needs setup in a certain way. I'm sorry, I meant the bootstrap patch, not the other. You posted that you used the bootstrap patch and then were able to boot but had full throttle, you had the correct situation then and you just need frequency vectors for your cpu to get pm.

So if I understand you correct I can try go with the bootstrap patch (with basically is just a FakeCPUId if I understand things correct) and then use PikerAlpha:s freqVectorsEditors script?

Edited by obus

Share this post


Link to post
Share on other sites

 

42 minutes ago, apianti said:

I was just speculating because that's what _xcpm_pkg_scope_msrs does, and you guys are getting it working by changing the id and skipping the call to that function. It's possible to not setup a device correctly from the firmware if it's not known that it needs setup in a certain way. I'm sorry, I meant the bootstrap patch, not the other. You posted that you used the bootstrap patch and then were able to boot but had full throttle, you had the correct situation then and you just need frequency vectors for your cpu to get pm.

The main desire is to get rid of any patches on this "Apple-native" HW. Is this possible?

Share this post


Link to post
Share on other sites

No, the bootstrap patch is not a fakeid unless you are using a patch for a different cpu. As far as I know the boot strap patch was designed for one of the other previous unsupported cpus and it probably wasn't modified since for other cpus since.

5 minutes ago, yapan4 said:

 

The main desire is to get rid of any patches on this "Apple-native" HW. Is this possible?

Not possible, there's patches that happen without you knowing and they must. Adding more isn't a big thing really....

Share this post


Link to post
Share on other sites
15 minutes ago, apianti said:

Not possible, there's patches that happen without you knowing and they must. Adding more isn't a big thing really....

Thank you very much!

Share this post


Link to post
Share on other sites
Posted (edited)
On 4/10/2019 at 8:29 AM, Slice said:

This is much more understandable. 

Probably it is true and you really need this patch but I want to say that this is unique situation only for your DSDT. It can't be common.

 

So more Asrock Z390 boards are getting hit with this issue. pupin gave a really clear example of why this is happening:

 

For the record, older versions would contain this in DSDT:

        Device (RTC)
        {
            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0070,             // Range Minimum
                    0x0070,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                IRQNoFlags ()
                    {8}
            })
        }

Newer versions of Asrock and Asus contain this:


        Device (RTC)
        {
            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0070,             // Range Minimum
                    0x0070,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                IRQNoFlags ()
                    {8}
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((STAS == One))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }

Asrock and Asus added a status method (_STA), which queries the STAS variable in the newer DSDTs. The problem is that the STAS variable is not initialized, and when the macOS DSDT parser checks Device(RTC) in the DSDT, it does not like this, and freaks out.

Pupins patch changes the condition in the expression "If ((STAS==One))" to an always True condition, thus eliminating the problematic check, and resulting in RTC._STA() always returning 0x0F.

Seeing that this affects 2 different board manufacturers makes him think that the error may possibly come from a newer version of APTIO. If this is the case, it might appear on more boards in the future.

 

Is there a way to fix this in Clovers DSDT patcher?

Edited by Modmike

Share this post


Link to post
Share on other sites

Yeah, just compare the two binary tables together in a hex editor and that will give you the patch, just make sure that you search the original table with the source patch to make sure it doesn't repeat or you need to add some more of the data from around the source.

Share this post


Link to post
Share on other sites
Posted (edited)

Clover wiki has been migrated back to sourceforge to try to keep it as up to date as possible, and is now live. Please use this wiki as official from now on.

https://sourceforge.net/p/cloverefiboot/wiki/Home/

 

EDIT: You may comment fixes and suggestions to a page, but they are subject to moderation by admin (basically slice and I) unless you are a team member (but ultimately still manually moderated if necessary).

 

EDIT2: Forgot to give a huge shout out to @arsradu for migrating and updating the wiki. Thanks!

Edited by apianti

Share this post


Link to post
Share on other sites
Posted (edited)

Hi, all

 

Recently i started using Clover 2.4k rev 4844 and it could not boot Windows 10 with MBR partition + NTFS file system.

Booting process throws below error. Of course, i always choose System Reserved partition for Windows 10 booting.

 

winbooterror.thumb.JPG.1ce7cf50ec418a67554bdd5acffeb75d.JPG

 

 

Before this, i was using    Clover 2.4k rev 4003 for long time and it can boot Windows 10 with MBR partition + NTFS file system without problem.

 

 

Windows 10 with MBR booting feature is intentionally removed from recent clovers or is it bug?

 

 

EDIT:

Also i have r4813 and it has same problem when booting windows 10.

Actually r4813 and r4844 are installed on USB stick and r4003 is installed on HDD partition not EFI. So i installed r4003 on USB and tried to boot Windows 10 from it and it fails as well. Error is same as before.

 

So clover installed on USB could not boot windows 10 legacy? Can anyone check it?

 

 

tnx,

Edited by ea dd

Share this post


Link to post
Share on other sites
Posted (edited)

There is an issue with legacy booting from a different device not on the same bus, I am not sure there is a way to fix it because of firmware drive numbers appearing pretty much random to the EFI emulation.

 

EDIT: Typo.

Edited by apianti

Share this post


Link to post
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   1 member

  • Similar Content

    • By glasgood
      CLOVER DUAL BOOT MOJAVE & WINDOWS 10 GUIDE 
       

       
       
      INCLUDES  MBR / LEGACY BIOS  TO  GPT / EFI CONVERSION
      USING MBR2GPT TOOL
       
       
      PREREQUISITE: Two physical discs ( SSD’s or HDD’s )
       
       
       
       
       
      STEP 1 - Clover dual boot configuration 
       
      Open config.plist with Clover Configurator
       
      Boot
       Legacy = PBR Timeout = True ( will remove the Timeout countdown, from Clover boot menu)  

       
      GUI 
      Scan / Custom
       Entries = True  Tool = True  Legacy = False ( removes extra Windows 10 entries )  
      Hide Volume
      - Preboot ( macOS Preboot )
      - Recovery ( macOS Recovery )
       

       
      So at boot you will have two options: boot macOS Mojave or Windows 10 
       
       
       
       
       
       
       
      ————————————————————
       
       
      STEP 2 - Using a drive without Windows 10 installed
       
      Disconnect system drive that contains your macOS Mojave install from computer ( This is so that Windows does not overwrite existing macOS Mojave boot loader )
       
      Proceed with a Windows 10 UEFI install.  
      After installation reconnect macOS Mojave Drive, the Windows installation should now be detected and usable in Clover. 
      If Windows 10 is not detected or able to boot,  then verify you installed Windows 10 as UEFI and not MBR ---->  ( Read step 2 - For a drive with Windows 10 installed )
       
       
      OR
       
       
       
      STEP 2 - Using a drive with Windows 10 already installed
       
      Verify your Windows install is  GPT / UEFI or MBR / Legacy BIOS.   
      If Windows install is GPT UEFI then Windows 10 install is ready to use at Clover boot menu, you should be able to boot into Windows directly from Clover boot screen. 
       

       
       
      But if  Windows drive is detected at Clover boot screen, but when booting Windows you get a black screen with a cursor on the top left,
      then this is most likely because Windows drive is MBR ( Legacy BIOS ).  You can easily convert MBR to GPT using  Windows MBR2GPT tool ( this saves hours work having to reinstall Windows 10 and setting up all your applications again  ) 
       
      If Windows 10 install is MBR / Legacy BIOS  then simply convert to GPT / UEFI  following instructions below ( read video summary and view video )
       
       
      ** To use Windows 10  MBR2GPT tool  you must have Windows 10 version 1703 ( creators update  ) or later and less than 3 partitions on 
      the Windows 10 drive **
       
      Video summary:
       
      Confirm Windows 10 drive is MBR Legacy BIOS ( in Windows Disk Management ) Reboot into Windows PE ( Advanced Startup ) Convert from MBR Legacy BIOS to GPT UEFI ( using commands below ) mbr2gpt /validate mbr2gpt /convert Restart Verify Windows 10 drive has changed to GPT UEFI ( in Windows Disk Management )  
       
       
       
      After conversion Windows 10 is ready to use at the Clover boot menu 
       
       
       
      STEP 3 - Stop Windows Boot manager from overriding Clover boot manager
       
      How to stop Windows boot manager from overriding your Hackintosh Clover boot manager when using dual booting between macOS and Windows
       
       
       
       
       
       
    • By AppleBytes
      OK, I've searching for days trying to gather up the tools to make my current install work correctly. I'm well on my way. But all the links to the things I currently must have were apparently nuked "during a forum upgrade". :(
      As far as EFI Studio goes; I can find many links to it. But for Insanelymac, they're broken (due to the upgrade), or for the Netkas site, they're links to either Rapidshare, or Mediafire that also no linger exist. I see many users here indicating that they used it to tweak their DSDT. But the web (google/duckduckgo), Instanelymac, and Netkas seem to have no idea where it's gone.
      Could some kind soul please share a copy, or a link? I'm a loooong time hacker, and would love to bring it back to life. In fact, I'd love to improve it -- or at least bring it up to current times. If only I knew where it was.
      Thank you for all your time, and consideration.
       
      --Chris
       
    • By SoThOr
      This was spurred on from a discussion in the Clover General thread. Where there was a debate on bcdedit being able create/read/edit (U)EFI Boot entries. I didn't think it appropriate to post all this information there and somebody may want to make use of this and its likely to get lost in that massive thread.
       
      Out of curiosity I decided to see if I could create an EFI entry using bcdedit. What can I say I like a challenge.  Whilst is not a documented method by Microsoft, as it turns out in a round about way it IS possible to create an EFI entry using bcdedit and these are the steps I went through to add UEFI Shell located on a USB stick to the EFI entries. 
       
      Third party software is available that can create and edit UEFI entries from Windows with better support and more features. I'm just making this information available in case those options are unavailable. 
       
      DISCLAIMER - This is not a supported method. Use at your own risk. I recommend backing up your BCD/Firmware variables/settings beforehand.
       
      1) Copy {bootmgr} entry.
      C:\Windows\System32>bcdedit /copy {bootmgr} /d "UEFI Shell" The entry was successfully copied to {34e8383c-73a7-11e9-9cb0-94de8078a7b5}. 2) Edit the new entry using the new GUID bcdedit generated in the copy step.
        a) Set the device and path for UEFI shell on my USB stick.
      bcdedit /set {34e8383d-73a7-11e9-9cb0-94de8078a7b5} device partition=G: bcdedit /set {34e8383d-73a7-11e9-9cb0-94de8078a7b5} path \EFI\SHELL\SHELLX64.efi   b) Clean up some of the stuff that was copied from {bootmgr} (optional as far as I can tell, just makes things tidier in bcdedit)
      3) Put the new EFI entry first in boot order. (optional)
       
      After completing the steps above, here is what "bcdedit /enum firmware" shows:
       
      I shutdown my computer and when I turned my computer back on it booted up into UEFI Shell. After exiting the shell my PC went on to boot Windows.
      Here is the resulting dump using "bcfg boot dump -v" from that shell:
       
      You may notice that the shell shows as "Windows Boot Manager" in the bcdedit output. This I believe is because of the "WINDOWS" at the beginning of the option data that bcdedit added to the EFI Boot entry. I also believe this why bcdedit shows my Windows 8 installation as "Firmware Application" because it has no option data. I don't know how to remove this data using bcdedit nor do I know how the option data, that bcdedit adds, will affect other EFI applications.

      There might be a way to create the EFI entry without copying the Windows entry but if there is I'm unable to find any documentation on how one would do so. If you use the create command then it just puts it in the BCD and I'm unaware of a way to tell it to create it in EFI instead, other than by doing the above.
    • By cvad
      Small tool to download, compile and build the latest Clover X64 package.
       
       
       

      The script inside is editable.

       
      Enjoy...
       
      Many thanks to the comrade SunKi for help with creating the script.
       
       
       
       
       
      Best thanks - click "Rate File".
       
    • By blxkspell
      Hey!
      As I have 3 Monitors connected, my RX 570 gets arround 50°C while ideling/ web browsing etc. The problem is, that this temp is apparently just the threshold, when the fans start to spin. So the fans start spinning for a minute then they stop for a while again... This is very annoying for me as the rest of my hackintosh is nearly quiet (SSD, 120mm low RPM cpu fan, nearly silent PSU,...), especially when Im using the pc to revise for school. Does somebody know wether its possible to "change" the threshold till the fans start spinning? Like it would probably not be a problem for the gpu at all, if the temp rises to 55°C but therefore be soundless....
       
       
×