Jump to content

Clover on real mac


Jief_Machak
 Share

132 posts in this topic

Recommended Posts

Hi,

 

I didn't try to boot with custom device properties yet because the .hex is 138 385 byes long ! Mostly because of the key : <key>ATY,bin_image</key>. That key is in <key>PciRoot(0x0)/Pci(0x9,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>.

 

I did the compare with dumped properties when booted Apple vs Clover. There is very little difference. There isn't any difference in <key>PciRoot(0x0)/Pci(0x1b,0x0)</key> which seems to be the sound card. The layout-id is DAAAAA== (0C 00 00 00 when decoded) in both case. 

 

Differences are : 

<key>PciRoot(0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)</key>   (this key (device?) doesn't exist when boot via Clover)
<dict>
  <key>saved-config</key>
  <data>
  ... some data
    </data></dict>

<key>PciRoot(0x0)/Pci(0x9,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
  <key>ATY,PCIConfigSpace</key> (this key is almost the same with Clover, just a byte of difference)
  <data>
  ... some data
  </data>
  <key>MVAD</key> (this key doesn't exist when boot via Clover)
  <data>
  ... some data
  </data>
  <key>saved-config</key>    (this key doesn't exist when boot via Clover)
  <data>
  ... some data
  </data>
</dict>
 
 

 

Can I put a 138 385 bytes long string in config.plist in Devices -> Properties. If yes, I can try.

 

Link to comment
Share on other sites

I am not sure if Clover can eat such string :) You should test.

ATY,bin_image is a VideoROM. You can load it separately by LoadVBios option in Clover, if needed.

saved-config===MVAD is an image of PCI config space. I don't know where it used, may be at Wake On Lan and for my experience we can live without it.

Link to comment
Share on other sites

saved-config is the same as MVAD ? Does Clover delete them ?

What about the fact that layout-id is the same in both case ? Doesn't that mean that properties are not destroyed by legacy boot ?

No, at legacy boot Clover created own properties very similar to real mac.

Link to comment
Share on other sites

I put the big hex string in Devices->Properties.

The mac can't find display anymore. When it tried to switch to graphic, the screen stays awake but black.

In the log :

Jul  1 13:17:23 jiefs-mac-pro.home WindowServer[164]: Found 1 modes for display 0x00000000 [1, 0]
Jul  1 13:17:23 --- last message repeated 4 times ---
Jul  1 13:17:23 jiefs-mac-pro.home WindowServer[164]: mux_initialize: Couldn't find any matches
Jul  1 13:17:23 jiefs-mac-pro.home WindowServer[164]: Found 1 modes for display 0x00000000 [1, 0]

 

 

Instead of :


Jul  1 13:19:05 jiefs-mac-pro.home WindowServer[177]: Received display connect changed for display 0x3f003e
Jul  1 13:19:05 jiefs-mac-pro.home WindowServer[177]: Found 124 modes for display 0x003f003e [124, 0]
Jul  1 13:19:05 jiefs-mac-pro.home WindowServer[177]: Display 0x003f003e changed state to online
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Received display connect changed for display 0x3f003f
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Found 1 modes for display 0x003f003f [1, 0]
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Received display connect changed for display 0x3f0040
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Found 1 modes for display 0x003f0040 [1, 0]
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Received display connect changed for display 0x3f0041
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Found 1 modes for display 0x003f0041 [1, 0]
Jul  1 13:19:06 jiefs-mac-pro.home WindowServer[177]: Display 0x5b81c5c0: GL mask 0x1; bounds (0, 0)[800 x 600], 158 modes available
 

 

 

The screen staying awake and black is something I've already seen when I tried different configuration (the way to boot Clover combined with Mac OS or Windows, combined with Original gfx card or PC graphics card. Can't remember which combinaison it was, tough).

 

Maybe I should tried to remove graphics properties from the string. But I have to convert the xml to hex. I read I need gfxutil for that. Where to download it ?

 

Cheers.

Link to comment
Share on other sites

Yeah, sort of.

I would love a property <RealMac> so everything not needed will be disabled, nvram will be mapped on real nvram, etc. Basically fall back on the refit part.

 

For now, it looks like a small bug that kill the layout-id properties (maybe indirectly). Only sometimes, not always. If I can catch this little bug, I think my hackintosh on real mac will be fine !

 

Link to comment
Share on other sites

NVRAM cannot be mapped just like that because on Macs and UEFI machines, the NVRAM is exposed by the hardware-dependant UEFI firmware... by booting legacy, it is destroyed and DUET loads its own (this is the reason why I initially suggested not to go the legacy Clover way, because it is twice bad... for once, Apple EFI is terminated just to be replaced by another UEFI implementation and second Clover is simply not intended to be used on Apple machines, unlike rEFIt). Of course Clover's patching stuff could be disabled, but what actually makes it different from rEFInd then?

 

Regarding layout-id, sorry, I honestly have no clue. Maybe the 'GETVAR' implementation is faulty?

 

P.S.: A generic GOP driver has been submitted to edk2-devel. If the PC graphics card exposes the necessary HOB/data, one could use it even on a Mac to get GOP. As far as I know, Apple EFI and boot.efi prefer AppleGraphicsPolicy protocols over GOP, so that one maybe needs to be disabled in order for GOP to be used.

 

EDIT: Does your graphics card maybe already expose GOP?

Link to comment
Share on other sites

I did some test :

 

each time I boot Os X through legacy Clover, properties (like MaximumBootBeepVolume, PinConfigurations, platformFamily) for HDEF device are not there at all (in IOJones). layout-is stays 00 00 00 00.

I checked in efi, I could see that the firmware vendor is "Clover" instead of "Apple". That means I configured Clover properly, I think.

 

@Download-fritz : I've flashed my video card with "something" that is suppose to be GOP. No video when I boot Clover through Apple EFI. Do I need a very recent version of Clover and edk2 ?

Link to comment
Share on other sites

Are you sure Clover is booted? The rest of Apple EFI may use AppleGraphicsPolicy stuff, but Clover uses VGA, UGA or GOP. Clover usually works even when GOP is not present (by using legacy stuff), but that would still lack the Apple boot screen.

Maybe you can enable logging to file and add output for the code Clover looks for the gfx protocols?

Link to comment
Share on other sites

I found an updated GOP for my card and... tada... it works. I can boot Clover through Apple EFI. Then, when I boot Os X, it looks like injection doesn't work (I didn't remove the devices properties injection I configured for legacy boot), so I have the original Apple properties and everything works fine (sound anyway).

But the problem moved from booting OsX to booting Windows ! Booting Windows 10 doesn't work anymore.

My already installed Windows 10 partition (UEFI mode) gives an error ACPI_BIOS_ERROR.

USB key containing a Windows 10 installation CD gives a black screen (but screen stays awake). Also an UEFI boot.

The Windows recovery tools gives an error 0xc0000000e (i think it's this one. Boot volume not found). Also an UEFI boot.

 

Not sure about the gfx protocols, but I put log in egInitScreen in edk2/Clover/rEFIt_UEFI/libeg/libscreen.c.

There is 3 EfiLibLocateProtocol. 1 for ConsoleControl, 1 for UgaDraw, 1 for GraphicsOutput. They all return success.

 

To make the story short : is it possible to boot windows on a realmac through Apple EFI boot -> Clover ?

is there special windows CD version for UEFI + GOP without CSM ?

Link to comment
Share on other sites

 

is there special windows CD version for UEFI + GOP without CSM ?

I am not sure but there are PC with UEFI BIOS without CSM. Windows is possible there.

You may choose ordinary Windows 7-64bit on DVD and start it from Clover by cdboot.efi. This works for me.

Link to comment
Share on other sites

Apple EFI -> Windows. Do you mean with the Apple boot manager (the one I need a gfx Mac Edition) ? Apple EFI can't boot windows because windows use a EFI version not implemented in Apple Firmware.

Sure I tried anyway with both gfx card -> crash.

Link to comment
Share on other sites

Yesterday, I discover that :

 

1) I can boot clover in EFI mode and get full screen on my PC graphic card flashed with GOP. I can't boot Windows in that mode.

2) With Clover, I can boot rEFInd. Because the screen is initialized by Clover, it works. I still can't boot Windows in that mode.

