Home

Awesome

macOS-ThinkPad-X1C6 (OpenCore)

US English, 中文版請見此

Notice

The README.md guide for OpenCore is being worked on. It will be published once the README.md for OpenCore is ready.

Last update: 2020-01-12 (Taipei Time)

OpenCore OpenCore Version

Introduction

This repository provides some necessary resources to install a copy of macOS on ThinkPad X1 Carbon 6th. There is no guarantee of success, therefore you are expected to find extra resources to meet your needs, and be responsible for any consequences. For Machine Type 20KH Only.

Objective

Contents

  1. Hardware Specifications
  2. UEFI Setup Configuration
  3. Software Overview
    1. Guide Compatibility
    2. Features
      1. Base System
      2. Connectivity
      3. Networking
      4. Human Interface Devices
      5. Power Management
      6. Audio and Graphics
  4. General installation procedure
  5. More to know
  6. Useful utilities
  7. Credits

Hardware Specifications

This is the hardware specification of my ThinkPad X1 Carbon 6th.

ItemDescription
ProcessorIntel Core i7-8550U
GraphicsIntel UHD Graphics 620
MemoryOnboard 16GB LPDDR3 2133MHz
Audio CodecRealtek ALC 285 (ALC3286)
WWANSierra Wireless EM7455 (Qualcomm Snapdragon X7 LTE-A Modem)
PCI EthernetIntel I219V4 PCI Express Gigabit Ethernet
WLAN/ Bluetooth ModuleDell DW1560
BluetoothBCM20702A0
Wi-FiBroadcom BCM94352Z
Media Card ReaderRealtek USB3.0 Card Reader
Built-in Display Resolution2560x1440 (2K)
UEFI Firmware Version1.43 (N23ET68W)
StorageSamsung 860 EVO M.2. SATA 6Gb/s SSD
Thunderbolt ControllerIntel Alpine Ridge DSL6540 Thunderbolt 3 NHI

Back to Contents Page

UEFI Setup Configuration

Only listing values that matters. Feel free to configure other values to suit your needs.

PathValueRemarks
Config/Network/Wake On LANDisabledOnly 100M Ethernet if enabled
Config/USB/USB UEFI BIOS SupportEnabledEnable UEFI USB boot
Config/Power/8254 Timer Clock GatingAuto-
Config/Power/Sleep StateLinux-
Config/Thunderbolt (TM) 3/Thunderbolt Security LevelNo SecurityNo Thunderbolt 3 if enabled
Config/Thunderbolt (TM) 3/Thunderbolt 3 BIOS AssistantDisabledNo Thunderbolt 3 if enabled
Config/Thunderbolt (TM) 3/Support in Pre Boot Environment: Thunderbolt (TM) devicePre-boot ACLNo Front Thunderbolt 3 (Type-C port) if changed to other values
Security/Intel (R) SGX/ Intel (R) SGX ControlDisabled-
Security/Secure Boot Configuration/SecureBootDisabledUnable to boot macOS if enabled (Requires digitally signed executables)
Security/Device Guard/Device GuardDisabled-

Back to Contents Page

Software Overview

Compatibility

Back to Contents Page

Features

Base System
FeatureStatusDependencyRemarks
macOS (10.14.x or 10.15.x)VirtualSMC.kext, Lilu.kext, Clover BootloaderClover v2.5k R5100
iMessage/ FaceTimeApple ID, Valid SMBIOSGuide
App StoreApple ID-
iMessage/ FaceTimeApple ID, Valid SMBIOSGuide
iCloudApple ID-
SiriApple ID, Working audio recorderNeeds AppleALC.kext
iTunes Video PlaybackWhateverGreen.kext, Apple ID (Optional)-
Filesystem (APFS/HFS+)Use SATA M.2. SSD or a Compatiable M.2. PCIe SSDNo NVMe Power Management
<hr>
Connectivity
FeatureStatusDependencyRemarks
Micro SD Card ReaderPatched AppleUSBCardReader.kext-
USB 3.1USBInjectAll.kext , SSDT-UAIC.aml-
DisplayPort on Thunderbolt 3 DockSSDT-TB3.aml, IOElectrify.kext-
Thunderbolt 3 Dock (Port Replicator)SSDT-TB3.aml, IOElectrify.kext-
Thunderbolt 3 Hotplug⚠️SSDT-TB3.aml, IOElectrify.kextOnly the Type-C port next to the ethernet port supports hot-plugging
Wake on LANIntelMausiEthernet.kext included in this repo (I re-compiled it to support WoL)-
ThinkPad TB3 Dock EthernetThinkPad Thunderbolt 3 Dock (40AC), AppleRTL815XComposite109.kext, AppleRTL815XEthernet109.kextItem page
<hr>
Networking
FeatureStatusDependencyRemarks
AirDropBT4LEContiunityFixup.kext, Working Blutetooth and WiFi setup-
BluetoothBrcmFirmwareRepo.kext, BrcmPatchRAM3.kext, BrcmBluetoothInjector.kext-
ContinutyBT4LEContiunityFixup.kext, Working Blutetooth and WiFi setup-
SidecariPad with iPadOS 13Tested with iPad Pro with iPadOS 13.1.2
PCIe EthernetIntelMausiEthernet.kext-
Wi-FiSwapping Intel WLAN card with Dell DW1560, AirportBrcmFixup.kext, Lilu.kext-
Sierra Wireless EM7455Legacy_Sierra_QMI.kextNo internet
<hr>
Human Interface Devices
FeatureStatusDependencyRemarks
TrackPointPatched VoodooPS2Controller.kext-
TrackPadVoodooPS2Controller.kext-
Built-in KeyboardVoodooPS2Controller.kext-
<hr>
Power Management
FeatureStatusDependencyRemarks
Battery lifeNon-NVME SSD, proper power management setup (CPU Power Management, GPU Power Management)Drops 10% per hour for light programming tasks
Battery Percentage IndicationPatched DSDT.amlUse MaciASL
CPU Power Management (SpeedShift)XCPM-
IGPU Power ManagementXCPM-
Hibernation-Disabled
Sleep-Disabled
<hr>
Audio and Graphics
FeatureStatusDependencyRemarks
Audio RecordingAppleALC.kext with Layout ID = 11-
Audio PlaybackAppleALC.kext with Layout ID = 11-
Full Graphics Accleration (QE/CI)WhateverGreen.kext, Custom device properties in config.plist-
HiDPI (Optional)⚠️Shell Script from xzhih Click HereMay have werid scaling issues after wake up

