Home

Awesome

ThinkPad X1 Carbon Gen 4 running macOS (OpenCore bootloader)

<img align="right" src="/Images/x1c4-monterey.png" alt="Lenovo Thinkpad X1C4 macOS Hackintosh OpenCore" width="300">

macOS

OpenCore Model BIOS License

DISCLAIMER: This repo is based on simprecicchiani's T460s repo, but with some modification it's now fully working on X1C4s. Read the entire README before you start. I am not responsible for any damages you may cause. Should you find an error or improve anything — whether in the config or in the documentation — please consider opening an issue or pull request. If you find my work useful, please consider donating via PayPal. It would mean a lot to me.

donate

Introduction

<details> <summary><strong>Getting started 📖</strong></summary> </br>

Meet the bootloader:

Recommended tools:

Resources

</details> </details> <details> <summary><strong>My Hardware 💻</strong></summary> </br>
ModelThinkpad X1 Carbon Gen 4 20FCS0TR0U
ProcessorCore i5-6300U (2C, 2.4 / 3.0GHz, 4MB) vPro
GraphicsIntegrated Intel HD Graphics 520
Memory8GB Soldered 1866MHz DDR3, dual-channel
Display14" Full HD (1920x1080) IPS, non-touch
StorageSamsung Evo 980 PRO 256GB NVMe SSD
EthernetIntel Ethernet Connection I219-LM (Jacksonville)
WLAN + Bluetooth11ac+BT, Intel® Dual Band Wireless-AC 8260NGW, 2x2 card
CameraHD720p resolution, low light sensitive, fixed focus
Audio supportHD Audio, Conexant CX11852 codec, stereo speakers 1Wx2, dual array microphone, combo audio/microphone jack
Keyboard6-row, spill-resistant, multimedia Fn keys, LED backlight
BatteryIntegrated Lithium Polymer 4-cell (52Wh)
</details> <details> <summary><strong>Hardware compatibility 🧰</strong></summary> </br>

This EFI will suit any X1C4 regardless of CPU model<sup>1</sup>, amount of RAM, display resolution<sup>2</sup> and internal storage<sup>3</sup>.

<a name="CPU">1</a>. Optional custom CPU Power Management guide. <a name="Res">2</a>. 1440p displays should change NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> UIScale:2 to get proper scaling while booting. <a name="NVMe">3</a>. Follow NVMe fix guide below for NVMe drives.

