Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

@ Slice : I'm using this kext with a legacy plist for my 88e8056 now.

Just would like to use a DSDT injection to get rid of this kext and use a native device.

I mean you need the kext namely this version. Other will not work even thou plist will contain the ID.

If you doubt in DSDT injection then you may compare results what is injected and what it should be according to your legacy plist.

Link to comment
Share on other sites

Hi debs,

I tried to jump from legacy kext for my marvel 88E8056 to a faked 88E8055 with clover -> fail (yukon2 don't load).

Then i tried to inject dev id directly in DSDT -> fail

Here is my _DSM section in LAN dev :

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x12)
                            {
                                "built-in", 
                                Buffer (One)
                                {
                                     0x00
                                }, 
                                "location", 
                                Buffer (One)
                                {
                                     0x0D, 0x32, 0x00
                                }, 
                                "device_type", 
                                Buffer (0x14)
                                {
                                    "Ethernet Controller"
                                }, 
                                "device-id", 
                                Buffer (0x04)
                                {
                                     0x63, 0x43, 0x00, 0x00
                                }, 
                                "vendor-id", 
                                Buffer (0x04)
                                {
                                     0xAB, 0x11, 0x00, 0x00
                                }, 
                                "compatible", 
                                Buffer (0x0D)
                                {
                                    "pci11ab,4363"
                                }, 
                                "IOName", 
                                Buffer (0x09)
                                {
                                    "ethernet"
                                }, 
                                "name", 
                                Buffer (0x09)
                                {
                                    "ethernet"
                                }, 
                                "model", 
                                Buffer (0x3B)
                                {
                                    "Marvell Yukon Gigabit Adapter 88E8055 Singleport Copper SA"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    } 

With this code, ioreg seems to show good values but there is no device found.

Don't know where i missed something.

please help :)

 

I don't understand how works this ID injection in DSDT.

 

But I don't see how you map the required 88E8055 of Id:4363 to the 88E8056 of Id:4364. (I have it on an Asus P5E)

Link to comment
Share on other sites

I mean you need the kext namely this version. Other will not work even thou plist will contain the ID.

If you doubt in DSDT injection then you may compare results what is injected and what it should be according to your legacy plist.

Thank you Slice.

I've seen in ioreg that device injection seems to work with clover fake id but the yukon2 kext in IONetworkingFamily doesn't load.

If i understand what you are saying, only your specific yukon2 kext (in S/L/E) allows such an injection.

Right ?

Link to comment
Share on other sites

Did you see these instructions?

            #37            

No, I hadn't, but remains the fact that for the 88E8056 it's Device Id:4364 not Device Id:4363. I used to patch it when I had a system with an Asus P5E motherboard.

 

Edit: I think I understand, we don't map 0x4364 to 0x4363 but say Lan is with Id 0x4363.

Link to comment
Share on other sites

you could probably get it to work by also injecting subsystem-id and subsystem-vendor-id with the ids that match iopcisecondarymatch since you didn't do that. Doubt you have same subsystem ids as that card too.

So i tried this to match yukon2 plist :

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x16)
                            {
                                "built-in", 
                                Buffer (One)
                                {
                                     0x00
                                }, 
                                "device_type", 
                                Buffer (0x14)
                                {
                                    "Ethernet Controller"
                                }, 
                                "device-id", 
                                Buffer (0x04)
                                {
                                     0x63, 0x43, 0x00, 0x00
                                }, 
                                "vendor-id", 
                                Buffer (0x04)
                                {
                                     0xAB, 0x11, 0x00, 0x00
                                }, 
                                "subsystem-id", 
                                Buffer (0x04)
                                {
                                     0xBA, 0x00, 0x00, 0x00
                                }, 
                                "subsystem-vendor-id", 
                                Buffer (0x04)
                                {
                                     0xAB, 0x11, 0x00, 0x00
                                }, 
                                "compatible", 
                                Buffer (0x0D)
                                {
                                    "pci11ab,4363"
                                }, 
                                "revision-id", 
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00
                                }, 
                                "IOName", 
                                Buffer (0x09)
                                {
                                    "ethernet"
                                }, 
                                "name", 
                                Buffer (0x09)
                                {
                                    "ethernet"
                                }, 
                                "model", 
                                Buffer (0x3B)
                                {
                                    "Marvell Yukon Gigabit Adapter 88E8055 Singleport Copper SA"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }

and it didn't load the yukon2 kext.

