Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

HID = Human Interface Device (?)

Shim = old API 

Are you using some old kexts like ApplePS2Controller (or some trackpad kexts)? Not sure but try to boot with no those kexts if any, and unplug everything (also the mouse/keyboard).... just to make a test..

Otherwise if means "_HID" ... ACPI problem with your DSDT..

i am on desktop ..not lap 

Link to comment
Share on other sites

@Slice

Help please , i have a problem with Sierra i use clover 3578 and your fake.smc

 

why i am blocked here ?

Looks like a problem with USB. (just to notice this is not my fakesmc 6.20)

Failed to create custom entries >=r3576, please check Slice

OK, accepted. (without testing for your responsibility)

Link to comment
Share on other sites

I have EX58-UD5 and use "PBR" and Clover EFi 64bits BiosBlockIO, because i don't have UEFI...

My experiences with the latest Clover boot updates :

 

I was updating some USB thumb boot drives last week and forgot to check BiosBlockIO. What is odd is the I was able to boot my computer even though SATA was checked.

 

Has something changed? I use ver 3577.

Link to comment
Share on other sites

I was updating some USB thumb boot drives last week and forgot to check BiosBlockIO. What is odd is the I was able to boot my computer even though SATA was checked.

 

Has something changed? I use ver 3577.

It is not odd, it is excellent!

  • Like 1
Link to comment
Share on other sites

I was updating some USB thumb boot drives last week and forgot to check BiosBlockIO. What is odd is the I was able to boot my computer even though SATA was checked.

 

Has something changed? I use ver 3577.

Hello there,

 

Here's what has been changed in the revision 3577.

 

Rev 3577

Legacy boot improvements.

 

Legacy boot is a process to boot OSes through 16bit instructions in real mode like it did old PC BIOS-based computer before Clover, before UEFI.

It was needed to boot Windows XP or Windows 7-32bit, old Linux or modern systems if the drive formatted to MBR Partition Table.

But Clover is already 32/64bit program working in EFI environment in protected mode. It can't get back to real mode. To do this we made a trick with loading PBR boot sector and start it in real mode.

It's a pity it is not always work because devices like SATA controller occur in undefined state. :(

 

There was three methods for Legacy boot before "LegacyBiosDefault[/size]", "PBRtest[/size]", "PBR[/size]" set by config.plist

	<key>Boot</key>
	<dict>
		<key>Legacy</key>
		<string>PBRtest</string>

"LegacyBiosDefault" assumed UEFI BIOS with CSM module capable to do LegacyBoot.

"PBR" is the most commonly used method for legacy Clover. I have one computer with PATA drive working with this method.

"PBRtest" is somehow different. May be someone will be happy with it.

 

Now I propose one more method "PBRsata". It is the same as "PBR" but making a SATA reset before boot. AFAIK the SATA controller is a main reason why legacy boot is not working.

Hope someone will be happy.

 

PS. The version is released.

 

 

 

Furthermore, you can keep track of the most important updates by following the below link.

http://www.insanelymac.com/forum/topic/304530-clover-change-explanations/

However, if you're interested in seeing more detailed information for every revision, follow the link below. The process is very easy, you select the revision by clicking on it or by filling it in the url.

https://sourceforge.net/p/cloverefiboot/code/3579/

url: https://sourceforge.net/p/cloverefiboot/code
revision: /3579/

Best regards.

Link to comment
Share on other sites

What do we have to name original EFI/EFI/microsoft/boot/bootmgfw.efl if it has to be replaced by clover boot64.efi renamed to bootmgfw.efl since windows will no longer start after that. This machine only boots to windows path if not it will not detect uefi boot drive. or clover cant do this? Maybe Rename to bootmgfw-orig.efl and clover can use that?

Link to comment
Share on other sites

