Asus Strix G15 AMD Advantage Edition (5900HX/6800M)

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
Hi guys,

I have successfully installed Sonoma on my Asus Strix G15 AMD Advantage Edition (5900HX/6800M).

I also have the iGPU running using NootedRed, though only with 512MB.

But as soon as I enable NootRX.kext instead of NootedRed.kext, it wont start anymore. It hangs where it usually switches from the verbose mode to the Login Screen.

Screenshot 2023-11-03 at 14.55.02.png

What is working:

  • CPU Power Management: SSDT-CPUR.aml and AMDRyzenCPUPowerManagement.kext. Seems to work well, in Idle I get <10W on the CPU.
  • iGPU: NootedRed.kext, but only with 512MB VRAM. Seems to be not enough, but can't change in BIOS.
  • Keyboard: Took me days to get this running. It now works using VoodooPS2Controller.kext, but only after I disabled XHC1 and XHC2 (SSDT-Disable-USB.aml) and then used GenericUSBXHCI.kext)
  • Trackpad: VoodooI2C.kext, VoodooI2CHID.kext and -vi2-force-polling
  • USB: all ports working.
  • Wifi: AirportItlwm.kext
  • Ethernet: RealtekRTL8111.kext
  • Battery

Issues:
  • 6800M not working
  • Battery Lifetime: 6800M seem to drain battery very quick.

Help:
1. Can somebody check my Disable-dGPU Variants to power-off the 6800M if I don't get it working? 6800M ACPI path is:
2. Can somebody check my SSDT-IGPU-DISABLE.aml? Is it required to get the 6800M working through NootRX.kext?

iGPU: \_SB.PCI0.GP17.VGA
6800M: \_SB.PCI0.GPP0.SWUS.SWDS.VGA

Best,
Chris aka SchmockLord
 

Attachments

  • Screenshot 2023-11-03 134603.png
    Screenshot 2023-11-03 134603.png
    164.2 KB · Views: 13
  • Screenshot 2023-11-03 134654.png
    Screenshot 2023-11-03 134654.png
    176.6 KB · Views: 13
  • MacBook Pro_IOREG.zip
    13.7 MB · Views: 8
  • EFI.zip
    30.9 MB · Views: 24
Last edited:

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
Of the three SSDT-DGPU-Disable.aml tables in your OC setup I think v2 is the closest to being correct.

Although there is a discrepancy in the dGPU naming, additional underscore in External MethodObj, as shown below.

Screenshot 2023-11-03 at 18.16.14.png current SSDT-DGPU-DISABLE_v2.aml with additional underscore in IOReg name

Screenshot 2023-11-03 at 18.21.07.png revised SSDT-DGPU-DISABLE_v4.aml with underscore removed, so IOReg names match.

You have the same IOReg name issue in the SSDT-IGPU-DISABLE.aml table. The attached SSDT-IGPU-DISABLE_v2.aml table has this naming issue revised, in the same way by removing the additional underscore from the name.

Try using either or both of these revised ACPI tables, with the correct graphics kext. See if this helps.
 

Attachments

  • SSDT-DGPU-DISABLE_v4.aml.zip
    1.2 KB · Views: 4
  • SSDT-IGPU-DISABLE_v2.aml.zip
    1.2 KB · Views: 4

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
Thanks. Will try that. I noticed these underscores too, but they are added automatically after I close and reopen the aml files with MacIasl.
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
Hi guys,

I have successfully installed Sonoma on my Asus Strix G15 AMD Advantage Edition (5900HX/6800M).

I also have the iGPU running using NootedRed, though only with 512MB.

But as soon as I enable NootRX.kext instead of NootedRed.kext, it wont start anymore. It hangs where it usually switches from the verbose mode to the Login Screen.

View attachment 12280

What is working:

  • CPU Power Management: SSDT-CPUR.aml and AMDRyzenCPUPowerManagement.kext. Seems to work well, in Idle I get <10W on the CPU.
  • iGPU: NootedRed.kext, but only with 512MB VRAM. Seems to be not enough, but can't change in BIOS.
  • Keyboard: Took me days to get this running. It now works using VoodooPS2Controller.kext, but only after I disabled XHC1 and XHC2 (SSDT-Disable-USB.aml) and then used GenericUSBXHCI.kext)
  • Trackpad: VoodooI2C.kext, VoodooI2CHID.kext and -vi2-force-polling
  • USB: all ports working.
  • Wifi: AirportItlwm.kext
  • Ethernet: RealtekRTL8111.kext
  • Battery

