Jump to content

OpenCore General Discussion


dgsga
8,888 posts in this topic

Recommended Posts

4 hours ago, 1Revenger1 said:

Opencore injects acpi no matter which OS you boot through it - so it's likely something modified within the DSDT which windows doesn't like.

How to explain that with Clover he likes the same DSDT

EDIT *** 

Boot windows with DSDT.aml is Fix  add SSDT-XOSI.aml

Edited by chris1111
Boot windows with DSDT.aml is Fix  add SSDT-XOSI.aml
  • Like 1
Link to comment
Share on other sites

Hi

I have a question about how OC is doing kext patches. My question specifically is, where does the find / replace happen?

The background of the question:

I want to patch the info.plist of a kext (AMD Graphic Driver) to change some properties in info.plist within the kext I want to patch.

So does the find / replace also apply to the info.plist itself? Can I patch info.plist within the kext?

 

Thanks, Mike

 

Edit.... checking some more, it seems that InfoPlistPatch was the function in Clover that could do that.... is there another way to achieve that in OC? Maybe there is something I have overseen here.

 

Edit.... seems like a plist.info only kext is the solution, will further investigate, injection by device properties does not work it seems

Edited by Mike Ranger
Link to comment
Share on other sites

hi i wonder how can i get SYSLOG like this in log?

https://github.com/acidanthera/VirtualSMC/blob/master/Sensors/SMCBatteryManager/BatteryManager.cpp#L33

i tried to get SYSLOG log. but always fail. i don't know where is it.

where can i found this log history?

 

i added like this

-lgwmidbg -liludbg -vsmcdbg msgbuf=1048576 -sbatdbg

 

i can see only this part like this. "DBDLOG"

https://github.com/acidanthera/VirtualSMC/blob/master/Sensors/SMCBatteryManager/BatteryManager.cpp#L52

Link to comment
Share on other sites

8 hours ago, Mike Ranger said:

Hi

I have a question about how OC is doing kext patches. My question specifically is, where does the find / replace happen?

The background of the question:

I want to patch the info.plist of a kext (AMD Graphic Driver) to change some properties in info.plist within the kext I want to patch.

So does the find / replace also apply to the info.plist itself? Can I patch info.plist within the kext?

 

Thanks, Mike

 

Edit.... checking some more, it seems that InfoPlistPatch was the function in Clover that could do that.... is there another way to achieve that in OC? Maybe there is something I have overseen here.

 

Edit.... seems like a plist.info only kext is the solution, will further investigate, injection by device properties does not work it seems

 

Device Properties Inject is the way to go.

 

I helped someone with Clover's equivalent of Graphics->Inject->Nvidia=TRUE (which does not exist in OC).

See the config.plist file I posted there as an example. It uses Device Properties Injection.

 

Edited by MacNB
Link to comment
Share on other sites

Thanks... well... some properties did not work for me.

I tried to inject some ATI properties, that were already defined by the driver it seems. So injecting did for some reason not change these values through device properties.

I created now a kext with info.plist that could successfully change the value (if changing the value makes sense is another question of course).

I agree that usually,the way to go is with Device Properties.

 

Regards, Mike

 

  • Like 1
Link to comment
Share on other sites

34 minutes ago, Mike Ranger said:

Thanks... well... some properties did not work for me.

I tried to inject some ATI properties, that were already defined by the driver it seems. So injecting did for some reason not change these values through device properties.

I created now a kext with info.plist that could successfully change the value (if changing the value makes sense is another question of course).

I agree that usually,the way to go is with Device Properties.

 

Regards, Mike

 

 

This Sample.dsl might give you some hints.

Link to comment
Share on other sites

Would anyone know by any chance why a Clear NVRAM from OpenCore would result in very slow Windows Shutdowns/Restarts/Sleeps/Wakeups?

 

Windows is by far the least standard respecting OS out there. I know that its GPT usage is quite different from Linux and macOS, and for some reason, every time i tries to fix its Boot Entry on the UEFI list, it will inject the correct path for its EFI file, but on the wrong EFI partition, it chooses the OC disk/partition. Obviously, there is no file there as both OS's reside on their own EFI/DISK. This habit choosing the wrong location seems to happen with a few Duet/Linux users too.

 

I highly doubt if this is specifically an OC issue at all, but i'm just trying to troubleshoot it.

 

