Jump to content
About Just Joined group Read more... ×
jc84

10.11.5 El Capitan Install,Configuration Surface Pro 3 i5

4 posts in this topic

Recommended Posts

Last Updated 2016-June-20

 

OSX 10.11.5

This is what i have done so far to get my SP3 i5 256 working. Booting from SSD in USB3 Case as I am testing I do not want to mess with my Internal SP3 SSD.

 

The build in not perfect but works. still early days.

chat with us and share https://gitter.im/julianjc84/jc84_SP3_hookups

 

Updates Notes

I require the use of USBInjectAll.kext to fix the USBports for USB wifi adapter. Seems to only effect me with USB booting. OS,s installed on internal SSD seem to not have usb issue.

 

Issues:

  • minor video artifacts once system is booted below menu bar.
  • No Battery

 

What work and work great


Tools

 

 

Must have applications, the ones I recommend are as follows.

 

IORegistryExplorer 2.1- registry look up and because every other version saves corrupt files 

http://www.tonymacx86.com/attachments/audio/24086d1341545382-guide-how-make-copy-ioreg-ioregistryexplorer-slrid_v10.6.3.zip

 

MaciASL - rehabman edition for editing DSDT and SSDT APCI

https://bitbucket.org/RehabMan/acpica/downloads

 

iasl - decomplie DSDT and SSDT's from .aml to .dsl

https://bitbucket.org/RehabMan/acpica/downloads

 

ssdtPGen - generate powermanagment

https://github.com/Piker-Alpha/ssdtPRGen.sh

 

Pacifist - extract .pkg files and pull out the files you require with out installing

https://www.charlessoft.com/

 

Clover Configurator - to edit them clover.plist files

http://mackie100projects.altervista.org/download/

 

TextWrangler - to view some plist files

http://www.barebones.com/products/textwrangler/

 

 


Clover - Clover_v2.3k_r3424

 

 

Formatted the EFI as FAT32 - I don't know if you need to do this.

diskutil list
  
  #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk8
   1:                        EFI EFI                     209.7 MB   disk8s1
   2:                  Apple_HFS SSD1                    60.0 GB    disk8s2
   3:                  Apple_HFS SSD2-damagedOS          59.5 GB    disk8s3
newfs_msdos -F 32 -v EFI /dev/disk8s1 #formats disk8s1 as fat32

Clover Installer Settings

Install for UEFI booting Only

Install Clover in the ESP

Drivers64UEFI

  CsmVideoDxe-64.efi
  DataHubDxe-64.efi
  OsxAptioFixDrv-64.efi
  PartitionDxe-64.efi


Clover Configuration .plist

 

 

 
clover.plist text

Key values used for Intel 4400 for video QI QE. used in conjunction with fake FakePCIID_HD4600_HD4400.kext, FakePCIID.kext
<key>ig-platform-id</key>
        <string>0x0a260006</string>
<key>IntelGFX</key>

            <string>0x04128086</string>

 

<?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>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>FixRegions_10000000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>-v dart=0 kext-dev-mode=1 rootless=0</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>SSD1</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x04128086</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
		<key>ig-platform-id</key>
		<string>0x0a260006</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Enable TRIM for SSD confirmed works 10.11</string>
				<key>Find</key>
				<data>
				QVBQTEUgU1NE
				</data>
				<key>Name</key>
				<string>IOAHCIBlockStorage</string>
				<key>Replace</key>
				<data>
				AAAAAAAAAAAA
				</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>MLB</key>
		<string>C02032109R5DC771H</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>05/24/13</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBA61.88Z.0099.B04.1305241529</string>
		<key>Board-ID</key>
		<string>Mac-7DF21CB3ED6977E5</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>Air-Enclosure</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>10</string>
		<key>Family</key>
		<string>MacBook Air</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<true/>
		<key>ProductName</key>
		<string>MacBookAir6,2</string>
		<key>SerialNumber</key>
		<string>CK228A27F5V8</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

 

 


Clover as Images

 

 

 

 


DSDT and ssdt's

 

 

 

Using a DSDT.aml will break, SD card reader, touch voodooi2c, front camera, rear camera.

,

,

Exported DSDT from Clover boot menu with F4 (there is no feed back when generated except you see the files in EFI/EFI/CLOVER/APCI/origin

 

You will see a bunch of files. I only kept the following

 
//----
 
DSDT.aml
SSDT-0 sata.aml
SSDT-1 USB.aml
SSDT-2-custom CPU.aml
SSDT-7 GFX0.aml
 
SSDT-8-custom nullethernet.aml
 
DSDT.aml - main table
SSDT-0.aml - SATA 
SSDT-1.aml - USB
SSDT-2.aml - cpu based - not used after the decompile
SSDT-3.aml - cpu based - not used after the decompile
SSDT-7.aml - graphics
//-----
Drop all in a folder and run iasl https://bitbucket.org/RehabMan/acpica/downloads on them from terminal to decompile
copy iasl into /usr/bin
authenticate
cd to where the dsdt files are.
iasl -da -dl *.aml
still pumps out a few errors but over all good. i think only 3 unresolved.
if only i could make ref.txt i don't know how many variables :|
 
patches applied.
 
[sys] fix the _DSM in DSDT.dsl & SSDT-7.dsl
[igpu] Rename GFX0 to IGPU to the DSDT.dsl & SSDT-7.dsl
[igpu] brightness fix to the DSDT.dsl file only
brightness slider only works after I have change the display resolution. 
File Save as ACPI machine language binary makes .AML
Copy to: EFI/EFI/CLOVER/APCI/patched
 
CPU patch
curl -o ~/Library/ssdtPRGen.zip https://codeload.github.com/Piker-Alpha/ssdtPRGen.sh/zip/master
unzip -qu ~/Library/ssdtPRGen.zip -d ~/Library/
mv ~/Library/ssdtPRGen.sh-master ~/Library/ssdtPRGen
rm ~/Library/ssdtPRGen.zip

added a copy of dsdt.aml file to ~/Library/ssdtPRGen

ran

~/ssdtPRGen.sh

The only differences I noticed if you do not add the dsdt.aml Warnings will show and the cpu reference are \_SB instead of _PR_

WITH DSDT

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140926-64 [Oct 24 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Disassembly of iASL1qT1JT.aml, Sat Oct 17 15:10:51 2015
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000624 (1572)
 *     Revision         0x01
 *     Checksum         0x77
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20141107 (538185991)
 */
DefinitionBlock ("iASL1qT1JT.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj)
 
    Scope (\_PR.CPU0)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            Package (0x06)
            {
                0x0B54, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1D00, 
                0x1D00
            }, 
 
            Package (0x06)
            {
                0x0AF0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1C00, 
                0x1C00
            }, 
 
            Package (0x06)
            {
                0x0A8C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1B00, 
                0x1B00
            }, 
 
            Package (0x06)
            {
                0x0A28, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1A00, 
                0x1A00
            }, 
 
            Package (0x06)
            {
                0x09C4, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1900, 
                0x1900
            }, 
 
            Package (0x06)
            {
                0x0960, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1800, 
                0x1800
            }, 
 
            Package (0x06)
            {
                0x08FC, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1700, 
                0x1700
            }, 
 
            Package (0x06)
            {
                0x0898, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1600, 
                0x1600
            }, 
 
            Package (0x06)
            {
                0x0834, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1500, 
                0x1500
            }, 
 
            Package (0x06)
            {
                0x07D0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1400, 
                0x1400
            }, 
 
            Package (0x06)
            {
                0x076C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1300, 
                0x1300
            }, 
 
            Package (0x06)
            {
                0x0708, 
                0x36E1, 
                0x0A, 
                0x0A, 
                0x1200, 
                0x1200
            }, 
 
            Package (0x06)
            {
                0x06A4, 
                0x333D, 
                0x0A, 
                0x0A, 
                0x1100, 
                0x1100
            }, 
 
            Package (0x06)
            {
                0x0640, 
                0x2FAC, 
                0x0A, 
                0x0A, 
                0x1000, 
                0x1000
            }, 
 
            Package (0x06)
            {
                0x05DC, 
                0x2C2D, 
                0x0A, 
                0x0A, 
                0x0F00, 
                0x0F00
            }, 
 
            Package (0x06)
            {
                0x0578, 
                0x28C1, 
                0x0A, 
                0x0A, 
                0x0E00, 
                0x0E00
            }, 
 
            Package (0x06)
            {
                0x0514, 
                0x2567, 
                0x0A, 
                0x0A, 
                0x0D00, 
                0x0D00
            }, 
 
            Package (0x06)
            {
                0x04B0, 
                0x221F, 
                0x0A, 
                0x0A, 
                0x0C00, 
                0x0C00
            }, 
 
            Package (0x06)
            {
                0x044C, 
                0x1EE8, 
                0x0A, 
                0x0A, 
                0x0B00, 
                0x0B00
            }, 
 
            Package (0x06)
            {
                0x03E8, 
                0x1BC3, 
                0x0A, 
                0x0A, 
                0x0A00, 
                0x0A00
            }, 
 
            Package (0x06)
            {
                0x0384, 
                0x18B0, 
                0x0A, 
                0x0A, 
                0x0900, 
                0x0900
            }, 
 
            Package (0x06)
            {
                0x0320, 
                0x15AE, 
                0x0A, 
                0x0A, 
                0x0800, 
                0x0800
            }
        })
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
            Return (Package (0x06)
            {
                One, 
                0x04, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    Zero, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xCD, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x06, 
                    0xF5, 
                    0x015E
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x07, 
                    0xF5, 
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store ("Method CPU0._DSM Called", Debug)
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                     0x03                                             /* . */
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type", 
                One
            })
        }
    }
 
    Scope (\_PR.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU1.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
            Return (Package (0x05)
            {
                One, 
                0x03, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    0x03E8, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x02, 
                    0x94, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xC6, 
                    0xC8
                }
            })
        }
    }
 
    Scope (\_PR.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU2.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
 
    Scope (\_PR.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU3.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
}
 

 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj) 

