Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

Is it working? I got only blinking underscore while the same compiled by gcc working.

I can confirm that it works well on my hardware. I compile it on El Cap with Xcode 7Beta + command line tools, and comment out these inf's in clover.fdf as I don't need IDE or SCSI controllers:

 

  #INF  Clover/VBoxIdeControllerDxe/VBoxIdeControllerDxe.inf

  #INF  Clover/VBoxIdeBusDxe/VBoxIdeBusDxe.inf
    INF  Clover/SataControllerDxe/SataControllerDxe.inf
  #INF  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
  #INF  Clover/AtaAtapi/AtaAtapiPassThru.inf
  #INF  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
  #INF  Clover/AtaBus/AtaBusDxe.inf
  #INF  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
  #INF  Clover/DVDBus/ScsiBusDxe.inf
  #INF  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
  #INF  Clover/DVDDisk/ScsiDiskDxe.inf
  #INF  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
 
Then:
 
./ebuild.sh -clang -release --only-sata0 --x64
  • Like 1
Link to comment
Share on other sites

 

I can confirm that it works well on my hardware. I compile it on El Cap with Xcode 7Beta + command line tools, and comment out these inf's in clover.fdf as I don't need IDE or SCSI controllers:

 

  #INF  Clover/VBoxIdeControllerDxe/VBoxIdeControllerDxe.inf

  #INF  Clover/VBoxIdeBusDxe/VBoxIdeBusDxe.inf
    INF  Clover/SataControllerDxe/SataControllerDxe.inf
  #INF  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
  #INF  Clover/AtaAtapi/AtaAtapiPassThru.inf
  #INF  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
  #INF  Clover/AtaBus/AtaBusDxe.inf
  #INF  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
  #INF  Clover/DVDBus/ScsiBusDxe.inf
  #INF  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
  #INF  Clover/DVDDisk/ScsiDiskDxe.inf
  #INF  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
 
Then:
 
./ebuild.sh -clang -release --only-sata0 --x64

 

But AtaAtapi is a Sata driver provided AHCI mode. You may exclude it only if you set BiosBlockIO.

Link to comment
Share on other sites

Thanks, this is valuable info!

Accepted into 3248.

I can also note this MacBook uses 

"Intel HD Graphics 5300"

"AAPL,ig-platform-id" = 0x161e0001

May be someone found this info usefull.

The Broadwell info updated by 3248 is reverted in 3249, please push the change of TheRacerMaster again.

Link to comment
Share on other sites

Apologies if this is in the wrong section or not a bug!

 

In my "Custom > Entries" section I have separate entries for Yosemite and El Capitan including patches that are unique to each OS but if i check the boot.log file it appears to be running both regardless of which OS I boot into.

 

boot.log (Relevant section only)

0:115  0:000  Copying global patch settings
0:115  0:000  KextsToPatch: 2 requested
0:115  0:000  KextToPatch 0: IOGraphicsFamily (Yosemite Boot Logo: Patch 1) Kext bin patch, data len: 5
0:115  0:000  KextToPatch 1: IOGraphicsFamily (Yosemite Boot Logo: Patch 2) Kext bin patch, data len: 5
0:115  0:000  Filled in patch settings
0:115  0:000  Copying global patch settings
0:115  0:000  Copying global patch settings
0:115  0:000  KextsToPatch: 2 requested
0:115  0:000  KextToPatch 0: IOGraphicsFamily (El Capitan Boot Logo: Patch 1) Kext bin patch, data len: 5
0:115  0:000  KextToPatch 1: IOGraphicsFamily (El Capitan Boot Logo: Patch 2) Kext bin patch, data len: 5
0:115  0:000  Filled in patch settings
0:115  0:000  Copying global patch settings
0:115  0:000  Copying global patch settings
0:115  0:000  Copying global patch settings
0:115  0:000  CustomEDID ok

