Skip to content

HJebbour/ThinkPad-X1C8-Hackintosh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 

Repository files navigation

macOS on Lenovo Thinkpad X1 Carbon Gen 8 (20U9)

OpenCore-based EFI for Lenovo Thinkpad X1 Carbon 8th Generation | Model 20U9 Lenovo ThinkPad X1 Carbon Gen 8

Status: Stable | Daily driver

macOS Version OpenCore Model

This repo is forked from several X1C7-Hackintosh repositories (See OTHER REPOSITORIES)

DISCLAIMER: As you embark on your Hackintosh journey you are encouraged to READ the entire README and Dortania guides before you start.

This X1C8 Hackintosh project aims to be an all-in-one maintained hub for Opencore-based hackintoshes on the Thinkad X1 Carbon Gen 8. In short, this X1C8-Hackintosh is very stable and is currently my daily driver. I fully recommend this project to anyone looking for a MacBook alternative.

You can find a wealth of knowledge on Reddit, TonyMacX86 or Google.

Important: If you are upgrading to macOS 14.4+ you have to set the value of Misc -> Security -> SecureBootModel to Disabled in config.plist and disable AirportItlwm kext untill the upgrade finishes and then use "AirportItlwm_v2.3.0_stable_Sonoma14.4.kext".

Should you find an error, or improve anything, be it in the config itself or in the my documentation, please consider opening an issue or a pull request to contribute.

I am not responsible for any damages you may cause.

Summary

WORKING ✅

Video and Audio

Feature Status Dependency Remarks
Full Graphics Accleration (QE/CI) WhateverGreen.kext & AAPL,ig-platform-id = 0900A53E & device-id = C89B0000 -
Audio Output AppleALC.kext with Layout ID = 71 -
Audio Speakers AppleALC.kext with Layout ID = 71 You have to manually aggregate the two output using "Audio MIDI Setup" to have 4 speakers working
Audio Input AppleALC.kext with Layout ID = 71 Headset microphone is inconsistent and needs more testing
Automatic Headphone Output Switching AppleALC.kext with Layout ID = 71 -

Power Management

Feature Status Dependency Remarks
Battery ECEnabler.kext Battery life is native compared to Windows and Linux
CPU Power Management (SpeedShift) CPUFriend.kext with CPUFriendDataProvider.kext -
iGPU Power Management SSDT-PLUG.aml -
NVMe Drive Battery Management NVMeFix.kext Improves NVMe drive power management
S3 Sleep / Hibernation Mode 3 - -

Connectivity

Feature Status Dependency Remarks
WiFi AirportIltwm.kext -
Bluetooth IntelBluetoothFirmware.kext, BlueToolFixup.kext, and USBMap.kext Headset's microphone is not working via Bluetooth
Ethernet IntelMausi.kext -
HDMI 1.4 BusID patching It only works properly after being put to sleep and woken up once (Hotplug & 4K resolution are supported)
1st USB-C (Display output) - It only works properly after being put to sleep and woken up once (Hotplug & 4K resolution are supported)
2nd USB-C (Display output) - It works properly (Hotplug is supported)
USB 2.0 / USB 3.0 USBMap.kext Create your own USBMap.kext using CorpNewt
USB 3.1 (Type-C) USBMap.kext and enable Thunderbolt 3 in BIOS Hotplug is working
USB Power Properties in macOS - -
ThinkPad USB-C Docking Station - Work smoothly

Display, TrackPad, TrackPoint, Keyboard, and Webcam

Feature Status Dependency Remarks
Brightness Adjustments WhateverGreen.kext, SSDT-PNLF.aml, enable-backlight-smoother property, and BrightnessKeys.kext enable-backlight-smoother property is optional for smoother birghtness adjustments
TrackPoint VoodooPS2Controller.kext -
TrackPad VoodooI2C.kext and VoodooI2CHID.kext -
Built-in Keyboard VoodooPS2Controller.kext -
Webcam USBMap.kext -

macOS Continuity

Feature Status Dependency Remarks
iCloud, iMessage, FaceTime Whitelisted Apple ID, Valid SMBIOS See Dortania / OpenCore-Install-Guide Switch to itlwm.kext in order to work with macOS Sonoma
Sidecar (wired) - Tested with iPad Pro M1 with USB-C to USB-C cable

Miscellaneous

