Jump to content
HackinDoge

ASUS FX502VM-AH51 - "HacBook Pro (2016)"

Recommended Posts

ASUS FX502VM-AH51

CPU: Intel Core i5-6300HQ 2.3GHz

RAM: 16GB DDR4-2133

Storage: 1TB 7200RPM HDD

GPU: NVIDIA GeForce GTX 1060 3GB

Wi-Fi: Switched to Dell DW1560

OS: macOS 10.13 High Sierra / Windows 10

 

I had actually upgraded from my X555LB-NS51 a year prior to the writing of this post, but due to unfamiliar complexities (Intel Skylake, NVIDIA Pascal, I2C trackpad, no iGPU, keyboard backlight, NGFF Wi-Fi) as well as time constraints (work + school), I put off writing anything until I had ironed out the aforementioned.

 

This post assumes prior knowledge in the topics covered.  For readers without such knowledge, refer to the X555LB-NS51 linked above and/or seek further information via independent research.

 

I.  Installation

After Step 1 the keyboard should function.  The trackpad, however, will not function without the steps in Post Installation, so be sure to have a USB mouse handy.

  1. Create the installer as usual.
  2. Boot with nv_disable=1, and make sure to not drop the NVIDIA GPU's OEM _DSM in Clover.

 

II.  Post Installation

  • drivers64uefi
    • AptioMemoryFix
  • config.plist
 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>DropOEM_DSM</key>
			<dict>
				<key>NVidia</key>
				<false/>
			</dict>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>CpuSsdt</string>
			</dict>
		</array>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>abm_firstpolldelay=8000 -xcpm</string>
		<key>DefaultVolume</key>
		<string>Macintosh HD</string>
		<key>NoEarlyProgress</key>
		<false/>
		<key>Timeout</key>
		<integer>0</integer>
	</dict>
	<key>CPU</key>
	<dict>
		<key>HWPEnable</key>
		<true/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<string>3</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>FixOwnership</key>
			<true/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Scan</key>
		<dict>
			<key>Legacy</key>
			<false/>
		</dict>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
		<key>Theme</key>
		<string>embedded</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<false/>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Boot graphics glitch, 10.13 beta (based on denskop patch)</string>
				<key>MatchOS</key>
				<string>10.13.x</string>
				<key>Name</key>
				<string>com.apple.iokit.IOGraphicsFamily</string>
				<key>Find</key>
				<data>AQAAdSI=</data>
				<key>Replace</key>
				<data>AQAA6yI=</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x3</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>08/08/2017</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBP131.88Z.0212.B00.1708080127</string>
		<key>Board-ID</key>
		<string>Mac-473D31EABEB93F9B</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardSerialNumber</key>
		<string></string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>BoardVersion</key>
		<string>MacBookPro13,1</string>
		<key>ChassisAssetTag</key>
		<string>MacBook-Aluminum</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>0x09</string>
		<key>Family</key>
		<string>MacBook Pro</string>
		<key>FirmwareFeatures</key>
		<string>0xFC0FE136</string>
		<key>FirmwareFeaturesMask</key>
		<string>0xFF1FFF3F</string>
		<key>LocationInChassis</key>
		<string>Part Component</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Memory</key>
		<dict>
			<key>Channels</key>
			<integer>2</integer>
			<key>Modules</key>
			<array>
				<dict>
					<key>Frequency</key>
					<integer>2133</integer>
					<key>Size</key>
					<integer>8192</integer>
					<key>Slot</key>
					<integer>0</integer>
					<key>Type</key>
					<string>DDR4</string>
					<key>Vendor</key>
					<string>ASUS</string>
				</dict>
				<dict>
					<key>Frequency</key>
					<integer>2133</integer>
					<key>Size</key>
					<integer>8192</integer>
					<key>Slot</key>
					<integer>1</integer>
					<key>Type</key>
					<string>DDR4</string>
					<key>Vendor</key>
					<string>Samsung</string>
				</dict>
			</array>
			<key>SlotCount</key>
			<integer>4</integer>
		</dict>
		<key>Mobile</key>
		<true/>
		<key>PlatformFeature</key>
		<string>0x1A</string>
		<key>ProductName</key>
		<string>MacBookPro13,1</string>
		<key>SerialNumber</key>
		<string></string>
		<key>SmUUID</key>
		<string></string>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<true/>
		<key>NvidiaWeb</key>
		<true/>
	</dict>