WITHOUT DSDT - and wont load or give you pwr management

 

 

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140210-00 [Feb 10 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000036A (874)
 *     Revision         0x01
 *     Checksum         0x00
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20140210 (538182160)
 */
 
DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
    without
    External (\_SB.CPU0, DeviceObj)
    External (\_SB.CPU1, DeviceObj)
    External (\_SB.CPU2, DeviceObj)
    External (\_SB.CPU3, DeviceObj)
 
    Scope (\_SB.CPU0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            /* High Frequency Modes (turbo) */
            Package (0x06) { 0x0B54, 0x003A98, 0x0A, 0x0A, 0x1D00, 0x1D00 },
            Package (0x06) { 0x0AF0, 0x003A98, 0x0A, 0x0A, 0x1C00, 0x1C00 },
            Package (0x06) { 0x0A8C, 0x003A98, 0x0A, 0x0A, 0x1B00, 0x1B00 },
            Package (0x06) { 0x0A28, 0x003A98, 0x0A, 0x0A, 0x1A00, 0x1A00 },
            Package (0x06) { 0x09C4, 0x003A98, 0x0A, 0x0A, 0x1900, 0x1900 },
            Package (0x06) { 0x0960, 0x003A98, 0x0A, 0x0A, 0x1800, 0x1800 },
            Package (0x06) { 0x08FC, 0x003A98, 0x0A, 0x0A, 0x1700, 0x1700 },
            Package (0x06) { 0x0898, 0x003A98, 0x0A, 0x0A, 0x1600, 0x1600 },
            Package (0x06) { 0x0834, 0x003A98, 0x0A, 0x0A, 0x1500, 0x1500 },
            Package (0x06) { 0x07D0, 0x003A98, 0x0A, 0x0A, 0x1400, 0x1400 },
            /* High Frequency Modes (non-turbo) */
            Package (0x06) { 0x076C, 0x003A98, 0x0A, 0x0A, 0x1300, 0x1300 },
            Package (0x06) { 0x0708, 0x0036E1, 0x0A, 0x0A, 0x1200, 0x1200 },
            Package (0x06) { 0x06A4, 0x00333D, 0x0A, 0x0A, 0x1100, 0x1100 },
            Package (0x06) { 0x0640, 0x002FAC, 0x0A, 0x0A, 0x1000, 0x1000 },
            Package (0x06) { 0x05DC, 0x002C2D, 0x0A, 0x0A, 0x0F00, 0x0F00 },
            Package (0x06) { 0x0578, 0x0028C1, 0x0A, 0x0A, 0x0E00, 0x0E00 },
            Package (0x06) { 0x0514, 0x002567, 0x0A, 0x0A, 0x0D00, 0x0D00 },
            Package (0x06) { 0x04B0, 0x00221F, 0x0A, 0x0A, 0x0C00, 0x0C00 },
            Package (0x06) { 0x044C, 0x001EE8, 0x0A, 0x0A, 0x0B00, 0x0B00 },
            Package (0x06) { 0x03E8, 0x001BC3, 0x0A, 0x0A, 0x0A00, 0x0A00 },
            Package (0x06) { 0x0384, 0x0018B0, 0x0A, 0x0A, 0x0900, 0x0900 },
            /* Low Frequency Mode */
            Package (0x06) { 0x0320, 0x0015AE, 0x0A, 0x0A, 0x0800, 0x0800 }
        })
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
 
            /* Low Power Modes for CPU0 */
            Return (Package (0x06)
            {
                One,
                0x04,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    Zero,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xCD,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x06,
                    0xF5,
                    0x015E
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x07,
                    0xF5,
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)
        {
            Store ("Method CPU0._DSM Called", Debug)
 
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type",
                One
            })
        }
    }
 
    Scope (\_SB.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU1.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
 
            /* Low Power Modes for CPU1 */
            Return (Package (0x05)
            {
                One,
                0x03,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    0x03E8,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x02,
                    0x94,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xC6,
                    0xC8
                }
            })
        }
    }
 
    Scope (\_SB.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU2.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
 
    Scope (\_SB.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU3.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
}
 

 

 

External (\_SB.CPU0, DeviceObj)
External (\_SB.CPU1, DeviceObj)
External (\_SB.CPU2, DeviceObj)
External (\_SB.CPU3, DeviceObj)

DSDTs used and how they came about.
//----- 
DSDT.aml - from the clover f4 export
SSDT-0.aml - sata
SSDT-2.aml - cpu saved output generated with ssdtPRGen.sh script in conjunction with the above dsdt
SSDT-7.aml - graphics from clover f4 export with igup patched above
SSDT-8.aml - added for en0 Ethernet ID used with NullEthernet.kext (more info in kext section)
//-----


.kext used

Kext installed
EFI/EFI/CLOVER/kext/10.11
 
FakePCIID_Intel_HD_Graphics.kext - video from https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads
FakePCIID.kext - link above
 
FakeSMC.kext - version 6.16.1372 was it http://sourceforge.net/projects/hwsensors/
 
NullEthernet.kext - required for iMessage(not tested yet). NullEthernet requires injection: using SSDTmethod add with ssdt-rmne.aml renamed to SSDT-8.aml for loading the en0. The physical mac address supplied in the SSDT!.
check that en0 is en0 with IORegistryExplorer, You may need to delete networkinginterfaces.plist from /Library/Preferences/SystemConfiguration and reboot, I had to delete as it was en2 will all the testing and changes i have been doing.
Interesting. when I use NullEthernet I get video artifacts, applying the 9mb azul patch seems to have no effect.
 
VoodooHDA.kext - audio, built in.
 
-- // for wifi to work i need to use RehabMan-USBInjectAll
USBInjectAll.kext else i get usb crashes.
RtWlanU.kext - USB wifi for the EW-7811un wifi dongle
 
SurFacePro 4 Type Cover works out of the box on SurfacePro 3, however single touch only on track pad.


Touch - Single Input User Environment

as the DSDT file is messy, I2C only seems to pick up the touch with out a dsdt, the underdevelopment kext work pretty good.
https://www.youtube.com/watch?v=1eSbTCgJP24 - this video is dated and old 100ms delay. You should really try the kext bellow.
http://monstersoft.com/sp3/VoodooI2C.kext.5ms.zip Touch has never been so good in so long. Single Input only.


Battery Fixes - incomplete, HELP

 

 

learn more here: https://github.com/RehabMan/OS-X-ACPI-Battery-Driver

too complex, maybe you can help? ? ?

some background reading here to assist http://www.tonymacx86.com/el-capitan-laptop-support/116102-guide-how-patch-dsdt-working-battery-status.html

 

The Code so far with so many errors and very incomplete. totally wrong *(*Y&^%&

 

 

#Maintained by: RehabMan for: Laptop Patches
#battery_Surface-Pro-v3.txt

# created by JULIANJC84 2015-10-25

# works for:
# Microsoft Surface Pro 3

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized)\n
{\n
	Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
}\n
end;

into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
    Store(Arg3, Local0)\n
    Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
    Return(Local0)\n
}\n
end;

