1
0
Fork 0
mirror of https://github.com/tylernguyen/x1c6-hackintosh.git synced 2025-02-05 09:33:13 -06:00
x1c6-hackintosh/README.md
2020-03-29 16:01:49 -05:00

14 KiB

macOS on Thinkpad X1 Carbon 6th Generation, Model 20KH*

macOS Clover *Last Clover version suppported, OpenCore is now my preferred bootloader.

BIOS MODEL OpenCore LICENSE

Critter

Check out my blog tylerspaper.com

READ THE ENTIRE README.MD BEFORE YOU START.

I AM NOT RESPONSIBLE FOR ANY DAMAGES YOU MAY CAUSE.

IF YOU IMRPOVE UPON ANYTHING HERE, PLEASE CONTRIBUTE BY OPENING AN ISSUE OR A PULL REQUEST.

I AM A ONE MAN TEAM, AND A FULL TIME STUDENT. SO, I MIGHT NOT BE ABLE TO RESPOND OR HELP YOU IN A TIMELY MANNER. BUT, I PROMISE I WILL GET TO YOU EVENTUALLY. PLEASE UNDERSTAND.

Lastly, if my work here helped you. Please consider donating, it would mean a lot to me.

CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

2020-3-29

Added

SSDT-ALS0 hotpatch for faking ambient light sensor ALS0 per Catalina's brightness preservation.
SSDT-GPRW hotpatching for fixing instant wake (0D/6D patch).

Changed

SSDT-Keyboard with the exception of F7 and F12, now maps all hotkeys to a Fn value that can be remapped within macOS. In addition, PrtSc is now remapped to F13. SSDT-PLNF to a cleaner version. Similarly, battery patch has been simplified.

Deprecated

Removed

Some unused patches within OpenCore config.plist has now been removed.

2019-12-22

Added

Project website: https://tylernguyen.github.io/x1c6-hackintosh/
ACPI dump for BIOS-v1.43.
CHANGELOG.md to keep track of the project's developments.
OpenCore bootloader, version 0.5.3.
Better SSDT patching with hotpatches under patches. Making sure to read patches/README.

Changed

Switched completely to hotpatching through OpenCore. Credits to daliansky and jsassu20.
Updated main README, made it look more visually appealing and organized.

Deprecated

Clover bootloader. Clover r5100 is the last version I used on this machine. Moving forward, OpenCore is my preferred bootloader. See EFI-Clover/README.md.
Reorganized folder/project structure. Setup instructions and references now under docs.

Removed

Old static patches.
Old IORegistryExplorer dump.

ACPI Patches

Hotpatching Notes

Credits and a huge thank you to daliansky for the great work and documentation, as well as to jsassu20 for the excellent translations.

Some patches here may be unused. Refer to the current OpenCore-EFI folder to see which one I am currently using.

Some Thinkpad machines are LPC and some are LPCB. Please examine your own DSDT and modify patches as needed.

SSDT-OCBAT0-TP_re80_tx70-80_x1c5th-6th_s12017_p51

Need OpenCore Patches/ TP Battery Basic Rename.plist if OpenCore. preferred
Need OpenCore Patches/ TP battery Mutex is set to 0 and renamed.plist if OpenCore. preferred

  • Single battery system: only BAT0 in ACPI, no BAT1.   

SSDT-PLUG-_PR.PR00