EDIT: Just to clarify, i dont boot Windows through OC.

Edited by PlutoDelic
Link to comment
Share on other sites

@Download-Fritz You mean the Windows entry? Only if i manually remove it or clear NVRAM. A workaround i made, i let the automatic entry stay on the boot list but just leave it as the last one, and use a manually created one as the first. I can live with that.

 

The Windows issue arose on the first NVRAM clearance, this was in the early boot trials to get the installer working. While i've settled with the complete/post install, or should i say, on the last NVRAM clearance, i thought maybe it would settle down. It's weird cause Windows is quite fast and rests on a x4 NVMe, where as the macOS in a 1x NVMe (port limitation), but macOS boots (and shutdowns etc) a lot faster than Windows. I've used the opportunity to upgrade to the latest Windows too to see if that would bring me any changes, but unfortunately not.

 

This could most probably either be a Windows UEFI implementation that just doesnt give a damn about standards, or the BIOS Firmware being what they usually are, BAD (Dell Latitude e7470).

 

 

Edited by PlutoDelic
Link to comment
Share on other sites

11 hours ago, anonymous writer said:

Hello OpenCore team.
I have a question about SecureBootModel. Is there a way to see the status of SecureBootModel under OSX?
SecureBootModel is active on may hack, but I have no idea where I can see under OSX the status of SecureBootModel.

No there isn't afaik. You could check the logs from boot.efi though - should say what model secure boot is used, if any (ie j680.im4 or some other statement).

  • Thanks 1
Link to comment
Share on other sites

I updated to 1bfcb254da555125e3acc37edece85a949076c84 and OC thew up an error that it could not load the config file. Reverted back to b9e08ba44be08f1eb61143f0ca6f357abb695080 and everything works as expected.

 

Did I miss something with regards to a change in pathing or anything? Ran the config through the sanity checker and it passed without issue. Not really sure how to debug this one.

  • Sad 2
Link to comment
Share on other sites

Guys, I have the Clover r5126 installed and working perfectly in Catalina and Big Sur. The EFI is on the SSD and I also have one on the HD to serve as a backup, both were seen in the Boot Option of the bios.
Today I went to create an OpenCore 0.6.3 to see how the bootloader is doing, when I entered the Bootloader screen I used the Reset NVram option. I had already done this with OpenCore 0.6.2 and it worked perfectly but now this cleaning of NVram has broken my Bios. I can no longer see the two Clover EFIs that are on the SSD and the HD. I don't know what changed when cleaning NVram that broke my bios this way.
Can anyone help me with a solution so that my bios can see Clover again? I am unable to enter the system because of this. I did a reset on the bios and now even Windows I'm not able to see.

 

Edit 1: 

Guys, I already reset the bios, I already rewrote it (EZ Flash), I already installed Clover by .pkg on the SSD and HD, but my motherboard can no longer find the files to inicializate Clover. It does not appear in the boot options. UEFI boot Clover appears in the boot menu option only when the flash drive is inserted into the USB.

Does anyone know what I can do to resolve this? I need UEFI boot Clover to appear through SSD and HD in the bios boot menu.

Edited by Vinicius P. Miranda
Link to comment
Share on other sites

Hi all,

 

I am trying to passthrough D700 GPUs on MacPro6,1 to a MacOS VM in VMware ESXi 7.0.1 ( I need VMs on VMware for work purposes )

I used OpenCore 6.3.0 Debug and WhateverGreen but just couldn't get it to work.

 

Setup:

1. I passed thru both GPUs with Audio functions

2. Injected SSDT with vBIOS for both GPUs ( 'ATY,bin_image')

 

The error I see is ( I have added some more logs and Kernel Routes to figure out what methods are being called )

I see that AMD7000Controller is initialising 

 