This bootloader configuration will probably suit other 6th generation Thinkpads, but there could be some defacts (i. e. not working usb ports, can't connect any displays.. etc.). If you own a model other then a T460s check out these repositories:

Maintainer(s)ModelBootloader
MSzturcT460Opencore
duszmox/mhl221135T460sOpencore
TluckT560/T460Clover
</details>

Installation

<details> <summary><strong>How to install macOS</strong></summary> </br>
  1. Create an installation media
  2. Download the latest EFI folder and copy it into the ESP partiton
  3. Change your BIOS settings according to the table below
  4. Boot from the USB installer (press F12 to choose boot volume) and start the installation process
MenuSetting
ConfigUSBUEFI BIOS SupportEnable
PowerIntel SpeedStep TechnologyEnable
CPU Power ManagementEnable
CPUHyper-Threading TechnologyEnable
SecuritySecurity ChipDisable
Memory ProtectionExecution PreventionEnable
VirtualizationIntel Virtualization TechnologyEnable
Intel VT-d FeatureEnable
Anti-TheftComputraceDisable
Secure BootDisable
Intel SGXDisable
Device GuardDisable
StartupUEFI/Legacy BootUEFI Only
CSM SupportNo
Boot ModeQuick
</details> <details> <summary><strong>Enable Apple Services</strong></summary> </br>
  1. Run the following script in Terminal
git clone https://github.com/corpnewt/GenSMBIOS && cd GenSMBIOS && chmod +x GenSMBIOS.command && ./GenSMBIOS.command
  1. Type 3 to Generate SMBIOS, then press ENTER
  2. Type MacbookPro13,1 5, then press ENTER. Leave this Terminal window open.
  3. Open /EFI/OC/Config.plist with any editor and navigate to PlatformInfo -> Generic
  4. Add the script's last result to MLB, SystemSerialNumber and SystemUUID
<key>PlatformInfo</key>
<dict>
   <key>Generic</key>
   <array>
      </dict>
         <key>AdviseWindows</key>
         <false/>
         <key>SystemMemoryStatus</key>
         <string>Auto</string>
         <key>MLB</key>
+        <string>M0000000000000001</string>
         <key>ProcessorType</key>
         <integer>0</integer>
         <key>ROM</key>
         <data>ESIzRFVm</data>
         <key>SpoofVendor</key>
         <true/>
         <key>SystemProductName</key>
         <string>MacBookPro13,1</string>
         <key>SystemSerialNumber</key>
+        <string>W00000000001</string>
         <key>SystemUUID</key>
+        <string>00000000-0000-0000-0000-000000000000</string>
      </dict>
   </array>
</dict>
  1. Save and reboot the system
</details> <details> <summary><strong>How to update the bootloader</strong></summary> </br>
  1. Download the latest release
  2. Copy and Paste your PlatfromInfo
  3. Enable optional kexts if needed (NVMEFix, AirportItlwm, etc.)
  4. Test the new bootloader with an USB stick (Set BootProtect: None whenever booting with external drives)
  5. Customize boot preferences (skip picker, disable verbose, etc.)
  6. Mount your ESP partition
  7. Backup your old EFI folder and replace it with the new one
</details>

Post-install (optional)

<details> <summary><strong>Enable Intel WLAN cards</strong></summary> </br> Two different drivers are under development for Intel WiFi support: `AirportItlwm.kext` and `AirPortOpenBSD.kext`. Do NOT use them both at the same time.
  1. Open /EFI/OC/Config.plist with any editor
  2. Add the content of #intel-wlan - macOS 11.plist or #intel-wlan - macOS 12.plist according to your macOS version
  3. Save and reboot the system

Note: The drivers provided in this repo are for Big Sur and Monterey only; if you're running a different version of macOS please use the corresponding AirportItlwm.kext or AirPortOpenBSD.kext.

Optional: Remove unnecessary firmware files from OpenIntelWireless drivers.

</details> <details> <summary><strong>Enable non-natively supported Broadcom WLAN cards</strong></summary> </br>
  1. Download AirportBrcmFixup and BrcmPatchRAM.
  2. Copy AirportBrcmFixup.kext, BrcmBluetoothInjector.kext, BrcmFirmwareData.kext and BrcmPatchRAM3.kext to /EFI/OC/Kexts
  3. Open /EFI/OC/Config.plist with any editor
  4. Add the content of [#broadcom-wlan.plist](/EFI/OC/#broadcom-wlan.plist
  5. Save and reboot the system
</details> <details> <summary><strong>Fix NVMe power management</strong></summary> </br>
  1. Open /EFI/OC/Config.plist with any editor
  2. Add the content of #nvme-fix.plist
  3. Save and reboot the system
</details> <details> <summary><strong>Custom CPU Power Management</strong></summary> </br>
  1. Run the following script in Terminal
git clone https://github.com/corpnewt/CPUFriendFriend; cd CPUFriendFriend; chmod +x ./CPUFriendFriend.command; ./CPUFriendFriend.command
  1. When asked, select preferred values
  2. From the pop-up window, copy ssdt_data.aml into /EFI/OC/ACPI/ folder (rename it if you'd like)
  3. Open /EFI/OC/Config.plist with any editor
  4. Add the content of #cpu-pm.plist (make sure SSDT-PLUG.aml is disabled and match your new SSDT filename)
  5. Save and reboot the system
</details> <details> <summary><strong>ThinkPad Dock USB ports mapping</strong></summary> </br>

I've never had one so there's a chance something might not be working. USB mapping guide.

</details>

Other tweaks

<details> <summary><strong>Enable HiDPI</strong></summary> </br>
  1. Disable SIP
  2. Run the following script in Terminal
    bash -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi.sh)"
    
  3. Follow the instructions, then reboot
  4. Re-enable SIP (if desired)

Alternative method

</details> <details> <summary><strong>Enable multimedia keys, fan & LEDs control </strong></summary> </br>
  1. Download and install YogaSMC-App-Release.dmg (both the pref-panel and app itself)
  2. Open the app
  3. Check the launch on login option
</details> <details> <summary><strong>Use PrtSc key as Screenshot shortcut</strong></summary> </br>

Super useful shortcut that I wish I had it on my previous MBP. Default is ⌘⇧5.

  1. Open SystemPreferences.app
  2. Go under Keyboard > Shortcuts > Screenshots
  3. Click on Screenshot and recording options field
  4. Press PrtSc on your keyboard (it should came out as F13)
</details> <details> <summary><strong>Add Apple Watch authentication to sudo</strong></summary> </br>

If you have an Apple Watch and you already replaced the build in WiFi card, you could enable authenticating as sudo with you Apple Watch using pam-watch

  1. Download the latest ZIP file

  2. Unzip, which by default creates a folder called pam-watchid-main.

  3. Open Terminal and install it:

    • $ cd ~/Downloads/pam-watchid-main
    • sudo make install
  4. Regsiter the new PAM module for sudo:

    • Edit /etc/pam.d/sudo
    • Add a new line under line 1 (which is a comment) containing:
      auth sufficient pam_watchid.so
      

That’s it. Now, whenever you use sudo, you have the option of using your Watch to authenticate. <img src="/Images/AW-sudo.png" alt="Apple Watch authenticating with sudo" height="300">

</details> <details> <summary><strong>Monitor temperatures and power consumption</strong></summary> </br>
  1. Download and install HWMonitor
  2. Check launch on login (optional)
</details> <details> <summary><strong>Faster macOS dock animation</strong></summary> </br>

This enables auto-hide and speeds up the animation

  1. Run the following script in Terminal

    defaults write com.apple.dock autohide-delay -float 0; defaults write com.apple.dock autohide-time-modifier -float 0.5; killall Dock
    
    </details>
<details> <summary><strong>Boot process tweaks</strong></summary> </br>
MenuSettingWhat does it do?
MiscBootShowPickerFalseSkip bootloader page
UEFIAudioPlayChimeDisabledAlways silent boot
</details> <details> <summary><strong>BIOS Mod</strong></summary> </br>

I know it can be scary at first but with the right amount of carefulness anyone can do it. Is it worth the effort and risk? I don't think so. I enjoyed it? 100%. A brief guide referencing other guides.

</details>

Status

<details> <summary><strong>What's working ✅</strong></summary> </br> </details> <details> <summary><strong>What's not working ⚠️</strong></summary> </br> </details> <details> <summary><strong>Update tracker 🔄</strong></summary> </br>
EFI Release0.8.1
MacOS12.4
OpenCore0.8.1
Lilu1.6.0
VirtualSMC1.2.9
YogaSMC1.5.1
WhateverGreen1.5.9
AppleALC1.7.2
VoodooPS2Controller2.2.8
VoodooRMI1.3.4
IntelMausi1.0.7
HibernationFixup1.4.5
CPUFriend1.2.5
NVMeFix1.0.9
RTCMemoryFixup1.0.7
AirPortOpenBSD2.0.6
AirportItlwm2.2.0a
IntelBluetoothFirmware2.1.0
AppleBacklightSmoother1.0.2
BrightnessKeys1.0.2
Sinetek-rtsx9.0
</details>

Performances

<details> <summary><strong>Benchmarks ⏱</strong></summary> </br>
CPUSingle-CoreMulti-Core
Cinebench r20329816
Geekbench 57281669
GPUOpenCLMetal
Geekbench 540133972

<small>macOS 11.2.3, EFI release 0.6.8</small>

</details>

Thanks to

tamger02 for providing his laptop, the hackintosh community on GitHub, InsanelyMac, and r/hackintosh.