Why?: Processor in DSDT

    Scope (\_PR)
    {
        Processor (PR00, 0x01, 0x00001810, 0x06){}
        Processor (PR01, 0x02, 0x00001810, 0x06){}
        Processor (PR02, 0x03, 0x00001810, 0x06){}
        Processor (PR03, 0x04, 0x00001810, 0x06){}
        Processor (PR04, 0x05, 0x00001810, 0x06){}
        Processor (PR05, 0x06, 0x00001810, 0x06){}
        Processor (PR06, 0x07, 0x00001810, 0x06){}
        Processor (PR07, 0x08, 0x00001810, 0x06){}
        Processor (PR08, 0x09, 0x00001810, 0x06){}
        Processor (PR09, 0x0A, 0x00001810, 0x06){}
        Processor (PR10, 0x0B, 0x00001810, 0x06){}
        Processor (PR11, 0x0C, 0x00001810, 0x06){}
        Processor (PR12, 0x0D, 0x00001810, 0x06){}
        Processor (PR13, 0x0E, 0x00001810, 0x06){}
        Processor (PR14, 0x0F, 0x00001810, 0x06){}
        Processor (PR15, 0x10, 0x00001810, 0x06){}
    }

SSDT-PNLF-SKL_KBL

Why?: Skylake/ KabyLake/ KabyLake-R.
Used in conjufction with WhateverGreen.kext

SSDT-HPET_RTC_TIMR-fix

  • This patch cannot be used with the following patches:
       - SSDT-RTC_Y-AWAC_N of the "Preset Variable Method"
       - OC official SSDT-AWAC
       - "Counterfeit Device" or OC official SSDT-RTC0
       - SSDT-RTC0-NoFlags for CMOS Reset Patch
      

SSDT-Keyboard

Keyboard path is \ _SB.PCI0.LPCB.KBD.  

  • Remap 1:
  • Remap 2:
  • Remap 3:
  • Remap 4: F8 (Network) to F18
  • Remap 5: F9 (Settings) to F19
  • Remap 6: F10 (Bluetooth) to F20
  • Remap 7: F11 (Keyboard) to F17
  • Remap 8:
  • Remap 9:
  • Remap 10: PrtSc to F13

SSDT-PTSWAK

SSDT-EXT3-LedReset-TP

SSDT-EXT4-WakeScreen

Need OpenCore Patches/ Comprehensive Patch Changed Its Name To.plist if OpenCore. preferred
Need Clover Patches/ Comprehensive Patch Changed Its Name To.plist if Clover.
Look up _PTS and _WAK and only apply the corresponding patches:
_PTS is NotSerialized in my DSDT
_WAK is Serialized in my DSDT

  • SSDT-PTSWAK —— Comprehensive Patch。

  • SSDT-EXT3-LedReset-TPEXT3 extension patch. Solve the problem that the breathing light does not return to normal after the TP machine wakes up。

  • SSDT-EXT4-WakeScreenEXT4 extension patch. Solve the problem that some machines need to press any key to light up the screen after waking up. When using, you should inquire whether the PNP0C0D device name and path already exist in the patch file, such as _SB.PCI0.LPCB.LID0. If not, add it yourself.

SSDT-SBUS

Why?: 0x001F0004 under Device (SBUS).

SSDT-DMAC

Why?: PNP0200 is missing in DSDT.

SSDT-MCHC

Why?: MCHC is missing in DSDT.

SSDT-PMCR

Why?: PMCR, APP9876 missing in DSDT.

SSDT-PWRB

Why?: PNP0C0C missing in DSDT.

SSDT-ALS0

Why?: ACPI0008 missing in DSDT.

SSDT-GPRW

Why?: Fix instant wake by hooking GPRW (0D/6D Patch)

Getting Started

SUMMARY:

Fully functional Non-functional Semi-functional. Additional pulls needed and welcomed.
Wifi and Bluetooth *need card replacement ⚠️ Fingerprint Reader (not needed, DISABLED at BIOS) HDMI, currently only outputs at 1080p.Though capable of 4K 4096x2150. ⚠️
USB A, USB C, Webcam, Audio Playback/Recording Sleep, Ethernet, Intel Graphics, TrackPoint and Trackpad Wireless WAN (DISABLED at BIOS) *ENABLED if you have a 2nd drive connected Function keys, F1-F6 work. The rest need to be mapped and patched via DSDT/SSDTs. ⚠️
iCloud suite: App Store, iMessage, FaceTime, iCloud Drive, etc... Hibernation Power management and optimizations. See Issue #28 ⚠️
HiDPI, Handoff, Sidecar USB power property injection - unsure of real values. ⚠️
MicroSD card reader Thunderbolt 3 Hotplug: partially working More details ⚠️