What do we have to name original EFI/EFI/microsoft/boot/bootmgfw.efl if it has to be replaced by clover boot64.efi renamed to bootmgfw.efl since windows will no longer start after that. This machine only boots to windows path if not it will not detect uefi boot drive. or clover cant do this? Maybe Rename to bootmgfw-orig.efl and clover can use that?

Hello there,

 

Clover will detect bootmgfw-orig.efi as Windows EFI.

 

See the code below.

 

if ((StriCmp(Path, L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi") == 0) ||
             (StriCmp(Path, L"\\EFI\\Microsoft\\Boot\\bootmgfw-orig.efi") == 0) ||
             (StriCmp(Path, L"\\bootmgr.efi") == 0) ||
             (StriCmp(Path, L"\\EFI\\MICROSOFT\\BOOT\\cdboot.efi") == 0)) {
    return OSTYPE_WINEFI;
*The code was taken from the loader.c file.

 

Best of luck.

Link to comment
Share on other sites

I just follow this bug report Micky (never use this feature before), minimize it just to check KextsToPatch only. In config.plist I have 8 patches, while in new setting (Sierra.plist) only 1 patch & does applied. About last diff I made, appear Slice forgot to rename 1 var name (SubEntry -> CustomSubEntry), so I rollback to prev ver (with new var). Thats it. Attached log, plist & screenshot.

Link to comment
Share on other sites

Did you see name conflict, SubEntry is BOOLEAN parameter while CustomSubEntry is a pointer?

 

NB. I am not a developer of SubEntries and don't know right logic here.

  • Like 1
Link to comment
Share on other sites

Pfft, you are right sir, and Im confusing now. With r3576, on GUI, it immediately boot after entering space without showing entries. With log:

0:777  0:000  GetEfiBootDeviceFromNvram: efi-boot-device-data not found
0:777  0:000  EfiBootVolume not found
0:777  0:000  Default boot entry not found
0:777  0:000  DefaultIndex=-1 and MainMenu.EntryCount=8
0:810  0:033  GUI ready

Below also didnt help

if (SubEntry) {
  // Allocate a sub entry
  CustomSubEntry = DuplicateCustomEntry (Entry);
  if (CustomSubEntry) {
    if (!FillinCustomEntry (CustomSubEntry, Dict, TRUE) || !AddCustomSubEntry (Entry, CustomSubEntry)) {
      if (CustomSubEntry) {
        FreePool (CustomSubEntry);
      }
    }
  }
}

Since "SubEntry" as boolean is inside a loop while parsing "SubEntries" in config, I think that should never be evaluated. Because there will be no "SubEntries" inside "SubEntries". Am I wrong Slice?

Edited by cecekpawon
Link to comment
Share on other sites

Thanks Guys.

From the Wiki:

 

 

  • SubEntries - (Default:true) Disables the default sub entries if set to false. Can also be used to create custom sub entries using the same structure as a main entry, any settings that aren't set in the sub entry will be inherited from the main entry.

seem that the key "SubEntries" can be a boolean (only false should be expected as the opposite of the default behavior?) or can be a dictionary containing almost all the keys of the main Entry. But if I'm not mistaken the KernelAndKextPatches cannot be used there as described here by Slice:             #11            

So the question is now KernelAndKextPatches allowed in Sub-Entries and will work? (stupid question I know :blush:, what really I wanted to ask is if you are going to correct this to take effect since already tried but not possible due to some limitations in performing patches. Don't remembar, but at the time this code is called patches are alredy applied?)

Link to comment
Share on other sites

Hi Guys,

 

I need some input/help from you due to my personal rig update 2016. I've decided to go with a basic x99 update, even that I've found out that I'm the only one running my mobo at the moment as an hackintosh?

 

Hardware: Asrock x99m Extreme4, i7-5820k, 32GB DDR4, GTX970, SM951 Samsung NVME.

 

I have some problems with USB (not part of this post) and my UEFI entries in my Bios. Strangely, Clover does create a huge amount of uefi-boot entries in the bios section (at the moment around 80). That is the same for my NVME M2 SSD or normal SATA attached SSDs. I know that there was someone else with this problem in the community, but I dont find his post again and the help he had received from you guys.

 

Do you need any other information regarding my problem for helping me? Is this just a cosmetic issue?

Link to comment
Share on other sites

Bzzt, another fact that I never knew before: Clover should ignore KernelAndKextPatches in SubEntries config, except main config. Thanks pal..

Yep, I asked because in case of working KernelAndKextPatches inside a custom entries I've to do a long job for something else :P

 

PS (thanks to you :) ) 

Link to comment
Share on other sites

How about the idea of extracting the whole KernelAndKextPatches entries into a separate plist (just call it patches.plist) and put it into the kexts dirs? The users can put their patches in 10.7, ..., 10.11 and Others folders and we won't need those complicated SubEntries structure anymore.

 

That way the config.plist will be only for bootloader settings and not for different macos versions.

  • Like 2
Link to comment
Share on other sites

How about the idea of extracting the whole KernelAndKextPatches entries into a separate plist (just call it patches.plist) and put it into the kexts dirs? The users can put their patches in 10.7, ..., 10.11 and Others folders and we won't need those complicated SubEntries structure anymore.

 

That way the config.plist will be only for bootloader settings and not for different macos versions.

 

Sounds great !

Link to comment
Share on other sites

How about the idea of extracting the whole KernelAndKextPatches entries into a separate plist (just call it patches.plist) and put it into the kexts dirs? The users can put their patches in 10.7, ..., 10.11 and Others folders and we won't need those complicated SubEntries structure anymore.

 

That way the config.plist will be only for bootloader settings and not for different macos versions.

To my seems more simple to create a key (supportedOSes) as string where you can write the supported OSes in a component separated by the "," char inside each KextsToPatch dictionary:

supportedOSes = 10.11,10.12,10.11.7

just an idea.

Clover should create an array by split the components separated by "," as supported Os for the relative patch. So can be dinamically applied  when the OS version match.

Link to comment
Share on other sites

Clover does create a huge amount of uefi-boot entries in the bios section (at the moment around 80). That is the same for my NVME M2 SSD or normal SATA attached SSDs. I know that there was someone else with this problem in the community, but I dont find his post again and the help he had received from you guys.

 

Do you need any other information regarding my problem for helping me? Is this just a cosmetic issue?

This is not a cosmetic issue. Those entries are taking up space in NVRAM and slow down your BIOS UI.

 

I think it's the BIOS that creates those. Try using EasyUEFI in Windows to remove the duplicates, then add a new entry that points to the Clover partition. The new entry should include a file path like this:\EFI\BOOT\BOOTX64.EFI

Remove entries that don't have a file path (except for the Hard Drive and CD/DVD Drive options). Move the one you want to be the default (probably the new Clover option you just added) to the top.

 

Then restart your computer, and check the BIOS boot menu to make sure your entries are there. Boot into Clover and Mac OS X a few times to make sure duplicates are no longer added.

Link to comment
Share on other sites

How about the idea of extracting the whole KernelAndKextPatches entries into a separate plist (just call it patches.plist) and put it into the kexts dirs? The users can put their patches in 10.7, ..., 10.11 and Others folders and we won't need those complicated SubEntries structure anymore.

 

That way the config.plist will be only for bootloader settings and not for different macos versions.

Good idea. In such plist we can hold OS specific settings that we will not change in GUI. They will be accessible only after start OS.

 

To my seems more simple to create a key (supportedOSes) as string where you can write the supported OSes in a component separated by the "," char inside each KextsToPatch dictionary:

supportedOSes = 10.11,10.12,10.11.7

just an idea.

Clover should create an array by split the components separated by "," as supported Os for the relative patch. So can be dinamically applied  when the OS version match.

 

Another good idea.

But more complicate to release.

These way we can edit OS specific settings in GUI, in more huge GUI.

  • Like 3
Link to comment
Share on other sites

×
×
  • Create New...