Jump to content

Clover General discussion


ErmaC
29,818 posts in this topic

Recommended Posts

I created a FusionHD on a macOS guest in VMware, ran the "Install macOS High Sierra.app" targeting the FusionHD, then attached the component "physical" drives to a Linux Mint VM to examine the file structures...

 

 

 

Details of the core storage volume "FusionHD" (disk3, comprised of physical drives disk0 & disk1) are listed below...

fusion71aus-iMac:~ fusion71au$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *53.7 GB    disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage FusionHD                53.3 GB    disk0s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk0s3

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *42.9 GB    disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:          Apple_CoreStorage FusionHD                42.6 GB    disk1s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *53.7 GB    disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS macOS                   52.8 GB    disk2s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk2s3

/dev/disk3 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS FusionHD               +90.5 GB    disk3
                                 Logical Volume on disk0s2, disk1s2
                                 6FCF6DFD-473E-4EEC-A983-4394B6D223D9
                                 Unencrypted Fusion Drive

fusion71aus-iMac:~ fusion71au$ diskutil coreStorage list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 8A9E365C-ADA0-42E5-B62C-BFEC785CB649
    =========================================================
    Name:         FusionHD
    Status:       Online
    Size:         95948816384 B (95.9 GB)
    Free Space:   106496 B (106.5 KB)
    |
    +-< Physical Volume 0D07162A-6C25-41F7-86E9-6C76A4B5B176
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk0s2
    |   Status:   Online
    |   Size:     53343117312 B (53.3 GB)
    |
    +-< Physical Volume 7AAE3F60-4C0E-44A2-911B-53FA15EB77B3
    |   ----------------------------------------------------
    |   Index:    1
    |   Disk:     disk1s2
    |   Status:   Online
    |   Size:     42605699072 B (42.6 GB)
    |
    +-> Logical Volume Family 43011F12-511E-4CC4-8A61-A9A95FF91057
        ----------------------------------------------------------
        Encryption Type:         None
        |
        +-> Logical Volume 6FCF6DFD-473E-4EEC-A983-4394B6D223D9
            ---------------------------------------------------
            Disk:                  disk3
            Status:                Online
            Size (Total):          90522517504 B (90.5 GB)
            Revertible:            No
            LV Name:               FusionHD
            Volume Name:           FusionHD
            Content Hint:          Apple_HFS
            LVG Type:              Fusion, Sparse
fusion71aus-iMac:~ fusion71au$ diskutil info disk3 | grep UUID
   Volume UUID:              DFC8F5FF-200A-38F7-AA00-63C3D5813FD6
   Disk / Partition UUID:    6FCF6DFD-473E-4EEC-A983-4394B6D223D9
   LV UUID:                  6FCF6DFD-473E-4EEC-A983-4394B6D223D9
   LVF UUID:                 43011F12-511E-4CC4-8A61-A9A95FF91057
   LVG UUID:                 8A9E365C-ADA0-42E5-B62C-BFEC785CB649
   PV UUID (disk):           0D07162A-6C25-41F7-86E9-6C76A4B5B176 (disk0s2)
   PV UUID (disk):           7AAE3F60-4C0E-44A2-911B-53FA15EB77B3 (disk1s2)

The boot files to begin the install (boot.efi, com.apple.Boot.plist, SystemVersion.plist and the prelinkedkernel) are all copied to the folder "com.apple.boot.R" in each of the "Boot OS X" partitions of the physical drives making up the FusionHD (in this case disk0s3 and disk1s3).  The com.apple.Boot.plist points to the Volume UUID of the Fusion drive = disk3.

 

Hope this helps the devs fix the installation of High Sierra on Fusion HDs :).

 

 

 

You can continue the second phase installation by starting boot.efi from the EFI shell (Clover main menu ---> Shell64U.efi).

 

In my example above, the booter partition "Boot OS X" corresponded to FS3:

 

Hint - you can switch between FS1:, FS2:, and FS3: volumes consecutively, and use the ls command to see which volume has the "com.apple.boot.R" folder...

 

So in the EFI shell, I typed the following lines, followed by <Enter>

FS3:
"\com.apple.boot.R\boot.efi" 

 

 

OR create a custom Clover entry for the FusionHD Installer in config.plist/GUI, based on the UUID of the "Boot OS X" booter partition eg

 

 

attachicon.gifFusionHD Installer.png

