Jief_Machak Posted June 22, 2016 Share Posted June 22, 2016 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 2 Link to comment Share on other sites More sharing options...
mhaeuser Posted June 22, 2016 Share Posted June 22, 2016 Why can you use Clover but not use Apple's Startup Manager? Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 22, 2016 Author Share Posted June 22, 2016 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 More sharing options...
mhaeuser Posted June 22, 2016 Share Posted June 22, 2016 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 More sharing options...
Jief_Machak Posted June 22, 2016 Author Share Posted June 22, 2016 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. 2 Link to comment Share on other sites More sharing options...
mhaeuser Posted June 22, 2016 Share Posted June 22, 2016 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 More sharing options...
Jief_Machak Posted June 22, 2016 Author Share Posted June 22, 2016 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 More sharing options...
Slice Posted June 22, 2016 Share Posted June 22, 2016 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 More sharing options...
Jief_Machak Posted June 22, 2016 Author Share Posted June 22, 2016 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 More sharing options...
Slice Posted June 23, 2016 Share Posted June 23, 2016 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 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) ! Did you have working iMessage? All is good 1 Link to comment Share on other sites More sharing options...
mhaeuser Posted June 23, 2016 Share Posted June 23, 2016 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 More sharing options...
Slice Posted June 23, 2016 Share Posted June 23, 2016 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 More sharing options...
mhaeuser Posted June 23, 2016 Share Posted June 23, 2016 InstallMultipleProtocolInterfaces will return EFI_ALREADY_STARTED This only applies to Device Paths: 'EFI_ALREADY_STARTED A Device Path Protocol instance was passed in that is already present in the handle database.' https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Uefi/UefiSpec.h#L1158 Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 23, 2016 Author Share Posted June 23, 2016 @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 More sharing options...
Jief_Machak Posted June 23, 2016 Author Share Posted June 23, 2016 I've rebooted and sound works, most likely by coincidence. IOJones still says layout-id is 00. Link to comment Share on other sites More sharing options...
Slice Posted June 24, 2016 Share Posted June 24, 2016 This only applies to Device Paths: 'EFI_ALREADY_STARTED A Device Path Protocol instance was passed in that is already present in the handle database.' https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Uefi/UefiSpec.h#L1158 Anyway we shouldn't bother about double protocol. Link to comment Share on other sites More sharing options...
cecekpawon Posted June 24, 2016 Share Posted June 24, 2016 Is layout-id: 00 injected by Clover? Mac has own usually in dev-prop? Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 24, 2016 Author Share Posted June 24, 2016 I don't think it's injected by Clover. I've checked with debug trace and set_hda_props isn't called. Clover does something that change it somewhere in the code. And not 100% of the time. Bug somewhere ? Link to comment Share on other sites More sharing options...
mhaeuser Posted June 24, 2016 Share Posted June 24, 2016 boot.efi locates the mentioned protocol to get the props... If boot.efi locates Clover's, all Mac props will be discarded. So yes, you probably should bother about it, Slice, and it might even be this layout-id issue. Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 24, 2016 Author Share Posted June 24, 2016 Ok, let's try. Should I comment out some source code ? Configure something ? You seems to know way more than me... Link to comment Share on other sites More sharing options...
mhaeuser Posted June 24, 2016 Share Posted June 24, 2016 Sorry, I'm an idiot, you are booting legacy, so your Mac's protocols are terminated by the time Clover runs... so, in fact, you need to inject layout-id via Clover 1 Link to comment Share on other sites More sharing options...
Slice Posted June 24, 2016 Share Posted June 24, 2016 Me second. Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 24, 2016 Author Share Posted June 24, 2016 Sometimes, it works without changing anything. A race issue ? Link to comment Share on other sites More sharing options...
Slice Posted June 24, 2016 Share Posted June 24, 2016 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. 2 Link to comment Share on other sites More sharing options...
Jief_Machak Posted June 25, 2016 Author Share Posted June 25, 2016 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 More sharing options...
Recommended Posts