# RECB READ EC BUFFER
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert 
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
// Arg2 - value to write\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

# 32-bit REGISTERS BATTERY 0
# ONLY ONE USED BY FBIF
into device label EC0 code_regex (B0SN),(\s+32) replace_matched begin 0SN0,8, 0SN1,8, 0SN2,8, 0SN3,8//%1%2 end; # VERIFIED
# FIX 32-bit METHODS
into method label FBIF code_regex \(\^\^SBRG\.EC0\.B0SN, replaceall_matched begin B1B4(^^SBRG.EC0.0SN0,^^SBRG.EC0.0SN1,^^SBRG.EC0.0SN2,^^SBRG.EC0.0SN3), end; # VERIFIED
# FIX 64,48,96 METHODS
into device label EC0 code_regex (B0DN,)\s+(64) replace_matched begin 0DNX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0CM,)\s+(48) replace_matched begin 0CMX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0MN,)\s+(96) replace_matched begin 0MNX,%2,//%1%2 end; #VERIFIED
# FIX REGISTERS 64,48,96
into method label FBIF code_regex B0DN\), replace_matched begin WECB(0x81,64,0DNX), end; # 64 BIT VERIFIED
into method label FBIF code_regex B0CM\), replace_matched begin WECB(0x89,48,0CMX), end; # 48 BIT VERIFIED
into method label FBIF code_regex B0MN, replace_matched begin WECB(0x75,96,0MNX), end; # 96 BIT VERIFIED

# 16-BIT REGISTERS BAT0
into device label EC0 code_regex (B0VL,)\s+(16,) replace_matched begin 0VL0,8,0VL1,8,//%1%2 end; # BVO1 VERIFIED
into device label EC0 code_regex (B0CR,)\s+(16,) replace_matched begin 0CR0,8,0CR1,8,//%1%2 end; # BCR1 VERIFIED
into device label EC0 code_regex (B0RC,)\s+(16,) replace_matched begin 0RC0,8,0RC1,8,//%1%2 end; # BRC1 FBIF VERIFIED
into device label EC0 code_regex (B0FC,)\s+(16,) replace_matched begin 0FC0,8,0FC1,8,//%1%2 end; # BIF2 VERIFIED
into device label EC0 code_regex (B0CC,)\s+(16,) replace_matched begin 0CC0,8,0CC1,8,//%1%2 end; # FBIF VERIFIED
into device label EC0 code_regex (B0DC,)\s+(16,) replace_matched begin 0DC0,8,0DC1,8,//%1%2 end; # BIF1 VERIFIED
into device label EC0 code_regex (B0DV,)\s+(16,) replace_matched begin 0DV0,8,0DV1,8,//%1%2 end; # BIF4 VERIFIED

into device label EC0 code_regex (B0AH,)\s+(16,) replace_matched begin 0AH0,8,0AH1,8,//%1%2 end; # BIF4 VERIFIED