Back to Contents Page

<hr>

General installation procedure

Flowchart

flowchart

<hr>

Step by Step Procedure

STEP 1: Create Installation Media
Checklist
Procedure
If you are using macOS
  1. Follow the gudie here
  2. Copy boot files to the USB such that it is bootable on ThinkPad
    1. Mount EFI System partition using diskutil
      1. Check the identifier for the EFI System partition of the USB using diskutil list
      2. Mount it, e.g. diskutil mount disk3s1
      3. You should see a new EFI volume appeared in Finder, that is the EFI System partition of the USB.
    2. Copy boot files
      1. Go to the EFI folder of this repository
      2. Copy the entire EFI Folder to the root of the EFI System partition of the USB.
      3. You have copied the boot files.
    3. Finished. Move on to step 2.
If you are using Linux
  1. Use the script here: https://github.com/notthebee/macos_usb (Credit: notthebee)
<hr>
STEP 2: Boot into installer
Checklist
Procedure
  1. Plug in the USB Installer into the USB 3.0 Type A port of the ThinkPad.
  2. Press F12 on your ThinkPad while it boots
  3. Select your USB in the boot menu using arrow keys and press Enter to boot.
  4. You should see a boot menu screen, select an item named 'Install macOS (version name) 'and press Enter
    1. Install macOS Catalina for macOS Catalina
    2. Install macOS Mojave for macOS Mojave
  5. You should see long text running in a black background for some time, this is normal.
  6. You should see macOS Installer menu, move on to step 3.
<hr>
STEP 3: Partition your disks
Checklist
Procedure
  1. Open Disk Utility
  2. Partition your disks according to your wish and your needs
  3. Format the partitions with APFS (Apple File System)
  4. You have partitioned your disks. Move on to step 4.
<hr>
STEP 4: Begin installation
Checklist
Procedure
  1. Click Install macOS
  2. Select the partition that you have created as the destination
  3. Click install, the installation will start
Remarks
  1. Your computer will restart for a few times
  2. When the ThinkPad is restarted, repeat Step 2 to continue the installation
  3. When the installation is completed, move on to Step 5.
<hr>
STEP 5: Setup macOS
Checklist
Procedure
  1. Follow on-screen instructions to setup your macOS installation.
  2. You should see macOS Desktop when you have finished, move on step 6.
<hr>
STEP 6: Post Install Tweaks
Checklist
Procedure
  1. Install required kernel extensions kexts
    1. Get the required materials
      1. Download and Open the Kext folder inside post folder in this repository
        • post/Kext
      2. Download kextbeast
    2. Install the kexts
      1. Drag and drop all kext files from post/kext to your desktop
      2. Open Kextbeast
      3. Select /Library/Extensions as the package to install
      4. Click install and wait until a big green tick appeared on screen
      5. You have successfully installed the required kexts
    3. Copy boot files
      1. Mount EFI System partition using diskutil
        1. Check the identifier for the EFI System partition of the installation disk using diskutil list
        2. Mount it, e.g.diskutil mount disk0s1
        3. You should see a new EFI volume appeared in Finder, that is the EFI System partition of the installation drive.
      2. Copy boot files
        1. Go to the EFI folder of this repository
        2. Copy the entire EFI Folder to the root of the EFI System partition of the installation drive.
        3. Configure SMBIOS using the guide here: Link
          1. System Model should be MacBookPro14,1
            • Reason: To enable HWP for better power management
        4. You have copied the boot files.

Back to Contents Page

<hr>

Fine-tuning your "MacBook"

iMessage Guide

