Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

Because my netbook's GMA950 graphics is need to patch kext's binary contain to 27AE.

And these original kexts existed in S/L/E conflict with kexts which in Clover.

Kext patcher function in Clover was not work for a long time.

Only NoCaches function made my patched kext in Clover loaded properly.

Kext patch function must work. 

If you mean info.plist patching to make other PCIMatching then I'll be recommend to see about FakeID function.

	<key>Devices</key>
	<dict>

		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x27A28086</string>
		</dict>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>

		<key>DualLink</key>
		<integer>0</integer>
		<key>LoadVBios</key>
		<false/>
		<key>PatchVBios</key>
		<true/>

Link to comment
Share on other sites

Hello Slice

Is it possible to patch IO80211Family.kext not to load it.I tried info.plist patching but i did not make it work.Also this

 

 

<key>KernelAndKextPatches</key>
<dict>
<key>Debug</key>
<true/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Name</key>
<string>AppleHDAController</string>
<key>Comment</key>
<string>Patch_to_not_load_this_driver</string>
<key>InfoPlistPatch</key>
<true/>
<key>Find</key>
<string>0x04020000</string>
<key>Replace</key>
<string>0x44220000</string>
</dict>
</array>
</dict>

 

is not working as it says in debug patching not done.

With latest version allways 

 

Link to comment
Share on other sites

Weird!

If you disable it from config plist you have the same problem?

In case you are using the wiki config.plist has chenged after 2020 it will not work for previous versions.

Well thanks for he fast reply. I'll try upgrading and posting back soon

Link to comment
Share on other sites

OK this is awkward..

 

I tried installing Clover by checking to install to ESP (which is enabled by default when checking Install for UEFI motherboards)

As it seems, the installer attempts to load disk0s2, which actually isn't my EFI partition (which is disk0s5), so it fails to install.

 

I tried doing it manually, but it wouldn't recognize any boot args, and so, still no keyboard-mouse...

 

Ideas?

Link to comment
Share on other sites

Kext patch function must work. 

If you mean info.plist patching to make other PCIMatching then I'll be recommend to see about FakeID function.

	<key>Devices</key>
	<dict>

		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x27A28086</string>
		</dict>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>

		<key>DualLink</key>
		<integer>0</integer>
		<key>LoadVBios</key>
		<false/>
		<key>PatchVBios</key>
		<true/>

 

Thanks for reply.

It is sad that this method won't work for me.

When I saw the device-id is change to 27A2,but kext still no loaded.

Link to comment
Share on other sites

Hi Guys, I have been using clover for about 6 months now and would like to upgrade to the newest version of clover...

 

Im a little lost though with the new config.plist !!

 

My System uses dsdt for graphics (hd4000), ssdt for cpu ivy bridge power managment and voodohda for audio (msi alc892 incomptible with other methods)

 

Current config.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>ACPI</key>
	<dict>
		<key>DoubleFirstState</key>
		<string>No</string>
		<key>DropOemSSDT</key>
		<string>Yes</string>
		<key>EnableC2</key>
		<string>No</string>
		<key>EnableC4</key>
		<string>No</string>
		<key>EnableC6</key>
		<string>No</string>
		<key>EnableISS</key>
		<string>No</string>
		<key>GenerateCStates</key>
		<string>No</string>
		<key>GeneratePStates</key>
		<string>No</string>
		<key>PLimitDict</key>
		<string>0</string>
		<key>PatchAPIC</key>
		<string>No</string>
		<key>UnderVoltStep</key>
		<string>0</string>
		<key>smartUPS</key>
		<string>No</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>GraphicsInjector</key>
		<string>No</string>
		<key>PatchVBios</key>
		<string>Yes</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<string>No</string>
		<key>AsusAICPUPM</key>
		<string>Yes</string>
		<key>Debug</key>
		<string>No</string>
		<key>KernelCpu</key>
		<string>No</string>
	</dict>
	<key>PCI</key>
	<dict>
		<key>DeviceProperties</key>
		<string></string>
		<key>HDAInjection</key>
		<string>No</string>
		<key>InjectClockID</key>
		<string>Yes</string>
		<key>LpcTune</key>
		<string>No</string>
		<key>PCIRootUID</key>
		<string>0</string>
		<key>StringInjector</key>
		<string>No</string>
		<key>USBFixOwnership</key>
		<string>Yes</string>
		<key>USBInjection</key>
		<string>Yes</string>
	</dict>
	<key>Pointer</key>
	<dict>
		<key>DoubleClickTime</key>
		<string>500</string>
		<key>Speed</key>
		<string>8</string>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>MLB</key>
		<string>C02KR348DWYN23456</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>10/23/12</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MM61.88Z.0106.B00.1208091121</string>
		<key>Board-ID</key>
		<string>Mac-F65AE981FFA204ED</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>Family</key>
		<string>Mac mini</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>ProductName</key>
		<string>Macmini6,2</string>
		<key>SerialNumber</key>
		<string>C02KR348DWYN</string>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectSystemID</key>
		<string>Yes</string>
		<key>LegacyBoot</key>
		<string>PBR</string>
		<key>boot-args</key>
		<string>npci=0x2000 slide=0 -v -f</string>
		<key>prev-lang:kbd</key>
		<string>en:0</string>
	</dict>
