Jump to content

Clover on real mac


Jief_Machak
 Share

132 posts in this topic

Recommended Posts

Hi,

 

I've installed Clover on my MacPro 3,1 to use as a boot manager.

One reason is that I use a PC graphic card, so I can't have original mac bootloader anymore.

 

Of course, I'd like Clover to be as transparent as possible. No modification because none needed. I have already disabled all injection, patch, etc. Os X boots fine. So far no problem.

 

I can see in the debug.log generated by Clover that there is still patching/droping some SSDT table. Should that be disabled ? I can comment out in code to try, I have a working copy that compiles.

 

Cheers,

Jief

  • Like 2
Link to comment
Share on other sites

I dig a bit more and here what I did

 

Around at line 1799 (for rev 3555), there is

  if (gSettings.DropSSDT) {
    //special case if we set into menu drop all SSDT
    DropTableFromXSDT(EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, 0, 0);
    DropTableFromRSDT(EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, 0, 0);
  } else { 
    //all remaining SSDT tables will be patched
    PatchAllSSDT();
    //do the empty drop to clean xsdt
    DropTableFromXSDT(XXXX_SIGN, 0, 0);
    DropTableFromRSDT(XXXX_SIGN, 0, 0);
  }
 

gSettings.DropSSDT is false for me, in the else part I've changed :

  } else { 
    if (gSettings.PatchDsdtNum > 0) {
        //all remaining SSDT tables will be patched
        PatchAllSSDT();
        //do the empty drop to clean xsdt
        DropTableFromXSDT(XXXX_SIGN, 0, 0);
        DropTableFromRSDT(XXXX_SIGN, 0, 0);
    }
  }
 

That way, nothing's done if gSettings.PatchDsdtNum==0, which is the case, of course.

 

Not sure if it's needed or not...


@Download-Fritz : 

One reason is that I use a PC graphic card, so I can't have original mac bootloader anymore.

1) PC graphic cards don't have efi bios. You can't have Apple's Startup Manager.

2) Apple's Startup Manager can't boot uefi windows or other OS

3) Apple's Startup Manager is not configurable. With Clover I can add some tools, like gdisk.efi in a custom entry

4) Apple's Startup Manager doesn't work on 4k screen (with my Mac Pro 3,1. I guess newer Mac works)

5) Clover is pretty (if you find the theme you like).

...

Link to comment
Share on other sites

1) Ahh, so you boot Clover legacy?

2) It should be able to (except when the OS loader doesn't support EFI 1.10).

3) True, but you could also use rEFInd (saves you having Clover patches on a Mac).

4) See 3).

5) See 3).

 

Just my 5 cents, Clover does quite some stuff unasked as it's not really designed for Mac-use (though ofc nobody stops you from using it that way).

Link to comment
Share on other sites

I need the "compatibility support module" to be able to use BIOS firmware. So yes, it's a Legacy boot.

I read everywhere that EFI 1.10 can't windows. Indeed, it doesn't work an my macpro 3,1

 

I already tried rEFInd. Forgot why it didn't work. I know better Clover now because I also have Hackintoshes.

 

My MacPro I'm using now is booted through Clover. So I'm doing it. If some tweaks are needed, I may do them.

So, please, stop trying to convince me not doing so.

  • Like 2
Link to comment
Share on other sites

So, please, stop trying to convince me not doing so.

 

(though ofc nobody stops you from using it that way).

 

I was only confused because it makes no sense that Apple Startup Manager shouldn't work if Clover does, except for when Clover is booted legacy... it wasn't obvious from your post, so I asked. Is it so bad? ;)

Link to comment
Share on other sites

Nope, but after I've explained my reasons,

you still suggest to use rEFInd :

 

3) True, but you could also use rEFInd (saves you having Clover patches on a Mac).

4) See 3).

5) See 3).

 

It's ok. Can we nicely close the "you can do something else" thing that wasn't at all my inital question ?

 

Thanks.

Link to comment
Share on other sites

Clover will not patch/drop any SSDT if you don't ask to do this.

Clover really do some tuning without question but for purpose to be like real Mac. I don't think you should afraid it.

Anyway, boot.log?

Link to comment
Share on other sites

Hi Slice,

 

I was a bit worried about PatchAllSSDT that was called. It's now not called anymore if gSettings.PatchDsdtNum > 0   

I guess before, it was just copying some table, replacing by the same version because I have no patched in my config.plist.

 

Here is a debug.log. I've added few thing to see what's happening.

 

Jief

debug.log.zip

Link to comment
Share on other sites

Hi Slice,

 

