llamafilm Posted August 15, 2016 Share Posted August 15, 2016 I had a problem where my system would boot successfully, but the screen was black. I fixed it by editing the DSDT in two places. It works fine now, but I would like to write this edit into an SSDT, to share with others. As I understand it, DSDTs are not very portable, because they must match the hardware exactly. I've never written an SSDT, but it seems like I need some kind of find & replace. H000 appears in many other places, so I can't use that as the search query. The first edit is changing the device name from H000 to GFX1 in _SB > PCI0 > BR3A: Device (H000) { Name (_ADR, Zero) Method (_SUN, 0, NotSerialized) { Return (SNUM ()) } } Then change H000 to GFX1 in DSDT > _GPE > _L01 If (LNotEqual (Local0, 0xFF)) { Store (0x07, Local1) Notify (\_SB.PCI0.BR3A.H000, Local0) Notify (\_SB.PCI0.BR3A.H001, Local0) Notify (\_SB.PCI0.BR3A.H002, Local0) Notify (\_SB.PCI0.BR3A.H003, Local0) Notify (\_SB.PCI0.BR3A.H004, Local0) Notify (\_SB.PCI0.BR3A.H005, Local0) Notify (\_SB.PCI0.BR3A.H006, Local0) Notify (\_SB.PCI0.BR3A.H007, Local0) } Link to comment Share on other sites More sharing options...
cecekpawon Posted August 16, 2016 Share Posted August 16, 2016 The easiest way: use clover dsdt patches. Or refer to this example how to change gfx0 to igpu https://github.com/Piker-Alpha/DSDT/blob/master/SSDT-GA-Z87MX-D3H-F6.dsl Link to comment Share on other sites More sharing options...
llamafilm Posted August 20, 2016 Author Share Posted August 20, 2016 How can I use Clover DSDT patch for this? As I said, the H000 device name appears dozens of times, so I can't do a find/replace on that term. I suppose I could do it for the second part, and write an SSDT for the first part, although that sounds clunky. This is my first attempt at an SSDT for the first part, renaming the device at \SB.PCI0.BR3A.H000 to GFX1. DefinitionBlock ("iASL0ezsSi.aml", "SSDT", 1, "APPLE", "GFX1", 0x00000006) { External (SNUM, IntObj) External (H000, DeviceObj) External (\_SB_.PCI0.BR3A, DeviceObj) Scope (\_SB.PCI0.BR3A) { Scope (H000) { Name (_STA, Zero) } Device (GFX1) { Name (_ADR, Zero) Method (_SUN, 0, NotSerialized) { Return (SNUM) } } } } For the second part, I tried the following in config.plist: <key>Find</key><data>XF9TQi5QQ0kwLkJSM0EuSDAwMA==</data> <key>Replace</key> <data>XF9TQi5QQ0kwLkJSM0EuR0ZYMQ==</data> Then I reverted DSDT back to the original, and the system again boots with a black screen. How can I tell which of these two edits is not working (or maybe it's both). Link to comment Share on other sites More sharing options...
Recommended Posts