Jump to content
ErmaC

Clover General discussion

20,272 posts in this topic

Recommended Posts

Advertisement

OK, next release it will be.

I think, you are right with "Other" folder instead of "10.13" @Slice (I mean with r4243)...

 

Condition:

1. I placed my 3rd party kexts including FakeSMC on "/EFI/CLOVER/kexts/10.13/" dir

2. Updating 17A365 to 17A405 (APFS)

3. softwareupdate created a new "Entry Point" contains Install Datas

4. Booting new "Entry Point" with macOS: (Null) to complete update proccess

5. I got stuck with "kextstall AppleACPICPU, MCHC bla bla bla.." even using KextInject=Yes/Detect

6. I then force re-booting from Clover USB that contains FakeSMC & PS2Controller on "Other" dir

7. Repeat point 4 till Update succeeded.

 

Sorry, for report only. I'm not sure if the only one who got this issue but, it never happened with prev. Legacy HFS+ install (/kexts/10.13/ dir).

Thanks.

Share this post


Link to post
Share on other sites

I think, you are right with "Other" folder instead of "10.13" @Slice (I mean with r4243)...

 

Sorry, for report only. I'm not sure if the only one who got this issue but, it never happened with prev. Legacy HFS+ install (/kexts/10.13/ dir).

Thanks.

 

@Badruzeus,

I don't think you're the only one.  @Matgen84 here and @cecekpawon here found that Clover did not determine correct "GetOSVersion" from boot.efi if booting into 10.13 installer.  Booting into an already fully installed 10.13 volume however is OK since in this scenario, Clover correctly detects 10.13.x is present.

 

Personally, I never had that problem because I always place my "essential" kexts for booting (FaskeSMC, Networking kext and VoodooPS2Controller for laptop) in /Other so these are always injected for all OS's and installer/recovery.  Those that have FakeSMC in /10.xx folders will have problems if Clover doesn't correctly determine the OS version.

 

@cecekpawon's diff patch in post#14841 seems to have fixed it  :).

 

 

 

@Slice,

I can confirm bug reported by @MakAsus in post#14838.  

 

After you escape out of the Kext Inject Management screen (just looking at the contents of the kext folders without selecting anything), then return to the Main Clover Menu, select macOS volume and press <Enter>, kexts not injected.

 

 

post-846696-0-32011700-1507516886_thumb.png

post-846696-0-19687700-1507516955_thumb.png

post-846696-0-94203600-1507516913_thumb.png

post-846696-0-41841800-1507516994_thumb.png

 

 

This does not happen if instead of returning to the Main Clover Menu, you select "Boot macOS with selected options" ---> everything works as expected and kexts are injected.

 

post-846696-0-49830800-1507517037_thumb.png

 

 

Attached preboot.log for r4244 (after performing actions described above) seems OK but boot hangs.

Clover_v2.4k_r4244_cecekpawon_patched.pkg.zip

preboot_r4244.log.zip

Share this post


Link to post
Share on other sites

@Badruzeus,

 

I don't think you're the only one.  @Matgen84 here and @cecekpawon here found that Clover did not determine correct "GetOSVersion" from boot.efi if booting into 10.13 installer.  Booting into an already fully installed 10.13 volume however is OK since in this scenario, Clover correctly detects 10.13.x is present.

 

Personally, I never had that problem because I always place my "essential" kexts for booting (FaskeSMC, Networking kext and VoodooPS2Controller for laptop) in /Other so these are always injected for all OS's and installer/recovery.  Those that have FakeSMC in /10.xx folders will have problems if Clover doesn't correctly determine the OS version.

 

@cecekpawon's diff patch in post#14841 seems to have fixed it  :).

OK, thanks. It seems like I missed this diff patch last night.

Share this post


Link to post
Share on other sites

Source/explaination please?

 