# FIX 16-bit METHODS BAT0
into method label BVO1 code_regex \(B0VL, replaceall_matched begin (B1B2(0VL0,0VL1), end; # VERIFIED
into method label BCR1 code_regex \(B0CR, replaceall_matched begin (B1B2(0CR0,0CR1), end; # VERIFIED
into method label BRC1 code_regex \(B0RC, replaceall_matched begin (B1B2(0RC0,0RC1), end; # VERIFIED

into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0RC, replace_matched begin (B1B2(^^SBRG.EC0.0RC0,^^SBRG.EC0.0RC1), end; # VERIFIED 16 BIT
into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0CC, replace_matched begin (B1B2(^^SBRG.EC0.0CC0,^^SBRG.EC0.0CC1), end; # VERIFIED 16 BIT

into method label BIF1 code_regex \(B0DC, replaceall_matched begin (B1B2(0DC0,0DC1), end;
into method label BIF2 code_regex \(B0FC, replaceall_matched begin (B1B2(0FC0,0FC1), end;
into method label BIF4 code_regex \(B0DV, replaceall_matched begin (B1B2(0DV0,0DV1), end;

into method label _BTP code_regex \(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (Arg0, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;
into method label _BTP code_regex \(0x05,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (0x05, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;

# disable BAT1 device
into method label _STA parent_label BAT1 replace_content begin Return (Zero) end;






# // - - Surface Pro 3 Hex Offset Calculation - - \\
#Offsets are in bytes (8bits make 1 Byte)
#Offset then written in hex16
#Convert all lines to bits then to bytes then to hex

#Offset (0x53),  83bytes 83*8 = 664bits staring point (now we are in bits)
#B0TP,   16, 	83bytes 83*8 = 664bits staring point (now we are in bits)
#B0VL,   16, 	664+16 = 680bits
#B0CR,   16, 	680+16 = 696bits
#B0AC,   16,	696+16 = 712bits
#B0ME,   16,	712+16 = 728bits
#B0RS,   16, 	728+16=744bits
#B0RC,   16, 	774+16=760bits
#B0FC,   16, 	760+16=776bits
#B0MC,   16, 	776+16=792bits
#B0MV,   16, 	792+16=808bits
#B0ST,   16, 	808+16=824bits
#B0CC,   16, 	824+16=840bits
#B0DC,   16, 	840+16=856bits
#B0DV,   16, 	856+16=872bits
#B0SI,   16, 	872+16=888bits
#B0SN,   32, 	888+16=904bits
#B0MN,   96, 	904+32=936/8 = 0x75
#B0DN,   64, 	936+96=1032/8 =  129 = 0x81
#B0CM,   48, 	1032+64=1096/8 = 137 = 0x89
#B0MA,   8, 	1096+48=1144/8 = 143 =0x8f 

 

 

 

 

Share this post


Link to post
Share on other sites
Advertisement

Last Updated 2016-June-20

 

OSX 10.11.5

This is what i have done so far to get my SP3 i5 256 working. Booting from SSD in USB3 Case as I am testing I do not want to mess with my Internal SP3 SSD.

 

The build in not perfect but works. still early days.

chat with us and share https://gitter.im/julianjc84/jc84_SP3_hookups

 

Updates Notes

I require the use of USBInjectAll.kext to fix the USBports for USB wifi adapter. Seems to only effect me with USB booting. OS,s installed on internal SSD seem to not have usb issue.

 

Issues:

  • minor video artifacts once system is booted below menu bar.
  • No Battery

 

What work and work great


Tools

 

 

Must have applications, the ones I recommend are as follows.

 

IORegistryExplorer 2.1- registry look up and because every other version saves corrupt files 

http://www.tonymacx86.com/attachments/audio/24086d1341545382-guide-how-make-copy-ioreg-ioregistryexplorer-slrid_v10.6.3.zip

 

MaciASL - rehabman edition for editing DSDT and SSDT APCI

https://bitbucket.org/RehabMan/acpica/downloads

 

iasl - decomplie DSDT and SSDT's from .aml to .dsl

https://bitbucket.org/RehabMan/acpica/downloads

 

ssdtPGen - generate powermanagment

https://github.com/Piker-Alpha/ssdtPRGen.sh

 

Pacifist - extract .pkg files and pull out the files you require with out installing

https://www.charlessoft.com/

 

Clover Configurator - to edit them clover.plist files

http://mackie100projects.altervista.org/download/

 

TextWrangler - to view some plist files

http://www.barebones.com/products/textwrangler/

 

 


Clover - Clover_v2.3k_r3424

 

 

Formatted the EFI as FAT32 - I don't know if you need to do this.

diskutil list
  
  #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk8
   1:                        EFI EFI                     209.7 MB   disk8s1
   2:                  Apple_HFS SSD1                    60.0 GB    disk8s2
   3:                  Apple_HFS SSD2-damagedOS          59.5 GB    disk8s3
newfs_msdos -F 32 -v EFI /dev/disk8s1 #formats disk8s1 as fat32

Clover Installer Settings

Install for UEFI booting Only

Install Clover in the ESP

Drivers64UEFI

  CsmVideoDxe-64.efi
  DataHubDxe-64.efi
  OsxAptioFixDrv-64.efi
  PartitionDxe-64.efi


Clover Configuration .plist

 

 

 
clover.plist text

Key values used for Intel 4400 for video QI QE. used in conjunction with fake FakePCIID_HD4600_HD4400.kext, FakePCIID.kext
<key>ig-platform-id</key>
        <string>0x0a260006</string>
<key>IntelGFX</key>

            <string>0x04128086</string>

 

<?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>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>FixRegions_10000000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>-v dart=0 kext-dev-mode=1 rootless=0</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>SSD1</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>IntelGFX</key>
			<string>0x04128086</string>
		</dict>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>Inject</key>
			<true/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Language</key>
		<string>en:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>1920x1080</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
		<key>ig-platform-id</key>
		<string>0x0a260006</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Enable TRIM for SSD confirmed works 10.11</string>
				<key>Find</key>
				<data>
				QVBQTEUgU1NE
				</data>
				<key>Name</key>
				<string>IOAHCIBlockStorage</string>
				<key>Replace</key>
				<data>
				AAAAAAAAAAAA
				</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>MLB</key>
		<string>C02032109R5DC771H</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>05/24/13</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBA61.88Z.0099.B04.1305241529</string>
		<key>Board-ID</key>
		<string>Mac-7DF21CB3ED6977E5</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>Air-Enclosure</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>10</string>
		<key>Family</key>
		<string>MacBook Air</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<true/>
		<key>ProductName</key>
		<string>MacBookAir6,2</string>
		<key>SerialNumber</key>
		<string>CK228A27F5V8</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

 

 


Clover as Images

 

 

 

 


DSDT and ssdt's

 

 

 

Using a DSDT.aml will break, SD card reader, touch voodooi2c, front camera, rear camera.

,

,

Exported DSDT from Clover boot menu with F4 (there is no feed back when generated except you see the files in EFI/EFI/CLOVER/APCI/origin

 

You will see a bunch of files. I only kept the following

 
//----
 
DSDT.aml
SSDT-0 sata.aml
SSDT-1 USB.aml
SSDT-2-custom CPU.aml
SSDT-7 GFX0.aml
 
SSDT-8-custom nullethernet.aml
 
DSDT.aml - main table
SSDT-0.aml - SATA 
SSDT-1.aml - USB
SSDT-2.aml - cpu based - not used after the decompile
SSDT-3.aml - cpu based - not used after the decompile
SSDT-7.aml - graphics
//-----
Drop all in a folder and run iasl https://bitbucket.org/RehabMan/acpica/downloads on them from terminal to decompile
copy iasl into /usr/bin
authenticate
cd to where the dsdt files are.
iasl -da -dl *.aml
still pumps out a few errors but over all good. i think only 3 unresolved.
if only i could make ref.txt i don't know how many variables :|
 
patches applied.
 
[sys] fix the _DSM in DSDT.dsl & SSDT-7.dsl

[igpu] Rename GFX0 to IGPU to the DSDT.dsl & SSDT-7.dsl

[igpu] brightness fix to the DSDT.dsl file only
brightness slider only works after I have change the display resolution. 
File Save as ACPI machine language binary makes .AML
Copy to: EFI/EFI/CLOVER/APCI/patched
 
CPU patch
curl -o ~/Library/ssdtPRGen.zip https://codeload.github.com/Piker-Alpha/ssdtPRGen.sh/zip/master
unzip -qu ~/Library/ssdtPRGen.zip -d ~/Library/
mv ~/Library/ssdtPRGen.sh-master ~/Library/ssdtPRGen
rm ~/Library/ssdtPRGen.zip

added a copy of dsdt.aml file to ~/Library/ssdtPRGen

ran

~/ssdtPRGen.sh

The only differences I noticed if you do not add the dsdt.aml Warnings will show and the cpu reference are \_SB instead of _PR_

WITH DSDT

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140926-64 [Oct 24 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Disassembly of iASL1qT1JT.aml, Sat Oct 17 15:10:51 2015
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000624 (1572)
 *     Revision         0x01
 *     Checksum         0x77
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20141107 (538185991)
 */
DefinitionBlock ("iASL1qT1JT.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj)
 
    Scope (\_PR.CPU0)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            Package (0x06)
            {
                0x0B54, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1D00, 
                0x1D00
            }, 
 
            Package (0x06)
            {
                0x0AF0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1C00, 
                0x1C00
            }, 
 
            Package (0x06)
            {
                0x0A8C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1B00, 
                0x1B00
            }, 
 
            Package (0x06)
            {
                0x0A28, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1A00, 
                0x1A00
            }, 
 
            Package (0x06)
            {
                0x09C4, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1900, 
                0x1900
            }, 
 
            Package (0x06)
            {
                0x0960, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1800, 
                0x1800
            }, 
 
            Package (0x06)
            {
                0x08FC, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1700, 
                0x1700
            }, 
 
            Package (0x06)
            {
                0x0898, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1600, 
                0x1600
            }, 
 
            Package (0x06)
            {
                0x0834, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1500, 
                0x1500
            }, 
 
            Package (0x06)
            {
                0x07D0, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1400, 
                0x1400
            }, 
 
            Package (0x06)
            {
                0x076C, 
                0x3A98, 
                0x0A, 
                0x0A, 
                0x1300, 
                0x1300
            }, 
 
            Package (0x06)
            {
                0x0708, 
                0x36E1, 
                0x0A, 
                0x0A, 
                0x1200, 
                0x1200
            }, 
 
            Package (0x06)
            {
                0x06A4, 
                0x333D, 
                0x0A, 
                0x0A, 
                0x1100, 
                0x1100
            }, 
 
            Package (0x06)
            {
                0x0640, 
                0x2FAC, 
                0x0A, 
                0x0A, 
                0x1000, 
                0x1000
            }, 
 
            Package (0x06)
            {
                0x05DC, 
                0x2C2D, 
                0x0A, 
                0x0A, 
                0x0F00, 
                0x0F00
            }, 
 
            Package (0x06)
            {
                0x0578, 
                0x28C1, 
                0x0A, 
                0x0A, 
                0x0E00, 
                0x0E00
            }, 
 
            Package (0x06)
            {
                0x0514, 
                0x2567, 
                0x0A, 
                0x0A, 
                0x0D00, 
                0x0D00
            }, 
 
            Package (0x06)
            {
                0x04B0, 
                0x221F, 
                0x0A, 
                0x0A, 
                0x0C00, 
                0x0C00
            }, 
 
            Package (0x06)
            {
                0x044C, 
                0x1EE8, 
                0x0A, 
                0x0A, 
                0x0B00, 
                0x0B00
            }, 
 
            Package (0x06)
            {
                0x03E8, 
                0x1BC3, 
                0x0A, 
                0x0A, 
                0x0A00, 
                0x0A00
            }, 
 
            Package (0x06)
            {
                0x0384, 
                0x18B0, 
                0x0A, 
                0x0A, 
                0x0900, 
                0x0900
            }, 
 
            Package (0x06)
            {
                0x0320, 
                0x15AE, 
                0x0A, 
                0x0A, 
                0x0800, 
                0x0800
            }
        })
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
            Return (Package (0x06)
            {
                One, 
                0x04, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    Zero, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xCD, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x06, 
                    0xF5, 
                    0x015E
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x07, 
                    0xF5, 
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            Store ("Method CPU0._DSM Called", Debug)
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                     0x03                                             /* . */
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type", 
                One
            })
        }
    }
 
    Scope (\_PR.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU1.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
            Return (Package (0x05)
            {
                One, 
                0x03, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    }, 
 
                    One, 
                    0x03E8, 
                    0x03E8
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x02, 
                    0x94, 
                    0x01F4
                }, 
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    }, 
 
                    0x03, 
                    0xC6, 
                    0xC8
                }
            })
        }
    }
 
    Scope (\_PR.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU2.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
 
    Scope (\_PR.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _PR_.CPU3.APSS Called", Debug)
            Return (\_PR.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Return (\_PR.CPU1.ACST ())
        }
    }
}
 

 
    External (_PR_.CPU0, DeviceObj)
    External (_PR_.CPU1, DeviceObj)
    External (_PR_.CPU2, DeviceObj)
    External (_PR_.CPU3, DeviceObj) 

WITHOUT DSDT - and wont load or give you pwr management

 

 

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20140210-00 [Feb 10 2014]
 * Copyright © 2000 - 2014 Intel Corporation
 * 
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000036A (874)
 *     Revision         0x01
 *     Checksum         0x00
 *     OEM ID           "APPLE "
 *     OEM Table ID     "CpuPm"
 *     OEM Revision     0x00015600 (87552)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20140210 (538182160)
 */
 
DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00015600)
{
    without
    External (\_SB.CPU0, DeviceObj)
    External (\_SB.CPU1, DeviceObj)
    External (\_SB.CPU2, DeviceObj)
    External (\_SB.CPU3, DeviceObj)
 
    Scope (\_SB.CPU0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store ("ssdtPRGen version....: 15.6 / Mac OS X 10.11 (15A284)", Debug)
            Store ("target processor.....: i5-4300U", Debug)
            Store ("running processor....: Intel® Core i5-4300U CPU @ 1.90GHz", Debug)
            Store ("baseFrequency........: 800", Debug)
            Store ("frequency............: 1900", Debug)
            Store ("busFrequency.........: 100", Debug)
            Store ("logicalCPUs..........: 4", Debug)
            Store ("maximum TDP..........: 15", Debug)
            Store ("packageLength........: 22", Debug)
            Store ("turboStates..........: 10", Debug)
            Store ("maxTurboFrequency....: 2900", Debug)
        }
 
        Name (APLF, Zero)
        Name (APSN, 0x0A)
        Name (APSS, Package (0x16)
        {
            /* High Frequency Modes (turbo) */
            Package (0x06) { 0x0B54, 0x003A98, 0x0A, 0x0A, 0x1D00, 0x1D00 },
            Package (0x06) { 0x0AF0, 0x003A98, 0x0A, 0x0A, 0x1C00, 0x1C00 },
            Package (0x06) { 0x0A8C, 0x003A98, 0x0A, 0x0A, 0x1B00, 0x1B00 },
            Package (0x06) { 0x0A28, 0x003A98, 0x0A, 0x0A, 0x1A00, 0x1A00 },
            Package (0x06) { 0x09C4, 0x003A98, 0x0A, 0x0A, 0x1900, 0x1900 },
            Package (0x06) { 0x0960, 0x003A98, 0x0A, 0x0A, 0x1800, 0x1800 },
            Package (0x06) { 0x08FC, 0x003A98, 0x0A, 0x0A, 0x1700, 0x1700 },
            Package (0x06) { 0x0898, 0x003A98, 0x0A, 0x0A, 0x1600, 0x1600 },
            Package (0x06) { 0x0834, 0x003A98, 0x0A, 0x0A, 0x1500, 0x1500 },
            Package (0x06) { 0x07D0, 0x003A98, 0x0A, 0x0A, 0x1400, 0x1400 },
            /* High Frequency Modes (non-turbo) */
            Package (0x06) { 0x076C, 0x003A98, 0x0A, 0x0A, 0x1300, 0x1300 },
            Package (0x06) { 0x0708, 0x0036E1, 0x0A, 0x0A, 0x1200, 0x1200 },
            Package (0x06) { 0x06A4, 0x00333D, 0x0A, 0x0A, 0x1100, 0x1100 },
            Package (0x06) { 0x0640, 0x002FAC, 0x0A, 0x0A, 0x1000, 0x1000 },
            Package (0x06) { 0x05DC, 0x002C2D, 0x0A, 0x0A, 0x0F00, 0x0F00 },
            Package (0x06) { 0x0578, 0x0028C1, 0x0A, 0x0A, 0x0E00, 0x0E00 },
            Package (0x06) { 0x0514, 0x002567, 0x0A, 0x0A, 0x0D00, 0x0D00 },
            Package (0x06) { 0x04B0, 0x00221F, 0x0A, 0x0A, 0x0C00, 0x0C00 },
            Package (0x06) { 0x044C, 0x001EE8, 0x0A, 0x0A, 0x0B00, 0x0B00 },
            Package (0x06) { 0x03E8, 0x001BC3, 0x0A, 0x0A, 0x0A00, 0x0A00 },
            Package (0x06) { 0x0384, 0x0018B0, 0x0A, 0x0A, 0x0900, 0x0900 },
            /* Low Frequency Mode */
            Package (0x06) { 0x0320, 0x0015AE, 0x0A, 0x0A, 0x0800, 0x0800 }
        })
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU0.ACST Called", Debug)
            Store ("CPU0 C-States    : 29", Debug)
 
            /* Low Power Modes for CPU0 */
            Return (Package (0x06)
            {
                One,
                0x04,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    Zero,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xCD,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000020, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x06,
                    0xF5,
                    0x015E
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x07,
                    0xF5,
                    0xC8
                }
            })
        }
 
        Method (_DSM, 4, NotSerialized)
        {
            Store ("Method CPU0._DSM Called", Debug)
 
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                    0x03
                })
            }
 
            Return (Package (0x02)
            {
                "plugin-type",
                One
            })
        }
    }
 
    Scope (\_SB.CPU1)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU1.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized)
        {
            Store ("Method CPU1.ACST Called", Debug)
            Store ("CPU1 C-States    : 7", Debug)
 
            /* Low Power Modes for CPU1 */
            Return (Package (0x05)
            {
                One,
                0x03,
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000000, // Address
                            0x01,               // Access Size
                            )
                    },
                    One,
                    0x03E8,
                    0x03E8
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000010, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x02,
                    0x94,
                    0x01F4
                },
 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW,
                            0x01,               // Bit Width
                            0x02,               // Bit Offset
                            0x0000000000000030, // Address
                            0x03,               // Access Size
                            )
                    },
                    0x03,
                    0xC6,
                    0xC8
                }
            })
        }
    }
 
    Scope (\_SB.CPU2)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU2.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
 
    Scope (\_SB.CPU3)
    {
        Method (APSS, 0, NotSerialized)
        {
            Store ("Method _SB.CPU3.APSS Called", Debug)
 
            Return (\_SB.CPU0.APSS)
        }
 
        Method (ACST, 0, NotSerialized) { Return (\_SB.CPU1.ACST ()) }
    }
}
 

 

 