fusion71aus-iMac:~ fusion71au$ diskutil info "Boot OS X" | grep UUID
   Volume UUID:              BEB2BAC6-72A4-32BE-8464-7CF3F94F6930
   Disk / Partition UUID:    84496AE5-87DA-4862-AC79-C69E65D56EDA
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>Disabled</key>
					<false/>
					<key>FullTitle</key>
					<string>FusionHD Installer</string>
					<key>Hidden</key>
					<false/>
					<key>Ignore</key>
					<false/>
					<key>InjectKexts</key>
					<true/>
					<key>NoCaches</key>
					<false/>
					<key>Path</key>
					<string>\com.apple.boot.R\boot.efi</string>
					<key>Type</key>
					<string>OSXInstaller</string>
					<key>Volume</key>
					<string>84496AE5-87DA-4862-AC79-C69E65D56EDA</string> #Partition UUID of "Boot OS X"
				</dict>
			</array>
		</dict>

attachicon.gifBoot from FusionHD Installer.png

 

and select the entry from the Clover Main Menu.

 

Only today I was able to test. Finally I was able to update the system without losing anything. Thank you very much fusion71au. I'm happy not to have to install from 0 every time post some updates.

I could not find the "\com.apple.boot.R\boot.efi" in any FSx: (I tested all FS), I just found the EFI folder and some files hidden. But by the Custom Entry mode in the Clover Configurator worked perfect.
If I knew how to program well, I would put it on the Clover myself. But I'm still a beginner.
  • Like 1
Link to comment
Share on other sites

He was trying to install or boot High Sierra when it appears that he had hibernated Sierra without resuming. So yeah that was probably not going to work...

 

i'm trying to implement nvram reset option.
 
DeleteNvramVariable (efi-boot-device, guid = Not Found
):DeleteNvramVariable (efi-boot-device-data, guid = Not Found
):DeleteNvramVariable (BootCampHD, guid = Not Found
 
actually this DeleteNvramVariable feature is not working both gEfiAppleBootGuid and gEfiAppleNvramGuid on system that used EmuVariableUefiPresent.
it seems cecekpawon code works only native supported nvram system.
 
0:962  0:002  Loading nvram.plist from Vol 'EFI' - loaded, size=2116
0:975  0:012  === [ PutNvramPlistToRtVars ] =============================
0:975  0:000   Adding Key: EFILoginHiDPI: Size = 4, Data: 00 00 00 00 
0:975  0:000   Skipping EmuVariableUefiPresent
0:975  0:000   Adding Key: SystemAudioVolume: Size = 1, Data: 37 
0:975  0:000   Adding Key: SystemAudioVolumeDB: Size = 1, Data: ED 
 
1:072  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
1:074  0:001  EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent 
 
1:113  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
1:113  0:000  DefaultIndex=1 and MainMenu.EntryCount=9
1:506  0:393  GUI ready
 
in system that used EmuVariableUefiPresent, i think that need to refresh RtVars and to recall PutNvramPlistToRtVars after GUI ready
and what we want to except exclude, then emulated nvram part again. then boot.
 
if DeleteNvramVariable feature can use on most of system, seems very simple. but now, it's not work
or remove nvram file on all partition in GUI. then reload Clover GUI, then boot.
i'm thinking to find best way..
Link to comment
Share on other sites

Look at the Emu driver and see why it's not deleting properly.

 

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/Protocols/EmuVariableUefi/EmuVariable.c#l937

 

This line should be checked for result and the problem seems to lie in that function for not finding the variable to delete from the previous line:

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/Protocols/EmuVariableUefi/EmuVariable.c#l1448

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/Protocols/EmuVariableUefi/EmuVariable.c#l1089

Link to comment
Share on other sites

I think I found the problem:

 

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/Protocols/EmuVariableUefi/EmuVariable.c#l1125

 

Not sure that check is needed at all. I think the first two ifs there should not be present and should just be the else part.

 

EDIT: VariableName[0] can never be zero because it's always checked before that function is even called. Plus why on earth couldn't we change variables that are both RT and BT. That's an illogical check.

EDIT2: Plus you can't have a zero length VariableName, it violates the spec.

EDIT3: Should be just this

EDIT4: Oops, forgot about runtime excluding BT only variables, so it was kinda there but needed corrected.

EDIT5: Actually forgot that GetNextVariable starts with empty string, so the line should just be changed to:

if (!VariableClassAtRuntime() || ((Variable[Index]->Attributes & EFI_VARIABLE_RUNTIME_ACCESS) != 0)) {

EDIT6: Jesus I should just think before typing stuff and save myself some time.

EDIT7: I just fixed it myself.... r4298.

  • Like 2
Link to comment
Share on other sites

hey guys my question is, does  clover rev 4297 device injection work in legacy mode bios machines? or does it only work for UEFI?

 

I'm trying to use clover in legacy mode on a bios only machine but I am having an issue. fake id for my devices does not work. I am trying to spoof intel lan and an ati card but osx still sees my old id's for my devices. I have enabled all relevant clover ACPI patches to allow clover to inject properties like fix lan and fix display and the others.

I am trying to spoof 0x68D81002 (HD5670 Redwood XT rv830) as mine is 0x68C81002 FireproV4800 Redwood XT rv830) I have to manually add my ATI card id's into there respective kexts plists but thats not enough to trigger the frame buffer to load as clovers FB edits are also not working in legacy mode neither is kext to patch plist edits as I also tried that method before editing the kexts in SLE. clover is on root of the hfs partition so dumping will not work incase your going to ask for them. so the issue is pretty much global injection is not functioning also sip is fully disabled. I tried booting maverick, Sierra and high Sierra none of clovers device injections worked in any of the os's

Link to comment
Share on other sites

hey guys my question is, does  clover rev 4297 device injection work in legacy mode bios machines? or does it only work for UEFI?

 

I'm trying to use clover in legacy mode on a bios only machine but I am having an issue. fake id for my devices does not work. I am trying to spoof intel lan and an ati card but osx still sees my old id's for my devices. I have enabled all relevant clover ACPI patches to allow clover to inject properties like fix lan and fix display and the others.

I am trying to spoof 0x68D81002 (HD5670 Redwood XT rv830) as mine is 0x68C81002 FireproV4800 Redwood XT rv830) I have to manually add my ATI card id's into there respective kexts plists but thats not enough to trigger the frame buffer to load as clovers FB edits are also not working in legacy mode neither is kext to patch plist edits as I also tried that method before editing the kexts in SLE. clover is on root of the hfs partition so dumping will not work incase your going to ask for them. so the issue is pretty much global injection is not functioning also sip is fully disabled. I tried booting maverick, Sierra and high Sierra none of clovers device injections worked in any of the os's

 

