Vinicius P. Miranda Posted November 11, 2017 Share Posted November 11, 2017 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... FusionHD.png Booter partition.png com.apple.Boot.plist.png 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" EFI Shell.png Installing on FusionHD.png 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 FusionHD 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> Boot 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. 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted November 11, 2017 Share Posted November 11, 2017 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 More sharing options...
cecekpawon Posted November 11, 2017 Share Posted November 11, 2017 it seems cecekpawon code works only native supported nvram system. Correct. Theres another fork with EmuVariable support. Go share with him 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted November 11, 2017 Share Posted November 11, 2017 Correct. Theres another fork with EmuVariable support. Go share with him Thank you so much. I will see it in detail. 나의 LG-F800S 의 Tapatalk에서 보냄 Link to comment Share on other sites More sharing options...
apianti Posted November 11, 2017 Share Posted November 11, 2017 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 More sharing options...
apianti Posted November 11, 2017 Share Posted November 11, 2017 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. 2 Link to comment Share on other sites More sharing options...
bronxteck Posted November 11, 2017 Share Posted November 11, 2017 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 More sharing options...
chris1111 Posted November 11, 2017 Share Posted November 11, 2017 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 Link to comment Share on other sites More sharing options...
bronxteck Posted November 11, 2017 Share Posted November 11, 2017 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? Link to comment Share on other sites More sharing options...
chris1111 Posted November 11, 2017 Share Posted November 11, 2017 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 More sharing options...
apianti Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
bronxteck Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
apianti Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
cecekpawon Posted November 12, 2017 Share Posted November 12, 2017 Adding auto skip "0x" in hextring when detected would be great >>> EDIT: 0.0 found my self like apianti: I should just think before typing stuff and save myself some time. Its plist patch, sorry 1 Link to comment Share on other sites More sharing options...
bronxteck Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
Sherlocks Posted November 12, 2017 Share Posted November 12, 2017 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 2 Link to comment Share on other sites More sharing options...
Guest Posted November 12, 2017 Share Posted November 12, 2017 @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 More sharing options...
MICKHAEL Posted November 12, 2017 Share Posted November 12, 2017 @Slice Clover 4297 no more boot... hang to ACPM 60s... mention that I use some XPC kernel patches. any ideas? Link to comment Share on other sites More sharing options...
Slice Posted November 12, 2017 Share Posted November 12, 2017 @Slice Clover 4297 no more boot... hang to ACPM 60s... mention that I use some XPC kernel patches. any ideas? Ideas about what? You didn't provide information. Link to comment Share on other sites More sharing options...
MICKHAEL Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
Sherlocks Posted November 12, 2017 Share Posted November 12, 2017 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에서 보냄 1 Link to comment Share on other sites More sharing options...
MICKHAEL Posted November 12, 2017 Share Posted November 12, 2017 Upload your preboot.log 나의 LG-F800S 의 Tapatalk에서 보냄 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted November 12, 2017 Share Posted November 12, 2017 0:138 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0) 0:138 0:000 KernelXCPM: enabled try to turn off KernelXCPM in config.plist Link to comment Share on other sites More sharing options...
MICKHAEL Posted November 12, 2017 Share Posted November 12, 2017 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 More sharing options...
crusher Posted November 12, 2017 Share Posted November 12, 2017 Turned. Same How to turn off? KernelXCPM=No? no <key>KernelXCPM</key> <false/> 1 Link to comment Share on other sites More sharing options...
Recommended Posts