External (\_SB.CPU0, DeviceObj)
External (\_SB.CPU1, DeviceObj)
External (\_SB.CPU2, DeviceObj)
External (\_SB.CPU3, DeviceObj)

DSDTs used and how they came about.
//----- 
DSDT.aml - from the clover f4 export
SSDT-0.aml - sata
SSDT-2.aml - cpu saved output generated with ssdtPRGen.sh script in conjunction with the above dsdt
SSDT-7.aml - graphics from clover f4 export with igup patched above
SSDT-8.aml - added for en0 Ethernet ID used with NullEthernet.kext (more info in kext section)
//-----


.kext used

Kext installed
EFI/EFI/CLOVER/kext/10.11
 
FakePCIID_Intel_HD_Graphics.kext - video from https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads
FakePCIID.kext - link above
 
FakeSMC.kext - version 6.16.1372 was it http://sourceforge.net/projects/hwsensors/
 
NullEthernet.kext - required for iMessage(not tested yet). NullEthernet requires injection: using SSDTmethod add with ssdt-rmne.aml renamed to SSDT-8.aml for loading the en0. The physical mac address supplied in the SSDT!.
check that en0 is en0 with IORegistryExplorer, You may need to delete networkinginterfaces.plist from /Library/Preferences/SystemConfiguration and reboot, I had to delete as it was en2 will all the testing and changes i have been doing.
Interesting. when I use NullEthernet I get video artifacts, applying the 9mb azul patch seems to have no effect.
 
VoodooHDA.kext - audio, built in.
 
-- // for wifi to work i need to use RehabMan-USBInjectAll
USBInjectAll.kext else i get usb crashes.
RtWlanU.kext - USB wifi for the EW-7811un wifi dongle
 
SurFacePro 4 Type Cover works out of the box on SurfacePro 3, however single touch only on track pad.


Touch - Single Input User Environment

as the DSDT file is messy, I2C only seems to pick up the touch with out a dsdt, the underdevelopment kext work pretty good.
https://www.youtube.com/watch?v=1eSbTCgJP24 - this video is dated and old 100ms delay. You should really try the kext bellow.
http://monstersoft.com/sp3/VoodooI2C.kext.5ms.zip Touch has never been so good in so long. Single Input only.


Battery Fixes - incomplete, HELP

 

 

learn more here: https://github.com/RehabMan/OS-X-ACPI-Battery-Driver

too complex, maybe you can help? ? ?

some background reading here to assist http://www.tonymacx86.com/el-capitan-laptop-support/116102-guide-how-patch-dsdt-working-battery-status.html

 

The Code so far with so many errors and very incomplete. totally wrong *(*Y&^%&

 

 

#Maintained by: RehabMan for: Laptop Patches
#battery_Surface-Pro-v3.txt

# created by JULIANJC84 2015-10-25

# works for:
# Microsoft Surface Pro 3

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized)\n
{\n
	Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
}\n
end;