Issues:
  • 6800M not working
  • Battery Lifetime: 6800M seem to drain battery very quick.

Help:
1. Can somebody check my Disable-dGPU Variants to power-off the 6800M if I don't get it working? 6800M ACPI path is:
2. Can somebody check my SSDT-IGPU-DISABLE.aml? Is it required to get the 6800M working through NootRX.kext?

iGPU: \_SB.PCI0.GP17.VGA
6800M: \_SB.PCI0.GPP0.SWUS.SWDS.VGA

Best,
Chris aka SchmockLord
NootRX developer here, does your laptop have a MUX chip? You won't have internal display support with 6800M otherwise.
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
ACPI names are 4 characters long, _ is used to pad to 4 letters, like "VGA_".
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
That being the case shouldn't all the names be padded to 4 characters long?

The ACPI names in the lower entries are only 3 characters long, so all the names match.

Adding an _ to those entries (VGA_) might make the difference.

As an example:

Screenshot 2023-11-03 at 22.13.13.png
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
NootRX developer here, does your laptop have a MUX chip? You won't have internal display support with 6800M otherwise.

Various sources say, that it doesn't have a MUX.

Do you mean by disabling the iGPU or the dGPU I will loose internal display support?

I have tried your advises, but the 6800M still appears.

But I have noticed, that the iGPU and dGPU are defined in SSDTs and not the DSDT.

But how can I suppress an SSDT when they are all named "AMDTable" and appear in different orders every boot? Sometimes it is SSDT-6 and sometimes SSDT-4?
 

Attachments

  • System SSDT-6.zip
    1.6 KB · Views: 0
Last edited:

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
Various sources say, that it doesn't have a MUX.

Do you mean by disabling the iGPU or the dGPU I will loose internal display support?

I have tried your advises, but the 6800M still appears.

But I have noticed, that the iGPU and dGPU are defined in SSDTs and not the DSDT.

But how can I suppress an SSDT when they are all named "AMDTable" and appear in different orders every boot? Sometimes it is SSDT-6 and sometimes SSDT-4?
SSDTs can be neutralized by OEM specifier. If you want to use dGPU and disable iGPU, you won't have internal display. Disabling dGPU is more complicated on AMD laptops, you can't do it from the BIOS?
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
SSDTs can be neutralized by OEM specifier. If you want to use dGPU and disable iGPU, you won't have internal display. Disabling dGPU is more complicated on AMD laptops, you can't do it from the BIOS?
No, I can't disable iGPU nor change anything GPU related in BIOS.

wegnoegpu removes the 6800M from IOREG and all other places where I normally see it. But I am not 100% if it kills the power draw as well.
 

ExtremeXT

Donator
Donator
Joined
Aug 7, 2022
Messages
843
No, I can't disable iGPU nor change anything GPU related in BIOS.

wegnoegpu removes the 6800M from IOREG and all other places where I normally see it. But I am not 100% if it kills the power draw as well.
What about Armoury Crate?
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
What about Armoury Crate?
Nope. Nothing to enable/disable iGPU or dGPU. Do you have any idea why I don't get NootRX running? As soon as I enable it instead of NootedRed, I get a restart where it usually switches to the Login screen.

I guess due to the lack of a Mux, I need to have iGPU and dGPU enabled. But that would require NootRX and NootedRed right?!
 
Last edited:

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
Do you have any DeviceProperties in your config.plist?

Try removing them (all of them) and see if that helps when trying to boot with NootRX.kext present in your OC setup.
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
Have you tried using -wegnoigpu boot argument to disable the IGPU instead of -wegnoegpu?
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
@Edhawk Yes, I have tried all variants of disable via SSDT and bootargs. -wegnoigpu when using NootRX and -wegnoegpu when using NootedRed. And I have no DeviceProperties. Also tried inject different device-ids, but that didn't work.

Maybe some background info: When I turn my laptop on, I have no output via HDMI or USBC to an external display. Only after booting Windows e.g. So it seems, within booting only iGPU is working. After boot the external GPU is available too and I can also disable iGPU in Windows in the Device Manager.

