Jump to content

SSDT Edit Causing KP


lcronos
 Share

34 posts in this topic

Recommended Posts

Hi, so I'm working on getting macOS Sierra installed on my HP Pavilion 15t-p000 and it's going fairly well however I've come across an interesting issue.  After editing SSDT-6, SSDT-7, and my DSDT and ensuring there were no errors I placed them in my CLOVER/ACPI/patched/ folder and upon reboot found I had a kernel panic related to the AppleIOACPIFamily kext (it was the primary kext in the traceback).  I am posting this from a different machine, but can still get into my hackintosh for the exact aml files if needed.  SSDT-6 and SSDT-7 are the only SSDTs in my patched folder, both seem to be related to my GFX card and have the IGPU patchs applied (from Rehabman's repos).  I am using MacIASL for this.  I also have clover set to drop OEM SSDTs.  Any ideas what may be causing this?  I've done SSDT and DSDT edits before, but still don't feel entirely confident in it yet so I'm probably missing something obvious.  Any ideas would be greatly appreciated, thank you.  If you need the actual KP screen, or want the SSDTs/DSDT let me know and I'll upload them as soon as I can.

Link to comment
Share on other sites

Okay here are the files.  If you don't mind explaining what specifically I can do in the future to avoid this kind of issue it would be appreciated, I have some more edits to do so I can see my battery life, but I don't want to just have someone else do it because then I wouldn't feel like I actually learned anything.

acpitables.zip

  • Like 1
Link to comment
Share on other sites

Yeah, that might help lol.  I have Linux on here, so this is the output of lspci.  Let me know if you need something this doesn't show.

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b) 
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.1 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 2 (rev e4)
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
08:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 08)

This setup worked well with Yosemite and El Capitan, though I guess that doesn't matter much with a hackintosh.  It would be a shame if this doesn't work because it was one of a few laptops that could work well with 4 different operating systems (Windows, GNU/Linux, OS X, FreeBSD).

Link to comment
Share on other sites

I was reading through another thread on here and came across this from rehabman.

 

 

The key is correct disassembly. You're doing it wrong.

You must disassemble with SSDTs as context. Get DSDT.aml and all native SSDTs in a single folder, then use: "iasl -da -dl *.aml" to disassemble all of them at once.

 

Could this be part of my issue?  I just pressed F4 when booting CLOVER and started using MacIASL, so I never actually did the "iasl -da -dl *.aml thing.  Also on a semi-related note, what are the SSDT-x4 and SSDT-x5 files?  Or more specifically why do those files have an "x" while others don't?

Link to comment
Share on other sites

I was reading through another thread on here and came across this from rehabman.

 

 

 

Could this be part of my issue?  I just pressed F4 when booting CLOVER and started using MacIASL, so I never actually did the "iasl -da -dl *.aml thing.  Also on a semi-related note, what are the SSDT-x4 and SSDT-x5 files?  Or more specifically why do those files have an "x" while others don't?

Correct disassembly can reduce the number of errors you would otherwise need to correct.

  • Like 1
Link to comment
Share on other sites

However would that impact the kernel panic I'm seeing?  Also thank you for all the development you've put into the hackintoshing community :)

No idea. You didn't provide any details on the kernel panic, nor your ACPI setup.

Link to comment
Share on other sites