3) With rEFInd, I can boot Clover Legacy. I CAN boot Windows in that mode !!!

 

What a mess, but I can boot everything I want.

 

So today, I've added the screen initialisation that Clover does to rEFInd. Great, I can directly boot to rEFInd, thus eliminating the first step.

 

Now, I'd like to add the possibility, to Clover or to rEFInd, to boot an UEFI os with CSM for video... and I may be able to eliminate the third step.

Link to comment
Share on other sites

Apple EFI -> Windows. Do you mean with the Apple boot manager (the one I need a gfx Mac Edition) ? Apple EFI can't boot windows because windows use a EFI version not implemented in Apple Firmware.

Sure I tried anyway with both gfx card -> crash.

Old Mac EFI (not UEFI) will use Windows legacy boot (MBR). In that case, when you hold option key during startup, there is visible a Windows item for each hard disk that has boot code in the MBR. Those Windows options would also appear for Clover legacy boot and Linux legacy boot since it can't tell the difference in MBR boot code between Windows, Clover, or Linux. Of course, this startup manager UI will not be visible if your graphics card does not have EFI driver.

 

The Mac Startup Disk preferences panel will list a Windows item for each installation of Windows. All windows installations on the same disk will use the same NVRAM setting - which points to the hard drive's MBR. The Startup Disk preferences panel will actually check the Windows partitions for Windows boot files, so it can't be used to boot legacy Clover or Linux. In that case you could enter a bless command in Terminal.app to do the same thing.

 

