Contribute
Register

DSDT/SSDT HELP Needed please. Asus X550LN Laptop

Status
Not open for further replies.
Joined
Feb 4, 2011
Messages
14
Motherboard
Asus X550LN
CPU
Intel Core i7-4510U
Graphics
nVidia 840M 2GB
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. Android
I installed Mavericks 10.9.5 through Unibeast.

I removed the NVIDIA Kexts. (Nvidia geForce 840m GPU)

Intel HD 4400 boot fine with Chameleon bootloader using IntelAzulFB=12 (Brightness a bit low though)
I had to patch the kernel for Haswell chipset otherwise early reboot.

I extracted the DSDT and SSDTs through Linux but I'm not able to compile them without errors.

Could someone help please. I attached my DSTD/SSDTs


Thank you.

P.S. I can also provide a Full report from AIDA if it can help.

SYSTEM:

CPU Type: Mobile DualCore Intel Core i7-4510U, 2600 MHz (26 x 100)

Motherboard Name: Asus X550LN Series Notebook

Motherboard Chipset: Intel Lynx Point-LP, Intel Haswell

System Memory 8075 MB (DDR3-1600 DDR3 SDRAM)

Video Adapter: NVIDIA GeForce 840M (2 GB)

3D Accelerator: Intel HD Graphics 4400

Audio Adapter: Realtek ALC233 @ Intel Lynx Point-LP PCH - High Definition Audio Controller

Network Adapter: Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter
Ralink RT3290 802.11n Wireless Network Adapter
 

Attachments

  • ASUSX550LN_DSTD_SSDTs.zip
    48.7 KB · Views: 193
Last edited:
I installed Mavericks 10.9.5 through Unibeast.

I removed the NVIDIA Kexts. (Nvidia geForce 840m GPU)

Intel HD 4400 boot fine with Chameleon bootloader using IntelAzulFB=12 (Brightness a bit low though)
I had to patch the kernel for Haswell chipset otherwise early reboot.

I extracted the DSDT and SSDTs through Linux but I'm not able to compile them without errors.

Could someone help please. I attached my DSTD/SSDTs


Thank you.

P.S. I can also provide a Full report from AIDA if it can help.

SYSTEM:

CPU Type: Mobile DualCore Intel Core i7-4510U, 2600 MHz (26 x 100)

Motherboard Name: Asus X550LN Series Notebook

Motherboard Chipset: Intel Lynx Point-LP, Intel Haswell

System Memory 8075 MB (DDR3-1600 DDR3 SDRAM)

Video Adapter: NVIDIA GeForce 840M (2 GB)

3D Accelerator: Intel HD Graphics 4400

Audio Adapter: Realtek ALC233 @ Intel Lynx Point-LP PCH - High Definition Audio Controller

Network Adapter: Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter
Ralink RT3290 802.11n Wireless Network Adapter

Not a desktop. Moved to laptop support.

No need to remove nvidia kexts... just use nv_disable=1. Eventually you'll want to turn it off via DSDT/SSDT edits.


Haswell Brightness Fix:

You will need to extract all DSDT/SSDT from Linux. Your GFX0 device is in one of the SSDTs not DSDT and to get a proper disassembly of your DSDT (and the SSDT that has GFX0) you will need all of them. They are available in /sys/firmware/acpi/tables and /sys/firmware/acpi/tables/dynamic. Place them on USB for transfer to OS X.

Place all SSDT/DSDT in a single directory and use a recent build of iasl to disassemble:
http://www.tonymacx86.com/attachmen...5-buggy-dsdt-asus-q501la-help-needed-iasl.zip
Code:
cd "to directory where you placed all SSDT/DSDT"
iasl -da *.aml

Then search the resulting *.dsl so you know where GFX0 is defined. Search for "Device (GFX0)"...

Laptop repo: https://github.com/RehabMan/Laptop-DSDT-Patch
Apply: "Rename GFX0 to IGPU" (to both DSDT and the SSDT that has your GFX0 device)
Apply: "Brightness Fix (Haswell)" to the file (SSDT or DSDT) with GFX0 device definition.
install: https://github.com/RehabMan/OS-X-ACPI-Backlight

Place patched DSDT.aml in /Extra/dsdt.aml. Place patched SSDT in /Extra/ssdt-1.aml (assuming you have already generated SSDT.aml for CPU). Obviously different locations for Clover (EFI/Clover/ACPI/patched).

Result: Working brightness slider in SysPrefs->Displays (mapping of keyboard keys is a separate issue), possible LID sleep, and IGPU power management.
 