2020-11-12 14:25:59.127865-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) starting controller 0xFFFFFF86C17279B0
2020-11-12 14:25:59.128455-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) starting controller 0xFFFFFF86BF31B890
2020-11-12 14:25:59.128486-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) GetProperty discovered property merge request for aty_properties
2020-11-12 14:25:59.128503-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) GetProperty discovered property merge request for aty_config
2020-11-12 14:25:59.128810-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) Calling AMD7000ControllerInitialize Resources
2020-11-12 14:25:59.128815-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) Calling wrapSISharedControllerinitializeResources
2020-11-12 14:25:59.128823-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) wrapSISharedControllerinitializeResources local_1c = -536870212  bVar2 = 02
2020-11-12 14:25:59.128829-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) starting controller done 0 0xFFFFFF86BF31B890
2020-11-12 14:25:59.129063-0800  localhost kernel[0]: (AMDRadeonX4000) Got debug policy value 0x0
2020-11-12 14:25:59.141542-0800  localhost kernel[0]: (IOAcceleratorFamily2) virtual bool IOGraphicsAccelerator2::start(IOService *): configureDevice failed
2020-11-12 14:25:59.141546-0800  localhost kernel[0]: (IOAcceleratorFamily2) IOGraphicsAccelerator::start: Failure exit
2020-11-12 14:25:59.154807-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) GetProperty discovered property merge request for aty_properties
2020-11-12 14:25:59.159488-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) GetProperty discovered property merge request for aty_config
2020-11-12 14:25:59.161324-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) Calling AMD7000ControllerInitialize Resources
2020-11-12 14:25:59.164860-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) Calling wrapSISharedControllerinitializeResources
2020-11-12 14:25:59.170040-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) wrapSISharedControllerinitializeResources local_1c = -536870212  bVar2 = 02
2020-11-12 14:25:59.171544-0800  localhost kernel[0]: (Lilu) WhateverGreen       rad: @ (DBG) starting controller done 0 0xFFFFFF86C17279B0
2020-11-12 14:25:59.173228-0800  localhost kernel[0]: (AMDRadeonX4000) Got debug policy value 0x0
2020-11-12 14:25:59.183925-0800  localhost kernel[0]: (IOAcceleratorFamily2) virtual bool IOGraphicsAccelerator2::start(IOService *): configureDevice failed
2020-11-12 14:25:59.183928-0800  localhost kernel[0]: (IOAcceleratorFamily2) IOGraphicsAccelerator::start: Failure exit

 

Using Ghidra, I see its trying to initialise the GPU

 

ulong __thiscall initializeResources(AMD7000Controller *this)

