the-darkvoid / XPS9530-OSX

OS X patches for Dell XPS 9530 (Haswell)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSDT-15.dsl fails to be patched in XPS9530.sh

syscl opened this issue · comments

commented

Hi darkvoid, I'm glad to use your script and installation guide to install OS X 10.10 on my Precision M3800 which is almost the same to your laptop XPS9530(except the discrete card).

I use your XPS9530.sh to patch the dsdt and ssdt that dumped in the Clover, but the script outputs:
"patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'" . I need to rename SSDT-14.dsl to SSDT-15.dsl to solve this problem. Hence, I guess there's something slightly different in our bios.

I've used A07 and A09 bios(unlocked) and I couldn't found the TPM Security in the BIOS setting. And the screen can't wake after sleep with ig-platform-id 0x0a2e0008 and fakeid 0x04128086.

Could you please show me your security items in bios and all your dsdt and ssdt you dumped.

commented

me too.

[gfx] Rename GFX0 to IGPU
patch complete: 12 patches, 6 changes, 0 rejects
patched result written to './DSDT/decompiled/SSDT-13.dsl'
[SSDT-15]: Patching SSDT-15 in ./DSDT/decompiled
Remove invalid operands
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'
[gfx] Rename GFX0 to IGPU
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'
Disable Nvidia card (Non-operational in OS X)
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'

How many ACPI tables did you dump from Clover? If you're running A09 (and possibly any non-A06) BIOS, the TPM Security SSDT does not generate, and thus you only end up with SSDT 0-14. Open SSDT-14 manually in a program, like MaciASL, to see if this is the SSDT responsible for powering on/off the video cards, which is normally SSDT-15 when TPM Security is on. You can confirm this by looking for _SB.PCI0.PEG0.PEGP in the device tree. If so, then just rename SSDT-14 to SSDT-15 before re-running the --patch-dsdt script command on a new/clean set of ACPI tables.

Sent from my iPhone.

On Sep 18, 2015, at 3:15 AM, kylinfedora notifications@github.com wrote:

me too.

[gfx] Rename GFX0 to IGPU
patch complete: 12 patches, 6 changes, 0 rejects
patched result written to './DSDT/decompiled/SSDT-13.dsl'
[SSDT-15]: Patching SSDT-15 in ./DSDT/decompiled
Remove invalid operands
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'
[gfx] Rename GFX0 to IGPU
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'
Disable Nvidia card (Non-operational in OS X)
patchmatic: unable to open input file './DSDT/decompiled/SSDT-15.dsl'


Reply to this email directly or view it on GitHub.

commented

Austin, I ve fixed this problem by my new script! I will post on my github later.

What is the fix, so I can make the appropriate update?

On Sep 18, 2015, at 09:25 PM, syscl notifications@github.com wrote:

Austin, I ve fixed this problem by my new script! I will post on my github later.

Reply to this email directly or view it on GitHub.

commented
  1. Fixed SSDT-14/15 problem
  2. No need to afraid of modifies in Bios configuration, the scrpit will apply patches to SSDTs correctly
  3. Next boot will change 0x0a2e0008->0x0a260006 to fix lid wake problem

I'm not sure what any of that means.

Also, I found a copy of the A06 BIOS on my Google Drive. I made a link to it in the first step of the "Unlocking the BIOS" section of my Wiki.

commented

I found SSDT indeed has some different and also different config will change SSDT's number which leads the script work inappropriately. that's why I update the script.

