rich4653 Posted November 2, 2020 Share Posted November 2, 2020 (edited) Had to jump through a few hoops to spoof my GPU device-id. I thought sharing might help somebody else out because I couldn't find this particular pattern anywhere... First I had to create an SSDT to (I assume) define GFX0 as shown: DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000) { External (_SB_.PCI0.GPP8, DeviceObj) Scope (\_SB.PCI0.GPP8) { Device (GFX0) { Name (_ADR, Zero) // _ADR: Address } } } Wasn't able to successfully define the device-id in the SSDT, but once I added GFX0 in the SSDT, I was able to set it via DeviceProperties. Along the lines of: DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x3,0x1)/Pci(0x0,0x0) -> device-id = 5C660000 where PciRoot for GFX0 can be found with gfxutil, and device-id will be specific to your GPU My system: MSI B450 Mortar Ryzen 5 3600 AMD FirePro W5100 Opencore 0.6.2 Catalina 10.15.7 Update - Oct 2021 Since updating to Big Sur with OpenCore 7.4 and latest kexts, I discovered for WhateverGreen > 1.5.1 I also need to add no-gfx-spoof to the GPU DeviceProperties entry: DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x3,0x1)/Pci(0x0,0x0) -> no-gfx-spoof = 01000000 More info on this specific issue at https://github.com/acidanthera/bugtracker/issues/1743 Edited October 20, 2021 by rich4653 Update Quote Link to comment Share on other sites More sharing options...
Franziska1993 Posted July 25, 2021 Share Posted July 25, 2021 Hello rich4653, was this your complet SSDT or a snippet? DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000) { External (_SB_.PCI0.GPP8, DeviceObj) Scope (\_SB.PCI0.GPP8) { Device (GFX0) { Name (_ADR, Zero) // _ADR: Address } } } Regards from Germany, Olaf Neumann Quote Link to comment Share on other sites More sharing options...
Slice Posted July 26, 2021 Share Posted July 26, 2021 11 hours ago, Franziska1993 said: Hello rich4653, was this your complet SSDT or a snippet? DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000) { External (_SB_.PCI0.GPP8, DeviceObj) Scope (\_SB.PCI0.GPP8) { Device (GFX0) { Name (_ADR, Zero) // _ADR: Address } } } Regards from Germany, Olaf Neumann It will be better to you to read the original. 1. Look _SB_.PCI0.GPP8 - this name is specific for this motherboard only. 2. device-id can be injected through the SSDT, not needed to write properties. Quote Link to comment Share on other sites More sharing options...
Franziska1993 Posted July 26, 2021 Share Posted July 26, 2021 (edited) Hello Slice, this is my (for my Hackintosh) complet SSDT-GPU-SPOOF.dsl and later compiled .aml. // Based off of WhateverGreen's sample.dsl // https://github.com/acidanthera/WhateverGreen/blob/master/Manual/Sample.dsl DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AMDGPU", 0x00001000) { External (_SB_.PCI0, DeviceObj) External (_SB_.PCI0.PEG0, DeviceObj) Scope (\_SB_.PCI0.PEG0) { if (_OSI ("Darwin")) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x04) { // Where we shove our FakeID "device-id", Buffer (0x04) { 0x3d, 0x68, 0x00, 0x00 }, // Changing the name of the GPU reported, mainly cosmetic "model", Buffer () { "AMD Radeon R7 250X" } } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Scope (\_SB.PCI0) { Method (DTGP, 5, NotSerialized) { If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) { If (LEqual (Arg1, One)) { If (LEqual (Arg2, Zero)) { Store (Buffer (One) { 0x03 }, Arg4) Return (One) } If (LEqual (Arg2, One)) { Return (One) } } } Store (Buffer (One) { 0x00 }, Arg4) Return (Zero) } } } So where did rich4653 insert his code or is the code he used an extra aml-File to include into ACPI in the config.plist from OpenCore. Regards Olaf Neumann PS: My File didn't worked in OpenCore as R7 250X with grafik-acceleration, in Hackintool it was shown still as R7 240 with the ID 6613 Edited July 26, 2021 by Franziska1993 Quote Link to comment Share on other sites More sharing options...
Slice Posted July 27, 2021 Share Posted July 27, 2021 Ou, it is R7 240? There is not a simple solution. Read here ATI Oland family cards 1 Quote Link to comment Share on other sites More sharing options...
Franziska1993 Posted July 27, 2021 Share Posted July 27, 2021 Hello @Slice , why schoud this not work, i use OpenCore as Bootloader and not Clover: https://dortania.github.io/Getting-Started-With-ACPI/Universal/spoof.html THis didn't work, maybe because I coudn't reach the "Deviceb (GFX0) like in the top rich4653, but I didn't have a Error like in an Other Solution: I opend the config.plist and was looking for DeviceProperties/Add. There I made the Entry: device-id - Data - 3D680000 model -String - R7 250X After I start the bootloader I get to the RadeonDriver (Maybe I made some spelling mistakes, I have written from a Foto of the Screen); RadeonSensors mio_base=0xf7e00000 RadeonSensors (pci1): found ATI Radeon ID: 0x683d, ATOM Bios: 6613HB.15.49.0.17.ASB2 RadeonSensors (pci1): using device-id to resolve temperature sensor type RadeonSensors (pci1): adding southern Islands thermal sensor RadeonSensors (pci1): started About a Minute later I got the Error: AGDCC unauthorized client 'perfpowerservice' (IOService:/AppleACPIPlatFormExpert/PCI0@0/PEG0@1/IOPP/GFX0@0/AMD7000ControllerWrangler) AGDCC unauthorized client 'perfpowerservice' (IOService:/AppleACPIPlatFormExpert/PCI0@0/AppleACPIPCI/PEG0@/IOPP/HDAU@0,1/AMD7000ControllerWrangler) AGDCC unauthorized client 'perfpowerservice' (IOService:/AppleACPIPlatFormExpert/PCI0@0/PEG0@1/IOPP/GFX0@0/AtiDeviceControl) AGDCC unauthorized client 'perfpowerservice' (IOService:/AppleACPIPlatFormExpert/PCI0@0/PEG0@1/IOPP/GFX0@0/AtiDeviceControl/AppleGraphicsDevicePolicy/ACDPClientControl) What th F**k is "unauthorized client 'perfpowerservice'"? I googled and not realy found something what shows/explaines maybe the Direction for a Solution or what this Error causes. After then I checked if the AMD7000 Controller has the Driver for the Device-ID 683D, what is the case. Maybe you have some Ideas, Regards Olaf Neumann PS: Howdo I include the code from above to my sdst? Quote Link to comment Share on other sites More sharing options...
Slice Posted July 28, 2021 Share Posted July 28, 2021 The device-id and model substitution is not enough to make Oland working. Read again link I provided and not dortania. Quote Link to comment Share on other sites More sharing options...
Franziska1993 Posted July 28, 2021 Share Posted July 28, 2021 Hello Slice, When I read was is written in the Link, I get the Idea to "modify" the amdcontroller7000.kext. Nobody had concret Success with the R7 240, luki1979 was writting about his R7 250 GPU. I also found this: Oland PRO rebranded Bonaire 0x665D1002 R7 240, R7 430, R5 430 Do you mean that I'm should use the FakeID 0x665D1002, a modified amdcontroller7000.kext. How do I make it with using OpenCore? Fom HighSierra until Catalina (10.15.0) I have used Clover, after Catalina (amdcontroller7000.kext) I used OpenCore. PLeas give some Input what I schoud look for to get the R7 240 running. Regards Olaf Neumann PS: Is luki1979 still active in the Forum? Quote Link to comment Share on other sites More sharing options...
Slice Posted July 29, 2021 Share Posted July 29, 2021 New Clover works even with Monterey. Quote Link to comment Share on other sites More sharing options...
rich4653 Posted October 20, 2021 Author Share Posted October 20, 2021 Hi @Franziska1993, No doubt this reply is way too late but am curious to know if you managed to get your card working? Sounds like it's a tricky one Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.