I was curious about what you said, because I am currently using a Saphire Radeon HD 5570 that is native and
works without doing anything but I have 4 other ATI 5450 and I was wondering if it still works on the Fake ID Clover
key> ATI </ key>
<String> 0x68E01002 </ string>

 

And yes it works very well
Clover Legacy but in ESP
 

captur80.png

Link to comment
Share on other sites

so your machine is bios only? I see you have opti 790 my issue is on a precision T7500 workstation. clover installed /EFI on root of my High Sierra drive on a 4k sector hdd. are you using an older version of clover?

I am use latest Clover 4297

Edit ****

Did you try this FakeID in Clover 

0x68E01002

Link to comment
Share on other sites

hey guys my question is, does  clover rev 4297 device injection work in legacy mode bios machines? or does it only work for UEFI?

 

I'm trying to use clover in legacy mode on a bios only machine but I am having an issue. fake id for my devices does not work. I am trying to spoof intel lan and an ati card but osx still sees my old id's for my devices. I have enabled all relevant clover ACPI patches to allow clover to inject properties like fix lan and fix display and the others.

I am trying to spoof 0x68D81002 (HD5670 Redwood XT rv830) as mine is 0x68C81002 FireproV4800 Redwood XT rv830) I have to manually add my ATI card id's into there respective kexts plists but thats not enough to trigger the frame buffer to load as clovers FB edits are also not working in legacy mode neither is kext to patch plist edits as I also tried that method before editing the kexts in SLE. clover is on root of the hfs partition so dumping will not work incase your going to ask for them. so the issue is pretty much global injection is not functioning also sip is fully disabled. I tried booting maverick, Sierra and high Sierra none of clovers device injections worked in any of the os's

 

Make a clover fat32 USB and then you can get dumps/log. Also look at your ioreg, it will show you if it's injecting the fake ids or not. Generally, it's best to install to a GPT disk EFI system partition even when legacy booting.

Link to comment
Share on other sites

chris I tried the id but nothing happened

 