iMessage Guide: Link to Tonymacx86

<hr>

Battery life improvement

<hr>

ThinkPad Thunderbolt 3 Dock (Type 40AC) Tweaks

<hr>

Thunderbolt Tweaks

<hr>

Configuring EC and USB Power

  1. Create USB Map, test EC configuration
    1. Link to the guide here: USBMap
<hr>

Graphics fix on macOS

  1. Know your hardware, the following configuration is tested for the following CPUs only

    1. Intel Core i7-8650U (Intel UHD 620)
    2. Intel Core i7-8550U (Intel UHD 620)
  2. Use WhateverGreen

  3. In Config.plist/DeviceProperties/Add/PciRoot(0x0)/Pci(0x2,0x0), add the following

    KeyTypeValue
    AAPL,GfxYTileData01000000
    AAPL,ig-platform-idData04002759
    device-idData16590000
    framebuffer-con1-enableData01000000
    framebuffer-con1-typeData00080000
    framebuffer-fbmemData00009000
    framebuffer-patch-enableData01000000
    framebuffer-stolenmemData00003001
  4. Result (Xcode as plist editor)igfx-fix

  5. Reboot

<hr>

USB SD Card Reader patch

<hr>

If you have other suggestions

Feel free to open an issue on Github.

Back to Contents Page

<hr>

List of kexts and their purposes

/L/E stands for /Library/Extensions

EFI stands for EFI/OC/Kexts and an entry in Config.plist/Kernel/Add

/L/E or EFI stands for those kexts can be installed in either location

Kext namePurposeArgumentsLocation
AirportBrcmFixup.kextEnable DW1560 Wi-Fi function-/L/E
AppleALC.kextEnabling soundAPPL,layout-id=11/L/E or EFI
BT4LEContinuityFixup.kext/L/E
BrcmBluetoothInjector.kextEnabling bluetooth-EFI
BrcmFirmwareData.kextEnabling bluetooth-EFI
BrcmPatchRAM3.kextEnabling bluetooth-EFI
CPUFriend.kextCPU Power Management-/L/E or EFI
CPUFriendDataProvider.kextCustomize CPU Power Management SchemeConfigured by: one-key-cpufriend/L/E or EFI
HibernationFixup.kextEliminate sleep wake issues-/L/E
IntelMausiEthernet.kextEnabling PCI Ethernet and Wake on Lan-/L/E or EFI
IOElectrify.kextEnabling thunderbolt 3 Hotplug-/L/E or EFI
Lilu.kextKext patcherLilu plugins/L/E or EFI
NoTouchID.kextPrevent password prompt delays-/L/E
SMCBatteryManager.kextSMC Emulation-/L/E or EFI
SMCLightSensor.kextSMC Emulation-/L/E or EFI
SMCProcessor.kextSMC Emulation-/L/E or EFI
SMCSuperIO.kextSMC Emulation-/L/E or EFI
Thunderbolt3Unblocker.kextAllow all thunderbolt 3 devices to be used-/L/E
USBInjectAll.kextInject all usuable USB ports on macOSSSDT-UIAC.aml/L/E or EFI
USBMap.kextConfigured by: USBMap/L/E or EFI
VirtualSMC.kextSMC Emulation-/L/E or EFI
VoodooInput.kextTrackPad gesture recognizationConfigured by SSDT-X1-Carbon-Trackpoint.aml, SSDT-Keyboard-X1C6.aml/L/E or EFI
VoodooPS2Controller.kextEnabling Built-in Keyboard, TrackPoint and TrackPad-/L/E or EFI
WhateverGreen.kextFixes Graphics problems in macOSDevice properties in Config.plist/L/E or EFI
<br>

List of SSDTs and their purposes

SSDTPurpose
SSDT-ALS0.amlCreates emulated light sensor to save Backlight information
SSDT-BATT.amlEnable battery percentage indication
SSDT-DMAC.amlExpose DMA Controller on macOS (More like real Mac)
SSDT-EC.amlConfigures Embedded Controller, related to USB power
SSDT-EXT3-LedReset-TP.aml-
SSDT-EXT4-WakeScreen.aml-
SSDT-HPET.amlFixes HPET on macOS
SSDT-Keyboard-X1C6.amlConfigures Keyboard mapping on macOS
SSDT-MCHC.amlExpose Memory Controller on macOS (More like real Mac)
SSDT-PLUGIN_TYPE.amlEnables XNU CPU Power Management and HWP
SSDT-PNLF.amlEnables brightness adjustment
SSDT-PTSWAK.amlFixes Sleep, wake issues
SSDT-SBUS.amlAllow correct identification of SMBus on macOS
SSDT-TB3.amlEnable Thunderbolt 3 functionality and hot-plug support
SSDT-UIAC.amlUnblock all USB ports
SSDT-USBX.amlConfigures USB Power
SSDT-X1-Carbon-Trackpoint.amlConfigures TrackPoint speed

Useful utilities

Back to Contents Page

<br>

Credits

Back to Contents Page

<br>

Last update: 2020-01-12 (Taipei Time)