Thx for the quick answer.

OK I started from scratch.

Thanks for the info regarding the Tables in Linux I was missing SSDT 11,12 and 13.

I decompile them using iasl.

Tried to compile DSDT to see for errors and I got 30 errors, 92 Warning, 154 Remarks and 188 Optimizations.

Attached is the DSDT with missing SSDTs with the decompile DSLs

I looked up the errors but I suck big time in assembler, programming.

Is it due to external method call in SSDT ???

Some of the errors I got are as follow in DSDT:
LINE, CODE

5419, 6088, Object is not accessible from this scope (RPAV) ------------------- I got a couple of this. Seems like the method is not written properly.

Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LAnd (LEqual (Arg0, 0x02), LEqual (Arg1, One)))
{
THIS LINE ——-> Store (One, RPAV) /* \_SB_.PCI0.RP05.RPAV */
}
}


5457, 6126, syntax error, unexpected PARSEOP_ZERO

--------> CAN I DELETE THE Zeros Line ???


12635, 6126, syntax error, unexpected PARSEOP_ARG0

Method (ADBG, 1, Serialized)
{
If (CondRefOf (MDBG))
{
MNIO (Arg0)
MNIO ("\n")
Return (MDBG) /* External reference */
Arg0
}

Return (Zero)
}

--------> CAN I REMOVE THE METHOD COMPLETELY ???


13117, 6085, Object not found or not accessible from scope (^RP05.HPEX)

Store (Zero, ^RP05.HPEX) /* \_SB_.PCI0.RP05.HPEX */
 

Attachments

  • ASUSX550LN_DSDT_SSDTs.zip
    161 KB · Views: 139
Thx for the quick answer.

OK I started from scratch.

Thanks for the info regarding the Tables in Linux I was missing SSDT 11,12 and 13.

I decompile them using iasl.

Tried to compile DSDT to see for errors and I got 30 errors, 92 Warning, 154 Remarks and 188 Optimizations.

Attached is the DSDT with missing SSDTs with the decompile DSLs

I looked up the errors but I suck big time in assembler, programming.

Is it due to external method call in SSDT ???

Some of the errors I got are as follow in DSDT:
LINE, CODE

5419, 6088, Object is not accessible from this scope (RPAV) ------------------- I got a couple of this. Seems like the method is not written properly.

Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
If (LAnd (LEqual (Arg0, 0x02), LEqual (Arg1, One)))
{
THIS LINE ——-> Store (One, RPAV) /* \_SB_.PCI0.RP05.RPAV */
}
}


5457, 6126, syntax error, unexpected PARSEOP_ZERO

--------> CAN I DELETE THE Zeros Line ???


12635, 6126, syntax error, unexpected PARSEOP_ARG0

Method (ADBG, 1, Serialized)
{
If (CondRefOf (MDBG))
{
MNIO (Arg0)
MNIO ("\n")
Return (MDBG) /* External reference */
Arg0
}

Return (Zero)
}

--------> CAN I REMOVE THE METHOD COMPLETELY ???


13117, 6085, Object not found or not accessible from scope (^RP05.HPEX)

Store (Zero, ^RP05.HPEX) /* \_SB_.PCI0.RP05.HPEX */

Your DSDT has easy fixes...

Open dsdt.dsl in MaciASL. Use ACPI 5.0. Compile. Click on the second error -- remove all the lines with 'Zero'. Click on the first error -- remove all the lines with 'Zero'. Apply "Fix ADBG Error" from my repo. Compile. Result: no errors.
 
Wow thanks.

Just did and no error returned.

Now I'll look into your laptop patches and brightness fixe.

Thanks a lot RehabMan you're the man.
 
OK So I looked through the SSDTs and I'd like to know how I can differentiate which one is the right one for GFX0

SSDT6: External (_SB_.PCI0.GFX0.LCDD._BCL, MethodObj) // 0 Arguments
External (_SB_.PCI0.GFX0.LCDD._BCM, MethodObj) // 1 Arguments
External (_SB_.PCI0.GFX0.LCDD._BQC, MethodObj) // 0 Arguments
External (_SB_.PCI0.GFX0.LCDD._DCS, MethodObj) // 0 Arguments)\\

12 Changes if patch GFX0 to IGPU is applied


