Jump to content
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By fusion71au
      This is a brief guide on how to create a vanilla El Capitan (also same process for Sierra) OS X Installer USB with an updated prelinked kernel containing FakeSMC.

      It is tailored for those users who want to understand the “nuts and bolts” of how to create an installer and also to help brush up on their terminal skills (rather than have one made for them with the numerous automated “tools” available or even Apple’s createinstallmedia) :
       
       
      Specifically, it is also a “Proof of Concept” which shows that installation is possible without even having to rely on boot loader kext injection.

      Prerequisites
      Existing Yosemite installation (or Mavericks - see post#4 for steps 7,8) “Install OS X El Capitan.app" downloaded to the Applications folder Pacifist FakeSMC.kext - Slice or Kozlek branch Bootloader - Clover or Chameleon 8GB or larger USB drive (16GB recommended), formatted HFS+ (MBR or GUID) named “Installer”  
      Procedure
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Open OS X terminal and type the following lines, followed by <Enter> after each line.
          The image restore and file copying may take a while to complete, and at the end of the process, the Installer volume is renamed to “OS X Base System"....
       
      sudo -s hdiutil attach /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg asr restore -source /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg  -target /Volumes/Installer -erase -format HFS+ -noprompt -noverify rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages cp -av /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System/System/Installation cp -av /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg /Volumes/OS\ X\ Install\ ESD/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System diskutil unmount /Volumes/OS\ X\ Install\ ESD exit 3.  Right click on the “OS X Base System” Volume and click “Get Info”
       

      4.  Click on the lock icon and untick “Ignore ownership on this volume”
       

      5.  Extract/Copy the El Capitan Kernels folder into /System/Library/ of the USB with Pacifist.  NB It is found in the "Essentials.pkg" in /System/Installation/Packages
       

      6.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel —> OG.prelinkedkernel
       

      7.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of the installer USB using Finder.
       

      8.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel…..
       
      sudo -s chmod -R 755 /Volumes/OS\ X\ Base\ System/Library/Extensions chown -R 0:0 /Volumes/OS\ X\ Base\ System/Library/Extensions touch /Volumes/OS\ X\ Base\ System/System/Library/Extensions kextcache -u /Volumes/OS\ X\ Base\ System exit Any errors should be noted but the output below is normal e.g.


      9. Install your Bootloader targeting the OS X Base System volume
       
       
       
       
      10.  Boot your system with the USB without injected kexts into the OS X Installer GUI....
       
       
       
       
       
      Post Install
      The original prelinked kernel in a fresh install of El Capitan will also lack FakeSMC ie it will only be linked to Apple signed kexts.  In order to boot into El Capitan the first time around without boot loader kext injection, the PLK needs to be rebuilt for the El Capitan volume like we did for the installer:
       
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel for the El Capitan volume —> OG.prelinkedkernel
      3.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of El Capitan using Finder
      4.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel.  In this example, the El Capitan volume is named "El_Capitan" - change if you have named it something else...
      sudo -s chmod -R 755 /Volumes/El_Capitan/Library/Extensions chown -R 0:0 /Volumes/El_Capitan/Library/Extensions touch /Volumes/El_Capitan/System/Library/Extensions kextcache -u /Volumes/El_Capitan exit 5. Install your Bootloader targeting the El Capitan volume.  This step is only necessary if you are installing El Capitan on a new drive without existing boot loader (not required if installing on a disk with existing boot loader beside Yosemite).
      6. Reboot your system without injected kexts into El Capitan!
       
       
      Other links
      The All-In-One Guide to Vanilla OS X for beginners
       
      Updates for Sierra and High Sierra   Custom Prelinkedkernel Generator Tool I have made a custom prelinkedkernel generator "PLK.tool" for Sierra + El Capitan.  Instructions:   1.  Download and extract the attached BaseSystem_PLK.tool.zip into your ~/Downloads folder.   2.  Copy any extra kexts necessary for booting your hack to ~/Downloads/BaseSystem/ExtraKexts (e.g. FakeSMC, VoodooPS2Controller), making sure SIP is disabled. 3.  Copy BaseSystem.dmg to ~/Downloads/BaseSystem  4.  Open terminal and run the following commands... cd ~/Downloads/BaseSystem chmod +x PLK.tool ./PLK.tool ---> supply your admin password ---> will place your new custom prelinkedkernel on the desktop.       macOS High Sierra bypass Firmware and MBR checks in post#13.
      BaseSystem_PLK.tool_ElCap.zip
      BaseSystem_PLK.tool_Sierra.zip
      BaseSystem_PLK.tool_Mojave.zip (need to run in Mojave to avoid dependency errors)
      BaseSystem_PLK.tool_Catalina.zip
    • By fusion71au
      Clover r5051 ISO compiled with GCC and minimal config.plist compatible for use in VMWare Workstation.
       
      Tested with unlocked Workstation 15 running OSX 10.9 -->10.15 guest in Windows X64 host.
       
      Installation
      1. Download and unzip "EFI_Clover_r5051 for VMware.zip". Mount Clover-v2.5k-5051-X64.iso by double clicking on it.
      2. Mount your VM's EFI System Partition eg in terminal
      sudo diskutil mount disk0s1   3. Copy EFI folder from step 1 into the EFI partition
      4. Shutdown the VM, add bios.bootDelay = "3000" to your VM's vmx file
      5. Reboot your VM, press <F2> to access the VMware Boot Manager and add CLOVERX64.efi to the boot menu.
       
      Substitute your own unique and valid MLB and ROM variables in the /EFI/CLOVER/config.plist (Rt Variables section) to activate iMessage/Facetime on your VM.
    • By gengik84
      Ciro82==>>Thanks
      Uno dei tre Requisiti:
      Hack funzionante Mac vero Macchina virtuale Impostazioni Bios per il boot:
      Cercate una voce  del tipo “Sata Mode”e settatela  in AHCI
      Secure Boot: disabilitare o altri sistemi operativi
      CSM: UEFI o LEGACY, oppure a secondo del tipo di installazione
      VT-x / VT-d disable
      *Nota: Secure boot e csm valido solo per bios UEFI
      Materiale Occorrente 
      "OS X (Versione App.Store)”
      USB 8GB  *nota: nel caso di usb superiori dovrà essere partizionata, in modo da avere una partizione su cui "lavoreremo,di questa dimensione
      ShowAllfiles 
      kext Wizard 
      Bootloader Clover_2.3k_r xxx:                   http: //sourceforge.n.../cloverefiboot/
      Clover Configurator:                                    http: //mackie100proj...a.org/download/
      FakeSmc.kext:                                            https://github.com/kozlek/HWSensors/releases
      In allegato,a fondo pagina troverete un "pacchetto" contenente : ShowAllfiles, Kext Wizard, FakeSmc.kext: 
      App alternative:
      ESP Mounter Pro: per montare la partizione EFI
      Vi illustrerò tre metodi per creare la usb, ma sono ben distinti… quindi usatene soltanto uno
      Metodo 1: “Install Mac_OS_X.command” Metodo 2: “Create Install Media di Apple” Metodo 3:  Metodo Manuale Alla fine delle preparazione dell’installer, tutti i metodi necessitano l’installazione del Bootloader Clover sulla a vostra USB.
      “CONDIZIONI OBBLIGATORIE”
      PUNTO 1: che la vostra usb sia stata preventivamente nominata USB (caratteri maiuscoli) Tabella di partizione GUID e la formattazione in  Mac esteso Journaled.
      PUNTO 2: che l’installer di OSX si trovi in Applicazioni
      Utility Disco 
      Selezionate la pendrive, andate su “partizione”, selezionate “1 partizione”, impostate Mac OS esteso journaled e date il nome USB, poi in basso cliccate su opzioni e scegliete Tabella partizione (GUID), poi “applica”.
      Immagine 
      Riporto nuovamente l’operazione sopra citata adoperando dal nuovo Utility Disco introdotto su El Capitan.
      Rimane ovviamente invariato nome della usb in ==>> USB (maiuscolo), la formattazione in Mac esteso Journaled e sia la mappa partizione in GUID
      Da utility disco selezionate la usb, cliccate su inizializza.
      dal menù a tendina scegliete la relative impostazioni
      Immagine  
      Procedura effettua da High Sierra è la stessa della precedente, l'unica attenzione e operazione da aggiungere in primis  è cliccare nel menù a tendina in alto sulla sinistra di utility disco e selezionare "mostra tutti i dispositivi"
      Immagine 
       
      =====================
        METODO 1: "Install_Mac_OS_X.Command" Lo script che trovate allegato in fondo alla guida permette la creazione dell’installer in maniera automatica
      Include la possibilità di scelta di tre versioni di osx
      Yosemite El Capitan Sierra Il risultato finale è come quello del metodo "manuale" descritto nella guida, per cui l'installazione avverrà in un solo passaggio, non in due come con il metodo createinstallmedia. 
      Offre inoltre la possibilità di inserire un kernel patchato, utile, per esempio, per chi usa AMD.
      Rimane invariato il nome dato alla usb in USB, mappa partizione e tipo di formattazione
      Se la vostra usb non sarà rinominata nel modo corretto, verrete avvisati dal terminale, quindi non dovrete far altro che apportare la relativa modifica e rilanciare nuovamente lo script
      Esempio
      ===========================
      Metodo 2 
      L'intento è quello di usare la procedura fornitaci direttamente da Apple, "createinstallmedia", introdotta  con Mavericks. 
      Tale metodo prevede l’uso del terminale che via via se ne sta perdendo il “valore e l’uso”
      Inizialmente per i neofiti potrà sembrare problematico ma alla fine non è così.
      Durante il post installazione alcune operazioni ne richiedono l’ uso.
      Perciò mi sono chiesto perchè, qualora uno volesse, non far conoscere da subito un po’ questo “strumento”???
      Per favorirvi vi ho allegato i comandi già  “pronti”, i quali li potrete copiare ed incollare sul terminale.
      A questo punto aprite il terminale, copiate ed incollate il comando sottostante e premete invio, digitate la vostra password e premete nuovamente invio.
      Comando per creare USB con Yosemite:
      sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction  
      Comando per creare USB con El Capitan
      sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction Comando per creare USB con Sierra 
      sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app/ --nointeraction Per creare USB con Hight Sierra o Mojave usate --> C_I_M (aggiornato per 10.14)
       
      Funziona con il drag & drop sul terminale, in questo caso non vi è necessità che la usb sia nominata in un determinato modo ed essendo basato su create install media ovviamente funziona da 10.9 a 10.14.... 
      BENE…IL PROCESSO DI CREAZIONE E’ INIZIATO…
      AVREMO CIRCA 20/30 MINUTI DI TEMPO LIBERO A CUI DEDICARSI A CIO’ CHE VOGLIAMO………………………………………..  
      COLGO L’OCCASIONE PER FARVI NOTARE LA VELOCITA’ E LA SICUREZZA DI QUESTO METODO
      CONFRONTATE QUESTO CON IL TERZO METODO E NOTERETE CHE CON UN SOLO PASSAGGIO, OSSIA IL COMANDO DATO AL TERMINALE, FACCIAMO IN UNA SINGOLA OPERAZIONE TUTTI I VARI STEP DESCRITTI SULL’ ALTRO METODO.
      DETTO QUESTO, MOLTO IMPORTANTE E’ SOTTOLINEARE CHE COSI’ FACENDO EVITEREMO ERRORI  DI DISTRAZIONE RIGUARDO AI PASSAGGI O FRAINTENDIMENTI.
      Immagine 
      Potete adesso passare ad installare il bootloader Clover sulla vostra usb.
      *NOTA*:
      Avendo usato questo metodo l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      =========================
      METODO "MANUALE"....  (lascio per futura memoria-Compatibile fino a 10.12)
      ==========================
      Bootloader
      **Nota:** Installazione in UEFI  dipenderà dalla scheda madre in vostro possesso, quindi se non supporta tale opzione , il bootloader dovrà essere installato in  modalità Legacy.
       Vi invito, qualora non sapeste questa informazione, a recarvi nel sito ufficiale del produttore e controllare le informazioni a riguardo
      Fatto questo dobbiamo installare  Clover sulla usb.
      A seconda del tipo di Bios o al tipo di installazione che vogliamo fare UEFI o Legacy avremo ovviamente configurazioni diverse in questa fase.
      Lanciate il pkg.
      Immagine 

       
      Cambiate la destinazione di installazione ad USB oppure Install Mac_OS_X (a secondo del tipo di creazione eseguita)
      Successivamente clicchiamo su "Ad Hoc"
      Per Installazione UEFI
      Mettete i flag   : Installazione solo per avvio UEFI
                               : installare Clover nella ESP
                               : Driver64UEFI  AptioMemory --> (consigliato) ->  Link download
       Può essere solo aggiunto manualmente scaricando dal link sopra e collocandolo nella rispettiva cartella
       NOTA: in questo caso non selezionare nessun OsxAptioFixDRV durante l'installazione di clover oppure rimuovetelo                        successivamente. 
                               : Driver64UEFI  ApfsDriverLoader --> (consigliato) --> sostituisce l'uso del driver apfs.efi
                               : Selezionate l'altri driver come da successiva immagine,
       
      *Nota: Altri driver che si possono usare  al suo posto  sono:
       informazioni 
       
      Proseguite con l’installazione.
      Immagine 
      ** Ricordate che avrete accesso a questa cartella dopo aver montato la partizione EFI**
      ===========================
      Per installazione Legacy
      Immagine 
      ===========================
      Impostazione per config.plist:
      Con clover configurator “montate” la partizione EFI della usb.
      1) Per fare questo nel menù di sinistra, cliccate su “Mount EFI”
      2) individuate la partizione relativa alla vostra usb, a questo punto montiamo la relativa partizione EFI  selezionando l’apposito pulsante “Mount Partition”
      Immagine 
      3) Successivamente cliccate su “Open Partition”.. recatevi in EFI/Clover ed aprite il config.plist
      4) Sezione ACPI: Disabilitate tutti i fix sia del menù 1 che del menù 2
      Immagine 
      5) Sezione BOOT: Sole se si sta installando Yosemite mettete il flag su kext-dev-mode=1
      Immagine 
      6) Sezione RT Variables: Se si sta installando El Capitan oppure Sierra, aggiungere i valori: BooterConfig= 0x28, CsrActiveConfig= 0x67
      Immagine 
      7) Sezione System Parameters: Su inject kext mettete YES
      Immagine 
      ===========================
      Nota: Su El Capitan, è stato introdotto SIP (System Integrity Protection)
      Info:
      ===========================
      Recatevi in EFI/Clover/kext/10.x 
      X= alla versione di osx che state installando. Per esempio se installerete Yosemite dovrete recarvi nella cartella 10.10, con El Capitan in 10.11….ecc
      Se non ci fosse tale cartella, createla e nominatela voi a “modo”.
      Copiatevi all’interno FakeSmc.kext
      *Nota se venite già da altre vostre configurazioni, oltre kext sopra citato ,potete mettere gli altri necessari per il vostro hardware
      Stessa cosa se avete DSDT e/o SSDT potete copiarli in EFI/Clover/Acpi/Patched
      Immagine 
      
      Per High Sierra:
      Scaricare il driver apfs.efi a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
       
      Per chi volesse continuare ad usare HFS vi rimando a questo post:
        Come installare High Sierra in HFS direttamente dalla usb  
      Utenti Laptop:  Nel 99% è obbligatorio disattivare la grafica discreta Nvidia/Amd per installare questo nuovo osx
                                     Quindi aggiungete --> SSDT-Disable_DGPU.aml.zip
                                     in EFI/Clover/acpi/Patched della usb
      --------------------------------------------------------------------
      Per Mojave:
      Scaricare il driver apfs.efi per 10.14 a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
      Versione di clover non antecedente a V_4015
      Volete usare HFS?
      E' possibile fare un installazione diretta su altro disco o partizione, nel caso può essere usato anche per effettuare aggiornamenti...
      nel caso guardate...
       Mojave in HFS 
       Oppure direttamente da usb  
       
      Fatto questo avrete la vostra USB bootable per installare OSX.
      ………Non scordatevi Fakesmc.kext da mettere nella relativa cartella…. senza il quale non farete mai il Boot......
      *NOTA: se usato il terminale per la creazione della usb, l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      **NOTA** Se avete processori Broadwell,Skylake o Kabylake...usate FakeSmc.kext e relativi sensors che trovate all'interno del secondo pacchetto.. (potete usarlo anche sui precedenti senza problemi, essendo una versione più aggiornata ha ulteriore supporto per le cpu più recenti)
      Update: Fakesmc e sensors versione 6.26
      Post installazione... post #2           
       Buon Hack….. 
      Aggiornamento:Install_Mac_OS_X.command.zip (compatibile da 10.10 a 10.12)
      le info le trovate a questo post
      Ringrazio @Ciro82 che mi ha aiutato nel preparare questa guida.
      Pacchetto.zip
      Pacchetto-2.zip
      Pacchetto-Fake+Sensors 6.26.1440.zip
      C_I_M.zip
       
       
       
       
       
       
       
       
       
       
       
       
       
    • By fusion71au
      Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VirtualBox 5.x.x on a Windows Host
      Following on from my previous guide on how to create a VMware virtual machine running Vanilla OS X El Capitan in Windows, I’ve decided to write a similar guide for creating a VirtualBox El Capitan VM. 
       
      The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
       
      There are other tutorials and videos on the net about running OS X on Windows machines using pre-made VMDK disk images but you can never guarantee what else is in there….
       
      I’ve gathered info for this guide from several threads in the Multibooting and Virtualisation section of this forum and also the wider internet eg
       
      @colt2 HOW TO: Create a bootable El Capitan ISO for VMware
      @dsmccombs comment on faking Ivybridge Processor
      @E:V:A http://forum.xda-developers.com/showpost.php?p=55572430&postcount=6
      @Tech Reviews video tutorial https://www.youtube.com/watch?v=t7X07U63lwg.
      VirtualBox Forum: Status of OSX on OSX
       
      Requirements
         Intel PC with four or more CPU cores running Windows 7 X64 or later OS (2 or more cores needed for OS X)    4GB or more RAM (2GB or more will be needed for OS X)    Hard Disk with at least 40GB free for Virtual Machine    Oracle VM VirtualBox v 5.0.34    Install OS X El Capitan app and Mac or Hack to prepare installation iso <-- Now, no longer necessary to have previous access to a Mac or Hack by building the Installer.app from scratch - see post#75    16GB or larger exFAT formatted USB stick to transfer El Capitan iso from Mac/Hack to Host PC  
      Prepare Installation ISO on your Mac or Hack
      1.  On your Mac or Hack, download "Install OS X El Capitan.app" from the App Store into your Applications folder.
      2.  Download and unzip the CECI.tool (attached to this post) into your ~/Downloads folder. The commands in this executable script are shown below for informational purposes.  Note: you will need approx 16GB of free space on your hard disk for the script to complete.
       
       
       
      3.  Open OS X terminal, then run the following commands to execute the script:
      cd downloads chmod +x CECI.tool ./CECI.tool 4.  At the end of the process, you will have an El Capitan iso on your desktop - copy this onto an exFAT formatted USB for use on the PC Host later.
       
       
      Create an El Capitan Virtual Machine in VirtualBox
      1.  Open the VirtualBox program and click the "New" button to create a new VM.
       

       
      2.  Select Mac OS X and Mac OS X 10.11 El Capitan (64 -bit) for Operating System type and version.  I named my Virtual Machine "El_Capitan", then clicked next...
       

       
      3.  Leave the Memory size at the recommended 2048 MB, then click next.
       

       
      4.  Choose to "Create a virtual hard disk now", then click the create button.
       

       
      5.  For the hard disk file type, the default is VDI (VirtualBox Disk Image) but I have selected VMDK for inter-operability with VMWare.  Click next...
       

       
      6.  For Storage on physical hard disk, I have chosen the default Dynamically allocated (grows larger to a set limit as you need more disk space).
       

       
      7.  On the File location and size screen, you can set the location of the new virtual hard disk and its size - I recommend changing disk size to 40GB or larger.  When you click the create button, you will now see your new VM in the VirtualBox main GUI.
       

       
      8.  Click the settings button on the Main Menu to tweak a few settings....
         a.  On the System/Motherboard tab in Boot Order, you can uncheck the Floppy Drive (who has these now?)
       

       
         b.  On the System/Processor tab, you can increase the allocated CPU cores to 2
       

       
         c.  On the Display tab, you can increase the allocated Video Memory to 128MB
       

       
         d.  On the Storage tab, click on the icon of the Optical Drive and select "Choose Virtual Optical Disk File". 
       

       
      Navigate and select the El Capitan ISO we created earlier...
       

       
         e.  Click the OK button to finalise the VM settings.
       
       
      Patch El Capitan vbox configuration file with DMI Settings from a Mac
      1.  From the start menu, type cmd and click run as administrator to open an administrative command prompt. 
       

       
      2.  Choose a Mac Model similar to your host system, then type the following lines, followed by <enter>  after each line.  Make sure you first close all VirtualBox Windows and the VirtualBox program, otherwise any changes you make won't stick...
       
      Eg iMac11,3
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-F2238BAE" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 MacBookPro11,3
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-2BD1B31983FE1663" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 Macmini6,2
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "Macmini6,2" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-F65AE981FFA204ED" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 3.  Optional- For some host systems eg those with Haswell and newer CPUs, you might have to spoof an older CPU to avoid VirtualBox errors.  You can try from one of the following if this happens:

      To spoof Lynnfield i5 750 CPU
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000106e5 06100800 0098e3fd bfebfbff To spoof IvyBridge CPU
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000306a9 04100800 7fbae3ff bfebfbff or
      VBoxManage.exe modifyvm "El_Capitan" --cpuidset 00000001 000306a9 00020800 80000201 178bfbff 4.  Close the command prompt window.
       
       
      Installation of El Capitan
      We are now ready to start the El_Capitan Virtual Machine....
       



       
      Installation should be relatively straight forward, just following the prompts of the OS X installer:
      1.  Select language, agree to legal terms
       

       
      2.  Use Disk Utility from the Utilities Menu to erase and format the virtual hard drive as a single partition GUID Mac OS X Extended.  I named my drive "Macintosh HD" but you can enter whatever you like eg El_Capitan.
       

       
      3.  Quit DU and choose Macintosh HD to install El Capitan on.
      4.  After 20-30 min (depending on how fast your system is), the installation will complete.  At this point, unmount the El Capitan ISO by clicking the Devices menu from the VM window, click Optical Drives, then choose Remove disk from virtual drive.  The VM is now ready to reboot into OS X from the virtual hard drive.
      5.  At the welcome screen, choose your country and keyboard layout.  You can skip transfer information, location services and logging in with your Apple ID if you wish…
      6.  Create a User Account and select your Time Zone.  You can skip sending diagnostics and usage data to Apple….
      7.  Finally, you will arrive at the El Capitan Desktop.
       

       
      8.  Network/internet and audio should work OOB but on my system, the sounds were distorted.  Unfortunately, there is no QE/CI and the VM resolution will be fixed without the ability to dynamically resize the VM window (no VirtualBox additions for OS X guests atm). 
       
       
      Customization with VBoxManage
      1.  You can change the default resolution of 1024*768 (after shutting down the VM) with the VBoxManage command from the Windows Administrative Command Prompt:
      cd "C:\Program Files\Oracle\VirtualBox\" VBoxManage setextradata "El_Capitan" VBoxInternal2/EfiGopMode N (Where N can be one of 0,1,2,3,4,5) referring to the 640x480, 800x600, 1024x768, 1280x1024, 1440x900, 1920x1200 screen resolution respectively.
       
      Update:  For VirtualBox 5.2.x, the command for changing screen resolution has changed...
       
      VBoxManage setextradata "<MyVM>" VBoxInternal2/EfiGraphicsResolution XxY (where X=Horizontal screen resolution, Y=Vertical screen resolution)
      eg
      VBoxManage setextradata "<MyVM>" VBoxInternal2/EfiGraphicsResolution 1280x1024 2.  Adding serials and other SMBIOS details for the System Information Screen
      VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "W8#######B6" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardSerial" "W8#########1A" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVendor" "Apple Inc." VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemFamily" "iMac" VBoxManage setextradata "El_Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBIOSVersion" "IM112.0057.03B" A listing of known issues with Mac OS X guests can be found in the VirtualBox Manual - link https://www.virtualbox.org/manual/ch14.html.
       
      Vanilla Mavericks and Yosemite, Snow Leopard from Retail DVD
      The same VM settings for El Capitan will also boot and run vanilla installations of OS X Mavericks and Yosemite .  Attached to this post are installer scripts to create bootable Mavericks (CMI.tool) and Yosemite (CYI.tool) ISOs for VirtualBox and VMware.
       
      With the respective OS X installer apps in the Applications folder, download and run the installer tools using terminal ie
       
      To create a Mavericks ISO on your desktop
      cd downloads chmod +x CMI.tool ./CMI.tool To create a Yosemite ISO on your desktop
      cd downloads chmod +x CYI.tool ./CYI.tool Here is a screenshot of the VM running Mavericks 10.9.5...
       

       
      Finally, those without a Mac/Hack to prepare the install media can purchase a retail Snow Leopard DVD directly from Apple and install OSX 10.6.3 on their virtual machines (Snow Leopard, Lion and Mountain Lion run quite happily in VirtualBox with 1 CPU, 1-2 GB of RAM and the rest of the settings unchanged from above).  Once you update by combo update to SL 10.6.8, you can directly download El Capitan from the App Store for free .
       

       
      UPDATE macOS Sierra 10.12 to 10.12.6: For macOS Sierra, use CSI.tool in post#51.
      UPDATE macOS High Sierra 17A365:  For macOS High Sierra, use CHSI.tool in post#73.
      UPDATE macOS Mojave 18A391:  For macOS Mojave or High Sierra, use macOS_iso_creator.tool on page 4 of thread.
      UPDATE macOS Catalina Beta DP3_19A501i:  For Catalina, @jpz4085 has made an automated batch file to create a Catalina VM in Windows with iMac 14,2 SMBIOS.  You can still use my macOS_iso_creator.tool on page 5 to make an installer ISO to attach to the VM.
       
       
       
      Good luck and enjoy
      CECI.tool.zip
      CYI.tool.zip
      CMI.tool.zip
    • By fusion71au
      Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VMware Workstation on a Windows Host
       
      I wanted to make a simple guide on how to create a vanilla OS X El Capitan virtual machine running on a Windows host.  The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
       
      There are many guides and videos on the net about running OS X on Windows machines using pre-made VMWare disk images but you can never guarantee what else is in there….
       
      I’ve gathered info for this guide from various threads in the Multibooting and Virtualisation section of this forum eg
       
      Workstation 11/12, Player 7/12, Fusion 7/8 and ESXi 6 Mac OS X Unlocker 2 by @Donk How to Install OS X 10.x from Snow Leopard to El Capitan in VMware Workstation 10/12, Player 6/8 or ESXi 5/6 by @MSOK HOW TO: Create a bootable El Capitan ISO for VMware Credit and thanks to @Donk, @Albert Nietsnie and @MSOK for all their hard work in creating and testing the VMware Unlocker program.
       
      Requirements
      Intel PC with four or more CPU cores running Windows 7 X64 or later OS (2 or more cores needed for OS X) 4GB or more RAM (2GB or more will be needed for OS X) Hard Disk with at least 40GB free for Virtual Machine VMware Workstation 12 or later VMware Unlocker 2.0.7 or later Install OS X El Capitan app and Mac or Hack to prepare installation iso <-- Now, no longer necessary to have previous access to a Mac or Hack by building the Installer.app from scratch - see post#41 16GB or larger exFAT formatted USB stick to transfer El Capitan iso from Mac/Hack to Host PC Prepare Installation ISO on your Mac or Hack
      1.  On your Mac or Hack, download "Install OS X El Capitan.app" from the App Store into your Applications folder.
      2.  Unmount any attached install image/InstallESD.dmg (if currently mounted) by rebooting the system or running the hdiutil unmount command in terminal eg
       
      3.  Download and unzip the CECI.tool (attached to this post) into your ~/Downloads folder. The commands in this executable script are shown below for informational purposes….
       
       
       
      4.  Open OS X terminal, then run the following commands to execute the script:
      cd downloads chmod +x CECI.tool ./CECI.tool 5.  At the end of the process, you will have an El Capitan iso on your desktop - copy this onto an exFAT formatted USB for use on the PC Host later.
       
      Updates:
      @shela has created an ISO generating script compatible with OS X 10.6-10.12: create_osx_iso post #362.
      See post#30 for macOS_iso_cim.tool script to create ISO for macOS 10.13+ using Apple's createinstallmedia utility.
       
      Install and Patch VMware Workstation 12 on your PC
      1.  Download and install VMWare Workstation Player 12 or later
      2.  Download and extract Unlocker 2.0.7 or later to your USB stick…
      3.  Run the win-install.cmd as administrator by right clicking the file in Windows explorer or run it from an Administrative Command Prompt.
       



       
      Create an El Capitan Virtual Machine
      1.  Double click on the VMware Workstation 12 Player icon on your desktop and click “Create a New Virtual Machine”.  Choose “I will install the operating system later” at the How will you install screen….
       

      2.  Select Apple Mac OS X as the Guest operating system and OS X 10.11 as the version.  By default, an OS X 10.11 folder will be created in your Documents\Virtual Machines folder.
       


      3.  Under Specify Disk Capacity, you can leave the default 40GB or set a larger value.  I personally store the virtual disk as a single file.  Click Finish and you will see OS X 10.11 on the Main Screen of Workstation 12.
       


      4.  Next, we need to edit the virtual machine settings to map the virtual SATA CD/DVD drive to the El Capitan installation iso we created earlier.
       


       
      5.  To prevent the virtual machine from crashing in Windows, the virtualHW.version set in the vmx configuration file needs to be changed from 12 to 10 (alternatively, the line smc.version = "0" can be added to the file).  The OS X 10.11.vmx file can be edited with the WordPad program (navigate to the OS X 10.11 virtual machine folder with Windows Explorer and right click on the file to open in WordPad).
       


       
      6.  For HW10, set USB compatibility to USB 2.0, otherwise your mouse and keyboard might not work in the virtual machine.
       

      7.  Finally click “Play virtual machine”
       

      Installation of El Capitan
      Installation should be relatively straight forward, just following the prompts of the OS X installer:
      1.  Select language, agree to legal terms
       

      2.  Use Disk Utility from the Utilities Menu to erase and format the virtual hard drive as a single partition GUID Mac OS X Extended.  I’ve named the drive Macintosh HD but you can enter whatever you like eg El_Capitan.
       



      3.  Quit DU and choose Macintosh HD to install El Capitan on.
       

      4.  After 20-30 min (depending on how fast your system is), the installation will complete and the VM will automatically reboot…
       

      5.  At the welcome screen, choose your country and keyboard layout.  You can skip transfer information, location services and logging in with your Apple ID if you wish…
       


      6.  Create a User Account and select your Time Zone.  You can skip sending diagnostics and usage data to Apple….
       


      7.  Finally, you will arrive at the El Capitan Desktop.  You should eject the Installation iso now by right clicking and selecting “Eject OS X Base System”.  This will allow you to install VMware Tools….
       



      8.  After rebooting, the VM can now be resized or run at full screen resolution.  Audio and network/internet should also work OOB.
       

       
      SMBIOS Customization and iMessage Vars
      To make the Virtual Machine more "Mac like", you can edit the vmx file to add unique identifiers from a real Mac's SMBIOS -
      eg for an iMac 11,3 SMBIOS, you can enter the following lines....
      smbios.reflectHost = "FALSE" board-id.reflectHost = "FALSE" board-id = "Mac-F2238BAE" hw.model.reflectHost = "FALSE" hw.model = "iMac11,3" serialNumber.reflectHost = "FALSE" serialNumber = "W80#######6" Refer How to spoof real Mac in VMware - Multi-booting and Virtualisation.
       
      The critical variables for iMessage/Facetime activation are MLB & ROM.  By default, VMware "reflects" the host's MLB and ROM since it assumes you are running the OSX guest on a real Mac host - see post#42 by @Donk.
       
      If the host is a Windows PC, the following lines need to be added to the vmx file (requires virtualHW.version 12 and smc.version = "0")....
      efi.nvram.var.ROM.reflectHost = "FALSE" efi.nvram.var.MLB.reflectHost = "FALSE" system-id.enable = "TRUE" and the MLB, ROM and optionally system-id entered manually eg
      efi.nvram.var.MLB = "W80######BA1A" (MLB can be 13 or 17 characters long, alphanumeric string) efi.nvram.var.ROM = "<=>?@A" (ROM is entered here as a 6 character ASCII string) uuid.bios = "## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##" <---Optional (if you want to inject a given system-id hexadecimal value) Note the output for ROM from imessage_debug is a 12 character hexadecimal that needs to be entered here as a 6 character ASCII string eg using an Hex to ASCII converter we find that "3c3d3e3f4041" hex is equivalent to   "<=>?@A".
       
      Vanilla Mavericks and Yosemite
      The same VM settings for El Capitan will also boot and run vanilla installations of OS X Mavericks and Yosemite .  Attached to this post are installer scripts to create bootable Mavericks (CMI.tool) and Yosemite (CYI.tool) ISOs for VirtualBox and VMware.
       
      With the respective OS X installer apps in the Applications folder, download and run the installer tools using terminal ie
       
      To create a Mavericks ISO on your desktop
      cd downloads chmod +x CMI.tool ./CMI.tool To create a Yosemite ISO on your desktop
      cd downloads chmod +x CYI.tool ./CYI.tool Here is a screenshot of the VM running Mavericks 10.9.5...
       

       
      Enjoy
       
      Update for macOS 10.12 Sierra
      The above settings still work for macOS Sierra after upgrading to VMware Workstation 12.5 and unlocker 2.0.8 - see post #13.
       
      Update for macOS 10.13 High Sierra and 10.14 Mojave
      See post#30 for macOS_iso_cim.tool script to create ISO for macOS using Apple's createinstallmedia utility.
      Post#41 describes how to build "Install macOS ******.app" on the fly from installer files downloaded beforehand in /SharedSupport folder.
       
      Update for macOS 10.15beta Catalina
      See post Update for macOS Catalina 10.15beta
       
      CECI.zip
      CYI.tool.zip
      CMI.tool.zip
×