Ah, realistically you probably only need 0x43, with unrestricted NVRAM being most important in this situation. Something to do with the filesystem because of the way unix treats everything as one filesystem. And then unsigned kexts because you have to inject FakeSMC at some point (even if it's only for the installer), which is not signed, but I think that for some reason this also causes problems with locked NVRAM that gets moved. Basically instead of failing to have working NVRAM, it's refusing to even boot without it - I guess that's secure, lol.

Share this post


Link to post
Share on other sites

Oh, that's a very fast and deep rabbit hole. MSRs are not the same for all CPUs, in fact some CPUs in the same family/model with different hardware revisions and feature sets have different MSRs. Some models allow you to set some MSRs, while others do not allow you to modify these values. The biggest example is the K models that have unlocked multiplier and turbo MSRs. Some models have power management features that you can change MSRs for while others do not, and others still only allow the value to be written once then it is locked and can only be read until the reset pin has voltage for at least a minimum period of time (a full reset takes place). Also, writing or reading MSRs can cause an exception, so you'd have to be sure what values you could set and which MSRs can be written or you would not be able to boot because clover would just throw exception and crash every time it tries to set that MSR. Have you tried making sure that your firmware doesn't have like "fast boot" enabled? Where it purposefully doesn't initialize this stuff? Because I don't understand why it wouldn't be initializing the power management MSRs every boot... On the other hand, I'm pretty sure that all of those have default values when the CPU itself is initialized. I mean that really just seems like a terrible job at writing firmware......

 

 

:blink: Probably SMM locked in DXE phase. You would need to write a PEI driver. Also, man, that's some bricking your mobo territory....

Thank you for your clear explanation.

As Clover's coder and  developer as you are I would like to ask a advice if it is possible

 

New clover releases decides themselves to apply some kernel (and useful patches for unsupported cpu as mine)

Same for fakecpuid and others important things like reboot fix , xcpm and performance fix if eist is enable

Is it possible to override this embedded clover behavior or it is better to stay on old clover release till it is possible (some time new osx release breaks old clover and upgrading it is mandatory)

 

Thank for your invaluable job for community

Share this post


Link to post
Share on other sites

Ah, realistically you probably only need 0x43, with unrestricted NVRAM being most important in this situation. Something to do with the filesystem because of the way unix treats everything as one filesystem. And then unsigned kexts because you have to inject FakeSMC at some point (even if it's only for the installer), which is not signed, but I think that for some reason this also causes problems with locked NVRAM that gets moved. Basically instead of failing to have working NVRAM, it's refusing to even boot without it - I guess that's secure, lol.

I didn't try HS yet, but no previous release needed SIP restrictions lifted for injecting kexts, the validity was always checked when compiling prelinkedkernel... Also idk why one would need unrestricted NVRAM because of AptioFix vs AptioFix2

Share this post


Link to post
Share on other sites

@Badruzeus,

I don't think you're the only one.  @Matgen84 here and @cecekpawon here found that Clover did not determine correct "GetOSVersion" from boot.efi if booting into 10.13 installer.  Booting into an already fully installed 10.13 volume however is OK since in this scenario, Clover correctly detects 10.13.x is present.

 

Personally, I never had that problem because I always place my "essential" kexts for booting (FaskeSMC, Networking kext and VoodooPS2Controller for laptop) in /Other so these are always injected for all OS's and installer/recovery.  Those that have FakeSMC in /10.xx folders will have problems if Clover doesn't correctly determine the OS version.

 

@cecekpawon's diff patch in post#14841 seems to have fixed it  :).

 

 

 

@Slice,

I can confirm bug reported by @MakAsus in post#14838.  

 

After you escape out of the Kext Inject Management screen (just looking at the contents of the kext folders without selecting anything), then return to the Main Clover Menu, select macOS volume and press <Enter>, kexts not injected.

 

 

 

This does not happen if instead of returning to the Main Clover Menu, you select "Boot macOS with selected options" ---> everything works as expected and kexts are injected.

 

 

 

Attached preboot.log for r4244 (after performing actions described above) seems OK but boot hangs.

 

A small clarification: This does not happen if  instead immediately boot from selected disk, you select boot from another disk, or entering to shell and type "exit", and only then boot from selected disk.

Share this post


Link to post
Share on other sites

No need to take OSVersion from loaded boot.efi if we already have valid OSVersion grabbed from plist.

We can apply OSVersion value from loaded boot.efi to all OSTYPE_OSX (not just installer) with no OSVersion as a last attempt.

 

Do yourself a favor and use a single value that will never ever lie...

 

instead of guessing maybe just use the kernel version thats available ?

Share this post


Link to post
Share on other sites

+1. I totally agree with you and of course lord bs0d (really missed him). I also remember he suggest to convert version string to int for easy compare (in case of micky macos patch filter based on os version). It requires lot of work. To read kernel macho on this project seems on progress (I hope). The problem is, Clover decide to do some kexts filtering right on GUI far before boot.efi being loaded :)

Share this post


Link to post
Share on other sites

Hi guys, is Clover supposed to be able to do kext injection with SIP enabled? In other words, should you still be able to boot with SIP enabled?

 

Not complaining. :)) Just wondering. Cause, for as far as I know, in order for kexts to load, you need at least CsrActiveConfig 0x3. Apparently you can boot just fine with CsrActiveConfig 0x0. Which is great, cause otherwise I don't know how the heck I would have been able to install the Nvidia Web Driver with SIP enabled today.

 