So with the attached EFI and npci=0x3000 it boots with NootRX, but with no acceleration. But as soon as I remove npci=0x3000 it just restarts at the end of the boot.

Attached is also the Apple Error Log after the next boot when it restarts:
 

Attachments

  • EFI.zip
    31 MB · Views: 3
  • Screenshot 2023-11-09 at 14.53.06.png
    Screenshot 2023-11-09 at 14.53.06.png
    499 KB · Views: 11
  • Apple Error Log.pdf
    27.6 KB · Views: 1
Last edited:

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
The npci=0x3000 boot argument is used when Above 4G Decoding can't be enabled in the Bios. As your laptop fails to boot to macOS when the boot argument is missing from your config.plist, I take it you haven't or can't enable Above 4G Decoding in your Bios.

When Above 4G Decoding is enabled, ResizableBar is made available in the Bios. This option needs to be set as enabled/auto and then with the ResizeAppleGpuBar quirk changed from '-1' to '0' in your config.plist. But you already have this quirk set as '0'. If ResizableBar hasn't been enabled in your bios, then you should revert to the default '-1' entry for the ResizeAppleGpuBar quirk.

I take it you are using NootRX.kext (NRX) or NootedRed.kext (NRED), that you are not using both at the same time.

Your Asus laptop lacks a MUX switch, which would allow you to enable/disable the AMD IGPU or dGPU in the bios. So the initial GPU will always be the integrated APU. The discrete GPU (RX6800M) won't be available until the OS boots, which you have found to be the case with the lack of an external display.
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
You have 13 x SSDT's in your ACPI folder and config.plist, but only 6 x ACPI tables are enabled. The other 7 x SSDT's are not used, it would be better if these weren't present in the APCI folder or config.plist.

You have SSDT-HPET.aml enabled in your config.plist, but you don't have any of the ACPI rename patches that usually accompany this SSDT in the ACPI Patch section of your config.plist. You may need to check your SSDTTime Results folder, assuming you generated the SSDT from your system DSDT.aml table and the patches were added to the patches_OC.plist in the Results folder.

Shikigva=128 boot argument won't work with NootRX.kext or NootedRed.kext. It should be removed from the DeviceProperties section. In fact it stopped working with WhateverGreen.kext when Big Sur was released, as Apple changed some elements that made this boot argument obsolete in any newer versions of macOS.

While on the subject of DeviceProperties, I would recommend removing the fake device-id entry for your RX 6800M as it shouldn't be required when using NootRX.kext. The Device-ID for your Navi 22 dGPU should be present in NootRX.kext, so no need to fake the ID.

Kexts:
You have 27 x kexts in your /EFI/OC/kexts folder but only 7 x kexts are enabled!!! You seem to be booting with a minimal setup, but have overloaded the ACPI and kexts folders with unused elements.
  1. Is there a reason why you aren't enabling AppleALC.kext? Doesn't your laptop use a Realtek ALC audio codec? You have alcid=21 boot argument in the config.plist, so something doesn't compute.
  2. I can understand you not enabling the sensor kexts, as they are only required if you want to get readings from your system in a Sensor application. They are far from essential to getting your laptop booting macOS.
  3. Not sure why SMCBatteryManager.kext is disabled, that should be an essential kext for any laptop.
  4. I think the same goes for ECEnabler.kext, but you don't have that kext in your OC setup. This kext allows macOS to read battery code that is bigger than 8-bytes, which while less common in AMD laptops can still cause battery issues when they are present in the DSDT.aml.
  5. Intel bluetooth kexts are all disabled, which again is fine if you don't want to use the BT device.
  6. Voodooi2C and VoodooPS2Controller kexts (and their respective plugins) are disabled. How are you getting your keyboard and Trackpad to work? Are you using an external USB keyboard and mouse?
  7. Not sure if you need NoTouchID.kext, does your laptop have a touch screen?
Boot Arguments:
Not sure why you are using the -amfipassbeta boot argument. You aren't using the OCLP Root Patches for a Broadcom WiFi/BT card or anything like that from what I can see.
Also you don't need to include agdpmod=pikera when using your RX 6800M. As NootRX works just fine with Navi 22 GPU's without that boot argument.

There are a number of unused elements in your config.plist, which the OpenCore developers added as placeholders. These are not required with your laptop or most other systems for that matter, so they can safely be removed.