Also, Azul will be loaded with 0x0a2e0008, later change it to 0a260006 will fix the lid wake problem( I've tested on 10.10.5 and PB beta 1 and works perfectly)

My bios ver is A09.

commented

@the-darkvoid can you update XPS9530

I just checked the setup for bios A09 on the XPS 9530 and the TPM Security is there under the Security menu.
M3800 does not have that option?

@syscl,

The script should be updated to support both cases then. Probably some auto-detection on which SSDT is correct.
Ideally TPM should be on through Security -> TPM Security, unless M3800 does not have that option.

Also why use 0a2e0008 when 0a260006 is provided by my script (and works)?
Or are you using a 128MB version?

commented

@AustinSMU @the-darkvoid

Here's my script to detect the key SSDTs( I am not familiar with Github ):

Search specification tables

DptfTa

for num in $(seq 1 20)
do
grep "DptfTa" "${REPO}"/DSDT/raw/SSDT-${num}.dsl &> /dev/null && result=0 || result=1
if [ "${result}" == 0 ];then
DptfTa=SSDT-$num
fi
done

SaSSDT

for num in $(seq 1 20)
do
grep "SaSsdt" "${REPO}"/DSDT/raw/SSDT-${num}.dsl &> /dev/null && result=0 || result=1
if [ "${result}" == 0 ];then
SaSsdt=SSDT-$num
fi
done

SgRef

for num in $(seq 1 20)
do
grep "SgRef" "${REPO}"/DSDT/raw/SSDT-${num}.dsl &> /dev/null && result=0 || result=1
if [ "${result}" == 0 ];then
SgRef=SSDT-$num
fi
done

OptRef

for num in $(seq 1 20)
do
grep "OptRef" "${REPO}"/DSDT/raw/SSDT-${num}.dsl &> /dev/null && result=0 || result=1
if [ "${result}" == 0 ];then
OptRef=SSDT-$num
fi
done

TPM may be not allowed in my country, hence dell remove it.

Both work, but 0x0a2e0008 can't wake the lid after sleep. But I still need 0a2e0008 to force system load AppleIntelFramebufferAzul.kext and HD5000. If I use 0a260006 at first, those two kexts can't be loaded and function normally.

I added auto-determination of SSDT-14/SSDT-15 in the latest commit: aa13be8

All SSDT's are now determined automatically using @syscl suggested logic.
Changes are present in commit 8d08ede.

@syscl, the framebuffer issue is different. I will see what issue you are having there separately.

commented

I added auto-determination for SSDTs which need to be modified( DptTa, SaSSDT, SgRef, OptRef).

Injected headphone will lose its sound after reboot. Sleep for more than 1 min can fix this problem.

If sleeping restores it, we might be able to modify CodecCommander to fix that case.

commented

I saw the CodeCommander fix hp problem after wake. Need further modify.

It is SgRef not SgPef in dynamic SSDTs
.

Rob,

Many M3800 users are reporting graphics issues (non-full acceleration/non-QECI) using ig-platform-id 0x0a260006 in OSX >=10.10.2. Reverting back to 0x0a2e0008 (as in 10.10.0-10.10.1) with existing Clover framebuffer patch and removing the FakePCIID kexts seems to resolve this issue.

Sent from my iPhone.

On Sep 20, 2015, at 11:02 AM, Darkvoid notifications@github.com wrote:

If sleeping restores it, we might be able to modify CodecCommander to fix that case.


Reply to this email directly or view it on GitHub.

commented

@AustinSMU dose QE/CI work without FakePCIID ? Or enlarge DVMT to 128mb may solve this problem? I saw some people with new M3800 (2015) lid wake flawless with 0a2e0008.

@AustinSMU @the-darkvoid script is uploaded to repository in https://github.com/syscl/M3800.

@syscl,

Actually its both SgRef or SgPeg for SSDT-13:

DefinitionBlock ("./DSDT/raw/SSDT-13.aml", "SSDT", 1, "SgRef", "SgPeg", 0x00001000)

@syscl

Yes, but the appropriate Clover patches must be used to do so.

@syscl

I noticed a mistake when patching a set of tables recently. The patch to disable the discrete card needs to be applied to SSDT-13, not 15 on our machines. I have modified the "disable Nvidia card" patch, and M3800 script accordingly. Also, you need to apply the "fix PNOT" patch if you aren't using FakePCIID. The current script reflects these changes.

commented

@AustinSMU
"Disable Nvidia card" patch must apply to SSDTs if require.

I'm very interesting in your solution to drive the graphics card without FakePCIID, can you show me your configuration?

I start a new project on https://github.com/syscl/M3800 and we can discuss at that place since darkvoid closed this topic.

:)

I would strongly advise you to use FakePCIID to use the Intel HD4600.
The previous method was a patch made on the OpenCL/OpenGL drivers, but it crashes for example Safari or Preview application, so it does not work 100%.

Emulating the graphics card through FakePCIID is the best OOB solution with full compatibility.

commented

Modifying files is not an elegant way to drive the card.

A new problem I've found: with the power adapter plugged in after lid close for a minute, system will be halted abnormally. Here's the message:

15/9/24 下午11:06:57.680 apsd[72]: Attempt to set push wake topics without dark wake enabled: ()
15/9/24 下午11:06:58.014 apsd[72]: Peer [pid=339] requested push wake but lacks APSPushWakeEntitlement

Replacing "Windows 2001" with "Darwin" in DSDT takes no effect.