DSDT Connector-Patch

  • Wieso solltest du denn vits Eintrag benutzen? Der Eintrag muss doch an die Hardware angepasst werden ?(

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Das hatte ich (mich) hier auch schon gefragt:


    Soll das denn den selben Effekt bewirken, wie ein Kext-Patch für den AMDXXXXController.kext, oder ist das eine spezielles Viech für WhateverGreen?

  • Danke! Ja gut da hatte ich dann ja lange probieren können :D @kuckkuck nein, nein da versteh du mich wohl nicht ganz richtig :) Der Eintrag mit dem Buffer(0x50) ist mein abgeänderter :D der von vit hat nur 4 Display Anschlüsse und hat somit natürlich auch nur n 0x40 Buffer :P

  • Laut Aussage von Mieze und Racermaster drüben bei IM Tracing back the AMD GPU wakeup issue to its origin werden die Connector Einträge nur von Whatevergreen genutzt und nicht vom System.


    Ich will das hier nochmal aufgreifen, denn ich weiß nicht, ob die Aussage so ganz stimmt...
    Ich meine ja, einfach nur "connectors" und danach alles aufführen, dass ist Whatevergreen-Welt, aber mit _DSM Methoden lassen sich doch Properties verändern, was in IOReg ebenfalls zu sehen ist...


    Schaut man sich die GPU in IOReg an, sieht man unter dem GFX0/PEGP Device unter anderem den geladenen AMD Controller. Etwas später kommen dann die Einträge für die einzelnen conectors. Sie heißen ATY,Framebuffer@x und beinhalten Properties, die sich anscheinend auch mit _DSM Methoden verändern lassen. So habe ich bei meinem ersten Connector den Typ auf DP gesetzt:


    Das ganze funktioniert mit

    Code
    1. "@0,connector-type",
    2. Buffer (0x04)
    3. {
    4. 0x00, 0x04, 0x00, 0x00
    5. },


    In IOReg wird dies zu 0x400, da ein ByteSwap durchgeführt wird und vorausgehende Nullen wegfallen... Aus 00 00 04 00 (ByteSwap) wird dann 400.


    Der Framebuffer lässt sich wie folgt setzen:

    Code
    1. "@0,name",
    2. Buffer (0x0C)
    3. {
    4. "ATY,Hamachi"
    5. },


    Ich habe es zwar noch nicht getestet, genauso müssten sich aber auch die ATY,ControlFlags oder das AAPL,boot-display mit einem entsprechenden @x davor in der _DSM-Method, setzen lassen...


    Whatevergreen-spezifische Settings wie "connector-priority" oder "connector-count" lassen sich so natürlich nicht ändern, da wir den Framebuffer nicht einfach über ACPI patchen können, aber man könnte zB versuchen die Port-Nummern zu tauschen, und somit Prioritäten zu setzen. Die Anzahl der Connectors können wir ja einfach durch die Wahl eines anderen Framebuffers ändern, überflüssige Anschlüsse kriegen dann halt schön viele 0x00 als connector-type.


    Noch kurz zum auslesen SenseID etc, dafür lässt sich super das AMD Framebuffer Utility nutzen, wer es nicht schon bereits tut ^^


    EDIT: Ich habe gerade bemerkt, dass beim Hamachi der erste Port sowieso schon auf 0x400 steht... Mein IOReg Bild oben ist also noch kein Beweis, dass es funktioniert, ich muss dem nochmal etwas genauer nachgehen.

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

    7 Mal editiert, zuletzt von kuckkuck ()

  • Aber ich bin mir relativ sicher, dass es funktionieren wird, nur ich habe es gerade geschafft, dass maciasl nicht mehr startet :D Wenn ich mir einen neuen Benutzer anlege, geht es aber....

  • Falls bei jemanden, so wie bei mir, das Umbenennen der GPU nicht funktiert:




    In den vom Display benutzten Connector. Hat bei mir zumindest geholfen.
    https://www.hackintosh-forum.d…17-11-13-um-17-46-01-png/

  • Ja das mit der "model" Namensänderung ist so eine Sache für sich, denn wenn der RadeonFB gesetzt ist, wird dieser aus welchen Gründen auch immer nicht gesetzt... Wirklich strange

  • Bei mir funktioniert die Namensänderung auch nur mit einem zu meiner Karte passenden Framebuffer (Hamachi oder Futomaki).

  • Kann ich bestätigen. Bei mir ist der Framebuffer-Name "Acre", sobald ich einen anderen nehme wird im System-Profiler eine AMD R9xxx angezeigt.

    MfG, docplag



  • Habt ihr mal versucht den Namen und Framebuffer für jeden Connector einzeln und generell zu injecten?


    Also mit

    Code
    1. "@x,model"


    x=1,2,3,4...


    Ebenfalls ist mir aufgefallen, dass Apple selber die Namen in Hex injected... Sie konvertieren den ASCII Namen nach Hex. (Leerzeichen ist 0x20 wenn mich nicht alles täuscht)

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Das ist mir zwar so halb aufgefallen, aber dann eben doch entgangen:



    = AMD Radeon R9 M380


    Besten Dank, @kuckkuck!

  • Habt ihr mal versucht den Namen und Framebuffer für jeden Connector einzeln und generell zu injecten?


    Bei mir steht da zwar @0, name statt model, aber vielleicht ist das ja nicht ganz verkehrt.



    im IOReg sieht es bei mir dann aber so aus


    MfG, docplag



    2 Mal editiert, zuletzt von Doctor Plagiat ()

  • Wenn ich statt Miezes DSDT/SSDT-Ansatz Ozmosis AtiInject nehme, steht bei mir R9 290 8GB mit einem gepatchten Baladi und nvram AtiFramebuffer. Noch will der nicht so ganz mittels DSDT, aber zumindest schaffe ich es schon, dass er mit @3,name ATY,Baladi die restlichen Werte nicht nimmt ;). Scheint also einen Effekt zu haben.


    Spiele mich derweil weiter, da es schon sehr verführerisch ist, mittels der DSDT das System auf das i-Tüpfelchen anzupassen.


    Schwanke gerade zwischen grauen Boot-Bildschirm und Baladi als Priorität. Wird aber wohl Baladi werden.


    Edit:
    Solange ich booten kann, ist es eh nicht wirklich wichtig. Halt spielerisches Erforschen.

  • Mit "@0, name" vergibt man den Framebuffernamen. Mit "model" den Namen der GFX-Karte. Und eigentlich steht "model" immer für sich alleine - ohne ein vorangestelltes "@0," oder "@1," etc.
    Klickt man dann im IORegistryExplorer auf das GFX0@0 sollte dort in der Liste auch ein "model, String WieImmerDuDeineKarteBenanntHast" erscheinen:


    Bilder

    ASUS WS X299 SAGE/10G • Intel Core i9-7920X 12-Core 2.9GHz • 128GB RAM • ASRock Radeon VII Phantom Gaming • 2x Samsung 980 NVMe M.2 SSD 1 TB
    Custom Wasserkühlung • Thermaltake TheTower 900 • 1x SAMSUNG 49" @ 5120 x 1440 (100Hz) via DP • LG OLED 55" TV @ 3840 x 2160 (100Hz) via HDMI
    WINDOWS 11 ENTERPRISE INSIDER (PRO950 NVMe) • macOS BIG SUR und MONTEREY latest Build (jeweils auf Samsung 980 NVMe) • OpenCore always latest

  • Ja, so ist das bei mir momentan. Scheint so als wäre meine DSDT ganz gut zusammen geschustert.

    MfG, docplag



  • Mit "@0, name" vergibt man den Framebuffernamen. Mit "model" den NAmen der GFX-Karte. Und eigentlich steht "model" immer für sich alleine - ohne ein vorangestelltes "@0," oder "@1," etc.
    Klickt man dann im IORegistryExplorer auf das GFX0@0 sollte dort in der Lsite auch ein "model, "WieImmerDuDeineKarteBenanntHast" erscheinen.


    Tja. nur manchmal nimmt er das dann nicht so, wie er es sollte.


    Ich nehme an, dass die model und andere Geschichten unter GFX0 oder PEGP dann funktioniert, wenn auch der erste Connector mit dem/einem Display verbunden ist. Und wenn dies nicht der Fall ist, macOS dieses einfach mal ignoriert.


    Jemand anderer hat auch gepostet, es würde reichen den ersten Connector zu definieren, alle anderen würden den FB genauso übernehmen. Wahrscheinlich der Fall, dass wenn der erste funktionierende Connector der Erste ist, er die Richtung vorgibt.


  • im IOReg sieht es bei mir dann aber so aus



    Wundert mich nicht, denn Du scheint noch immer LILU und WhatEverGreen zu nutzen. Das sagt mir der Eintrag "ATY,EFIVersion" <-- der stammt DEFINITIV von WhatEverGreen
    Und Du hast auch definitv noch in der CLOVER config.plist "Inject ATI = enabled" gesetzt. Sachen, die nicht nötig sind, da man all diese Werte, wenn man eh schon eine SSDT nutzt, nun auch in der SSDT setzen kann.

    ASUS WS X299 SAGE/10G • Intel Core i9-7920X 12-Core 2.9GHz • 128GB RAM • ASRock Radeon VII Phantom Gaming • 2x Samsung 980 NVMe M.2 SSD 1 TB
    Custom Wasserkühlung • Thermaltake TheTower 900 • 1x SAMSUNG 49" @ 5120 x 1440 (100Hz) via DP • LG OLED 55" TV @ 3840 x 2160 (100Hz) via HDMI
    WINDOWS 11 ENTERPRISE INSIDER (PRO950 NVMe) • macOS BIG SUR und MONTEREY latest Build (jeweils auf Samsung 980 NVMe) • OpenCore always latest

  • Kann mir jemand sagen, ob/wie man in der DSDT einen Boolschen Wert eintragen kann?


    Obwohl meine iGPU nicht primär ist, hat sie ein AAPL,boot-display true unterm @0 connector.


    Habe leider keinen Core iMac .... hm, mal beim Mac mini 2010 schauen. Was dort IOJONES sagt.

  • Wundert mich nicht, denn Du scheint noch immer LILU und WhatEverGreen zu nutzen. Das sagt mir der Eintrag "ATY,EFIVersion" <-- der stammt DEFINITIV von WhatEverGreen


    Da hast du aber sehr gut aufgepasst. :D Ich hatte den Whatevergreen nur auf meiner externen HighSierra-SSD entfernt und in Sierra vergessen. Ich habe ihn jetzt da auch gelöscht, muss mal eben einen Neustart machen. :)


    EDIT: Jetzt ist der Whatevergreen und der Eintrag "ATY,EFIVersion" weg...



    ... und NÖÖÖ Inject ATI war bei mir noch nie enable.

    MfG, docplag



    2 Mal editiert, zuletzt von Doctor Plagiat ()