</dict>
</plist>

I would like to apply the above to the latest config.plist style

<?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>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>FixMask</key>
			<string>0xFFFF</string>
			<key>Name</key>
			<string>DSDT.aml</string>
		</dict>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>DMAR</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>CpuPm</string>
			</dict>
		</array>
		<key>SSDT</key>
		<dict>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<true/>
				<key>PStates</key>
				<true/>
			</dict>
			<key>MinMultiplier</key>
			<integer>8</integer>
			<key>PLimitDict</key>
			<integer>0</integer>
			<key>PluginType</key>
			<integer>0</integer>
			<key>UnderVoltStep</key>
			<integer>0</integer>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>npci=0x2000 slide=0 -v -f</string>
		<key>DefaultVolume</key>
		<string>Mac</string>
		<key>Fast</key>
		<false/>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Log</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<string>-1</string>
	</dict>
	<key>Devices</key>
	<dict>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<string>No</string>
		</dict>
		<key>FakeID</key>
		<dict>
			<key>ATI</key>
			<string>0x0</string>
			<key>IntelGFX</key>
			<string>0x0</string>
			<key>LAN</key>
			<string>0x0</string>
			<key>NVidia</key>
			<string>0x0</string>
			<key>SATA</key>
			<string>0x0</string>
			<key>WIFI</key>
			<string>0x0</string>
			<key>XHCI</key>
			<string>0x0</string>
		</dict>
		<key>Inject</key>
		<false/>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
	</dict>
	<key>DisableDrivers</key>
	<array>
		<string>Nothing</string>
	</array>
	<key>GUI</key>
	<dict>
		<key>DebugLog</key>
		<false/>
		<key>DefaultBootVolume</key>
		<string>Mac</string>
		<key>Hide</key>
		<array>
			<string>Windows</string>
			<string>\EFI\BOOT\BOOTX64.EFI</string>
		</array>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>Enabled</key>
			<false/>
			<key>Speed</key>
			<integer>0</integer>
		</dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Legacy</key>
			<true/>
			<key>Tool</key>
			<true/>
		</dict>
		<key>TextOnly</key>
		<false/>
		<key>Theme</key>
		<string>applestyle</string>
		<key>Timeout</key>
		<integer>5</integer>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>PatchVBios</key>
		<true/>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<true/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>LogEveryBoot</key>
		<string>10</string>
		<key>LogLineCount</key>
		<integer>3000</integer>
		<key>MountEFI</key>
		<true/>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectSystemID</key>
		<true/>
		<key>LegacyBoot</key>
		<string>PBR</string>
	</dict>
</dict>
</plist>

Link to comment
Share on other sites

Thanks for reply.

It is sad that this method won't work for me.

When I saw the device-id is change to 27A2,but kext still no loaded.

May be you also need binary patching?

See AppleIntelIntegratedFramebuffer

000007b5  3d86808225			  cmpl		  $0x25828086,%eax
000007ba  7419					  je		  0x000007d5

000007bc  3d86809225			  cmpl		  $0x25928086,%eax
000007c1  7412					  je		  0x000007d5

000007c3  3d86807227			  cmpl		  $0x27728086,%eax
000007c8  740b					  je		  0x000007d5

000007ca  3d8680a227			  cmpl		  $0x27a28086,%eax
000007cf  0f85b7060000			  jne		  0x00000e8c

And the same for AppleIntelGMA950


00019854  3d86808225			  cmpl		  $0x25828086,%eax
00019859  7419					  je		  0x00019874

0001985b  3d86809225			  cmpl		  $0x25928086,%eax
00019860  7412					  je		  0x00019874

00019862  3d86807227			  cmpl		  $0x27728086,%eax
00019867  740b					  je		  0x00019874

00019869  3d8680a227			  cmpl		  $0x27a28086,%eax
0001986e  0f8567010000			  jne		  0x000199db