Feature Status Dependency Remarks
Multiple Boot - macOS, Windows, and Linux distributions (Use this guide to setup dual boot on the same drive)
Boot chime - Working like a charme
Fan Control / Multimedia Keys YogaSMC.kext I modified YogaSMC.kext in order to work with my setup
FireVault 2 - Working but the keyboard layout during boot is messed up!
NOT WORKING ❌
Feature Status Dependency Remarks
Fingerprint Reader - Will never work
Wireless WAN DISABLED in BIOS to save power. Unable to investigate as I have no need and my model did not come with WWAN
DRM iGPU DRM is broken with iGPUs
Internal Microphone - I hope it will work one day
Thunderbolt 3 - Not working
Continuity Camera - Not working with Intel wireless cards
AirDrop - Not working with Intel wireless cards
Apple Watch Auto Unlock - Not working with Intel wireless cards
Instant Hotspot - Not working with Intel wireless cards
Sidecar (wireless) - Not working with Intel wireless cards
Continuity Markup and Sketch - Not working with Intel wireless cards
Handoff - Support dropped with macOS Sonoma and the new AirportIltwm kext
Universal Clipboard - Support dropped with macOS Sonoma and the new AirportIltwm kext
SMS & Phone Call via iPhone - Support dropped with macOS Sonoma and the new AirportIltwm kext
AirPlay to Mac - Support dropped with macOS Sonoma and the new AirportIltwm kext

Introduction

THIS IS NOT A GUIDE!

This is not a guide. It shoud only be used as a reference. I provide some tips and tricks I learned on my journey in building a hackintosh. The best way of using this is as a supplement to the OpenCore guide. If you have questions about how to setup your specific hardware, are unclear about what to do, or would like to see the settings I've used.

I understand that some may simply add the OC and Boot folders to their EFI folder. For clarity the EFI partition needs a folder called EFI that contains the Boot and OC folder.

EFI (drive)
	EFI
	├── BOOT
	├── OC

It should work and your X1C8 should boot and work fine. You will at minimum need to generate SMBIOS values if you want Apple services to work. Note that all error reporting/logging has been turned off in the config.plist. You will have a difficult time trouble shooting with the setup provided. You can easily turn on the error reporting and logging if you follow the Dortania guide. Best of luck.

NOTE if you simply wish to copy my EFI please do the following:

  1. Generate SMBIOS values and add them in the config.plist (Use MacBookAir9,1)
  2. Ensure the value of showpicker is true in the config.plist file to provide the opencore menu when booting.
  3. Prepare your install USB
  4. Move the entire EFI folder (with your modifications) to the proper partition on your USB (or SSD once the install is complete).
  5. Install - You'll need to select F12 to get the boot menu options and boot from the USB each time the computer restarts until you've copied the EFI folder onto the hard drive. You may also need to select the correct boot option during install.
THIS IS A GUIDE!

The one and only guide to install macOS, provided by Dortania

HARDWARE

Lenovo ThinkPad X1 Carbon Gen 8 (Core i7)

These are relevant components on my machine which may differ from yours, keep these in mind as you will need to adjust accordingly, depending on your machine's configuration.

Category Component Note
Type 20U9 -
CPU Intel Core i7-10510U -
GPU Intel UHD Graphics -
SSD WDC PC SN720 SDAQNTW-512G-1001 Swapped for better compatibility, the laptop came with a Toshiba SSD
Screen 14" FHD - 1920 x 1080 -
Memory 8GB / 2133MHz LPDDR3 -
Battery Integrated Li-Polymer 51Wh -
Camera 720p Camera -
Wi-Fi & BT Intel Wi-Fi 6 AX201 -
Input PS2 Keyboard & Synaptics I2C HID TrackPad -
Ports 2x USB 3.1 Gen 1 (Right USB Always On)
2x USB 3.1 Type-C Gen 2 / Thunderbolt 3 (Power Delivery and DisplayPort) [Max 5120x2880 @60Hz]
HDMI 1.4 (Max 4096x2160 @24Hz)
-

Refer to ThinkPad X1 Carbon Gen 8 Specs for possible stock configurations.