{
  long *plVar1;
  byte bVar2;
  undefined4 uVar3;
  int iVar4;
  SIRegisterService *this_00;
  undefined8 uVar5;
  undefined8 uVar6;
  AMD7000Controller *pAVar7;
  undefined4 local_50 [2];
  undefined8 local_48;
  undefined8 local_40;
  undefined8 local_38;
  undefined8 local_30;
  undefined8 local_28;
  uint local_1c;
  AMD7000Controller *local_18;
  uint local_c;
  
  local_1c = 0;
  local_18 = this;
  local_1c = initializeResources((SISharedController *)this);
  local_c = local_1c;
  if (local_1c == 0) {
    this_00 = (SIRegisterService *)__ZN8OSObjectnwEm((OSObject *)0x1300,0);
    SIRegisterService(this_00);
    *(SIRegisterService **)(this + 0x1f0) = this_00;
    plVar1 = *(long **)(this + 0x1f0);
    uVar5 = (**(code **)(**(long **)(this + 0x19ea8) + 0x118))(*(long **)(this + 0x19ea8));
    uVar6 = (**(code **)(**(long **)(this + 0x19ea8) + 0x128))(*(long **)(this + 0x19ea8));
    bVar2 = (**(code **)(*plVar1 + 0x118))(plVar1,uVar5,uVar6,this);
    if ((bVar2 & 1) == 0) {
      (**(code **)(**(long **)(this + 0x1f0) + 0x28))(*(long **)(this + 0x1f0));
      local_c = 0xe00002bd;
    }
    else {

And down the line I see 

 

ulong __thiscall initializeResources(SISharedController *this)

{
  long *plVar1;
  byte bVar2;
  int iVar3;
  undefined8 uVar4;
  MemoryAllocator *this_00;
  long_long lVar5;
  PCI_REG_INDEX PVar6;
  long local_60;
  byte local_19;
  uint local_10;
  
  this[0x1a078] = (SISharedController)0x2;
  *(undefined8 *)(this + 0x1a080) = 0x53530;
  *(undefined8 *)(this + 0x208) = 0x4c7a0;
  *(undefined4 *)(this + 0x19fa4) = 0;
  local_19 = 0;
  while (local_19 < 0xf) {
    *(undefined8 *)(this + (ulong)local_19 * 8 + 0x19dc8) = 0;
    *(undefined8 *)(this + (ulong)local_19 * 8 + 0x19e40) = 0;
    *(undefined4 *)(this + (ulong)local_19 * 4 + 0x19f30) = 0;
    *(undefined8 *)(this + (ulong)local_19 * 8 + 0x19eb8) = 0;
    local_19 = local_19 + 1;
  }
  if (SUB168(ZEXT816(1) * ZEXT816(0x288) >> 0x40,0) == 0) {
    local_60 = _IOMalloc(SUB168(ZEXT816(1) * ZEXT816(0x288),0));
  }
  else {
    local_60 = 0;
  }
  *(long *)(this + 0x1a048) = local_60;
  if (local_60 == 0) {
    local_10 = 0xe00002bd;
  }
  else {
    _memset(*(void **)(this + 0x1a048),0,0x288);
    *(undefined4 *)(this + 0x19f30) = 0x10;
    *(undefined4 *)(this + 0x19f34) = 0x10;
    *(undefined4 *)(this + 0x19f38) = 0x10;
    *(undefined4 *)(this + 0x19f3c) = 0x10;
    *(undefined4 *)(this + 0x19f40) = 0x10;
    *(undefined4 *)(this + 0x19f44) = 0x10;
    *(undefined4 *)(this + 0x19f48) = 0x10;
    *(undefined4 *)(this + 0x19f4c) = 0x10;
    *(undefined4 *)(this + 0x19f50) = 0x10;
    *(undefined4 *)(this + 0x19f54) = 0x10;
    *(undefined4 *)(this + 0x19f58) = 0x10;
    *(undefined4 *)(this + 0x19f5c) = 0x10;
    *(undefined4 *)(this + 0x19f60) = 0x10;
    *(undefined4 *)(this + 0x19f64) = 0x18;
    *(undefined4 *)(this + 0x19f68) = 0x30;
    local_19 = 0;
    while (PVar6 = (PCI_REG_INDEX)this, local_19 < 0xf) {
      iVar3 = __ZN13ATIController20populateDeviceMemoryE13PCI_REG_INDEX(PVar6);
      if (iVar3 != 0) {
        local_10 = 0xe00002bc;
        goto LAB_00013c62;
      }
      local_19 = local_19 + 1;
    }

The additional Logging I put I wrapped 

local_1c = initializeResources((SISharedController *)this);

call to see what it return and it returns 0xe0002bc ( local_1c = -536870212 in logs ) which tells me it fails on __ZN13ATIController20populateDeviceMemoryE13PCI_REG_INDEX(PVar6); in AMDSupport at ATIController::populateDeviceMemory(PCI_REG_INDEX)

 

I have no clue why would PCI memory population fails.

 

Just to confirm, an Ubuntu VM with a GPU vBIOS patch to load vBIOS off a file works perfectly so I know its possible to pass through GPU from VMware ESXi.

 

I would really appreciate any help or pointers to debug this.

 

Thanks

 

Link to comment
Share on other sites

I update 0.6.4

I made com.apple.recovery.boot 

1060992947_ScreenShot2020-11-14at5_55_07AM.png.f3048108d3bbf252378430246a872d70.png

Please add ScanPolicy=0

I can see in boot menu.:thumbsup_anim:

 

Thanks OC.

 

Edited by nmano
Link to comment
Share on other sites

On 11/9/2020 at 12:06 AM, MICKHAEL said:

Hi @mikorist, how you solved "tx_flush" errors?
Thanks

 

Have you managed any success wiih this? I get the same thing, and it seems to be due to APFS Container corruption. Really struggling with it, I have a very stable build but I randomly get this corruption.

 

Also, I can only boot with SecureBoot disabled completely, what are the dependencies to get it to Default? It won't get past OC if I leave it to default.

Link to comment
Share on other sites

2 minutes ago, PlutoDelic said:

 

Have you managed any success wiih this? I get the same thing, and it seems to be due to APFS Container corruption. Really struggling with it, I have a very stable build but I randomly get this corruption.

 

Also, I can only boot with SecureBoot disabled completely, what are the dependencies to get it to Default? It won't get past OC if I leave it to default.

i think i have, but with Clover 5126. in my case, beside SSDT-PLUG in combination with CPUFriend i put all Lilu plugins are in PlugIns folder
Screenshot 2020-11-12 at 17.20.15.png

Link to comment
Share on other sites

×
×
  • Create New...