apianti I took your suggestion and mounted EFI then transferred clover over to it I was able to get a preboot log it looks a bit weird clover might be duplicating info again. but I see one part that shows Chris's device id's but then it looks like clover resets it to my cards default twords the end. you have a better understanding maybe you can check.

preboot.log.zip

Link to comment
Share on other sites

chris I tried the id but nothing happened

 

apianti I took your suggestion and mounted EFI then transferred clover over to it I was able to get a preboot log it looks a bit weird clover might be duplicating info again. but I see one part that shows Chris's device id's but then it looks like clover resets it to my cards default twords the end. you have a better understanding maybe you can check.

 

The only thing in your log is some failed patches because you apparently tried to use <string> but that uses hexadecimal encoding of the search/replace, not ASCII/Unicode strings (or <data> I can't remember which but the other is base64 anyway):

1:088  0:000  KextsToPatch: 2 requested
1:088  0:000   - [00]: com.apple.kext.AMD5000Controller (Firepro v4800 as HD5670)[ERROR] bin2hex '0x68D81002' syntax error
1:088  0:000  [ERROR] bin2hex '0x68C81002' syntax error
1:088  0:000   - invalid Find/Replace data - skipping!
1:088  0:000   - [01]: com.apple.kext.AMDLegacySupport (Firepro v4800 as HD5670)[ERROR] bin2hex '0x68D81002' syntax error
1:088  0:000  [ERROR] bin2hex '0x68C81002' syntax error
1:088  0:000   - invalid Find/Replace data - skipping!

Are you sure you actually are using fake id? I don't know if it worked unless you look at your ioreg.

Link to comment
Share on other sites

I was using the plist find and replace option in kext to patch but maybe it does not work even though I have clover force loading them. but that was just a test also to try and add my device id to amd5000controller.kext and amdlegacysupport.kext. its simpler to probably just replace the card with one that works native and let it be. I tried 3 other graphics cards that "just work" this one should have worked with injection but nothings perfect right.

Link to comment
Share on other sites

Correct. Theres another fork with EmuVariable support. Go share with him :)

 

i checked it. there is no reset function for Emuvariabled nvram

 

I think I found the problem:

 

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/Protocols/EmuVariableUefi/EmuVariable.c#l1125

 

Not sure that check is needed at all. I think the first two ifs there should not be present and should just be the else part.

 

EDIT: VariableName[0] can never be zero because it's always checked before that function is even called. Plus why on earth couldn't we change variables that are both RT and BT. That's an illogical check.

EDIT2: Plus you can't have a zero length VariableName, it violates the spec.

EDIT3: Should be just this

EDIT4: Oops, forgot about runtime excluding BT only variables, so it was kinda there but needed corrected.

EDIT5: Actually forgot that GetNextVariable starts with empty string, so the line should just be changed to:

if (!VariableClassAtRuntime() || ((Variable[Index]->Attributes & EFI_VARIABLE_RUNTIME_ACCESS) != 0)) {

EDIT6: Jesus I should just think before typing stuff and save myself some time.

EDIT7: I just fixed it myself.... r4298.

 

i implemented nvram reset feature.

i tested various test. as result,

RT/BT vals control is not good on EmuVariable system to remove Variable. also clover always load nvram.plist file. RT/BT is temp control.

still remains nvram.plist ESP/MBR. so remove nvram.plist and soft reboot, load clover gui again. its best for EmuVariable system.

 

now, remains cosmetic and native support nvram system

soon i will commit.

 

thanks

  • Like 2
Link to comment
Share on other sites

@Slice

clover rev 4297 solved problem people have had with unsupported CPU during a new installation of  osx during boot from macOS install first step

 

Thank you

Link to comment
Share on other sites

Ideas about what? You didn't provide information.

using clover 4233 with xpc patches all ok.. updated to 4297 no more able to boot/ hang at ACPM kext 60 seconds. what information do I need to provide? its something changed from 33 to 97.

Link to comment
Share on other sites

using clover 4233 with xpc patches all ok.. updated to 4297 no more able to boot/ hang at ACPM kext 60 seconds. what information do I need to provide? its something changed from 33 to 97.

Upload your preboot.log

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

0:138 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0)

0:138 0:000 KernelXCPM: enabled

 

try to turn off KernelXCPM in config.plist

Turned. Same

0:138 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0)

0:138 0:000 KernelXCPM: enabled

 

try to turn off KernelXCPM in config.plist

How to turn off? KernelXCPM=No?
Link to comment
Share on other sites

×
×
  • Create New...