It is a big question how these drivers know deviceID. If they read from registry then we can make substitution.

If they read from the device then we have no chance and we nee to correct those binaries.

Anyway Clover permits you to do this patch and use kernelcache.

Link to comment
Share on other sites

So i changed my system profile from macmini5,1 to macmini6,2 and it stopped working so i put it at Imac12,2 for now, My question is How do i get clover to have a 2-3 sec. timeout on the gui before it goes into my mac osx hd? I know it has to be code in plist but i dont know if mine is messed up or not.

 

any help would be great!

ps. i do see i have theme and 3 sec timeout but that isnt happening when i get to clover gui for some reason.

 

heres my config.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>ACPI</key>
	<dict>
		<key>GenerateIvyStates</key>
		<true/>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Badges</key>
		<dict>
			<key>Inline</key>
			<true/>
			<key>Show</key>
			<true/>
			<key>Swap</key>
			<false/>
		</dict>
		<key>DebugLog</key>
		<false/>
		<key>DefaultBootVolume</key>
		<string>OSXDiskID</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>20</integer>
		</dict>
		<key>ScreenResolution</key>
		<string>1366x768</string>
		<key>SystemLog</key>
		<false/>
		<key>Theme</key>
		<string>metal</string>
		<key>Timeout</key>
		<integer>3</integer>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>PatchVBios</key>
		<string>Yes</string>
	</dict>
	<key>HideEntries</key>
	<dict>
		<key>Duplicate</key>
		<true/>
		<key>ExternalUEFI</key>
		<false/>
		<key>Gentoo</key>
		<true/>
		<key>Grub</key>
		<true/>
		<key>InternalUEFI</key>
		<true/>
		<key>OSXInstall</key>
		<true/>
		<key>OpticalUEFI</key>
		<false/>
		<key>Recovery</key>
		<true/>
		<key>Ubuntu</key>
		<true/>
		<key>WindowsEFI</key>
		<false/>
	</dict>
	<key>PCI</key>
	<dict>
		<key>InjectClockID</key>
		<string>Yes</string>
		<key>USBFixOwnership</key>
		<string>Yes</string>
		<key>USBInjection</key>
		<string>Yes</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BoardSerialNumber</key>
		<string>942B59F58194171B</string>
		<key>Family</key>
		<string>Imac</string>
		<key>ProductName</key>
		<string>Imac12,2</string>
		<key>SerialNumber</key>
		<string>C02J5817DHJP</string>
		<key>Trust</key>
		<false/>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectSystemID</key>
		<string>Yes</string>
		<key>LegacyBoot</key>
		<string>PBR</string>
		<key>boot-args</key>
		<string>npci=0x2000 slide=0 NoKexts</string>
		<key>prev-lang:kbd</key>
		<string>en:0</string>
	</dict>
	<key>Volumes</key>
	<dict>
		<key>Legacy</key>
		<false/>
	</dict>
</dict>
</plist>

Link to comment
Share on other sites

Solved my Clover/1979/UEFI boot problem, operator error.  Is the "WithKexts" boot argument valid Clover > 2000?  EFI/Clover/kexts/!0.9 working?


 

My System uses dsdt for graphics (hd4000), ssdt for cpu ivy bridge power managment and voodohda for audio (msi alc892 incomptible with other methods)


MSI audio/pinconfig problem solved on 6/7 Series motherboards.  Try Realtek ALC892 AppleHDA Audio - InsanelyMac Forum, use Audio ID 1 (or 3 with HD4000 HDMI audio).

Link to comment
Share on other sites

Helllo toleda how did you solve your problem?

About the  WithKexts  has changed and works from

 

    <key>SystemParameters</key>
    <dict>
        <key>InjectKexts</key>
        <true/>
    </dict>

but not only you can define custom entries and you can look at the wiki for the new changes.

http://clover-wiki.zetam.org/Home


 

So i changed my system profile from macmini5,1 to macmini6,2 and it stopped working so i put it at Imac12,2 for now, My question is How do i get clover to have a 2-3 sec. timeout on the gui before it goes into my mac osx hd? I know it has to be code in plist but i dont know if mine is messed up or not.

 

any help would be great!

ps. i do see i have theme and 3 sec timeout but that isnt happening when i get to clover gui for some reason.

What version do you have?

If you boot with latest > 2000 config plist has changed and yoiu will have to make a new one so please have a look at the wiki

Link to comment
Share on other sites

Helllo toleda how did you solve your problem?

About the  WithKexts  has changed and works from

 

    <key>SystemParameters</key>

    <dict>

        <key>InjectKexts</key>

        <true/>

    </dict>