I have attached a revised EFI-2 for you to review.
  • It only contains the SSDT's and Kexts you had enabled, plus the two battery kexts I think are essential.
  • This means none of the normal Keyboard or Trackpad kexts are present in this EFI.
  • I changed OpenHfsPlus.efi for HfsPlus.efi, as the later is a better and faster HFS+ driver.
  • I removed the DeviceProperties for the RX 6800M
  • I removed the unused and largely unnecessary Tools from the /EFI/OC/Tools folder and config.plist.
  • I removed all the unused sections from the config.plist.
I have attached folders containing the unused kexts and SSDTs from your original OC setup. So you can add any you think you need to the cleaned up OC setup, without having to go back to your old setup.
 

Attachments

  • EFI-2.zip
    21.6 MB · Views: 6
  • Unused kexts.zip
    8.8 MB · Views: 3
  • Unused SSDTs.zip
    7.2 KB · Views: 0

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
@Edhawk Thanks for your detailled analysis. I will try your suggestions. The reason why I disabled most of the ACPI and Kexts you mentioned is, that they are not required to boot macOS, and when something is not working I try to minimize side-effects from things I don`t need to run macOS. This is probably the 50th attempt of getting the dGPU working, and I have tried all variants e.g. without all the device properties, with the ones currently included etc.

I already had everything running with the iGPU. And of course, if I don't need kexts/ACPI longterm, I would delete them. But I am still in the testing and optimizing phase. But I appreciate your efforts!

And yes, this Amfipass is only required for Broadcom. I took my 7800X3D Desktop EFI as basis and this has a Fenvi Broadcom Wifi card. But thanks for pointing that out.
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
Update: @Edhawk Tried your EFI, thanks again for your efforts. But same result. Boot log looks exactly the same. Ends in verbose mode with no GPU accleration. Just less overhead in the EFI folder itself.

I think it has issues to connect to the AMD Driver. I get a lot of errors regarding framebuffers and connection to the AMD6000 drivers. See screenshots in #14.
 

Edhawk

Guru
Guru
Joined
May 2, 2020
Messages
2,393
I've been trying to think of a solution to getting your discrete GPU working but I'm coming up blank.

The Device ID for your RX 6800M is the same as my RX 6700 XT (0x100273DF) and most other Navi 22 dGPUs for that matter. As the Device ID works with my RX 6700 XT in macOS Ventura and Sonoma with full acceleration, it should work the same with your RX 6800M.

If you only have NootRX.kext installed, are using the -wegnoigpu boot argument, with no DeviceProperties in your config.plist, the system boots with the discrete GPU only. Then it should in theory boot with full acceleration. If the AMD APU is also being used two boot the system, then it is unlikely you will get full acceleration with the RX 6800M.

Something that keeps coming back to me is the fact your laptop doesn't have a MUX switch, so you can't disable one or the other GPU's in your bios. It could be that due to the lack of a MUX switch that the RX 6800M can't be enabled on its own.

If I recall correctly this is the case for most older Intel laptops, those built with 'Switchable Graphics'. A laptop having switchable graphics usually means the discrete GPU can be disabled and the IGPU used on its own for macOS. But the reverse can't be configured, not with full acceleration.

So it may be that your laptop has to run macOS using the Radeon Vega graphics. If that is the case you should look at increasing the amount of RAM allocated to the IGPU, you had 512MB RAM allocated to the IGPU in a screenshot above. This should be increased to a minimum of 1GB, more if you have sufficient RAM in the system. I got the IGPU in my Ryzen 7 5700G running with 4GB, 8GB and eventually 16GB RAM when the system contained 32GB in total.
 

SchmockLord

New member
AMD OS X Member
Joined
May 22, 2020
Messages
26
I had the same thoughts @Edhawk. I think it is just not possible to drive the 6800M without the MUX.

Do you know which device properties I need to set the VRAM via DeviceProperties? Or is this something I can only do in BIOS? Because my BIOS doesn't have an option to change VRAM.

Do the Framebufer patches work with NootedRed?

Like this under the iGPU DeviceProperties?

framebuffer-patch-enableData01000000
framebuffer-stolenmemData00000004
framebuffer-unifiedmemData00000080
 
Back
Top Bottom
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.