into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
    Store(Arg3, Local0)\n
    Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
    Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
    Return(Local0)\n
}\n
end;

# RECB READ EC BUFFER
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert 
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;

into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
// Arg2 - value to write\n
{\n
    ShiftRight(Arg1, 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

# 32-bit REGISTERS BATTERY 0
# ONLY ONE USED BY FBIF
into device label EC0 code_regex (B0SN),(\s+32) replace_matched begin 0SN0,8, 0SN1,8, 0SN2,8, 0SN3,8//%1%2 end; # VERIFIED
# FIX 32-bit METHODS
into method label FBIF code_regex \(\^\^SBRG\.EC0\.B0SN, replaceall_matched begin B1B4(^^SBRG.EC0.0SN0,^^SBRG.EC0.0SN1,^^SBRG.EC0.0SN2,^^SBRG.EC0.0SN3), end; # VERIFIED
# FIX 64,48,96 METHODS
into device label EC0 code_regex (B0DN,)\s+(64) replace_matched begin 0DNX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0CM,)\s+(48) replace_matched begin 0CMX,%2,//%1%2 end; #VERIFIED
into device label EC0 code_regex (B0MN,)\s+(96) replace_matched begin 0MNX,%2,//%1%2 end; #VERIFIED
# FIX REGISTERS 64,48,96
into method label FBIF code_regex B0DN\), replace_matched begin WECB(0x81,64,0DNX), end; # 64 BIT VERIFIED
into method label FBIF code_regex B0CM\), replace_matched begin WECB(0x89,48,0CMX), end; # 48 BIT VERIFIED
into method label FBIF code_regex B0MN, replace_matched begin WECB(0x75,96,0MNX), end; # 96 BIT VERIFIED

# 16-BIT REGISTERS BAT0
into device label EC0 code_regex (B0VL,)\s+(16,) replace_matched begin 0VL0,8,0VL1,8,//%1%2 end; # BVO1 VERIFIED
into device label EC0 code_regex (B0CR,)\s+(16,) replace_matched begin 0CR0,8,0CR1,8,//%1%2 end; # BCR1 VERIFIED
into device label EC0 code_regex (B0RC,)\s+(16,) replace_matched begin 0RC0,8,0RC1,8,//%1%2 end; # BRC1 FBIF VERIFIED
into device label EC0 code_regex (B0FC,)\s+(16,) replace_matched begin 0FC0,8,0FC1,8,//%1%2 end; # BIF2 VERIFIED
into device label EC0 code_regex (B0CC,)\s+(16,) replace_matched begin 0CC0,8,0CC1,8,//%1%2 end; # FBIF VERIFIED
into device label EC0 code_regex (B0DC,)\s+(16,) replace_matched begin 0DC0,8,0DC1,8,//%1%2 end; # BIF1 VERIFIED
into device label EC0 code_regex (B0DV,)\s+(16,) replace_matched begin 0DV0,8,0DV1,8,//%1%2 end; # BIF4 VERIFIED

into device label EC0 code_regex (B0AH,)\s+(16,) replace_matched begin 0AH0,8,0AH1,8,//%1%2 end; # BIF4 VERIFIED