Please, forgive my ignorance and correct me if I'm wrong. I just remember that we weren't able to boot with SIP enabled (since FakeSMC wasn't loaded anymore). That's why I found it interesting that somehow I was able to do that now. And also curious if something has changed in the meantime.

Share this post


Link to post
Share on other sites

Yes, you can boot with sip enabled and fakesmc (and other kexts) are injected (from EFI)

Strange) always use osxaptiofixdrv with csr 0x67, changed to osxaptionfix2drv and csr to 0x3/0x0. On first reboot/boot all ok, but after shutdown - no more, just hanging to crossed circle... any idea?

 

Sent from my Nexus 4 using Tapatalk

Share this post


Link to post
Share on other sites

Yeah, don't change SIP restrictions. Change it back to 0x67.


I didn't try HS yet, but no previous release needed SIP restrictions lifted for injecting kexts, the validity was always checked when compiling prelinkedkernel... Also idk why one would need unrestricted NVRAM because of AptioFix vs AptioFix2

 

It's not linking a prelinked kernel... It's pushing them onto the datahub to be loaded by the kernel, it should be checking them, or SIP is not working. AptioFix breaks NVRAM if it is SMM locked.

Share this post


Link to post
Share on other sites

It's not linking a prelinked kernel... It's pushing them onto the datahub to be loaded by the kernel,

 

I was talking about macOS, not Clover... as I said, I never heard hat SIP influences kext injection, while it does influence which kexts end up in the prelinkedkernel

 

AptioFix breaks NVRAM if it is SMM locked.

 

Well, it uses the exact same logic as AptioFix2 to prevent that, never heard of it not working but AptioFix2 working.

Share this post


Link to post
Share on other sites

It's effectively like loading a kext from the terminal, which are checked when linked just as when prelinked. I have non-working NVRAM with AptioFix but not with AptioFix2...

Share this post


Link to post
Share on other sites

I have non-working NVRAM with AptioFix but not with AptioFix2...

 

tbh, that's a bug, isn't it? Checked the Memory Maps of both? Maybe restoring the kernel to its original position on entry is what screws it up?

Share this post


Link to post
Share on other sites

Clover version R4243 does not seem to install (upgrade) on 10.13 (17A405).

Installation fails with error (console) authd: MacOS error: -67050, cert[2]: AnchorTrusted =(leaf)[force]> 0

 

 

has anyone else experienced the same error?

Share this post


Link to post
Share on other sites

It's effectively like loading a kext from the terminal, which are checked when linked just as when prelinked.