SSDT8: (Device (GFX0)

204 Changes if patch GFX0 to IGPU is applied


SSDT10: (Scope (\_SB.PCI0.GFX0))

55 Changes if patch GFX0 to IGPU is applied


--- I would go for SSDT8 but how do I know if it's Intel HD 4400 or the nvidia GPU ??? ---
 
OK So I looked through the SSDTs and I'd like to know how I can differentiate which one is the right one for GFX0

SSDT6: External (_SB_.PCI0.GFX0.LCDD._BCL, MethodObj) // 0 Arguments
External (_SB_.PCI0.GFX0.LCDD._BCM, MethodObj) // 1 Arguments
External (_SB_.PCI0.GFX0.LCDD._BQC, MethodObj) // 0 Arguments
External (_SB_.PCI0.GFX0.LCDD._DCS, MethodObj) // 0 Arguments)\\

12 Changes if patch GFX0 to IGPU is applied


SSDT8: (Device (GFX0)

204 Changes if patch GFX0 to IGPU is applied


SSDT10: (Scope (\_SB.PCI0.GFX0))

55 Changes if patch GFX0 to IGPU is applied


--- I would go for SSDT8 but how do I know if it's Intel HD 4400 or the nvidia GPU ??? ---

I regex search for Device.*GFX0:
Code:
Speedy-ML:thorn888 Admin$ grep Device.*GFX0 *.dsl
SSDT8.dsl:        Device (GFX0)

Nvidia is usually PEGP...
Code:
Speedy-ML:thorn888 Admin$ grep Device.*PEGP *.dsl
SSDT9.dsl:        Device (PEGP)

You can also tell because Intel is always at address 0x00020000:
Code:
Speedy-ML:thorn888 Admin$ grep -A4 -B4 _ADR.*0x00020000 *.dsl
SSDT8.dsl-        }
SSDT8.dsl-
SSDT8.dsl-        Device (GFX0)
SSDT8.dsl-        {
SSDT8.dsl:            Name (_ADR, 0x00020000)  // _ADR: Address
SSDT8.dsl-            OperationRegion (VSID, PCI_Config, Zero, 0x04)
SSDT8.dsl-            Field (VSID, ByteAcc, NoLock, Preserve)
SSDT8.dsl-            {
SSDT8.dsl-                REG0,   32
 
Thanks for your help I really appreciate it.

Everything works great so far. DSDT.aml, SSDT.aml and SSDT-1.aml are loaded without KP.

Brightness Fix worked.

P States: 8, 20, 24, 25, 26, 27, 28 (From DCPI Manager 1.5 don't know if I can get better than that?)

I noticed P States: I/O error, throttling to 9Hz in DCPI Manager (Dunno what it means lol) ???

The only thing left that don't work is Audio ALC 233.

I'm looking into it right now, I found some thread regarding patched AppleHDA but nothing seems to work.

Do I need to edit my DSDT with a Patched AppleHDA?

Thanks again.
 
Thanks for your help I really appreciate it.

Everything works great so far. DSDT.aml, SSDT.aml and SSDT-1.aml are loaded without KP.

Brightness Fix worked.

P States: 8, 20, 24, 25, 26, 27, 28 (From DCPI Manager 1.5 don't know if I can get better than that?)

You can probably observe more with AppleIntelCPUPowerManagementInfo.kext.

I noticed P States: I/O error, throttling to 9Hz in DCPI Manager (Dunno what it means lol) ???

Bug in DPCIManager...

The only thing left that don't work is Audio ALC 233.

I'm looking into it right now, I found some thread regarding patched AppleHDA but nothing seems to work.

Do I need to edit my DSDT with a Patched AppleHDA?

Thanks again.

DSDT patches you need for AppleHDA: https://github.com/RehabMan/Laptop-DSDT-Patch
Apply: "Audio Layout 12" (change layout-id from 12 to the layout-id used by the patched AppleHDA)
Apply: "IRQ Fix"

Determine layout-id from patched AppleHDA.kext:

First you need to know your codec id in decimal. Then look in the Info.plist for AppleHDAHardwareConfigDriver.kext (in PlugIns), find your codec id under HDAConfigDefault (there may be many entries in a sloppy patched AppleHDA or only one). The LayoutID that matches your codec id is the layout id you need.
 
So far I couldn't make AppleHDA patched to worked with my DSDT.

Revert DSDT without HDEF injection.

I event tried multiple layout-id with chameleon and no joy.

The Only thing that worked was VoodooHDA with Vendor and Device ID added to the Info.plist.

I'll probably try patching my DSDT with ALC233 layout-id another day.

Thank again for your great help RehabMan.
 
Status
Not open for further replies.
Back
Top