Custom > Entries > Yosemite Partition

				<dict>
					<key>Volume</key>
					<string>F57C54E7-2E96-4FA9-B73F-A75D3F237432</string>
					<key>Type</key>
					<string>OSX</string>
					<key>Arguments</key>
					<string>kext-dev-mode=1</string>
					<key>FullTitle</key>
					<string>OS X 10.10.5 (14F27) Yosemite</string>
					<key>InjectKexts</key>
					<true/>
					<key>NoCaches</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>KernelAndKextPatches</key>
					<dict>
						<key>KextsToPatch</key>
						<array>
							<dict>
								<key>Comment</key>
								<string>Yosemite Boot Logo: Patch 1</string>
								<key>Find</key>
								<data>hcB0a0g=</data>
								<key>Name</key>
								<string>IOGraphicsFamily</string>
								<key>Replace</key>
								<data>McB0W0g=</data>
							</dict>
							<dict>
								<key>Comment</key>
								<string>Yosemite Boot Logo: Patch 2</string>
								<key>Find</key>
								<data>QYjE6xE=</data>
								<key>Name</key>
								<string>IOGraphicsFamily</string>
								<key>Replace</key>
								<data>QYjE6zE=</data>
							</dict>
						</array>
					</dict>
				</dict>

Custom > Entries > El Capitan Partition

				<dict>
					<key>Volume</key>
					<string>B262BC9F-1104-4184-8314-C6943AB0506E</string>
					<key>Type</key>
					<string>OSX</string>
					<key>FullTitle</key>
					<string>OS X 10.11 (15A243d) El Capitan</string>
					<key>InjectKexts</key>
					<true/>
					<key>NoCaches</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>KernelAndKextPatches</key>
					<dict>
						<key>KextsToPatch</key>
						<array>
							<dict>
								<key>Comment</key>
								<string>El Capitan Boot Logo: Patch 1</string>
								<key>Find</key>
								<data>hcB0a0g=</data>
								<key>Name</key>
								<string>IOGraphicsFamily</string>
								<key>Replace</key>
								<data>McB0W0g=</data>
							</dict>
							<dict>
								<key>Comment</key>
								<string>El Capitan Boot Logo: Patch 2</string>
								<key>Find</key>
								<data>AQAAdRc=</data>
								<key>Name</key>
								<string>IOGraphicsFamily</string>
								<key>Replace</key>
								<data>AQAAdBc=</data>
							</dict>
						</array>
					</dict>
				</dict>
Link to comment
Share on other sites

Hi Slice, can I just check that answer wasn't directly in response to my query please?

Yes, I just have no relation to custom entries. Apianti and sothor did this.

  • Like 1
Link to comment
Share on other sites

Clover build broken building against latest edk2:

 

Speedy-OSX:Clover RehabMan$ ./ebuild.sh 
TOOLCHAIN_DIR: /Users/Admin/Projects/clover.git/edk2/Clover/../../toolchain
Initializing workspace
Loading previous configuration from $WORKSPACE/Conf/BuildEnv.sh
WORKSPACE: /Users/Admin/Projects/clover.git/edk2
EDK_TOOLS_PATH: /Users/Admin/Projects/clover.git/edk2/BaseTools

Running edk2 build for CloverX64 using the command:
build  -D USE_LOW_EBDA -p Clover/Clover.dsc  -a X64 -b RELEASE -t GCC49 -n 9 

Build environment: Darwin-14.5.0-x86_64-i386-64bit
Build start time: 08:25:28, Aug.25 2015

WORKSPACE        = /Users/Admin/Projects/clover.git/edk2
ECP_SOURCE       = /Users/Admin/Projects/clover.git/edk2/EdkCompatibilityPkg
EDK_SOURCE       = /Users/Admin/Projects/clover.git/edk2/EdkCompatibilityPkg
EFI_SOURCE       = /Users/Admin/Projects/clover.git/edk2/EdkCompatibilityPkg
EDK_TOOLS_PATH   = /Users/Admin/Projects/clover.git/edk2/BaseTools


Architecture(s)  = X64
Build target     = RELEASE
Toolchain        = GCC49

Active Platform          = /Users/Admin/Projects/clover.git/edk2/Clover/Clover.dsc
Flash Image Definition   = /Users/Admin/Projects/clover.git/edk2/Clover/Clover.fdf