I booted without cache and ioreg seemed to to be good but fail ...!  :(

I will continue using my legacy kext ..

Nevertheless, thank you for helping thank you and your amazing job on Clover.

Link to comment
Share on other sites

 

	<key>Devices</key>
	<dict>
		<key>USB</key>
		<dict>
			<key>FixOwnership</key>
			<true/>
		</dict>
	</dict>

 

 

Its enabled by default, but usb ports stop working randomly!

I compared the source code of the Clover and Chameleon,

Only different time delay. I changed "gBS->Stall (500);" to "gBS->Stall (100);".

It work well!

// if delay value is in milliseconds it doesn't appear to work.
// setting value to anything up to 65535 does not add the expected delay here.
gBS->Stall (100);
usbcmd = *((UINT32*)(UINTN)(opaddr));    // Command Register
usbsts = *((UINT32*)(UINTN)(opaddr + 4));    // Status Register
usbintr = *((UINT32*)(UINTN)(opaddr + 8));    // Interrupt Enable Register
I dont know why, maybe its just my laptop.

Thank you for your reply.

 

Hardware Info:

Model : Asus K40IN

Chipset : nVidia MCP75L

Link to comment
Share on other sites

 

Its enabled by default, but usb ports stop working randomly!

I compared the source code of the Clover and Chameleon,

Only different time delay. I changed "gBS->Stall (500);" to "gBS->Stall (100);".

It work well!

// if delay value is in milliseconds it doesn't appear to work.
// setting value to anything up to 65535 does not add the expected delay here.
gBS->Stall (100);
usbcmd = *((UINT32*)(UINTN)(opaddr));    // Command Register
usbsts = *((UINT32*)(UINTN)(opaddr + 4));    // Status Register
usbintr = *((UINT32*)(UINTN)(opaddr + 8));    // Interrupt Enable Register
I dont know why, maybe its just my laptop.

Thank you for your reply.

 

Hardware Info:

Model : Asus K40IN

Chipset : nVidia MCP75L

 

 

It is very rare situation that your hardware works differently. Can you show related part of boot.log?

Link to comment
Share on other sites

Trying config.plist/SystemParameters/InjectKexts with AppleHDA.kext/Resources/layout and platforms xml files.  Clover_rev 2352 reports the following errors.  What is Thinning?

57:127  0:151  FSInjection:, injecting kexts from: 'EFI\CLOVER\kexts\10.9'OnSimpleFileSystem occured
57:589  0:462   - done!
57:746  0:156  Injecting kexts for arch=x86_64 from EFI\CLOVER\kexts\10.9
57:908  0:162  Extra kext: EFI\CLOVER\kexts\10.9\AppleHDA1150.kext
58:066  0:157  Extra kext: EFI\CLOVER\kexts\10.9\AppleHDALoader.kext
58:227  0:161  Thinning fails
58:378  0:151  Thinning failed: EFI\CLOVER\kexts\10.9\AppleHDALoader.kext
58:530  0:151  count: 1       
58:682  0:151  mm_extra_size: 44       
58:832  0:150  extra_size: 4096       
58:983  0:150  offset: 8156           
Link to comment
Share on other sites

 

Trying config.plist/SystemParameters/InjectKexts with AppleHDA.kext/Resources/layout and platforms xml files.  Clover_rev 2352 reports the following errors.  What is Thinning?

57:127  0:151  FSInjection:, injecting kexts from: 'EFI\CLOVER\kexts\10.9'OnSimpleFileSystem occured
57:589  0:462   - done!
57:746  0:156  Injecting kexts for arch=x86_64 from EFI\CLOVER\kexts\10.9
57:908  0:162  Extra kext: EFI\CLOVER\kexts\10.9\AppleHDA1150.kext
58:066  0:157  Extra kext: EFI\CLOVER\kexts\10.9\AppleHDALoader.kext
58:227  0:161  Thinning fails
58:378  0:151  Thinning failed: EFI\CLOVER\kexts\10.9\AppleHDALoader.kext
58:530  0:151  count: 1       
58:682  0:151  mm_extra_size: 44       
58:832  0:150  extra_size: 4096       
58:983  0:150  offset: 8156           

"Thinning" is a procedure to convert FAT executable (32+64) into one arch.

Same as lipo in command line.

Link to comment
Share on other sites

Hi

 

I just moved over to clover in the last few days, I'm using an old EX58-UD5 board with i7 processor and SATA 3 & OCZ SSD drive as my clover boot drive

 

I've been using Chameleon since Leopard (FakeSMC and DSDT) - I have a real apple NIC, bluetooth and airport for minimum config  change

 

Moved over to clover and there are 3 cosmetic funnies

 

1 - I can't get rid of the orange icons (external disks) using  same DSDT as the chameleon boot (even on chameleon the Sata 3 SSD shows up orange though)

2 - Sound wasn't working at boot using the same DSDT as the chameleon boot, however after running Darwin Dumper it just switched on during the probing

3 - Processor shows as 2.67 GHz Unknown in About this Mac (works on chameleon)

 

Using the same DSDT these were working in Chameleon - processor type is set to 1281 on smbios and config.plist

I edit my DSDT to get rid of the orange icons (although the SSD is orange in Chameleon as well) - plug in SATA 3 card

I use DSDT to configure sound when using my chameleon boot disk

 

Everything else sleep, iTunes, cloud, App Store, etc seems to work great apart from these cosmetic bugs

 

Darwin Dumper shows

 

Audio

Found a device of class VoodooHDADevice: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/pci-bridge@7/IOPCI2PCIBridge/pci1002,aa30@0,1/VoodooHDADevice
Probing codec #0...
 HDA Codec #0: ATI R6xx HDMI
 HDA Codec ID: 0x1002aa01
       Vendor: 0x1002
       Device: 0xaa01
     Revision: 0x01
     Stepping: 0x00
PCI Subvendor: 0xaa301787
        startNode=1 endNode=2
        Found audio FG nid=1 startNode=2 endNode=4 total=2
Processing audio FG cad=0 nid=1...
Powering up...
Parsing audio FG...
GPIO: 0x00000000 NumGPIO=0 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=0
 nid  3 0x18560010 as  1 seq  0 Digital-out   Jack  Digital Special Internal Unknown misc 0
Parsing vendor patch...
VHDevice NID= 2 Config=00000000 (audio output  ) Cap=00000000 Ctrl=00000000 -- Conns:
VHDevice NID= 3 Config=18560010 (pin: Digital-o) Cap=00000094 Ctrl=00000040 -- Conns: 0=2
Disabling nonaudio...
Disabling useless...
Patched pins configuration:
 nid  3 0x18560010 as  1 seq  0 Digital-out   Jack  Digital Special Internal Unknown misc 0
Parsing pin associations...
1 associations found:
Association 0 (1) out:
 Pin nid=3 seq=0
   Redir type=-1 jack=0 def=0
Building AFG tree...
Tracing association 0 (1)
 Tracing pin 3 with min nid 0
  tracing via nid 3
   tracing via nid 2
   nid 2 returned 2
  nid 3 returned 2
 Pin 3 traced to DAC 2
Association 0 (1) trace succeeded
Tracing input monitor
Tracing other input monitors
Tracing beeper
Disabling unassociated widgets...
Disabling nonselected inputs...
Disabling useless...
Disabling crossassociated connections...
Disabling useless...
Binding associations to channels...
Assigning names to signal sources...
Parsing Ctls...
Assigning mixers to the tree...
Preparing pin controls...
AFG commit...
Creating PCM devices...
pcmAttach: HDA ATI R6xx HDMI PCM #0 HDMI at cad 0 nid 1
+--------------------------------------+
| DUMPING PCM Playback/Record Channels |
+--------------------------------------+
Playback:
     Stream cap: 0x00000005
                 AC3 PCM
        PCM cap: 0x00020070
                 16 bits, 32 44 48 KHz
            DAC: 2
+-------------------------------+
| DUMPING Playback/Record Paths |
+-------------------------------+
Playback:
    nid=3 [pin: Digital-out (HDMI)]
      |
      + <- nid=2 [audio output] [src: pcm] bindSeq=00000001
+-------------------------+
| DUMPING Volume Controls |
+-------------------------+
OSS mixer initialization...
Registering PCM channels...
FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
HP switch init...
+-------------------+
| DUMPING HDA NODES |
+-------------------+
Default Parameter
-----------------
     Stream cap: 0x00000001
                 PCM
        PCM cap: 0x00020070
                 16 bits, 32 44 48 KHz
         IN amp: 0x00000000
        OUT amp: 0x00000000
            nid: 2
           Name: audio output
     Widget cap: 0x00000201
                 DIGITAL STEREO
    Association: 0 (0x00000001)
            OSS: pcm (pcm)
     Stream cap: 0x00000001
                 PCM
        PCM cap: 0x00020070
                 16 bits, 32 44 48 KHz
            nid: 3
           Name: pin: Digital-out (HDMI)
     Widget cap: 0x00400381
                 DIGITAL UNSOL STEREO
    Association: 0 (0x00000001)
        Pin cap: 0x00000094
                 PDC OUT HDMI
     Pin config: 0x18560010
    Pin control: 0x00000040 OUT
    connections: 1 enabled 1
          |
          + <- nid=2 [audio output]

The smbios section of Darwin Dumper shows processor type Asset Tag: Intel® Core i7 CPU         920  @ 2.67GHz

Link to comment
Share on other sites

No thinning when no executables.  Thanks.

Hi, toleda.

The AppleHDAXXX.kext for sound auto patch doesn't work in EFI anyway. It has to be install in S/L/E.

Look at my boot.log. It injected from EFI, but no sound. But It works when it installed in S/L/E.

3:728  0:003    Extra kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext
3:737  0:009    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext\Contents\PlugIns\ACPISensors.kext
3:743  0:005    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext\Contents\PlugIns\CPUSensors.kext
3:745  0:001    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext\Contents\PlugIns\GPUSensors.kext
3:751  0:006    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext\Contents\PlugIns\LPCSensors.kext
3:765  0:013    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\FakeSMC.kext\Contents\PlugIns\RealtekRTL8111.kext
3:775  0:009    Extra kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\AppleHDA889.kext
3:778  0:002    Extra PlugIn kext: EFI\CLOVER\OEM\X58A-UD3R\kexts\Other\AppleHDA889.kext\Contents\PlugIns\AppleHDALoader.kext

 

Link to comment
Share on other sites

Slice I'm having some weird problem with power management. I'm using EliteBook 8570p (Mavericks, Ivy i7-3520M).

 

If I add for example MacBookPro9,2 smbios into config.plist with Clover configurator, reboot, then generate SSDT, laptop hangs on reboot. If I change to MBP8,1-8,3 smbios everything works fine with the previously generated SSDT, correct p-states and everything. It seems that all the Ivy smbios settings I use hang and all Sandy settings work fine.

 

Also if I delete the SSDT and use Clover to generate P and C-states I get the same problem, Ivy settings hang and Sandy works fine.

 

ACPI section on my config.plist

<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<true/>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>CpuPm</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>Cpu0Ist</string>
			</dict>
		</array>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<true/>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<false/>
				<key>PStates</key>
				<false/>
			</dict>
		</dict>
	</dict>

Link to comment
Share on other sites

Clover Realtek ALC Audio - No Patching/Persistant

 

The Realtek ALC AppleHDA Support kext, installed with the native AppleHDA.kext, enables full ALC onboard, HDMI and DP audio..  The ALC Support kext provides pin configuration, layout and pathmap injection and Clover provides audio codec binary patching for supported Realtek ALC codecs in Mavericks.

 

Supported Realtek ALC Codecs:

885, 887, 888, 892, 898, 1150

 

toleda/audio_CloverALC

Download ZIP

 

Credit: PikeRAlpha New style of AppleHDA.kext patching (take II) | Pike's Universum

  • Like 2
Link to comment
Share on other sites

Clover Realtek ALC Audio - No Patching/Persistant

 

The Realtek ALC AppleHDA Support kext, installed with the native AppleHDA.kext, enables full ALC onboard, HDMI and DP audio..  The ALC Support kext provides pin configuration, layout and pathmap injection and Clover provides audio codec binary patching for supported Realtek ALC codecs in Mavericks.

 

Supported Realtek ALC Codecs:

885, 887, 888, 892, 898, 1150

 

toleda/audio_CloverALC

Download ZIP

 

Credit: PikeRAlpha New style of AppleHDA.kext patching (take II) | Pike's Universum

U have one small mistake

5. Extra/dsdt.aml (if installed)

this not exist when using Clover :D

Link to comment
Share on other sites

Hy all (french speaker, excuse my english)

 

I explain :

 

I've one disk with Windows 7 and Ubuntu, I've second with ML 10.8.5. If I boot one first, grub see OSX but don't load Clover Bootloader, so OSX don't start.

If I boot on second, Clover start and I just See Windows and OSX. Anybody know how I can add Ubuntu entry in Clover Bootloader ? Please

I precise : I can't boot without Clover, I've try Cameleon and nothing work.

Thank you.

Link to comment
Share on other sites

@camarade35,

 

How did you install Windows 7 and Ubuntu?  It is best to install everything in UEFI mode and maintain a pure GUID partitioned "GPT" HD (with protective mbr rather than hybrid mbr) - this way, Clover plays nice with multibooting OSX, Windows & Linux through their (u)efi loaders.

 

If you have a hybrid mbr, you can convert to full GPT using gdiskManpage of gdisk: backup your existing partition table to a file with the "b" option, then in the recovery and transformation menu, choose "n" to create a new protective mbr.  You can actually convert Ubuntu from legacy boot to uefi mode booting - see this guide and also Windows legacy to uefi with this tutorial.  You may need to create some space at the beginning of the drive for an EFI partition.  As with most things involving disk partitioning, make sure you clone/backup all your important data/partitions first.

 

As a useful tip for multi booting in uefi, there is a program EasyUEFI that is able to manage the EFI/UEFI boot entries in Windows (without having to go through changing settings in BIOS).  This way, you can reset Clover as the preferred boot option if Windows puts its bootmgrfw.efi first.

Link to comment
Share on other sites

hey guys , jus got on osx for a bit and i noticed clover is out of date , I have Rev2152 the new Rev is Rev2482. I wanna make sure it wont mess up my osx side if i install this update , should i unplug my ssd with windows on it before doing this?

thanks

Link to comment
Share on other sites

×
×
  • Create New...