</dict>
</plist>

 

 

ACPIBatteryManager			FakePCIID_Broadcom_WiFi
AirportBrcmFixup			FakeSMC
AppleALC				Lilu
ApplePS2SmartTouchPad			NvidiaGraphicsFixup
AsusACPIBackLightPanel			RealtekRTL8111
AsusNBFnKeys				SATA-100-series-unsupported
BT4LEContiunityFixup			Shiki
BrcmFirmwareData			VoodooI2C
BrcmPatchRAM2				VoodooI2CHID
FakePCIID

 

  • ACPI
    • DSDT
      • RehabMan Laptop-DSDT-Patch
         
        • [syn] Rename _DSM methods to XDSM
        • [bat] ASUS G75VW
        • [sys] Add IEMI
        • [sys] Add MCHC
        • [sys] Fix _WAK Arg0 v2
        • [sys] IRQ Fix
        • [sys] OS Check Fix (Windows 7)
        • [sys] RTC Fix
        • [sys] Shutdown Fix v2
        • [sys] Skylake LPC
        • [usb] USB3 _PRW 0x0D Skylake (instant wake)
      • alexandred VoodooI2C
      • Rename HDAS to HDEF
        into_all method label HDAS set_label begin HDEF end;
        into_all method code_regex HDAS replaceall_matched begin HDEF end;
      • Display backlight control (using Brightness by Berg Design)
         
        
        into method label XDSM parent_label GFX0 remove_entry;
        
        into device label GFX0 parent_label _SB.PCI0.PEG0 insert begin
        
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method\n
        {\n
            If (LEqual (Arg2, Zero))\n
            {\n
                Return (Buffer (One)\n
                {\n
                     0x03\n                                           
                })\n
            }\n
        \n
            Return (Package (0x18)\n
            {\n
                "@0,connector-type",\n 
                Buffer (0x04)\n
                {\n
                     0x02, 0x00, 0x00, 0x00\n                         
                },\n 
        \n
                "@0,AAPL,boot-display",\n 
                Buffer (0x04)\n
                {\n
                     0x01, 0x00, 0x00, 0x00\n                         
                },\n 
        \n
                "@0,built-in",\n 
                Buffer (Zero) {},\n 
                "@0,display-connect-flags",\n 
                Buffer (0x04)\n
                {\n
                     0x04, 0x00, 0x00, 0x00\n                         
                },\n 
        \n
                "@0,use-backlight-blanking",\n 
                Buffer (0x04) {},\n 
                "AAPL,backlight-control",\n 
                Buffer (0x04)\n
                {\n
                     0x01, 0x00, 0x00, 0x00\n                         
                },\n 
        \n
                "@0,backlight-control",\n 
                Buffer (0x04)\n
                {\n
                     0x01, 0x00, 0x00, 0x00\n                         
                },\n 
        \n
                "@0,display-type",\n 
                "LCD",\n 
                "@1,connector-type",\n 
                Buffer (0x04)\n
                {\n
                     0x00, 0x08, 0x00, 0x00\n                         
                },\n 
        \n
                "@2,connector-type",\n 
                Buffer (0x04)\n
                {\n
                     0x00, 0x08, 0x00, 0x00\n                         
                },\n 
        \n
                "@3,connector-type",\n 
                Buffer (0x04)\n
                {\n
                     0x00, 0x08, 0x00, 0x00\n                         
                },\n 
        \n
                "hda-gfx",\n 
                Buffer (0x0A)\n
                {\n
                    "onboard-2"\n
                }\n
            })\n
        }
        
        end;
        
        into DefinitionBlock label DSDT insert begin
        
        Scope (_SB)\n
        {\n
            Device (PNLF)\n
            {\n
                Name (_ADR, Zero)  // _ADR: Address\n
                Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID\n
                Name (_CID, "backlight")  // _CID: Compatible ID\n
                Name (_UID, 0x0E)  // _UID: Unique ID\n
                Name (_STA, 0x0B)  // _STA: Status\n
                Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels\n
                {\n
                    Return (^^PCI0.PEG0.GFX0.EDPD._BCL ())\n
                }\n
            \n
                Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method\n
                {\n
                    Store (^^PCI0.PEG0.GFX0.GCBL (Arg0), Local0)\n
                    Subtract (0x0A, Local0, LBTN)\n
                    ^^PCI0.LPCB.EC0.STBR ()\n
                }\n
            \n
                Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current\n
                {\n
                    Return (LBTN)\n
                }\n
            \n
                Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching\n
                {\n
                    ^^PCI0.PEG0.GFX0._DOS (Arg0)\n
                }\n
            }\n
        }
        
        end;

         

      • Keyboard backlight (no control)
         
        
        into device label ATKD insert begin
        
        Name (BOFF, Zero)\n
        Method (SKBL, 1, NotSerialized)\n
        {\n
            If (Or (LEqual (Arg0, 0xED), LEqual (Arg0, 0xFD)))\n
            {\n
                If (And (LEqual (Arg0, 0xED), LEqual (BOFF, 0xEA\n
                {\n
                    Store (Zero, Local0)\n
                    Store (Arg0, BOFF)\n
                }\n
                ElseIf (And (LEqual (Arg0, 0xFD), LEqual (BOFF, 0xFA)))\n
                {\n
                    Store (Zero, Local0)\n
                    Store (Arg0, BOFF)\n
                }\n
                Else\n
                {\n
                    Return (BOFF)\n
                }\n
            }\n
            ElseIf (Or (LEqual (Arg0, 0xEA), LEqual (Arg0, 0xFA)))\n
            {\n
                Store (KBLV, Local0)\n
                Store (Arg0, BOFF)\n
            }\n
            Else\n
            {\n
                Store (Arg0, Local0)\n
                Store (Arg0, KBLV)\n
            }\n
        \n
            Store (DerefOf (Index (PWKB, Local0)), Local1)\n
            ^^PCI0.LPCB.EC0.WRAM (0x04B1, Local1)\n
            Return (Local0)\n
        }\n
        
        Method (GKBL, 1, NotSerialized)\n
        {\n
            If (LEqual (Arg0, 0xFF))\n
            {\n
                Return (BOFF)\n
            }\n
        \n
            Return (KBLV)\n
        }\n
        
        end;

         

    • SSDT
  • Power Management
    • X86PlatformPlugin must be patched to allow the CPU to step down to 800MHz (idle freq).
    • BIOS Patching to boot without KernelPm is possible.

 

Final Impressions

  • The Wi-Fi card in this laptop was much easier to replace.  A simple unscrew of the back panel gives one access to all the important peripherals, unlike the X555LB-NS51, which needed to be fully disassembled to reach the back of the motherboard to replace the Wi-Fi card.
  • The ALC255 audio was less fussy.  The ALC233 variant in the X555LB-NS51 needed a non-standard patch to get the microphone working.
  • The trackpad and display brightness control were the two hardest obstacles to overcome.
    • Prior to owning this laptop, I had never heard of the I2C interface nor it's connected peripherals.  Preliminary support for I2C trackpads, namely the ELAN1200, was shaky, and required a special patch to be manually baked in to get it working.
    • All previously established display brightness control implementations were designed for Intel iGPUs, but this laptop's iGPU is disabled.  It wouldn't be until I stumbled upon onejay09's thread @ InsanelyMac that I would be able to control the display brightness.  Before then, it was stuck at full brightness, which hurt battery life.

 

Credits

  • EMlyDinEsH for the keyboard backlight DSDT patch
  • onejay09 for the display backlight control DSDT patch

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.