Processing meta-data .

build.py...
/Users/Admin/Projects/clover.git/edk2/Clover/Clover.dsc(...): error 4000: Instance of library class [VarCheckLib] is not found
	in [/Users/Admin/Projects/clover.git/edk2/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf] [X64]
	consumed by module [/Users/Admin/Projects/clover.git/edk2/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf]
 

- Failed -
Build end time: 08:25:30, Aug.25 2015
Build total time: 00:00:01
Link to comment
Share on other sites

Attention!

EDK2 must be revision 18198!

 

New EDK2 improvement will not improve Clover.

Thanks for the information. I didn't find it documented anywhere that Clover requires a specific edk2 rev.

 

Is the Clover setup/build process documented somewhere?

You can revert to that version by typing following:

svn up -r 18198 ~/path/to/Clover/edk2

If you didn't do any changes to edk2, you should also revert the conflicts with "theirs-conflict" by typing "tc" on every conflict.

 

Thanks. It was helpful as I'm not used to svn (prefer git). It saved me having to look up the syntax required to checkout (git term) a particular version.

  • Like 1
Link to comment
Share on other sites

svn co -r 18198 https://svn.code.sf.net/p/edk2/code/trunk/edk2 edk2

 

 

Thanks for the information. I didn't find it documented anywhere that Clover requires a specific edk2 rev.

Is the Clover setup/build process documented somewhere?

 

 

http://clover-wiki.zetam.org/Development#Compiling-from-source

But I afraid the instructions are obsolete.

Or here Post#14 Development

Link to comment
Share on other sites

Hi Slice

Is it possible to update KernelHaswellE to support 10.10.3+. FakeCPUID does not support it too.

Thanks

 

:gun:

Tell me what to do and I will commit this to repo.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi there !

 

I'd like to report issues with ShutDown and El Capitan :

 

- when select Restart, the system shuts down, the power led stays ON and the system restart

- when I select ShutDown, the system shuts down, the power led switches OFF but 3 secondes later the power led switches ON and the system restart all by itself !

 

I noticed that

- there is no pb on Yosemite (10.10.5 for the time being)

- when I unplug all my USB devices (except BT which is on a mini-PCIe port), the system shuts down normally.

 

Config :

- 10.11. GM

- Clover v3262

- USB injected by SSDT (no change since 10.10)

 

Method (_SB.PCI0.EHC1._DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}

Return (Package (0x15)
{
"AAPL,slot-name",
"Built In",
"name",
"Intel EHCI Controller",
"model",
Buffer (0x3E)
{
"Intel 8 Series Chipset Family USB Enhanced Host Controller #1"
},

"device_type",
Buffer (0x0F)
{
"USB Controller"
},

"AAPL,current-available",
0x0834,
"AAPL,current-extra",
0x0A8C,
"AAPL,current-in-sleep",
0x03E8,
"AAPL,current-extra-in-sleep",
0x0834,
"AAPL,max-port-current-in-sleep",
0x0A8C,
"AAPL,device-internal",
0x02,
Buffer (One)
{
0x00
}
})
}

Method (_SB.PCI0.EHC2._DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}

Return (Package (0x15)
{
"AAPL,slot-name",
"Built In",
"name",
"Intel EHCI Controller",
"model",
Buffer (0x3E)
{
"Intel 8 Series Chipset Family USB Enhanced Host Controller #2"
},

"device_type",
Buffer (0x0F)
{
"USB Controller"
},

"AAPL,current-available",
0x0834,
"AAPL,current-extra",
0x0A8C,
"AAPL,current-in-sleep",
0x03E8,
"AAPL,current-extra-in-sleep",
0x0834,
"AAPL,max-port-current-in-sleep",
0x0A8C,
"AAPL,device-internal",
0x02,
Buffer (One)
{
0x00
}
})
}

Method (_SB.PCI0.XHC._DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}