rEFInd (an EFI booter) will change the active partition in the MBR so that it can boot different legacy Windows installations on the same disk. I'm not sure if Clover does that.

Link to comment
Share on other sites

I know all what you said and don't really understand why you're explaining that. My point is to use Clover as a boot manager, not the Apple Boot Manager anymore.

 

I don't have any Windows installed legacy anymore.

And because of my graphic card (I think) I'm obliged to boot Clover legacy to boot UEFI Windows. I'm pretty sure there is just an initialisation to perform before booting windows. Anybody who knows UEFI, you're welcome to help.

Link to comment
Share on other sites

I wonder if somebody here can help me with installing Clover into a real Macbook 2,1. I'm sure with Clover I should be able to boot El Capitan from my Macbook 2,1.

 

If you don't have time, just read bold letters, please:

IN BRIEF: How can I boot a real Mac with Clover? How can I tell clover to boot from a specific-defined-by-me boot.efi file? I'm trying to install El Capitan on an unsupported Mac and I need it to boot from a 32-bit boot.efi file created by Piker Alpha.

 

***************************************************************************

THE WHOLE STORY
I have two hackintoshes with El Capitan and Clover Legacy (I wrote a guide, you can find it here: http://www.insanelym...pported-laptop/) These hackintoshes are very similar to my Macbook 2,1, and they are booting El Capitan but without QE/CI, because it's not supported on them. It's good for me, I can live without QE/CI.

 

So, what I've done:

1- With "Carbon Copy Cloner" I've cloned the hackintosh SSD to an external HDD drive.

2- I've installed Clover UEFI on this external HDD. I've changed the version of Clover (legacy-->UEFI) because Mac is supposed to be EFI, not BIOS.

 

There's one more thing, Macbook 2,1 needs a special boot.efi, which is 32-bit (http://piker-alpha.g...cosxbootloader/) to install El Capitan on it. Of course, I have this file and I'm using the Yosemite version of this boot.efi on my Macbook 2,1( this mac is not supported by nothing official beyond 10.7 Lion) and yosemite is running good but without QE/CI too (I've installed Yosemite and this boot.efi using MacPostFactor installer).

 

I've followed the instructions (you can find it in a tony**** forum) given by Asher-, where he says that, if you want to boot from Clover on a real mac, it's so easy as copying the boot.efi you have in /System/Library/CoreServices/boot.efi to EFI/CLOVER/drivers64. In my case, I don't have this boot.efi into /System/...... because "I don't have permissions" to do this.

 

With Clover UEFI, I can boot Yosemite from the SSD of the macbook, but not El Capitan in the external HDD. Remember: I cannot copy the boot.efi to El Capitan directly, so I need Clover doing this, and other nice things it's doing on my hackintoses: disabling SIP, injecting kexts...

 

Please, can you help me?

 

Note: I have Yosemite on the Macbook because it's supported by "OS X Hackers" (http://forums.macrum...-guide.1761432/), but my Macbook is not supported by them under El Capitan (http://forums.macrumors.com/threads/os-x-el-capitan-on-unsupported-macs.1889851/).

 

I feel Clover can help me in this adventure because my Acer 5315-5715z laptops are very similar to my Macbook 2,1 (they are like Macbook 4,1; the only difference they have a GMA X3100 instead of a GMA 950, that's all) :). So, I'm sure I can have El Capitan on my Macbook without QE/CI. If Clover can do this to hackintoshes, why not to a real macbook?

 

***************************************************************************

Thank you for helping me!

Link to comment
Share on other sites

@skylfy555,

 

Hi,

 

yes, Download-Fritz is not always the most diplomatic type... :-)

 

Not sure to understand. One you installed Clover, you should be able to boot whatever you want without messing with boot.efi, shouldn't you ? I think Clover is 64 bit uefi platform. Maybe you will need to boot Clover in Legacy mode, so Apple EFI's gone completely.

First install Clover, boot it through Apple EFI, plug an El Capitan install USB stick and see what happens.

Link to comment
Share on other sites

yes, Download-Fritz is not always the most diplomatic type... :-)

 

Thanks for that compliment. Once you explain to me, why an OS loader loaded as a driver (spoiler: won't work) fixes anything, I will grateful accept your kind words.

 

EDIT: OK, I think loading boot.efi that way will actually work because Clover doesn't seem to check whether it's an application or a driver... still this is really bad practise because boot.efi depends on either be on the root partition or be passed the Root UUID for certain stuff (including e.g. FV2). Also, being loaded outside of its UI, that boot.efi bypasses most of Clover's logic and you could just as well load it directly. Place the booter whereever you like on the OS X partition and use bless.

Link to comment
Share on other sites

 Share

×
×
  • Create New...