I was a bit worried about PatchAllSSDT that was called. It's now not called anymore if gSettings.PatchDsdtNum > 0   

I guess before, it was just copying some table, replacing by the same version because I have no patched in my config.plist.

 

Here is a debug.log. I've added few thing to see what's happening.

 

Jief

Very interesting! Some comments:

1. 

0:108  0:000  LegacyRegion2: Chipset/proc: 0x40038086
0:108  0:000   Unknown chipset

will be corrected

2.

37:569  0:000  Clover revision: 3391  running on MacPro3,1
37:569  0:000  ... with board Mac-F42C88C8

good.gif
 
3.
37:731  0:005  Loading Ps2MouseDxe-64.efi  status=Success

I don't think you need it.

 

4.

571:813  0:003  Table 131 is present, CPUType=402
571:814  0:001  Change to: 402

Changed to same ;)

 

5.

571:831  0:001  ========= Auto patch DSDT Starting ======== 

Yes, but for analyze. It do nothing.

6.

572:323  0:001  // Drop tables

There must be note "dropped" if it happen like me

58:776  0:055  Drop tables from Xsdt, SIGN=SSDT TableID=CpuPm Length=2706
58:834  0:058   Xsdt has tables count=7 
58:891  0:056   Table: SSDT  CpuPm  2706 dropped

7.

572:544  0:001  ** Warning: Your MLB is not suitable for iMessage(must be 17 chars long) !

:hysterical:

Did you have working iMessage?

 

 

All is good

  • Like 1
Link to comment
Share on other sites

Even if everything is fine, personally I would remove the 'APPLE_GETVAR_PROTOCOL' (where is that name from? should be 'EFI_DEVICE_PATH_PROPERTY_DATABASE_PROTOCOL') exposure, as your Mac provides its own.

 

@Slice Does Clover internally locate the protocol (i.e. will DevProps code use the Mac protocol) or does it only use the one it exposes?

Link to comment
Share on other sites

Even if everything is fine, personally I would remove the 'APPLE_GETVAR_PROTOCOL' (where is that name from? should be 'EFI_DEVICE_PATH_PROPERTY_DATABASE_PROTOCOL') exposure, as your Mac provides its own.

 

@Slice Does Clover internally locate the protocol (i.e. will DevProps code use the Mac protocol) or does it only use the one it exposes?

 

InstallMultipleProtocolInterfaces

will return EFI_ALREADY_STARTED

Link to comment
Share on other sites

@Slice :

 

3. I was'nt sure if mouse emulation for BIOS boot was PS2 or USB. So... the answer is.... USB ! I removed PS2MouseDxe.efi

5. Yes, Auto patch DSDT does nothing. I've checked with various added DBG message.

6. That was a DBG message I've added to be sure it was going there. But it doesn't drop anything.

7. iMessage working fine. Forum usually says that MLB is 13 or 17 chars long. 13 for old macs. Mine is quite old now. I didn't get why this warning.

 

I do have 2 problems, though.

1) nvram are not persistent. I don't have a huge need for it (when I want to bypass Clover, I need to change the boot device, that I can't anymore from OS X).

2) integrated sound card isn't working anymore most of the time. HDEF is seen with IOJones but layout-id is 0, therefore no service connected (it happend twice to have it and I don't know why).

 

@Download-Fritz

I have a look in the source. Not sure what you mean by "remove". I'm kind of new to UEFI, so I can't say I understand that very well. Should I comment out some code ? Or configure something ? 

 

Thanks you both.

Link to comment
Share on other sites

Sometimes, it works without changing anything. A race issue ?

I have an idea.

Boot into OSX by Apple's way. Make full DarwinDumper report and find here DeviceProperties string. Example for MacPro3,1 attached.

device-properties.hex.zip

Then insert it into Clover config.plist to be injected as string

	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<string>7a00000001000000010000006e0000000200000002010c00d041030a0000000001010600001b7fff040028000000500069006e0043006f006e00660069006700750072006100740069006f006e00730000000800000001080100180000006c00610079006f00750074002d00690064000000080000000c000000</string>

This way you will get exactly same properties that you had before Clover.

  • Like 2
Link to comment
Share on other sites

I'm away for few days (with my Dell M4300 that works really great with os x, thanks Clover).

I'll try that when I'll be back.

 

I'll do 2 reports with DarwinDumper, 1 when I'm booted through Clover, 2 when booted the Apple's way. To check if it's different. Then I'll do what you said and see for the sound problem.

 

I'll tell you the results.

Link to comment
Share on other sites

 Share

×
×
  • Create New...