but not only you can define custom entries and you can look at the wiki for the new changes.

http://clover-wiki.zetam.org/Home

 

My mistake was not selecting "Instal for UEFI motherboards"  That selection was not available with my successful 1597 install.

 

Thanks for the SystemParameters/InjectKexts key; it is not mentioned in the Clover Wiki linked.

Link to comment
Share on other sites

There's a NTFS driver in the current Asrock UEFI BIOSes. I saw mention of it in the Ozmosis thread but none here.

 

I extracted it and it seems to work fine. Plus it's much smaller than the regular NTFS.efi driver.

 

Looks like I can't attach any files so I've uploaded it here.

Awesome :thumbsup_anim:  135KB vs. 22KB! Now the size is similar to the other efi drivers and loading is much faster. Thanks!

Link to comment
Share on other sites

Awesome :thumbsup_anim:  135KB vs. 22KB! Now the size is similar to the other efi drivers and loading is much faster. Thanks!

 

I found another one in my P9X79 bios last night. It's even smaller but doesn't read the volume labels. This should make it a bit faster, but means you can't hide NTFS volumes by label.

 

 

NTFS-Asus.zip

Link to comment
Share on other sites

May be you also need binary patching?

See AppleIntelIntegratedFramebuffer

000007b5  3d86808225			  cmpl		  $0x25828086,%eax
000007ba  7419					  je		  0x000007d5

000007bc  3d86809225			  cmpl		  $0x25928086,%eax
000007c1  7412					  je		  0x000007d5

000007c3  3d86807227			  cmpl		  $0x27728086,%eax
000007c8  740b					  je		  0x000007d5

000007ca  3d8680a227			  cmpl		  $0x27a28086,%eax
000007cf  0f85b7060000			  jne		  0x00000e8c

And the same for AppleIntelGMA950


00019854  3d86808225			  cmpl		  $0x25828086,%eax
00019859  7419					  je		  0x00019874

0001985b  3d86809225			  cmpl		  $0x25928086,%eax
00019860  7412					  je		  0x00019874

00019862  3d86807227			  cmpl		  $0x27728086,%eax
00019867  740b					  je		  0x00019874

00019869  3d8680a227			  cmpl		  $0x27a28086,%eax
0001986e  0f8567010000			  jne		  0x000199db

It is a big question how these drivers know deviceID. If they read from registry then we can make substitution.

If they read from the device then we have no chance and we nee to correct those binaries.

Anyway Clover permits you to do this patch and use kernelcache.

This kext should be the binary-binding one.

Few years ago,I injected device-id in dsdt and still failed to load kext.

I realized that this method is something cosmetic and won't work with these binary-binding kexts.

And these kexts only loaded with binary patching without injecting any cosmetic device-id.

When I started to use Clover to boot my OSX and use kext patching function.

VoodooHDA output device rename worked very well.

But GMA950 kext still no loaded.

I guessed that maybe this function only worked with kexts been loaded.

And in latest Clover,this function is won't work anymore.

I think that it should work with my binary patched kext if Clover injecting kexts after kernelcache loaded or Clover patching kext before osx loading kexts.

Link to comment
Share on other sites

Kext patching works in two cases:

1. The kext is present in kernelcache. For this happen the loaded kext must match to device. You means internal matching prevent kext to be in the cache?  :huh:

2. The kext loaded from "extra" in addition to kernelcache. Why not?

The only reason for fail I see if kernelcache already contains another copy of the kext.

As far as I remember dmasar said about info.plist patching that

"if kext in not matched then it is not present in kernelcache so why it can't be patched. You must boot two times. First boot without cache permitting Clover to patch the kext and OSX will include it into cache. Second boot (and further) with kernelcache created by OSX."

Link to comment
Share on other sites

Hey, I just formatted my disk and installed Mountain Lion using GPT and booting through Clover.

 

Now, I try installing Windows, but whenever I try to choose a partition where to install, it says that it's formatted to MBR, and that in EFI mode the disk must be partitioned with GPT, which actually is...

 

Okay, I managed to install it by disabling EFI temporarily. Now, is there any way I can get Clover to boot Windows from EFI? Is there a guide on this?

Link to comment
Share on other sites

@picu97 - are you booting using UEFI or CloverEFI? if you are pure UEFI, then your windows installation media must match. there are several guides on how to make a UEFI bootable windows installation USB stick. i have 2 versions - one that installs on MBR formatted and the other is UEFI for GPT/GUID formatted disks.  

Link to comment
Share on other sites

×
×
  • Create New...