Return (Package (0x15)
{
"AAPL,slot-name",
"Built In",
"name",
"Intel XHCI Controller",
"model",
Buffer (0x37)
{
"Intel 8 Series Chipset Family USB xHCI Host Controller"
},

"device_type",
Buffer (0x0F)
{
"USB Controller"
},

"AAPL,current-available",
0x0834,
"AAPL,current-extra",
0x0A8C,
"AAPL,current-in-sleep",
0x03E8,
"AAPL,current-extra-in-sleep",
0x0834,
"AAPL,max-port-current-in-sleep",
0x0A8C,
"AAPL,device-internal",
0x02,
Buffer (One)
{
0x00
}
})
}

 

Link to comment
Share on other sites

Hi there !

 

I'd like to report issues with ShutDown and El Capitan :

 

- when select Restart, the system shuts down, the power led stays ON and the system restart

- when I select ShutDown, the system shuts down, the power led switches OFF but 3 secondes later the power led switches ON and the system restart all by itself !

 

I noticed that

- there is no pb on Yosemite (10.10.5 for the time being)

- when I unplug all my USB devices (except BT which is on a mini-PCIe port), the system shuts down normally.

 

Config :

- 10.11. GM

- Clover v3262

- USB injected by SSDT (no change since 10.10)

 

Method (_SB.PCI0.EHC1._DSM, 4, NotSerialized)

{

If (LEqual (Arg2, Zero))

{

Return (Buffer (One)

{

0x03

})

}

 

Return (Package (0x15)

{

"AAPL,slot-name",

"Built In",

"name",

"Intel EHCI Controller",

"model",

Buffer (0x3E)

{

"Intel 8 Series Chipset Family USB Enhanced Host Controller #1"

},

 

"device_type",

Buffer (0x0F)

{

"USB Controller"

},

 

"AAPL,current-available",

0x0834,

"AAPL,current-extra",

0x0A8C,

"AAPL,current-in-sleep",

0x03E8,

"AAPL,current-extra-in-sleep",

0x0834,

"AAPL,max-port-current-in-sleep",

0x0A8C,

"AAPL,device-internal",

0x02,

Buffer (One)

{

0x00

}

})

}

 

Method (_SB.PCI0.EHC2._DSM, 4, NotSerialized)

{

If (LEqual (Arg2, Zero))

{

Return (Buffer (One)

{

0x03

})

}

 

Return (Package (0x15)

{

"AAPL,slot-name",

"Built In",

"name",

"Intel EHCI Controller",

"model",

Buffer (0x3E)

{

"Intel 8 Series Chipset Family USB Enhanced Host Controller #2"

},

 

"device_type",

Buffer (0x0F)

{

"USB Controller"

},

 

"AAPL,current-available",

0x0834,

"AAPL,current-extra",

0x0A8C,

"AAPL,current-in-sleep",

0x03E8,

"AAPL,current-extra-in-sleep",

0x0834,

"AAPL,max-port-current-in-sleep",

0x0A8C,

"AAPL,device-internal",

0x02,

Buffer (One)

{

0x00

}

})

}

 

Method (_SB.PCI0.XHC._DSM, 4, NotSerialized)

{

If (LEqual (Arg2, Zero))

{

Return (Buffer (One)

{

0x03

})

}

 

Return (Package (0x15)

{

"AAPL,slot-name",

"Built In",

"name",

"Intel XHCI Controller",

"model",

Buffer (0x37)

{

"Intel 8 Series Chipset Family USB xHCI Host Controller"

},

 

"device_type",

Buffer (0x0F)

{

"USB Controller"

},

 

"AAPL,current-available",

0x0834,

"AAPL,current-extra",

0x0A8C,

"AAPL,current-in-sleep",

0x03E8,

"AAPL,current-extra-in-sleep",

0x0834,

"AAPL,max-port-current-in-sleep",

0x0A8C,

"AAPL,device-internal",

0x02,

Buffer (One)

{

0x00

}

})

}

 

 

Try with FakePCIID.kext+FakePCIID_XHCIMux.kext.

Did you create a proper injector for your USB ports? (and rename EHCx->EH0x)?

Link to comment
Share on other sites

Try with FakePCIID.kext+FakePCIID_XHCIMux.kext.

Did you create a proper injector for your USB ports? (and rename EHCx->EH0x)?