SOFTWARE
Component Version
OpenCore 1.0.0
macOS Sonoma 14.5
Windows 11 23H2
Ubuntu 22.04.4 LTS
Fedora 40
ACPI
Component
SSDT-AWAC
SSDT-ECRW
SSDT-PLUG
SSDT-PNLF
SSDT-THINK
SSDT-USBX
SSDT-XOSI
KEXT
Kext Version
AirportItlwm 2.3.0
AppleALC 1.9.0
BlueToolFixup 2.6.8
BrightnessKeys 1.0.3
CPUFriend 1.2.7
CPUFriendDataProvider -
ECEnabler 1.0.4
FeatureUnlock 1.1.5
IntelBluetoothFirmware 2.4.0
IntelBTPatcher 2.4.0
IntelMausi 1.0.7
Lilu 1.6.7
NVMeFix 1.1.1
SMCBatteryManager 1.3.2
SMCProcessor 1.3.2
SMCSuperIO 1.3.2
USBMap -
VirtualSMC 1.3.2
VoodooI2C 2.8.0
VoodooI2CHID 2.8.0
VoodooPS2Controller 2.3.5
WhateverGreen 1.6.6
YogaSMC Modified version 1.5.1
UEFI DRIVERS
Driver Version
OpenCanopy.efi OpenCorePkg 1.0.0
OpenHfsPlus.efi OpenCorePkg 1.0.0
OpenRuntime.efi OpenCorePkg 1.0.0
AudioDxe.efi OpenCorePkg 1.0.0
CrScreenshotDxe.efi OpenCorePkg 1.0.0
Ext4Dxe.efi OpenCorePkg 1.0.0
OpenLinuxBoot.efi OpenCorePkg 1.0.0
ResetNvramEntry.efi OpenCorePkg 1.0.0
ToggleSipEntry.efi OpenCorePkg 1.0.0
OTHER REPOSITORIES
CREDITS

Credit to all these great people whom I don't know but have made my hackintosh dreams a reality:

SCREENSHOTS

Neofetch & About This Mac Multiboot: Windows 11, Ubuntu, Fedora, and macOS Blackmagic Disk Speed Test Experimental support of macOS Sequoia

Before Installation

UEFI SETTINGS

Config

  • Keyboard/Mouse
    • Trackpoint Enabled
    • Trackpad Enabled
  • Display
    • Boot Display Device ThinkPad LCD
    • Total Graphics Memory 512MB
    • Boot Time Extension Disabled
  • CPU
    • Intel Hyper-Threading Technology Enabled
  • Thunderbolt
    • Thunderbolt BIOS Assist Mode Disabled
    • Security Level No Security
    • Support in Pre Boot Environment -> Thunderbolt(TM) device Disabled

Security

  • Memory Protection
    • Execution Prevention Enabled
  • Virtualization
    • Kernel DMA Protection Disabled
    • Intel Virtualization Technology Enabled
    • Intel VT-d Feature Disabled
    • Enhanced Windows Biometric Security Disabled
  • I/O Port Access
    • Wireless WAN Disabled
  • Secure Boot
    • Secure Boot Disabled
  • Intel SGX
    • Intel SGX Control Disabled
  • Device Guard
    • Device Guard Disabled

Startup

  • UEFI/Legacy Boot UEFI Only
  • CSM Support No
  • Boot Mode Quick
KEYBOARD LAYOUT

Either add as a String or as a Data (HEX Data ProperTree)

Format is lang-COUNTRY:keyboard

🇺🇸 | [0] en_US - U.S --> en-US:0 --> (656e2d55 533a30 in HEX)

Key Type Value
prev-lang:kbd String en-US:0

Pick your keyboard layout here:

AppleKeyboardLayouts.txt

Post-Install

TRACKPAD

To improve the Trackpad in macOS, you have to disable Force Click and haptic feedback in System Preferences -> Trackpad

SMBIOS

Use GenSMBIOS to create your own serial # based off of your preferred model.

  • MacBookPro16,3 -What I used
  • MacBookPro16,2 -Used by others

Note: If you use a different SMBIOS model than the MacbookPro16,3 that I've used. The provided USB mapping will not work. You will need to edit the USBMap.kext file. You can right click on the file and select Show Package Contents. From there you can open the Info.plist file in ProperTree and change MacBookPro16,3 to whatever Model ID you've chosen. This should provide a working USBMap.kext.

POWER MANAGEMENT

Generate CPUFriendDataProvider for your machine here or use those I've provided. Highly recommended that you use power management.

AUDIO

Using the Layout ID 71 will enable the 4 speakers (Top front & Bottom rear) in System Preferences>Sound allowing you to select either set of speakers (Two Output). To combine the two you'll need to open Audio MIDI Setup and create Multi-Output Device with both sets of speakers. Unfortunately you can't control natively the volume of an Aggregate Device with the volume keys. You'll need to install AggregateVolumeMenu

MISCELLANEOUS

Download YogaSMC App here to complete the Fan Control / Multimedia Keys setup.