Is this fully accurate? I've been booting with SIP enabled for a while now (on another machine), and haven't had any issues with kext injection working. FakeSMC/etc are still loading (with kext injection and with SIP enabled).

Share this post


Link to post
Share on other sites

Hello, after installed 10.13.1 Beta 2 (17B35a) with APFS I always get this messages on verbose logs:

1. "considerRebuildOfPrelinkedKernel org.netkas.FakeSMC triggered rebuild (I placed FakeSMC v3.5.0 on /kexts/10.13 dir)

2. "kextd stall(0), (60s): 'NVDAHal', 'NVDAgl', 'NVDA,Display-A' (I patched my DSDT - GFX0 using this)

3. (this one appears before verbose; I'm not sure related to Clover or not, sorry):

RegisterRestartDataProtocol called. 0x12345678
RestartData protocol installed successfully.
++++++++++++++++++++++++++++++++++++++++++++++

FYi, I'm using Legacy r4244 (with @cecekpawon patch). Thanks.

bootlog.log_a43sj_r4244.txt.zip

EFI_r4244_boot7.zip

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   0 members

    No registered users viewing this page.

  • Similar Content

    • By ErmaC
      Slice is glad to present a new EFI bootloader.

      CLOVER
      Now version 2 rEFIt based.


      It is open source based on different projects: Chameleon, rEFIt, XNU, VirtualBox. The main is EDK2 latest revision.
      I also want to thank all who help Slice with the development. Credits and copyrights remain in the sources.
      https://sourceforge.net/projects/cloverefiboot/?source=directory
      There is a WIKI 
      http://clover-wiki.zetam.org/
      Main features:


      If you have a question please provide outputs from DarwinDumper (formed from Trauma tool). Thanks Trauma!
      Continued by blackosx and STLVNUB.
      Post#2 CloverGrower - create Clover by yourself Post#3 Downloads Post#4 Installation of the bootloader Post#5 How to do UEFI boot Post#6 How to use - common words Post#7 Calculator for Automatic DSDT fix Post#8 Instructions for GraphicsInjector Post#9 ATIConnector patching Post#10 Any kexts patching with some Samples Post#11 CustomEDID Post#12 Hiding unnecessary menu entries Post#13 Instruction for DSDT corrections to do DeviceInjection works Post#14 Development Post#15 Themes Post#16 About kexts injection Post#17 Instructions for P- and C-states generator Post#18 Patching DSDT to get Sleep working Post#19 CPU settings and geekbench Post#20 ACPI tables loading Post#21 DSDTmini Post#22 Custom SMBios Post#23 F.A.Q. Post#24 iCloudFix Post#25 Using mouse. Post#26 How to make orange icons to be metallic Post#27 How to make software RAID (by Magnifico) Post#28 How to modify InstallESD.dmg (by shiecldk) Post#29 Config.plist settings Post#30 Using extra kexts and skipping kernelcache Post#31 Choosing EFI drivers Post#32 Configuration files Post#33 Automatic config.plist creating Post#34 Custom DSDT patches Post#35 How to do sleep/wake working with UEFI BOOT Post#36 DeviceID substitution (FakeID) Post#37 Using Custom OS Icons Post#38 Hibernation Post#39 Floating regions Post#41 Property List Editor Post#42 Blocking Bad Kext Post#43 AAPL,slot-name Post#44 FakeCPUID for unsupported CPU Post#45 Multiple Boot Options - to write into UEFI BIOS boot menu Post#46 How to install Windows UEFI Post#47 How to speedup Clover boot Post#48 Info.plist patching Post#49 Arbitrary device injection Post#50 Non-Standard Legacy Boot Files Post#51 Reboot to Windows UEFI from Mac OSX Post#52 Deprecated Features Post#53 Using UDK2018 Post#54 Device Properties Post#55 Scalable themes Post#56 How to search Clover mistakes (bisection) -----------------
       
      Slice:
      I edited all posts in the thread to correspond to actual Clover revision.
      Please install Clover at least 2652 and use new instructions.
×