I edited my SSDT :

EHC1 > EH01

EHC2 > EH02

XHC > XHC1

And add your kext to /EFI kext folder 

 

And it seems to work !!! Thanks a lot !  :D

 

So it was not really Clover related ...

Link to comment
Share on other sites

  • 2 weeks later...

Not sure if this is the correct thread to post this, but here's a simple change that allows Clover to respect the "bless --nextonly" option.  A next-only boot adds efi-boot-next and efi-boot-next-data to NVRAM, both of which are cleaned up by boot.efi automatically.

Index: rEFIt_UEFI/Platform/Nvram.c
===================================================================
--- rEFIt_UEFI/Platform/Nvram.c (revision 3270)
+++ rEFIt_UEFI/Platform/Nvram.c (working copy)
@@ -465,8 +465,14 @@
     DBG ("already parsed\n");
     return EFI_SUCCESS;
   }
-  
-  gEfiBootDeviceData = GetNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid, NULL, &Size);
+
+  gEfiBootDeviceData = GetNvramVariable (L"efi-boot-next-data", &gEfiAppleBootGuid, NULL, &Size);
+  if (gEfiBootDeviceData != NULL) {
+    DBG ("\n");
+    DBG (" efi-boot-next-data: %s\n", FileDevicePathToStr (gEfiBootDeviceData));
+  } else {
+    gEfiBootDeviceData = GetNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid, NULL, &Size);
+  }
   if (gEfiBootDeviceData == NULL) {
     DBG (" efi-boot-device-data not found\n");
     return EFI_NOT_FOUND;
  • Like 1
Link to comment
Share on other sites

Not sure, if it's just me or?

 

KextsToPatch never apllied while in other plist (except default: config.plist). Lets say i've 2 plist: "config" as default & "test" for trial & error purposes.

  • Boot to Clover GUI.
  • Goto option: change plist (ex: config -> test) + enter, all settings change to new one (test.plist).
  • Esc back to main menu.
  • Boot to OS partition & patch not applied, never.
  • Copying KextsToPatch values from test to config, boot with config, patch applied.

** with enabled allow kext patch in menu

** maybe: bott-args too

Link to comment
Share on other sites

 

Not sure if this is the correct thread to post this, but here's a simple change that allows Clover to respect the "bless --nextonly" option.  A next-only boot adds efi-boot-next and efi-boot-next-data to NVRAM, both of which are cleaned up by boot.efi automatically.

Index: rEFIt_UEFI/Platform/Nvram.c
===================================================================
--- rEFIt_UEFI/Platform/Nvram.c (revision 3270)
+++ rEFIt_UEFI/Platform/Nvram.c (working copy)
@@ -465,8 +465,14 @@
     DBG ("already parsed\n");
     return EFI_SUCCESS;
   }
-  
-  gEfiBootDeviceData = GetNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid, NULL, &Size);
+
+  gEfiBootDeviceData = GetNvramVariable (L"efi-boot-next-data", &gEfiAppleBootGuid, NULL, &Size);
+  if (gEfiBootDeviceData != NULL) {
+    DBG ("\n");
+    DBG (" efi-boot-next-data: %s\n", FileDevicePathToStr (gEfiBootDeviceData));
+  } else {
+    gEfiBootDeviceData = GetNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid, NULL, &Size);
+  }
   if (gEfiBootDeviceData == NULL) {
     DBG (" efi-boot-device-data not found\n");
     return EFI_NOT_FOUND;

Accepted to 3271, although I don't know what is ;) .

 

Not sure, if it's just me or?

 

KextsToPatch never apllied while in other plist (except default: config.plist). Lets say i've 2 plist: "config" as default & "test" for trial & error purposes.

  • Boot to Clover GUI.
  • Goto option: change plist (ex: config -> test) + enter, all settings change to new one (test.plist).
  • Esc back to main menu.
  • Boot to OS partition & patch not applied, never.
  • Copying KextsToPatch values from test to config, boot with config, patch applied.

** with enabled allow kext patch in menu

** maybe: bott-args too

I think it is corrected in 3270. Check, please, again.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...