NEEDED:

A macOS machine would be VERY useful: to create install drives, and for when your ThinkPad cannot boot. Though it is not completely necessary.
Clover Configurator, if Clover is your bootloader.
Flash drive, 16GB or more.
Xcode works fine, but I prefer PlistEdit Pro.
MaciASL, for patching ACPI tables.
IOJones, for diagnosis.
Hackintool, for diagnosis.

WHERE TO START:

Explore links included this README, especially those in references and other x1c6-hackintosh repos.

Once you are ready, follow the series of README files included docs/.
1_README-HARDWAREandBIOS: Requirements before starting.
2_README-installMEDIA: Creating the macOS install drive.
3_README-POSTinstallation: Settings and tweaks post installation.
4_README-ACPIpatching: The hardest and most time consuming part, patching the system ACPI table for battery status, brightness, sleep, thunderbolt, thunderbolt hotplugging, etc...

  • While you can plug-and-play most of my hotpatches if you have an x1c6, I still suggest that you dump and disassemble your own DSDT. This is imprortant as your DSDT maybe different from mine. And furthermore, you get to learn more about what's actually going on.

MY SPECIFICATIONS:

Refer to x1c6-Platform_Specifications for possible stock ThinkPad X1 6th Gen configurations.

Processor Number # of Cores # of Threads Base Frequency Max Turbo Frequency Cache Memory Types Graphics
i7-8650U 4 8 1.9 GHz 4.2 GHz 8 MB LPDDR3-2133 Intel UHD 620

Peripherals:

Two USB 3.1 Gen 1 (Right USB Always On)  
Two USB 3.1 Type-C Gen 2 / Thunderbolt 3 (Max 5120x2880 @60Hz)  
HDMI 1.4b (Max 4096x2160 @30Hz)  
Ethernet via ThinkPad Ethernet Extension Cable Gen 2: I219-LM Ethernet (vPro)  
No WWAN  
TrackPoint: PS/2  
TrackPad: PS/2

Display:
14.0" (355mm) HDR WQHD (2560x1440)
Audio:
ALC285 Audio Codec
Thunderbolt:
Intel JHL6540 (Alpine Ridge 4C) Thunderbolt 3 Bridge

REFERENCES:

OTHER x1c6-hackintosh REPOSITORIES:

zhtengw/EFI-for-X1C6-hackintosh
Colton-Ko/macOS-ThinkPad-X1C6
Create a pull request if you like to be added, final decision at my discreation.

OPTIMIZATIONS:

  • Repaste the machine with thermal Grizzly Kryonaut.
  • Undervolt the machine with Volta.
  • If you must dual boot with Windows or Linux, I advise against paritition. What I recommend, instead, is getting a second compatible hard drive that fits in the WWAN card slot (I have the WDC PC SN520 NVMe 2242), install Windows/Linux onto that drive. Finally, boot into it with Clover or OpenCore.
  • If your laptop did not come with WWAN, you can purchase additional antennas to add to your laptop. This is useful when using Wifi/Bluetooth cards that have 3 antennas.

CONTACT:

https://tylerspaper.com/contact
Signal: (202)-644-9951 *This is a Signal ONLY number. You will not get a reply of you text me at this number.

DONATE AND SUPPORT:

https://tylerspaper.com/support/

Credits and Thank You:

@Colton-Ko for the great features template.
@stevezhengshiqi for the one-key-cpufriend script.
@corpnewt for CPUFriendFriend.
@xzhih for one-key-hidpi.
@daliansky for all the hotpatches.
@jsassu20 for translating daliansky's documentations.
@velaar for your continual support and contributions.

And the greatest thank you and appreciation to @Acidanthera, without whom's work, none of this would be possible.

Please let me know if I missed you.