- Joined
- Nov 28, 2015
- Messages
- 146
- Motherboard
- Lenovo Yoga 920 - OpenCore
- CPU
- i7-8550U
- Graphics
- HD620, 3840x2160
Dell XPS 12 9250
Works:
Power managemennt
4K Display QE/CE
Sleep
Touchscreen
WiFi (with DW1560)
Audio
Doesn't work:
SD Card Reader
Cameras
Thunderbolt 3 hot-plug
Dell Active Pen Support
Intel WiFi 8260NGW (I switched the wifi m.2 card to a DW1560 instead)
Probably other things..
Known issues:
Video playback can be choppy (graphics framebuffer needs 128MB DVMT but BIOS is locked at 64MB)
Must press and hold power button for ~7-10 seconds to wake from sleep
Recommended BIOS Settings.
Use BIOS version 1.2.0.
Please note, some of the following steps could probably be simplified with MaciASL patches down the line.
**Download the attached zips prior to continuing to the next section.**
Installation steps:
1) Download macOS 10.13.4. Use ‘createinstallmedia’ method install with following command (preferred)
This step is to be performed on an actual Mac.
2) Replace everything on EFI partition in EFI>CLOVER of the USB with the content of CLOVER-pre found in this directory.
3) Now connect USB to Dell XPS 12 and start installer. Follow usual guides to install macOS.
4) Once the installer finishes, boot into the newly created system partition. This may take several times before the installer completely finishes.
5) Install needed apps:
Clover Configurator
IORegistryExplorer
MaciASL
Install iasl. You must open a Terminal window to the location of the iasl binary:
6) Install the kexts found in the “Kexts/System” folder to /L/E. This can be done by navigating to the folder in Terminal and executing:
7) Replace everything on EFI partition in EFI>CLOVER on the system partition with the content of CLOVER-post found in this directory.
8) Remove *LpssI2C kexts
Remove AppleIntelLpssI2C.kext and appleintellpssi2ccontroller.kext from /S/L/E:
9) Update kext cache
10) Disable Hibernate
11) Install VoodooHDA-macOS-High-Sierra.dmg for audio
12) Reboot to Clover and press F2 and F4 to download the pre-boot logs and DSDTs respectively
13) Mount EFI partition with Clover Configurator. Copy DSDT and SSDTs found in /EFI/CLOVER/ACPI/origin to temp directory.
14) Copy the following content into a file called refs.txt into the same temp directory location as the DSDT and SSDTs.
15) Use iasl to extract *.dsl with:
16) Fix the broken DSDT.dsl:
Should be:
NOTE: Make sure spacing is correct.
17) Fix sleep. Add the following lines of code to the bottom of the DSDT.dsl, right before the last curly bracket:
18) Get the touchscreen working. Before we get the touchscreen working, we need to add some code to ensure the trackpad works once we add the I2C kexts. You will need to add the following to VoodooI2CHID.kext/Contents/Info.plist (unless you use the VoodooI2C* kexts included in this guide, in such case go to step 18a)
After the following line of code:
Add the following:
18a) Open MaciASL and add the following patch repo:
VoodooI2C:
http://raw.github.com/alexandred/VoodooI2C-Patches/master
18b) Load your decompiled DSDT.dsl and apply the following patches:
‘[Controllers] I2C Controllers [SKL]’
‘[GPIO] GPIO Controller Enable [SKL+]’
‘[Windows] Windows 10 Patch’
18c) Search for SBFG until you find property ‘_SB.PCI0.I2C1’. Now select _CRS on the left side pane. Look for the following code that should look something like the following:
Replace it with:
Compile your DSDT.aml and put in /EFI/CLOVER/ACPI. Reboot. Touchscreen should work.
References:
CoreDisplay:
https://github.com/Floris497/mac-pixel-clock-patch-V2/issues/211
Power Management:
https://www.tonymacx86.com/threads/guide-native-power-management-for-laptops.175801/
Sleep issues:
https://www.tonymacx86.com/threads/getting-sleep-wake-to-work-on-dell-xps-12-9250-on-10-13-4.251819/
https://pikeralpha.wordpress.com/2017/01/12/debugging-sleep-issues/
USB:
https://www.tonymacx86.com/threads/...usbinjectall-working-on-dell-xps-9250.251812/
Touchscreen:
https://voodooi2c.github.io/#Installation/Installation
https://gitter.im/alexandred/VoodooI2C
Sorry for anything I missed!
Works:
Power managemennt
4K Display QE/CE
Sleep
Touchscreen
WiFi (with DW1560)
Audio
Doesn't work:
SD Card Reader
Cameras
Thunderbolt 3 hot-plug
Dell Active Pen Support
Intel WiFi 8260NGW (I switched the wifi m.2 card to a DW1560 instead)
Probably other things..
Known issues:
Video playback can be choppy (graphics framebuffer needs 128MB DVMT but BIOS is locked at 64MB)
Must press and hold power button for ~7-10 seconds to wake from sleep
Recommended BIOS Settings.
Use BIOS version 1.2.0.
- Settings
- General
- Advanced Boot Options
* Enable Legacy Option ROMs
- System Configuration
- USB/Thunderbolt Configuration
* Enable USB Support
* Enable Thunderbolt Ports
* Always Allow Dell Docks
* Enable External USB Port
* Enable Thunderbolt Boot Support
(Set ‘Security level - No Security’)
- Audio
* Enable Audio
* Enable Microphone
* Enable Internal Speaker
- Keyboard Illumination
* Disabled
- Security
- Password Bypass
* Disabled
- Password Change
* Allow Non-Admin Password Change
- Computrace(R)
* Deactivate
- CPU XD Support
* Enable CPU XD Support
- Intel@ Software Guard ExtensionTM
* Disabled
- Performance
- Multi Core Support
* Enable Multi Core Support
- Intel@ SpeedStepTM
* Enable Intel@ SpeedStepTM
- C-State Control
* C states
- Intel@ TurboBoostTM
* Enabled
- Power Management
- Lid Switch
* Enable Lid Switch
- Virtualization Support
* Enable Intel Virtualization Technology
- Wireless
- Wireless Device Enable
* Bluetooth
* WLAN
- Maintenance
- BIOS Downgrade
* Allow BIOS Downgrade
- BIOS Recovery
* BIOS Recovery from Hard Drive
- General
- Advanced Boot Options
* Enable Legacy Option ROMs
- System Configuration
- USB/Thunderbolt Configuration
* Enable USB Support
* Enable Thunderbolt Ports
* Always Allow Dell Docks
* Enable External USB Port
* Enable Thunderbolt Boot Support
(Set ‘Security level - No Security’)
- Audio
* Enable Audio
* Enable Microphone
* Enable Internal Speaker
- Keyboard Illumination
* Disabled
- Security
- Password Bypass
* Disabled
- Password Change
* Allow Non-Admin Password Change
- Computrace(R)
* Deactivate
- CPU XD Support
* Enable CPU XD Support
- Intel@ Software Guard ExtensionTM
* Disabled
- Performance
- Multi Core Support
* Enable Multi Core Support
- Intel@ SpeedStepTM
* Enable Intel@ SpeedStepTM
- C-State Control
* C states
- Intel@ TurboBoostTM
* Enabled
- Power Management
- Lid Switch
* Enable Lid Switch
- Virtualization Support
* Enable Intel Virtualization Technology
- Wireless
- Wireless Device Enable
* Bluetooth
* WLAN
- Maintenance
- BIOS Downgrade
* Allow BIOS Downgrade
- BIOS Recovery
* BIOS Recovery from Hard Drive
Please note, some of the following steps could probably be simplified with MaciASL patches down the line.
**Download the attached zips prior to continuing to the next section.**
Installation steps:
1) Download macOS 10.13.4. Use ‘createinstallmedia’ method install with following command (preferred)
This step is to be performed on an actual Mac.
Code:
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/macos10.13.4 --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction
2) Replace everything on EFI partition in EFI>CLOVER of the USB with the content of CLOVER-pre found in this directory.
3) Now connect USB to Dell XPS 12 and start installer. Follow usual guides to install macOS.
4) Once the installer finishes, boot into the newly created system partition. This may take several times before the installer completely finishes.
5) Install needed apps:
Clover Configurator
IORegistryExplorer
MaciASL
Install iasl. You must open a Terminal window to the location of the iasl binary:
Code:
sudo cp iasl /usr/bin
6) Install the kexts found in the “Kexts/System” folder to /L/E. This can be done by navigating to the folder in Terminal and executing:
Code:
sudo chown -R root:wheel *
sudo cp -r * /Library/Extensions
7) Replace everything on EFI partition in EFI>CLOVER on the system partition with the content of CLOVER-post found in this directory.
8) Remove *LpssI2C kexts
Remove AppleIntelLpssI2C.kext and appleintellpssi2ccontroller.kext from /S/L/E:
Code:
sudo rm -r /Library/Extensions/AppleIntelLpssI2C.kext /Library/Extensions/appleintellpssi2ccontroller.kext
9) Update kext cache
Code:
sudo kextcache -i /
10) Disable Hibernate
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
11) Install VoodooHDA-macOS-High-Sierra.dmg for audio
12) Reboot to Clover and press F2 and F4 to download the pre-boot logs and DSDTs respectively
13) Mount EFI partition with Clover Configurator. Copy DSDT and SSDTs found in /EFI/CLOVER/ACPI/origin to temp directory.
14) Copy the following content into a file called refs.txt into the same temp directory location as the DSDT and SSDTs.
Code:
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
15) Use iasl to extract *.dsl with:
Code:
iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml
16) Fix the broken DSDT.dsl:
Code:
If (LEqual (PM6H, One))
{
CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW) // _RW_: Read-Write Status
Store (Zero, ECRW (If (PM0H)
{
CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN) // _LEN: Length
Store (Zero, F0LN)
}))
}
Should be:
Code:
If (LEqual (PM6H, One))
{
CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW) // _RW_: Read-Write Status
Store (Zero, ECRW)
}
If (PM0H)
{
CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN) // _LEN: Length
Store (Zero, F0LN)
}
NOTE: Make sure spacing is correct.
17) Fix sleep. Add the following lines of code to the bottom of the DSDT.dsl, right before the last curly bracket:
Code:
Scope (\_SB)
{
Method (LPS0, 0, NotSerialized)
{
Store ("Method \\_SB._LPS0 Called", Debug)
Return (One)
}
}
Scope (\_GPE)
{
Method (LXEN, 0, NotSerialized)
{
Store ("Method \\_GPE.LXEN Called", Debug)
Return (One)
}
}
18) Get the touchscreen working. Before we get the touchscreen working, we need to add some code to ensure the trackpad works once we add the I2C kexts. You will need to add the following to VoodooI2CHID.kext/Contents/Info.plist (unless you use the VoodooI2C* kexts included in this guide, in such case go to step 18a)
After the following line of code:
Code:
<key>VoodooI2CHIDDevice Multitouch HID Event Driver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.alexandred.VoodooI2CHID</string>
<key>DeviceUsagePairs</key>
<array>
<dict>
<key>DeviceUsage</key>
<integer>4</integer>
<key>DeviceUsagePage</key>
<integer>13</integer>
</dict>
<dict>
<key>DeviceUsage</key>
<integer>5</integer>
<key>DeviceUsagePage</key>
<integer>13</integer>
</dict>
<dict>
<key>DeviceUsage</key>
<integer>2</integer>
<key>DeviceUsagePage</key>
<integer>13</integer>
</dict>
</array>
<key>IOClass</key>
<string>VoodooI2CMultitouchHIDEventDriver</string>
Add the following:
Code:
<key>IOPropertyMatch</key>
<dict>
<key>Transport</key>
<string>I2C</string>
</dict>
18a) Open MaciASL and add the following patch repo:
VoodooI2C:
http://raw.github.com/alexandred/VoodooI2C-Patches/master
18b) Load your decompiled DSDT.dsl and apply the following patches:
‘[Controllers] I2C Controllers [SKL]’
‘[GPIO] GPIO Controller Enable [SKL+]’
‘[Windows] Windows 10 Patch’
18c) Search for SBFG until you find property ‘_SB.PCI0.I2C1’. Now select _CRS on the left side pane. Look for the following code that should look something like the following:
Code:
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
If (LLess (OSYS, 0x07DC))
{
Return (SBFI)
}
If (LEqual (SDM1, Zero))
{
Return (ConcatenateResTemplate (SBFB, SBFG))
}
Return (ConcatenateResTemplate (SBFB, SBFI))
}
Replace it with:
Code:
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (ConcatenateResTemplate (SBFB, SBFG))
}
Compile your DSDT.aml and put in /EFI/CLOVER/ACPI. Reboot. Touchscreen should work.
References:
CoreDisplay:
https://github.com/Floris497/mac-pixel-clock-patch-V2/issues/211
Power Management:
https://www.tonymacx86.com/threads/guide-native-power-management-for-laptops.175801/
Sleep issues:
https://www.tonymacx86.com/threads/getting-sleep-wake-to-work-on-dell-xps-12-9250-on-10-13-4.251819/
https://pikeralpha.wordpress.com/2017/01/12/debugging-sleep-issues/
USB:
https://www.tonymacx86.com/threads/...usbinjectall-working-on-dell-xps-9250.251812/
Touchscreen:
https://voodooi2c.github.io/#Installation/Installation
https://gitter.im/alexandred/VoodooI2C
Sorry for anything I missed!