# FIX 16-bit METHODS BAT0
into method label BVO1 code_regex \(B0VL, replaceall_matched begin (B1B2(0VL0,0VL1), end; # VERIFIED
into method label BCR1 code_regex \(B0CR, replaceall_matched begin (B1B2(0CR0,0CR1), end; # VERIFIED
into method label BRC1 code_regex \(B0RC, replaceall_matched begin (B1B2(0RC0,0RC1), end; # VERIFIED

into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0RC, replace_matched begin (B1B2(^^SBRG.EC0.0RC0,^^SBRG.EC0.0RC1), end; # VERIFIED 16 BIT
into method parent_label BAT0 code_regex \(\^\^SBRG\.EC0\.B0CC, replace_matched begin (B1B2(^^SBRG.EC0.0CC0,^^SBRG.EC0.0CC1), end; # VERIFIED 16 BIT

into method label BIF1 code_regex \(B0DC, replaceall_matched begin (B1B2(0DC0,0DC1), end;
into method label BIF2 code_regex \(B0FC, replaceall_matched begin (B1B2(0FC0,0FC1), end;
into method label BIF4 code_regex \(B0DV, replaceall_matched begin (B1B2(0DV0,0DV1), end;

into method label _BTP code_regex \(Arg0,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (Arg0, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;
into method label _BTP code_regex \(0x05,\s+\^\^SBRG\.EC0\.B0AH\) replace_matched begin (0x05, B1B2(^^SBRG.EC0.0AH0,^^SBRG.EC0.0AH1)) end;

# disable BAT1 device
into method label _STA parent_label BAT1 replace_content begin Return (Zero) end;






# // - - Surface Pro 3 Hex Offset Calculation - - \\
#Offsets are in bytes (8bits make 1 Byte)
#Offset then written in hex16
#Convert all lines to bits then to bytes then to hex

#Offset (0x53),  83bytes 83*8 = 664bits staring point (now we are in bits)
#B0TP,   16, 	83bytes 83*8 = 664bits staring point (now we are in bits)
#B0VL,   16, 	664+16 = 680bits
#B0CR,   16, 	680+16 = 696bits
#B0AC,   16,	696+16 = 712bits
#B0ME,   16,	712+16 = 728bits
#B0RS,   16, 	728+16=744bits
#B0RC,   16, 	774+16=760bits
#B0FC,   16, 	760+16=776bits
#B0MC,   16, 	776+16=792bits
#B0MV,   16, 	792+16=808bits
#B0ST,   16, 	808+16=824bits
#B0CC,   16, 	824+16=840bits
#B0DC,   16, 	840+16=856bits
#B0DV,   16, 	856+16=872bits
#B0SI,   16, 	872+16=888bits
#B0SN,   32, 	888+16=904bits
#B0MN,   96, 	904+32=936/8 = 0x75
#B0DN,   64, 	936+96=1032/8 =  129 = 0x81
#B0CM,   48, 	1032+64=1096/8 = 137 = 0x89
#B0MA,   8, 	1096+48=1144/8 = 143 =0x8f 

 

 

 

 

can you please tell me how to install touch driver

when i try to load VoodooI2C.kext with terminal by sudo kextload VoodooI2C.kext

i get this error(it is present in the location)

/Users/ashwin/VoodooI2C.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8).

 

also is there a way to have scrolling with touchpad like on windows

thank you

Share this post


Link to post
Share on other sites
On the surface pro hackintosh the only thing not working for the community is 
the internal wifi. I found this page for Linux kernal driver database 
suggesting that support for the 88w8797 was added.

Marvell WiFi-Ex Driver for USB8797 found in drivers/net/wireless/mwifiex/Kconfig

The configuration item CONFIG_MWIFIEX_USB:

prompt: Marvell WiFi-Ex Driver for USB8797
type: tristate
depends on: CONFIG_MWIFIEX && CONFIG_USB
defined in drivers/net/wireless/mwifiex/Kconfig
found in Linux kernels: 3.5–3.13, 3.13+HEAD
modules built: mwifiex_usb
Help text

This adds support for wireless adapters based on Marvell Avastar 88W8797 
chipset with USB interface.

If you choose to build it as a module, it will be called mwifiex_usb.

The link can be found here:

http://cateee.net/lkddb/web-lkddb/MWIFIEX_USB.html

Like I mentioned, this is the only thing from preventing the surface pro from 
being 100 percent hackintosh.

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

  • Similar Content

    • By tlefko
      Site
      checkout our official site! https://twortech.wixsite.com/pcmac Version Info
      This build is compatible up to Big Sur Beta
      Now Compatible with macOS 11 Please leave feedback with issues or w/o Comitted to Updating up to OS 11 Latest Release Notes
      Fixed Bluetooth and Wifi Stability Issues Improved Preformance and Power Managements Can Provide Files for Display Overrides Additional Patches for 4K Display updated for Big Sur if using unsupported wifi card disable it in bios use config.plist FIXED SLEEP WAKE BUG Exact same functionality as Catalina What Works / Does Not
      Everything works minus in-built mic Some displays may be detected as 40hz (working on fix) Notes
      Never tested USB C over Display Output, everything else works flawlessly USB devices eject on sleep (not really an issue) POST
      run sudo pmset -a hibernatemode 0 If no mouse, install all voodoo kexts using Kext Utility Description
      This esentially an ultra-simplistic version that is stable without the use of a deploy or complicated file installations and copies. You can easily view all the SSDT patches along with configuration files for the bootloader as they are all documented clearly in the files. This does include a copy of Clover, which of course I do not contribute to and am only responsible for the provided files, patches, and kext placements This guide provides a working setup with little knowledge of the topic and without "optimization" (because often they can break things). But, it is fully functional and preforms properly and is stable Make sure you are using DW1560 for wifi or else KP. If not using remove BRCM kexts from CLOVER>kexts>other. BIOS Setup
      Disable Secure Boot INSTALL (VERY IMPORTANT)
      Due to structural changes in the setup of apple's Big sur, this EFI cannot boot the installer it can only boot into a system / device that has already been created and setup. To do this, you need to install Big Sur to a virtual machine (lots of guides online) and then create an dmg of that system, and restore it onto your HDD using the 'dd' command There are various guides online how to get this virtual machine setup complete. You can then use the attached EFI folder to boot and use macOS big Sur You can use this video to show you how to get your macOS pre-installed onto your hard drive https://www.youtube.com/watch?v=HMU3nhcbWHw Boot Entry Setup
      Due to the fact this BIOS is locked down pretty heavily, reccomended to use Windows to find a free tool to add UEFI boot entries Messages and Facetime
      Gnerate your own Serials, Board Numbers, MLB There are various guides online to do this and as default they're set to essentially Null (Fakeserial) This is fairly straightforward and there is lots of external recourses, or you can contact me for support. Headphones and Audio
      All audio from speakers should work perfectly along with Bluetooth and USB audio no internal mic Credits
      MaLd0n for DSDT Patches (HUGE SHOUTOUT) Original Kext Authors Clover Team Finished!
      Congratulations, there really aren't any more steps that are required. Feel free to contact me with any questions. Donations
      Send me a coffee/beer lefkotyler@gmail.com  
       
      *check GitHub for latest releases and faster support https://github.com/tlefko/HP-Envy-13-Big-Sur
      EFI.zip
    • By Tasco
      Hello there,
      Anybody here could help me to understand about 'Polling' mode and 'Interrupt' mode in I2C touchpad?
      My questions are:
      1. How get to know if we are running Polling or Interrupt mode in IOreg?
      2. How to set trackpad to 'Polling' mode?
      3. Which one is the best?
       
    • By MaLd0n
      First...
      If you need DSDT edits... -Extract tables with F4 key in Clover boot screen! -Run it and send me files! RunMe.app   Installation --Create a bootable copy of El Capitan /  Sierra / High Sierra / Mojave https://github.com/chris1111/Create-Install-Media/releases   --Install Clover in USB stick https://github.com/CloverHackyColor/CloverBootloader/releases   --Replace with my Clover folder https://www.olarila.com/topic/5676-clover-folder-for-all-chipsets/   --Install EL Capitan / Sierra / High Sierra and boot into system!     Post Installation   --Install Clover and replace with my folder   https://www.olarila.com/topic/5676-clover-folder-for-all-chipsets/     --Reboot and activate video!   Bingo! Now you need a fine tune! DSDT Time!   My DSDT GA P35-DS3   DSDT.MaLd0n.zip     Patches -FIX ERRORS AND WARNINGS -HPET -SATA -SLPB -DARWIN -LPC -HDEF -RTC -EHCI -UHCI -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -LAN -EC -PNLF --Native Power Management
       
      Use Clover, check Generate P and C States
       
      --Brightness
      Install .app, select the required permission and reboot. Work in F1 / F2 keys!
      NativeDisplayBrightness.app.zip


      https://github.com/Bensge/NativeDisplayBrightness/releases
      *in some cases .app don't work, check patches in config.plist inside Clover folder Post Install
       
      --AUDIO
       
      Device HDEF + AppleAlc + Lilu
       
      --install Lan driver by Mieze
        -Atheros   http://www.insanelymac.com/forum/files/file/313-atherose2200ethernet/   -Intel   http://www.insanelymac.com/forum/files/file/396-intelmausiethernet/   -Realtek   http://www.insanelymac.com/forum/files/file/88-realtekrtl8111-binary/   --Links   -FakeSMC   https://bitbucket.org/RehabMan/os-x-fakesmc-kozlek   -Audio   https://github.com/vit9696/AppleALC http://www.insanelymac.com/forum/topic/293863-applehda-patch-requests/   -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!   Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad and many, many, many others!   We're all here to have fun and learn from each other!   ENJOY!  
    • By samricheson
      A few times a day I am getting a system shutdown/restart "had to restart because of a problem". Here are the Error Report and my EFI folder in zip format attached to this post.
       
      Panic Report:
      Panic(CPU 0, time 10107525818750): NMIPI for spinlock acquisition timeout, spinlock: 0xffffff80acb04200, spinlock owner: 0xffffff80b59c5a40, current_thread: 0xffffff80b59c5a40, spinlock_owner_cpu: 0x0
      RAX: 0x0000000000000000, RBX: 0x0000000000000004, RCX: 0xffffff801a5355e2, RDX: 0xffffff801a5358ec
      RSP: 0xffffff8723301e00, RBP: 0xffffff8723301e80, RSI: 0x0000000000000004, RDI: 0xffffff875db3f024
      R8:  0x0000000000000000, R9:  0x0000000000000024, R10: 0x0000000000000051, R11: 0x0000000000000000
      R12: 0x0000000000000000, R13: 0x0000000000000000, R14: 0x0000000080000001, R15: 0xffffff875db3f024
      RFL: 0x0000000000000097, RIP: 0xffffff801a5355e5, CS:  0x0000000000000008, SS:  0x0000000000000000
      Backtrace (CPU 0), Frame : Return Address
      0xffffff8723301cb0 : 0xffffff801a649e8b mach_kernel : _interrupt + 0x12b
      0xffffff8723301d00 : 0xffffff801a4c5d47 mach_kernel : _return_to_iret + 0x157
      0xffffff8723301e80 : 0xffffff7f9fdb0b55 com.apple.driver.AppleGFXHDA : __ZN21AppleGFXHDAController15interruptFilterEP28IOFilterInterruptEventSource + 0xf5
      0xffffff8723301ed0 : 0xffffff801ac31e46 mach_kernel : __ZN28IOFilterInterruptEventSource23normalInterruptOccurredEPvP9IOServicei + 0x76
      0xffffff8723301f00 : 0xffffff7f9b13a052 com.apple.iokit.IOPCIFamily : __ZN32IOPCIMessagedInterruptController15handleInterruptEPvP9IOServicei + 0x126
      0xffffff8723301f50 : 0xffffff7f9c85288c com.apple.driver.AppleACPIPlatform : __ZN23AppleACPIPlatformExpert23dispatchGlobalInterruptEi + 0x2e
      0xffffff8723301f60 : 0xffffff7f9c85b547 com.apple.driver.AppleACPIPlatform : __ZN31AppleACPICPUInterruptController15handleInterruptEPvP9IOServicei + 0x6b
      0xffffff8723301f80 : 0xffffff801a649edd mach_kernel : _interrupt + 0x17d
      0xffffff8723301fd0 : 0xffffff801a4c5bed mach_kernel : _hndl_allintrs + 0x11d
      0xffffff8743b2bda0 : 0xffffff801aa23dea mach_kernel : _workq_thread_set_max_qos + 0x63a
      0xffffff8743b2be00 : 0xffffff801aa283d6 mach_kernel : _workq_kern_threadreq_initiate + 0x446
      0xffffff8743b2be50 : 0xffffff801aa5292e mach_kernel : _kevt_getstat + 0x1d4e
      0xffffff8743b2be90 : 0xffffff801aa53846 mach_kernel : _kqueue_alloc_turnstile + 0xec6
      0xffffff8743b2bec0 : 0xffffff801a561565 mach_kernel : _thread_call_delayed_timer + 0xec5
      0xffffff8743b2bf40 : 0xffffff801a561091 mach_kernel : _thread_call_delayed_timer + 0x9f1
      0xffffff8743b2bfa0 : 0xffffff801a4c513e mach_kernel : _call_continuation + 0x2e
            Kernel Extensions in backtrace:
               com.apple.iokit.IOPCIFamily(2.9)[BE052F4D-9B80-3FCD-B36D-BACB7DEE0DF2]@0xffffff7f9b11a000->0xffffff7f9b152fff
               com.apple.driver.AppleACPIPlatform(6.1)[3A6D8ECD-C39E-39C8-984A-2CC417488A56]@0xffffff7f9c84b000->0xffffff7f9c8e5fff
                  dependency: com.apple.iokit.IOACPIFamily(1.4)[0A7D7382-66FE-391B-9F93-97A996256C25]@0xffffff7f9b111000
                  dependency: com.apple.iokit.IOPCIFamily(2.9)[BE052F4D-9B80-3FCD-B36D-BACB7DEE0DF2]@0xffffff7f9b11a000
                  dependency: com.apple.driver.AppleSMC(3.1.9)[4589419D-7CCC-39A9-9E2F-F73FE42DD902]@0xffffff7f9b678000
               com.apple.driver.AppleGFXHDA(100.1.428)[69920C36-8BC7-3198-BCE1-623F0D39BDA4]@0xffffff7f9fda8000->0xffffff7f9fe3ffff
                  dependency: com.apple.iokit.IOPCIFamily(2.9)[BE052F4D-9B80-3FCD-B36D-BACB7DEE0DF2]@0xffffff7f9b11a000
                  dependency: com.apple.iokit.IONDRVSupport(576.1)[946300BB-3488-3655-B4A3-2263D72C525C]@0xffffff7f9c0b4000
                  dependency: com.apple.iokit.IOAudioFamily(300.2)[F0D7D949-499E-37D6-B15A-365091650B05]@0xffffff7f9c03b000
                  dependency: com.apple.iokit.IOGraphicsFamily(576.1)[B1C0006F-E1F5-37D9-9548-5F918E92B422]@0xffffff7f9b159000
      BSD process name corresponding to current thread: kernel_task
      Boot args: keepsyms=1 alcid=1 darkwake=2 shikigva=80
      Mac OS version:
      19F101
      Kernel version:
      Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64
      Kernel UUID: 54F1A78D-6F41-32BD-BFED-4381F9F6E2EF
      Kernel slide:     0x000000001a200000
      Kernel text base: 0xffffff801a400000
      __HIB  text base: 0xffffff801a300000
      System model name: iMac19,1 (Mac-AA95B1DDAB278B95)
      System shutdown begun: NO
      Panic diags file available: YES (0x0)
      System uptime in nanoseconds: 10107526134413
      panic(cpu 10 caller 0xffffff801a63fb30): "Spinlock acquisition timed out: lock=0xffffff80acb04200, lock owner thread=0xffffff80b59c5a40, current_thread: 0xffffff80b7852520, lock owner active on CPU 0x0, current owner: 0xffffff80b59c5a40, time: 10107526134949"@/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/xnu/xnu-6153.121.2/osfmk/i386/locks_i386.c:501
      Backtrace (CPU 10), Frame : Return Address
      0xffffff8761493c60 : 0xffffff801a51f5cd mach_kernel : _handle_debugger_trap + 0x49d
      0xffffff8761493cb0 : 0xffffff801a658b05 mach_kernel : _kdp_i386_trap + 0x155
      0xffffff8761493cf0 : 0xffffff801a64a68e mach_kernel : _kernel_trap + 0x4ee
      0xffffff8761493d40 : 0xffffff801a4c5a40 mach_kernel : _return_from_trap + 0xe0
      0xffffff8761493d60 : 0xffffff801a51ec97 mach_kernel : _DebuggerTrapWithState + 0x17
      0xffffff8761493e60 : 0xffffff801a51f087 mach_kernel : _panic_trap_to_debugger + 0x227
      0xffffff8761493eb0 : 0xffffff801acc27cc mach_kernel : _panic + 0x54
      0xffffff8761493f20 : 0xffffff801a63fb30 mach_kernel : _spinlock_timeout_NMI
      0xffffff8761493f60 : 0xffffff801aa247e9 mach_kernel : _workq_thread_set_max_qos + 0x1039
      0xffffff8761493fa0 : 0xffffff801a4c513e mach_kernel : _call_continuation + 0x2e
      BSD process name corresponding to current thread: apsd
       
       
      Panic Report and EFI.zip
    • By deomkds
      Esse post tem o propósito de documentar os patches necessários para a utilização da kext VoodooI2C e seu satélite VoodooI2CHID no notebook Acer Aspire F15 (ACER-F5-573G).
       
      VoodooI2C é um projeto que adiciona suporte para dispositivos que utilizam o barramento I2C. O trackpad ELAN0501 do notebook Acer Aspire F15 utiliza esse barramento internamente.
       
      As outras opções para ativar o trackpad neste notebook envolvem usar o VoodooPS2Controller ou o ApplePS2SmartTouchPad. O problema do primeiro é que... bem, ele não funciona. No momento em que o trackpad é tocado, o cursor pula pela tela toda sem parar. Já o segundo é o mais fácil pois funciona bem e é capaz de prover funções de multitoque e gestos. Porém, eu sempre achei alguns gestos do ApplePS2SmartTouchPad meio esquisitos, como a rolagem que não acompanha o toque precisamente como aconteceria em trackpads Synaptics no macOS.
       
      Então descobri que era possível usar o VoodooI2C com trackpads ELAN e resolvi tentar. Ao contrário do ApplePS2SmartTouchPad, o VoodooI2C necessita de muita configuração prévia, sendo o mais complicado o processo de GPIO pinning, mas fiquei bastante feliz com os resultados. Esse post documenta os patches usados.
       
      Meu hackintosh é baseado na EFI de johnnywolinger para macOS 10.14. Não o conheço, mas já deixo meus agradecimentos por ter facilitado minha vida. Como estou rodando o Catalina 10.15.5, tive que atualizar algumas kexts (WhateverGreen se não me engano) para evitar um KP durante o boot. A DSDT que eu estou utilizando veio do repositório dele. As únicas alterações que fiz foram os patches necessários ao VoodooI2C.
       
      PASSOS
      1. Baixe o MaciASL neste link.
      2. Abra a sua DSDT nele e aplique os patches [GPIO] GPIO Controller Enable [SKL+] e [Windows] Windows 10 Patch, conforme foto no spoiler. O propósito desses patches é explicado em detalhes no guia de instalação do VoodooI2C. Simplificando, o primeiro patch ativa os interrupts e o segundo permite que o macOS enxergue o dispositivo I2C.
      3. A partir disso, é necessário aplicar os patches específicos de cada computador. No spoiler, eu explico o processo que usei para encontrar as informações. O texto só faz sentido se você já leu o guia de instalação original. Caso não esteja interessado nos detalhes, siga em frente.
      4. Na DSDT, encontre o method _CRS, que está no final do dispositivo TPDE.
      5. Encontrado o Method _CRS, copie o código abaixo.
      Name (SBFG, ResourceTemplate () { GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000, "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x003A } }) Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings { Name (SBFB, ResourceTemplate () { I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C0", 0x00, ResourceConsumer, , Exclusive, ) }) Return (ConcatenateResTemplate (SBFB, SBFG)) } 6. Copiado, volte ao MaciASL e selecione todo o Method _CRS, conforme a foto. Selecione desde o "Method (_CRS" até aquela última chave que está no mesmo nível de Method.

       
      7. Cole, substituindo todo o Method. Deverá ficar assim depois de colado. Note que temos um item chamado Name SBFG e um chamado Method _CRS.

       
      8. Se estiver tudo certo, compile a DSDT e coloque na pasta EFI/ACPI/Patched, onde o Clover está instalado.
       
      Pra finalizar, basta instalar as kexts VoodooI2C e VoodooI2CHID na pasta de kexts do Clover. Ambas podem ser baixadas aqui.
      Se tudo der certo, ao reiniciar, o trackpad deverá estar funcionando corretamente.

      CONSIDERAÇÕES FINAIS
      Se isso parece difícil demais, não esquenta. A VoodooI2C nem é tão melhor que a ApplePS2SmartTouchPad assim. Fiz mais por curiosidade do que por necessidade.
      Se você quiser BAIXAR A DSDT PRONTA, acesse o repositório do johnnywolinger. Tem tudo lá.
      Por que usar VoodooI2CHID em vez de VoodooI2CELAN? Basicamente, a segunda não funciona. Eu testei tanto com o pin 0x3A quanto com o pin 0x9A. Aparentemente, ela só funciona com dispositivos ELAN mais antigos.
      Por fim, quero transformar esse patch num patch automático a ser utilizado no MaciASL, só que não sei como faz. Se eu aprender, edito o post.
×