Okay, EFI/Clover/ACPI/patched/* and config.plist are in the .zip above.  I can get EFI/Clover/APCI/origin/* when I get the KP picture.

If you have only DSDT.aml and SSDT-6.aml and SSDT-7.aml in ACPI/patched, I can tell you right now it is wrong. Unless SSDT-0 through SSDT-5 are dynamic.

 

Also, your config.plist lacks SortedOrder (must be used to set SSDT load order).

And you have DropOem=false. Must be true when you have patched SSDTs in ACPI/patched.

Link to comment
Share on other sites

Hmm, so without changing anything, just copying over the entire origin folder, then dropping everything except for SSDT-6 and SSDT-7 to mimic how it was before, it didn't cause a kernel panic. Strange. I'll get the original ones and the KP in a second.

EDIT: Okay so to get the KP to fire, I needed to have the edited acpi tables in that zip in the patched folder then make sure that drop OEM tables was off (I've changed config.plist a little as I added a new entry and needed to adjust it so the hack would boot, just not with the edits).

Okay here is everything.

acpiinfo.zip

post-1344189-0-93886700-1471800581_thumb.jpg

Link to comment
Share on other sites

Hmm, so without changing anything, just copying over the entire origin folder, then dropping everything except for SSDT-6 and SSDT-7 to mimic how it was before, it didn't cause a kernel panic. Strange. I'll get the original ones and the KP in a second.

 

EDIT: Okay so to get the KP to fire, I needed to have the edited acpi tables in that zip in the patched folder then make sure that drop OEM tables was off (I've changed config.plist a little as I added a new entry and needed to adjust it so the hack would boot, just not with the edits).

 

Okay here it is.  I tried uploading the photo from my phone but it didn't go.  I'm about to have a meeting so I'll be back in a little bit.  I haven't been able to mount my phone to either computer (Cyanogenmod... lol)  but I'll get it up ASAP.

ACPI/patched is wrong. Based on ACPI/origin you should have in ACPI/patched:

DSDT.aml

SSDT.aml (from ssdtPRgen.sh)

SSDT-0.aml

SSDT-1.aml

SSDT-2.aml

SSDT-6.aml

SSDT-7.aml

 

set config.plist/ACPI/SSDT/DropOem=true

use config.plist/ACPI/SortedOrder to specify SSDT load order (original order)

set config.plist/ACPI/SSDT/Generate=false

remove confg.plist/ACPI/DST/Fixes/FIX_INTELGFX_100000

set config.plist/DropOEM_DSM=false

note that rootless=0 is not needed (it was only used in early 10.11 betas)

 

remove the KextsToPatch patches commented as "Patch HD4400 10.10". They are wrong/incomplete way to implement Haswell graphics. Use FakePCIID+FakePCIID_Intel_HD_Graphics instead. Note that if you patched OpenGL, you'll need to restore it to vanilla.

 

remove also the "patch audio HDMI HD4400/4600". The patch is for ig-platform-id 0x0a260006, which you're not using.

 

Renames must be applied equally across all files. You forgot to rename GFX0->IGPU in SSDT-7.aml.

  • Like 2
Link to comment
Share on other sites

ACPI/patched is wrong. Based on ACPI/origin you should have in ACPI/patched:

DSDT.aml

SSDT.aml (from ssdtPRgen.sh)

SSDT-0.aml

SSDT-1.aml

SSDT-2.aml

SSDT-6.aml

SSDT-7.aml

 

set config.plist/ACPI/SSDT/DropOem=true

use config.plist/ACPI/SortedOrder to specify SSDT load order (original order)

set config.plist/ACPI/SSDT/Generate=false

 

Renames must be applied equally across all files. You forgot to rename GFX0->IGPU in SSDT-7.aml.

Oh okay, thank you.  I will give that a shot and then update this post to let you know how it went.  Just a side question, what are the SSDT-3x through SSDT-5x files?

Link to comment
Share on other sites

Oh okay, thank you.  I will give that a shot and then update this post to let you know how it went.  Just a side question, what are the SSDT-3x through SSDT-5x files?

SSDTs with 'x' (as extracted from Clover F4) are dynamic SSDTs, loaded via ACPI Load opcode, and therefore not included in the static set in ACPI/patched.

 

You can read the ACPI spec regarding 'Load' for more information.

Link to comment
Share on other sites

Okay, thank you for your help.  I think I may have it, just need to finish the edits.


use config.plist/ACPI/SortedOrder to specify SSDT load order (original order)
set config.plist/DropOEM_DSM=false


remove the KextsToPatch patches commented as "Patch HD4400 10.10". They are wrong/incomplete way to implement Haswell graphics. Use FakePCIID+FakePCIID_Intel_HD_Graphics instead. Note that if you patched OpenGL, you'll need to restore it to vanilla.

So I've been using Clover Configurator to modify my config.plist, and some of these were options I never set in the first place and as such can't find.  I edited out the ones I could find from out of the quote.  I don't mind editing the config.plist directly, I'm just not familiar with it's layout since I've relied on the Configurator for so much of this.

Link to comment
Share on other sites

Okay, thank you for your help.  I think I may have it, just need to finish the edits.

 

So I've been using Clover Configurator to modify my config.plist, and some of these were options I never set in the first place and as such can't find.  I edited out the ones I could find from out of the quote.  I don't mind editing the config.plist directly, I'm just not familiar with it's layout since I've relied on the Configurator for so much of this.

Use a plist editor such as Xcode or PlistEditPro to edit your config.plist.

  • Like 1
Link to comment
Share on other sites

Well everything compiles now, and no more KP so I'd say that for the purposes of this thread it's solved.  Thanks for the help :)  One more question though, and if it needs a new thread that's fine, but when doing the battery monitor patches from your repo, what should I look for to decide where it goes?  Like for brightness I knew to look for IGPU (or GFX0 originally).

Link to comment
Share on other sites

Well everything compiles now, and no more KP so I'd say that for the purposes of this thread it's solved.  Thanks for the help :)  One more question though, and if it needs a new thread that's fine, but when doing the battery monitor patches from your repo, what should I look for to decide where it goes?  Like for brightness I knew to look for IGPU (or GFX0 originally).

As for battery patching, suggest you read my guide and work through the example DSDT, so you know what you're looking for in your own DSDT.

  • Like 1
Link to comment
Share on other sites

remove the KextsToPatch patches commented as "Patch HD4400 10.10". They are wrong/incomplete way to implement Haswell graphics. Use FakePCIID+FakePCIID_Intel_HD_Graphics instead. Note that if you patched OpenGL, you'll need to restore it to vanilla.

 

I'm still working on getting the graphics working and tried to follow this step (using the-darkvoid's intel hd4400 fakepciid guide on the other site) and while about this mac detects the card properly, it only sees it as having 4MB of memory which can't be right.  I'm getting all sorts of graphical issues.  Specifically what I did was install those kexts to /S/L/E, then use clover injection as per that guide (i'm sure you can find the one I mean easy enough).  the ig-platform-id i'm using is 0x0a260006 and told it to inject 0x04128086 in config.plist/Devices/FakeID/IntelGFX which all should be right since this is HD4400 Mobile.  I then tried the DSDT edit (using the patch from your repos) on SSDT-6 (since that was the only one MacIASL would let me apply it to.

Link to comment
Share on other sites

I'm still working on getting the graphics working and tried to follow this step (using the-darkvoid's intel hd4400 fakepciid guide on the other site) and while about this mac detects the card properly, it only sees it as having 4MB of memory which can't be right.  I'm getting all sorts of graphical issues.  Specifically what I did was install those kexts to /S/L/E, then use clover injection as per that guide (i'm sure you can find the one I mean easy enough).  the ig-platform-id i'm using is 0x0a260006 and told it to inject 0x04128086 in config.plist/Devices/FakeID/IntelGFX which all should be right since this is HD4400 Mobile.  I then tried the DSDT edit (using the patch from your repos) on SSDT-6 (since that was the only one MacIASL would let me apply it to.

Attach ioreg (IORegistryExplorer v2.1), config.plist, ACPI/patched/*

Link to comment
Share on other sites

 Share

×
×
  • Create New...