Hallo, bei meinem Test handelt es sich um eine Radeon RX560 , mein Test-Hacki
AMD RADEON RX Grafikkarten ohne LILU & WhatEverGreen nutzen
-
-
Woran erkennen wir eigentlich den richtig gewählten Framebuffer?
Sorry für die blöde frage aber ich hab wirklich gar keine Ahnung von DSDT/AML etc...
-
Ich denke an die vorhandenen Schnittstellen, welche die Karte anbietet,
z.B. Acre zeigt laut Liste von Mork DVI, HDMI, DP
vielleicht liege ich auch falsch ?? -
Ihr müsst in den jeweiligen Controller.kext gucken. Schaut Euch einfach an was OS-X von sich aus lädt für die R9-270X sieht das so aus:
Demnach ist klar das nur Framebuffer zum Einsatz kommen können die in der AMD7000Controller.kext auch definiert sind. Schaut man nun in die info.plist des Kext findet man in meinem Fall dort folgende Einträge (passt für alle R9 und HD7XXX Karten):
und bemüht man obendrein Google zur AMD7000Controller.kext findet man ebenfalls heraus das Futomaki ebenfalls definiert ist auch wenn er keine Erwähnung im Kext findet. Zu allem anderen hat ja @Mork vom Ork schon auf die Pflichtlektüre hingewiesen -
Hast recht, grad getestet... Bei der Vega können Kamarang und Iriri benutzt werden...
@Mork vom Ork - Leider muss die zweite GPU ebenfalls eingebunden werden.
Es scheint auch irgendwie als sei die Zuordnung Falsch den auf Slot 1 oder besser gesagt slot 0 liegt die erste karte und auf slot 2 müsste dann die GPU2 liegen.Laut der DSDT ist aber GPU2 Slot 1? Irgendwie blick ich da nicht mehr durch...Auf dem Board sieht es folgendermaßen aus...
Wie kann man den Text eigentlich hier vernünftig anpassen?
Er zeigt mir Vega 56 an Komisch hab doch die 64. -
-
Mit dem Namen wr mein Fehler, das habe ich in der hier angehängten SSDT mal geändert. Sollte sich jetzt als "Vega64" in "Slot0" identifizieren.
@ductator: Du hast Recht, das habe ich in der Eile übersehen. Wann immer man den Namen anpasst, muss man zu dem dazugehörigen "(Buffer (0x00)" den Wert rausnehmen, so daß dort nur noch "Buffer ()" steht, dann wird der richtige Wert, der in die Klammern gehört beim speichern automatisch berechnet und an der Stelle eingefügt.
-
Vielen Dank @Mork vom Ork!
Ich möchte dich keinesfalls nerven oder dir die ganze Arbeit überlassen aber ich seh echt nur ? Zeichen wohin ich auch schau.Hast du die GPU2 vielleicht ebenfalls eingefügt ?
-
Freiwillige Tester vor! Nutzt dazu die im Anhang befindliche SSDT.Jau, so sieht meine SSDT von gestern ebenfalls aus (Framebuffer angepasst), funktioniert jetzt prima!
-
Vielen Dank @Mork vom Ork!
Ich möchte dich keinesfalls nerven oder dir die ganze Arbeit überlassen aber ich seh echt nur ? Zeichen wohin ich auch schau.Hast du die GPU2 vielleicht ebenfalls eingefügt ?
Nein, dazu benötige ich einmal Deine IORegistryExplorer Ausgabe. Speicher den mal mit "Save a Copy As" aus dem "File"-Menü und hänge das Ergebnis bitte hier an. Dann kann ich mir ansehen, wie deine PCIe Slots genutzt werden.
-
-
Hey @Mork vom Ork ich habe ne Methode gefunden, um die ControllerPatcher Kext zu umgehen, man kann nämlich alles in der DSDT respektive SSDT unterbringen, die angefügt DSDT wurde von @Un!x getestet und für funktional befunden
Man muss halt das einfach in der Injection hinzufügen:
Code- ...
- "@0,name",
- Buffer (0x0C)
- {
- "ATY,Chutoro"
- },
- "ATY,Copyright",
- Buffer (0x25)
- {
- "(C) 1988-2017, AMD Technologies Inc."
- },
- "model",
- Buffer (0x17)
- {
- "AMD Radeon HD 7870 GHZ"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-2"
- },
- "CFG,CFG_USE_AGDC",
- Buffer (One)
- {
- 0x00
- },
- "PP,PP_DisableAutoWattman",
- Buffer (One)
- {
- 0x00
- },
- ...
-
Hey @Mork vom Ork ich habe ne Methode gefunden, um die ControllerPatcher Kext zu umgehen, man kann nämlich alles in der DSDT respektive SSDT unterbringen, die angefügt DSDT wurde von @Un!x getestet und für funktional befunden
Man muss halt das einfach in der Injection hinzufügen:
Super Tipp, Danke.
Damit meine SSDT aber nicht so lang wird, mach ich das bei mir weiterhin über die Dummy.kext. Da finde ich die Darstellung auch übersichtlicher Aber hey: jeder wie er mag, gell. Dennoch: DANKE für den nützlichen Hinweis. Again what learned
@DSM2
Ich habe das File. Das hilft mir DEFINITIV weiter! Ich schaue mal, was ich für Dich tun kann. Dauert aber ein wenig, habe erst noch andere Sachen zu erledigen. Melde mich heute Abend. Sorry for the delay. -
Kein Problem! Riesengroßes Dankeschön!!!
-
@Mork vom Ork wäre dann ja genial, wenn du sonst meinen Beitrag im Anfangspost markierten kannst, damit die anderen auch davon profitieren können
-
-
Ups hast ja Recht, habe meinen Post abgeändert!
-
@Mork vom Ork wäre dann ja genial, wenn du sonst meinen Beitrag im Anfangspost markierten kannst, damit die anderen auch davon profitieren können
Ich habe Deinen Hinweis mal dem Eingangsbeitrag am Ende hinzugefügt. -
Nice,
-
Kein Problem! Riesengroßes Dankeschön!!!
@DSM2:
versuche bitte mal die angehängte SSDT. Diese sollte nun beide Deiner VEGAs erkennen und korrekt einbinden, vorausgesetzt, die erste VEGA steckt im PCIex16_1 und die zweite VEGAS im PCIex16_2 Slot. Anbei der Code für diejeneigen, die es interessiert:Code- /*
- * Intel ACPI Component Architecture
- * AML/ASL+ Disassembler version 20161210-64(RM)
- * Copyright (c) 2000 - 2016 Intel Corporation
- *
- * Disassembling to non-symbolic legacy ASL operators
- *
- * Disassembly of iASLhpP406.aml, Sat Oct 28 14:13:02 2017
- *
- * Original Table Header:
- * Signature "SSDT"
- * Length 0x00000477 (1143)
- * Revision 0x02
- * Checksum 0x5D
- * OEM ID "DSM2"
- * OEM Table ID "DualVega"
- * OEM Revision 0x00000000 (0)
- * Compiler ID "INTL"
- * Compiler Version 0x20161210 (538317328)
- */
- DefinitionBlock ("", "SSDT", 2, "DSM2", "DualVega", 0x00000000)
- {
- External (_SB_.PC01.BR1A.SL01, DeviceObj) // (from opcode)
- External (_SB_.PC02.BR2A.SL05, DeviceObj) // (from opcode)
- Scope (\_SB.PC01.BR1A.SL01)
- {
- Device (AMD0)
- {
- Name (_ADR, Zero) // _ADR: Address
- Device (GFX0)
- {
- Name (_ADR, Zero) // _ADR: Address
- OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
- Field (PCIB, AnyAcc, NoLock, Preserve)
- {
- Offset (0x10),
- BAR0, 32,
- BAR1, 32,
- BAR2, 64,
- BAR4, 32,
- BAR5, 32
- }
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (LEqual (BAR5, Zero))
- {
- Store (BAR2, Local0)
- }
- Else
- {
- Store (BAR5, Local0)
- }
- OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
- Field (GREG, AnyAcc, NoLock, Preserve)
- {
- Offset (0x6800),
- GENA, 32,
- GCTL, 32,
- LTBC, 32,
- Offset (0x6810),
- PSBL, 32,
- SSBL, 32,
- PTCH, 32,
- PSBH, 32,
- SSBH, 32,
- Offset (0x6848),
- FCTL, 32,
- Offset (0x6EF8),
- MUMD, 32
- }
- Store (Zero, FCTL)
- Store (Zero, PSBH)
- Store (Zero, SSBH)
- Store (Zero, LTBC)
- Store (One, GENA)
- Store (Zero, MUMD)
- }
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- Store (Package (0x08)
- {
- "@0,name",
- Buffer (0x0D)
- {
- "ATY,Kamarang"
- },
- "AAPL,slot-name",
- Buffer (0x0B)
- {
- "PCIe x16,1"
- },
- "model",
- Buffer (0x0E)
- {
- "AMD RX Vega64"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
- }
- Device (HDAU)
- {
- Name (_ADR, One) // _ADR: Address
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x04)
- {
- "layout-id",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- })
- }
- }
- }
- 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)
- }
- }
- Scope (\_SB.PC02.BR2A.SL05)
- {
- Device (AMD1)
- {
- Name (_ADR, Zero) // _ADR: Address
- Device (GFX1)
- {
- Name (_ADR, Zero) // _ADR: Address
- OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
- Field (PCIB, AnyAcc, NoLock, Preserve)
- {
- Offset (0x10),
- BAR0, 32,
- BAR1, 32,
- BAR2, 64,
- BAR4, 32,
- BAR5, 32
- }
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (LEqual (BAR5, Zero))
- {
- Store (BAR2, Local0)
- }
- Else
- {
- Store (BAR5, Local0)
- }
- OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
- Field (GREG, AnyAcc, NoLock, Preserve)
- {
- Offset (0x6800),
- GENA, 32,
- GCTL, 32,
- LTBC, 32,
- Offset (0x6810),
- PSBL, 32,
- SSBL, 32,
- PTCH, 32,
- PSBH, 32,
- SSBH, 32,
- Offset (0x6848),
- FCTL, 32,
- Offset (0x6EF8),
- MUMD, 32
- }
- Store (Zero, FCTL)
- Store (Zero, PSBH)
- Store (Zero, SSBH)
- Store (Zero, LTBC)
- Store (One, GENA)
- Store (Zero, MUMD)
- }
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- Store (Package (0x08)
- {
- "@0,name",
- Buffer (0x0D)
- {
- "ATY,Kamarang"
- },
- "AAPL,slot-name",
- Buffer (0x0B)
- {
- "PCIe x16,2"
- },
- "model",
- Buffer (0x0E)
- {
- "AMD RX Vega64"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-2"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
- }
- Device (HDAU)
- {
- Name (_ADR, One) // _ADR: Address
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x04)
- {
- "layout-id",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-2"
- }
- })
- }
- }
- }
- 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)
- }
- }
- }
PS: als FRAMEBUFFER habe ich bereits "KAMARANG" für beide Karten eingesetzt. Ich drücke Dir die Daumen.