{"config":{"indexing":"full","jieba_dict":null,"jieba_dict_user":null,"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"","title":"Home"},{"location":"#faq","text":"","title":"FAQ"},{"location":"#does-everything-work","text":"

Core functions work flawlessly. Notable non-functional features include the fingerprint reader, WWAN, and USB 3.1 Gen2 hotplug.

","title":"Does everything work?"},{"location":"#is-this-project-maintained","text":"

Yes, until eventually my x1c6 dies or macOS phases out update (even then, it'll likely last a few more years).

","title":"Is this project maintained?"},{"location":"#can-this-brick-my-laptop","text":"

Not very likely, expect drive wipes and lost time, however.

","title":"Can this brick my laptop?"},{"location":"#can-you-port-this-for-x-machine","text":"

No.

","title":"Can you port this for X machine?"},{"location":"#how-do-i-keep-my-hackintosh-setup-updated","text":"

Currently, there is no automatic solution available. For now, I recommend you create a GitHub watch alert and update the EFI as it comes along.

","title":"How do I keep my Hackintosh setup updated?"},{"location":"#basic-references","text":"

Warning

Please read, or at the least, browse through these great resources to get an idea of what's going on before proceeding. This is especially important if this is your first time (OpenCore) Hackintosh-ing.

Tip

If I missed something here, refer to the official OpenCore docs first, then Dortania's docs. Only then, if you still haven't found what you're looking for, seek Google or forum help.

","title":"Basic References"},{"location":"#function-summary","text":"","title":"Function Summary"},{"location":"#non-fuctional","text":"Feature Status Dependency Remarks Apple Music Lossless (DRM) \u274c iGPU is incompatible with Apple's Lossless DRM. Try using an external DAC. Fingerprint Reader \u274c DISABLED in BIOS to save power if not used in other OSes. Linux support was only recently added Wireless WAN \u274c DISABLED in BIOS to save power if not used in other OSes. Unable to investigate as I have no need and my model did not come with WWAN. Load Apple's Graphics Micro Code (GuC) \u274c See Issue #103. Will never work AFAIK due to inherent incompatibility.","title":"Non-Fuctional:"},{"location":"#video-and-audio","text":"Feature Status Dependency Remarks Full Graphics Accleration (QE/CI) \u2705 WhateverGreen.kext - Audio Recording \u2705 AppleALC.kext with Layout ID = 21 - Audio Playback \u2705 AppleALC.kext with Layout ID = 21 - Automatic Headphone Output Switching \u2705 AppleALC.kext with Layout ID = 21 -","title":"Video and Audio"},{"location":"#power-charge-sleep-and-hibernation","text":"Feature Status Dependency Remarks Battery Percentage Indication \u2705 SSDT-Battery.aml and /patches/OpenCore Patches/Battery.plist CPU Power Management (SpeedShift) \u2705 XCPM and CPUFriend.kext, generate your own CPUFriendDataProvider with CPUFriendFriend or one-key-cpufriend. iGPU Power Management \u2705 XCPM, enabled by SSDT-PM.aml NVMe Drive Battery Management \u2705 NVMeFix.kext In my experience, NVMe drives will drain more power than SATA drives. S3 Sleep/ Hibernation Mode 3 \u2705 SSDT-Sleep.aml Hibernation Mode 25 \u2705 RTCMemoryFixup.kext and HibernationFixup.kext Supported, macOS uses mode 3 by default. Change to mode 25 via pmset. Custom Charge Threshold \u2705 SSDT-EC.aml, YogaSMC.kext, and YogaSMCPane Adjust with YogaSMCPane in System Preferences Fan Control \u2705 SSDT-EC.aml, YogaSMC.kext, and YogaSMCApp Adjust with YogaSMC App. Battery Life \u2705 Native, comparable to Windows/Linux. Biggest impact is TB3, see docs/BIOS.md Will need a modded BIOS to disable CFG Lock","title":"Power, Charge, Sleep and Hibernation"},{"location":"#input-output","text":"Feature Status Dependency Remarks WiFi \u2705 Native with BCM94360CS2, Intel AX200 is preferred. See /patches/ Network Patches/ for patches. Bluetooth \u2705 Native with BCM94360CS2. Intel AX200 is preferred. See /patches/ Network Patches/ for patches. Ethernet \u2705 IntelMausi.kext Needs Lenovo Ethernet adapter: Item page HDMI hotplug \u2705 Custom EDID Override /patches/Internal Displays/ Refer to Issue #60 if one does not exist already for your display. 4K UHD output via HDMI/ DisplayPort (Modded BIOS) \u2705 See DMVT Pre-Allocated to 64M See docs/BIOS.md for information about modding the BIOS. 4K UHD output via HDMI/ DisplayPort (Vanilla BIOS) \u2705 See /patches/OpenCore Patches/4K-Output-wo-BIOSmod.plist - USB 2.0, USB 3.0, and Micro SD Card Reader \u2705 SSDT-XHC1.aml - USB 3.1 \u26a0\ufe0f SSDT-TB-DSB2-XHC2.aml USB 3.1 Gen2 hotplug will likely never work. It is also neither planned nor currently worked on. If you need USB 3.1 Gen2, coldboot the machine with the device attached. USB Power Properties in macOS \u2705 SSDT-XHC1.aml - Thunderbolt 3 Hotplug \u2705 SSDT-TB-* Native interface within System Report","title":"Input/ Output"},{"location":"#display-trackpad-trackpoint-and-keyboard","text":"Feature Status Dependency Remarks Brightness Adjustments \u2705 WhateverGreen.kext, SSDT-PNLF.aml, and BrightnessKeys.kext HiDPI (Optional) \u2705 xzhih/one-key-hidpi Scaling issues post-sleep fixed with AAPL, ig-platform BAAnWQ== TrackPoint \u2705 VoodooPS2Controller.kext - TrackPad \u2705 VoodooPS2Controller.kext or VoodooSMBus.kext and VoodooRMI.kext VoodooRMI.kext is recommended and preferred over VoodooPS2. Built-in Keyboard \u2705 VoodooPS2Controller.kext Optimizations recommended, see docs/Post-Installation.md Multimedia Keys \u2705 BrightnessKeys.kext and YogaSMC YogaSMC is recommended and preferred over ThinkpadAssisstant","title":"Display, TrackPad, TrackPoint, and Keyboard"},{"location":"#macos-continuity","text":"Feature Status Dependency Remarks iCloud, iMessage, FaceTime \u2705 Whitelisted Apple ID, Valid SMBIOS See dortania /OpenCore-Install-Guide Continuty \u2705 Native with BCM94360CS2. ExtendBTFeatureFlags to True otherwise. See /patches/Network Patches/ for specific network card. AirDrop \u2705 Native with BCM94360CS2. ExtendBTFeatureFlags to True otherwise. See /patches/Network Patches/ for specific network card. Sidecar \u2705 Native with BCM94360CS2. ExtendBTFeatureFlags to True otherwise. iPad with >= iPadOS 13 Tested with iPad Mini with iPadOS 13.1.2 FileVault \u2705 as configured in config.plsit per Dortania's Post-Install Time Machine \u2705 Native TimeMachine only backups your Macintosh partition. Manually backup your EFI partition using another method.","title":"macOS Continuity"},{"location":"CHANGELOG/","text":"

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.

","title":"CHANGELOG"},{"location":"CHANGELOG/#2022-8-24","text":"","title":"2022-8-24"},{"location":"CHANGELOG/#added","text":"","title":"Added"},{"location":"CHANGELOG/#changed","text":"","title":"Changed"},{"location":"CHANGELOG/#2022-4-20","text":"","title":"2022-4-20"},{"location":"CHANGELOG/#added_1","text":"","title":"Added"},{"location":"CHANGELOG/#changed_1","text":"","title":"Changed"},{"location":"CHANGELOG/#2022-2-21","text":"","title":"2022-2-21"},{"location":"CHANGELOG/#added_2","text":"","title":"Added"},{"location":"CHANGELOG/#changed_2","text":"","title":"Changed"},{"location":"CHANGELOG/#deleted","text":"","title":"Deleted"},{"location":"CHANGELOG/#2021-11-5","text":"","title":"2021-11-5"},{"location":"CHANGELOG/#added_3","text":"","title":"Added"},{"location":"CHANGELOG/#changed_3","text":"","title":"Changed"},{"location":"CHANGELOG/#2021-8-3","text":"","title":"2021-8-3"},{"location":"CHANGELOG/#notice","text":"","title":"Notice"},{"location":"CHANGELOG/#changed_4","text":"","title":"Changed"},{"location":"CHANGELOG/#2021-6-21","text":"","title":"2021-6-21"},{"location":"CHANGELOG/#changed_5","text":"","title":"Changed"},{"location":"CHANGELOG/#notice_1","text":"","title":"Notice"},{"location":"CHANGELOG/#2021-6-8","text":"","title":"2021-6-8"},{"location":"CHANGELOG/#changed_6","text":"","title":"Changed"},{"location":"CHANGELOG/#notice_2","text":"","title":"Notice"},{"location":"CHANGELOG/#2021-5-15","text":"","title":"2021-5-15"},{"location":"CHANGELOG/#changed_7","text":"","title":"Changed"},{"location":"CHANGELOG/#removed","text":"","title":"Removed"},{"location":"CHANGELOG/#2021-4-7","text":"","title":"2021-4-7"},{"location":"CHANGELOG/#changed_8","text":"","title":"Changed"},{"location":"CHANGELOG/#removed_1","text":"","title":"Removed"},{"location":"CHANGELOG/#2021-3-6","text":"","title":"2021-3-6"},{"location":"CHANGELOG/#changed_9","text":"","title":"Changed"},{"location":"CHANGELOG/#2021-2-4","text":"","title":"2021-2-4"},{"location":"CHANGELOG/#changed_10","text":"","title":"Changed"},{"location":"CHANGELOG/#2021-1-5","text":"","title":"2021-1-5"},{"location":"CHANGELOG/#changed_11","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-12-26","text":"","title":"2020-12-26"},{"location":"CHANGELOG/#changed_12","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-11-17","text":"","title":"2020-11-17"},{"location":"CHANGELOG/#changed_13","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-11-14","text":"","title":"2020-11-14"},{"location":"CHANGELOG/#added_4","text":"","title":"Added"},{"location":"CHANGELOG/#changed_14","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-11-13","text":"","title":"2020-11-13"},{"location":"CHANGELOG/#changed_15","text":"","title":"Changed"},{"location":"CHANGELOG/#removed_2","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-11-3","text":"","title":"2020-11-3"},{"location":"CHANGELOG/#changed_16","text":"","title":"Changed"},{"location":"CHANGELOG/#added_5","text":"","title":"Added"},{"location":"CHANGELOG/#removed_3","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-10-6","text":"","title":"2020-10-6"},{"location":"CHANGELOG/#notice_3","text":"","title":"Notice"},{"location":"CHANGELOG/#changed_17","text":"","title":"Changed"},{"location":"CHANGELOG/#added_6","text":"","title":"Added"},{"location":"CHANGELOG/#removed_4","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-8-3","text":"","title":"2020-8-3"},{"location":"CHANGELOG/#added_7","text":"","title":"Added"},{"location":"CHANGELOG/#changed_18","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-7-18","text":"","title":"2020-7-18"},{"location":"CHANGELOG/#added_8","text":"","title":"Added"},{"location":"CHANGELOG/#changed_19","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-6-29","text":"","title":"2020-6-29"},{"location":"CHANGELOG/#added_9","text":"","title":"Added"},{"location":"CHANGELOG/#changed_20","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-6-26","text":"","title":"2020-6-26"},{"location":"CHANGELOG/#added_10","text":"","title":"Added"},{"location":"CHANGELOG/#changed_21","text":"","title":"Changed"},{"location":"CHANGELOG/#removed_5","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-6-1","text":"","title":"2020-6-1"},{"location":"CHANGELOG/#changed_22","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-5-27","text":"","title":"2020-5-27"},{"location":"CHANGELOG/#changed_23","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-5-24","text":"","title":"2020-5-24"},{"location":"CHANGELOG/#added_11","text":"","title":"Added"},{"location":"CHANGELOG/#changed_24","text":"","title":"Changed"},{"location":"CHANGELOG/#removed_6","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-5-22","text":"","title":"2020-5-22"},{"location":"CHANGELOG/#2020-5-21","text":"","title":"2020-5-21"},{"location":"CHANGELOG/#changed_25","text":"

Keyboard Perfection is almost here! - Modified SSDT-Keyboard patch to be compatible with ThinkpadAssistant. - Mute/unMute Microphone with F4, with LED! - Disable WiFi with F8 - Mirror with F7 - Bluetooth, F10 still has to be handled by BetterTouchTool, but hopefully supported will be added soon. See my request

","title":"Changed"},{"location":"CHANGELOG/#2020-5-9","text":"","title":"2020-5-9"},{"location":"CHANGELOG/#changed_26","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-4-6-2","text":"","title":"2020-4-6 (#2)"},{"location":"CHANGELOG/#added_12","text":"","title":"Added"},{"location":"CHANGELOG/#changed_27","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-4-6-1","text":"","title":"2020-4-6 (#1)"},{"location":"CHANGELOG/#added_13","text":"","title":"Added"},{"location":"CHANGELOG/#changed_28","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-4-1","text":"","title":"2020-4-1"},{"location":"CHANGELOG/#added_14","text":"","title":"Added"},{"location":"CHANGELOG/#changed_29","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-3-31","text":"","title":"2020-3-31"},{"location":"CHANGELOG/#added_15","text":"","title":"Added"},{"location":"CHANGELOG/#changed_30","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-3-30","text":"","title":"2020-3-30"},{"location":"CHANGELOG/#added_16","text":"","title":"Added"},{"location":"CHANGELOG/#changed_31","text":"","title":"Changed"},{"location":"CHANGELOG/#deprecated","text":"","title":"Deprecated"},{"location":"CHANGELOG/#removed_7","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-3-29","text":"","title":"2020-3-29"},{"location":"CHANGELOG/#added_17","text":"","title":"Added"},{"location":"CHANGELOG/#changed_32","text":"","title":"Changed"},{"location":"CHANGELOG/#removed_8","text":"","title":"Removed"},{"location":"CHANGELOG/#2020-3-26","text":"","title":"2020-3-26"},{"location":"CHANGELOG/#changed_33","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-3-23","text":"","title":"2020-3-23"},{"location":"CHANGELOG/#changed_34","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-2-04","text":"","title":"2020-2-04"},{"location":"CHANGELOG/#changed_35","text":"","title":"Changed"},{"location":"CHANGELOG/#2020-1-18","text":"","title":"2020-1-18"},{"location":"CHANGELOG/#changed_36","text":"","title":"Changed"},{"location":"CHANGELOG/#2019-12-22","text":"","title":"2019-12-22"},{"location":"CHANGELOG/#added_18","text":"","title":"Added"},{"location":"CHANGELOG/#changed_37","text":"","title":"Changed"},{"location":"CHANGELOG/#deprecated_1","text":"","title":"Deprecated"},{"location":"CHANGELOG/#removed_9","text":"","title":"Removed"},{"location":"installing-macOS/","text":"","title":"Installing macOS"},{"location":"installing-macOS/#creating-the-macos-installer","text":"

Start by creating a vanilla macOS installer, refer to Dortania's Creating the USB.

You may also use createinstallmedia if you already have a Mac.

Tip

Often as above, the project will defer universal steps to Dortania links. Hence, this repository is meant to be used in conjunction with their guides.

","title":"Creating the macOS Installer"},{"location":"installing-macOS/#efi-partition","text":"
  1. Make the following changes to config.plist within the EFI folder.

Note

It is generally a good idea to keep the install media around. As you tweak your own OpenCore config.plist, things may break and you will not be able to get back into macOS using the system's OpenCore. In those times, you can use the install drive to boot into macOS.

  1. Mount the installer media's EFI parition. You may do this via the command line with diskutil or via a utility like corpnewt/MountEFI.

  2. Copy the EFI folder into the installer media's EFI partition. Remember that the top directory level should be EFI.

  3. Boot into the macOS installer envrionemnt using the media. Format target disk as APFS using Disk Utility and complete installation.

  4. Once macOS has been installed, boot the installed macOS paritition with the existing installer USB and complete new user setup.

  5. Copy EFI onto the macOS drive's EFI partition. Set ShowPicker to NO for a cleaner boot experience. You can still access the boot picker by pressing ESC during boot time.

Success

At this point, your machine should boot into macOS without anything attached.

","title":"EFI Partition"},{"location":"issues/","text":"","title":"Issues"},{"location":"issues/#faq","text":"

Warning

None of this applies to you if your machine is not an X1C6, or similar models such as the T480. You're on your own there.

","title":"FAQ"},{"location":"issues/#machine-boots-to-blackbios-andor-selector","text":"","title":"Machine boots to black/BIOS, and/or selector"},{"location":"issues/#legacy-macos-sierra-high-sierra-catalina-and-big-sur","text":"","title":"Legacy macOS: Sierra, High Sierra, Catalina, and Big Sur"},{"location":"issues/#my-x-isnt-working","text":"","title":"My X isn't working!"},{"location":"issues/#troubleshooting","text":"

Defer to Dortania's General Troubleshooting.

Bug

You may find the patches under /patches/Debug Patches/ useful in getting logs.

","title":"Troubleshooting"},{"location":"technical/","text":"","title":"Technical Details"},{"location":"technical/#internal-resources","text":"

Note

While inernal docs are written specifically for my X1C6, some of it are applicable to KabyLake ThinkPads. And to a lesser extent, different generation Carbon ThinkPads.

  1. Explainations of config choices in config.plist: technical/config.plist.md

  2. Explaination of ACPI patches: technical/patches.md

  3. Keyboard Query Map: technical/keyboard-queries.md

  4. Debug EC Queries: technical/EC-queries.md

  5. ALC285 Audio Codec Dump: technical/ALC285.md

  6. JackSense, EAPD, and AppleALC Patch Explaination: Issue #75/ comment by ghost

","title":"Internal Resources"},{"location":"technical/#external-resources","text":"","title":"External Resources"},{"location":"technical/#acpi-asl-and-patches","text":"

Info

The Ubuntu Wiki also has an ACPI Tricks and Tips section.

Warning

Some patches within OC-Little can be oudated, badly done, or fragmented because of different patch authors. Consider using this resource only as a reference and basic guide, not a patch repository.

","title":"ACPI, ASL, and Patches"},{"location":"technical/#acidanthera-official-docs","text":"","title":"Acidanthera Official Docs"},{"location":"technical/#uefi-secure-boot","text":"

It is possible to enable Secure Boot with macOS. Doing so will require custom secure boot keys and signing OpenCore binaries each update. See profzei/Matebook-X-Pro-2018/wiki for a basic getting started guide.

Info

UEFI Secure Boot Explaination: hac-mini-guide/details/secure-boot

","title":"UEFI Secure Boot"},{"location":"technical/#thunderbolt-3","text":"

osy has a great write-up of patching Thunderbolt 3 hotplug under macOS. See Part 1, Part 2, and Part 3.

","title":"Thunderbolt 3"},{"location":"BIOS/modding-the-BIOS/","text":"

Note

BIOS modding is optional.

Danger

The BIOS mod may permanently break TPM. Consider this if you wish to proceed, especially now that TPM is required for Windows 11.

A modded BIOS will allow for more optimizations to be made for macOS and will overall make your hackintosh better. I am a BIOS modding novice myself, but with these instructions, I was able to mod my x1c6 BIOS in less than one hour. I fully recommend doing this for all who think themselves capable. Furthermore, the default config.plist for this repository is meant to accommodate a modded BIOS with appropriate settings. If you cannot mod your BIOS or is unwilling to do so, use Vanilla BIOS.plist.

Recommendation

The CH341a SPI Programmer and SOIC8 Clip are needed to dump, mod, and flash the BIOS chip. There are better and more profession alternative devices but I've found this one to be adequate for the job.

Purchase from amazon.com

Info

The BIOS chip is located above the CPU, under the sticker shield:

Here are the steps to mod your BIOS (credits to paranoidbashthot and \\x). Attempt this at your own risk.

  1. Refer to digmorepaka/thinkpad-firnware-patches.
  2. Use xx_80_patches-v*.txt, I commented out WWAN patches since I do not need it.

Tip

@notthebee also has a useful video to follow:

  1. Remember to dump the vanilla twice and use diff to make sure things were dumped properly, store this backup somewhere safe.
  2. Confirmed working BIOS-v1.45, I cannot be sure about other BIOS versions. Though they will most likely work as well.
  3. The modded BIOS does not need to be signed by thinkpad-eufi-sign. Remember to replace 4C 4E 56 42 42 53 45 43 FB with 4C 4E 56 42 42 53 45 43 FF on the patched BIOS.

  4. Your BIOS chip may not be made by Winbond, but by Macronix instead. In that case, add the argument -c MX25L12835F/MX25L12845E/MX25L12865E to flashrom. See Issue #116

  5. Successfully modding your BIOS will reveal the Advance Menu tab.

  1. It goes without saying, after doing this, do not update your BIOS unless you want to do this again.
","title":"Modding the BIOS"},{"location":"BIOS/settings-for-modded-BIOS/","text":"

The following are further optimization settings that can be figured once your BIOS is modded.

graph TD\n    id1[Advance Tab]-->id2[Intel Advanced Menu];\n    id2-->id3[System Agent Configuration];\n    id2-->id4[Power & Performance];\n    id3-->id5[Graphics Configuration];\n    id4-->id6[CPU - Power Management Control];\n    id5-->|DVMT Pre-Allocated|64M;\n    id6-->id7[CPU Lock Configuration];\n    id7-->|CFG Lock|Disabled;
graph TD\n    id1[Advance Tab]-->id2[Intel Advanced Menu];\n    id2-->id3[OverClocking Performance Menu];\n    id3-->|OverClocking Feature|Enabled;\n    id3-->Processor;\n    id3-->GT;\n    id3-->Uncore;\n    Processor-->|Voltage Offset|100;\n    Processor-->|Offset Prefix|id4[-];\n    GT-->|GT Voltage Offset|id8[80];\n    GT-->|Offset Prefix|id5[-];\n    GT-->|GTU Voltage Offset|id8;\n    GT-->|Offset Prefix|id5;\n    Uncore-->|Uncore Voltage Offset|80;\n    Uncore-->|Offset Prefix|id6[-];
graph LR\n    id1[Advance Tab]-->id2[Power & Performance];\n    id2-->id3[CPU - Power Management Control];\n    id3-->|Boot Performance Mode|id4[Turbo Performance];\n    id3-->|Config TDP Configurations|Up;
graph LR\n    id1[Advance Tab]-->id2[Power & Performance];\n    id2-->id3[CPU - Power Management Control];\n    id3-->|Boot Performance Mode|id4[Max Battery];\n    id3-->|Config TDP Configurations|Down;
","title":"Settings for Modded BIOS"},{"location":"BIOS/settings-for-vanilla-BIOS/","text":"

These BIOS settings must be made to install and run macOS without any problems:

graph LR\n    id1[Main Menu]-->Security;\n    id1-->Config;\n    id1-->Startup;\n    Security-->TPM[Security Chip];\n    Security-->Fingerprint;\n    Security-->SBC[Secure Boot Configuration];\n    Config-->Network;\n    Startup-->|UEFI/Legacy Boot|id4[UEFI Only];\n    Startup-->|CSM Support|No;\n    TPM-->|Security Chip|id2[Disabled];\n    Fingerprint-->|Predesktop Authentication|id2;\n    SBC-->|Secure Boot|id2;\n    Network-->|Wake on LAN|id3[Disabled];\n    Network-->|Wake on LAN from Dock|id3;\n    Network-->|UEFI IPv4 Network Stack|id3;\n    Network-->|UEFI IPv6 Network Stack|id3;

Tip

You can also disable hardware/features you do not need to save power, some examples are:

graph LR\n    id1[Main Menu]-->Security;\n    id1-->Config;\n    Security-->id2[I/O Port Access];\n    Config-->USB;\n    id2-->|Wireless WAN|id3[Disabled];\n    id2-->|Fingerprint Reader|id3;\n    id2-->|Memory Card Slot|id3;\n    USB-->|Always on USB|Disabled;
graph LR\n    id1[Main Menu]-->Config;\n    Config-->id2[Thunderbolt 3];\n    id2-->|Thunderbolt BIOS Assist Mode|Enabled;\n    id2-->|Thunderbolt Device|Enabled;
graph LR\n    id1[Main Menu]-->Config;\n    Config-->id2[Thunderbolt 3];\n    id2-->|Thunderbolt BIOS Assist Mode|Disabled;\n    id2-->|Security Level|id3[No Security];\n    id2-->|Support in Pre Boot Environment: Thunderbolt Device|Disabled;
","title":"Settings for Vanilla BIOS"},{"location":"hardware/optimizing-hardware/","text":"","title":"Optimizing Hardware"},{"location":"hardware/optimizing-hardware/#repaste-the-cooler","text":"","title":"Repaste the Cooler"},{"location":"hardware/optimizing-hardware/#replace-the-fan-if-applicable","text":"

Info

tl;dr - The X1C6 has different cooler fan manufacturers, and they differ greatly in noise and performance.

Learn more from reddit.com

","title":"Replace the Fan (if applicable)"},{"location":"hardware/optimizing-hardware/#battery-replacement","text":"

Recommendation

Depending on the battery health (cycle count, max capacity), consider getting a battery replacement.

Warning

Avoid battery replacements from eBay as their autheticity cannot be verified. Addtionaly, their reported capacity, cycle count, and longevity can be misleading.

Purchase from lenovo.encompass.com

","title":"Battery Replacement"},{"location":"hardware/parts-replacements/","text":"","title":"Parts Replacements"},{"location":"hardware/parts-replacements/#storage","text":"

Warning

The factory PM981 NVMe drive does not play well with macOS.

For installation on the factory drive PM981, please refer to Issue #43. I do, however, recommend against this.

Note

Replace the PM981 with an aftermarket NVMe for a much smoother experience.

Consult the dortania/Anti-Hackintosh-Buyers-Guide for up-to-date storage recommendations.

Tip

You can install an additional M.2 2242 NVMe drive in the WWAN card slot.

This is very useful if you intend to also use Windows/Linux, as partitioning a single drive for dual booting can be troublesome.

","title":"Storage"},{"location":"hardware/parts-replacements/#wifi-and-bluetooth","text":"

Tip

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.

Note

See patches/Network Patches/ for OpenCore patches for custom wireless cards.

","title":"WiFi and Bluetooth"},{"location":"post-installation/display/","text":"","title":"Display"},{"location":"post-installation/display/#hidpi","text":"

Warning

Enabling HiDPI requires disabling Apple's System Integrity Protection (SIP).

Danger

Users of SecureBootModel may end up in a RecoveryOS boot loop if the system partition has been modified. To resolve this, Reset NVRAM and set SecureBootModel to Disabled

  1. Disable SIP. I prefer to use ToggleSipEntry.efi at Boot Picker.
  2. Mount drive is writeable. See instructions
  3. Run xzhih/one-key-hidpi
  4. Enable SIP.
","title":"HiDPI"},{"location":"post-installation/display/#edid-override","text":"","title":"EDID Override"},{"location":"post-installation/dual-booting/","text":"

I recommend that you dual boot using another drive in the WWAN slot (I have the WDC PC SN520 NVMe 2242). This makes installation much easier, and lets the BIOS F12 option act as your boot manager.

Note

Lenovo's Boot Manager will not have an entry for the WWAN NVMe. Most OS(es) will create a bootloader entry during install. If not, use OpenCore to boot into these partitions. See dortania / OpenCore-Multiboot

Tip

It is possible to share Bluetooth pairing keys between Windows and macOS when dual booting.

The .reg for Bluetooth connected devices in macOS can be exported using Hackintool's Utilities section. This key can then be imported to Windows.

","title":"Dual Booting"},{"location":"post-installation/iServices/","text":"

Note

We\u2019re sorry, but this serial number isn\u2019t valid is fine and has personally worked and working for me and many others. Purchase Date not Validated can be a problem down the line if a legitimate machine with that PlatformInfo is activated.

","title":"iCloud, iMessage, FaceTime"},{"location":"post-installation/keyboard/","text":"

Note

MultiMedia Fn keys will work out of the box. Special Fn keys require YogaSMC App to be installed. Additionally, some parameters can be configured with YogaSMC's PrefPane plugin.

Tip

Karabiner-Elements and BetterTouchTool are great advanced customization tools for your keyboard.

","title":"Keyboard"},{"location":"post-installation/sleep/","text":"

","title":"Sleep"},{"location":"post-installation/thunderbolt-3/","text":" Main Menu Sub 1 Sub 2 Sub 3 >> Config >> Thunderbolt (TM) 3 Thunderbolt BIOS Assist Mode Disabled Security Level No Security Support in Pre Boot Environment: Thunderbolt(TM) Device Disabled

Warning

USB 3.1 Gen2 hotplug will likely never work. It is also neither planned nor currently worked on. If you need USB 3.1 Gen2, coldboot the machine with the device attached.

","title":"Thunderbolt 3"},{"location":"post-installation/trackpad/","text":"

","title":"Trackpad"},{"location":"technical/ALC285/","text":"

Codec: Realtek ALC285\nAddress: 0\nAFG Function Id: 0x1 (unsol 1)\nVendor Id: 0x10ec0285\nSubsystem Id: 0x17aa225c\nRevision Id: 0x100002\nNo Modem Function Group found\nDefault PCM:\n    rates [0x560]: 44100 48000 96000 192000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\nDefault Amp-In caps: N/A\nDefault Amp-Out caps: N/A\nState of AFG node 0x01:\n  Power states:  D0 D1 D2 D3 D3cold CLKSTOP EPSS\n  Power: setting=D0, actual=D0\nGPIO: io=3, o=0, i=0, unsolicited=1, wake=0\n  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0\n  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0\n  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0\nNode 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out\n  Control: name=\"Line Out Playback Volume\", index=0, device=0\n    ControlAmp: chs=3, dir=Out, idx=0, ofs=0\n  Device: name=\"ALC285 Analog\", type=\"Audio\", device=0\n  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0\n  Amp-Out vals:  [0x3c 0x3c]\n  Converter: stream=0, channel=0\n  PCM:\n    rates [0x40]: 48000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out\n  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0\n  Amp-Out vals:  [0x57 0x57]\n  Converter: stream=0, channel=0\n  PCM:\n    rates [0x40]: 48000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x06 [Audio Output] wcaps 0x411: Stereo\n  Converter: stream=0, channel=0\n  PCM:\n    rates [0x40]: 48000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x07 [Audio Input] wcaps 0x10051b: Stereo Amp-In\n  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1\n  Amp-In vals:  [0x97 0x97]\n  Converter: stream=0, channel=0\n  SDI-Select: 0\n  PCM:\n    rates [0x40]: 48000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 1\n     0x24\nNode 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In\n  Control: name=\"Capture Volume\", index=0, device=0\n    ControlAmp: chs=3, dir=In, idx=0, ofs=0\n  Control: name=\"Capture Switch\", index=0, device=0\n    ControlAmp: chs=3, dir=In, idx=0, ofs=0\n  Device: name=\"ALC285 Analog\", type=\"Audio\", device=0\n  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1\n  Amp-In vals:  [0x27 0x27]\n  Converter: stream=0, channel=0\n  SDI-Select: 0\n  PCM:\n    rates [0x560]: 44100 48000 96000 192000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 1\n     0x23\nNode 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In\n  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1\n  Amp-In vals:  [0x97 0x97]\n  Converter: stream=0, channel=0\n  SDI-Select: 0\n  PCM:\n    rates [0x560]: 44100 48000 96000 192000\n    bits [0xe]: 16 20 24\n    formats [0x1]: PCM\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 1\n     0x22\nNode 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In\n  Control: name=\"Internal Mic Boost Volume\", index=0, device=0\n    ControlAmp: chs=3, dir=In, idx=0, ofs=0\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Pincap 0x00000020: IN\n  Pin Default 0x90a60130: [Fixed] Mic at Int N/A\n    Conn = Digital, Color = Unknown\n    DefAssociation = 0x3, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x20: IN\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Pincap 0x00000020: IN\n  Pin Default 0x40000000: [N/A] Line Out at Ext N/A\n    Conn = Unknown, Color = Unknown\n    DefAssociation = 0x0, Sequence = 0x0\n  Pin-ctls: 0x00:\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out\n  Control: name=\"Speaker Playback Switch\", index=0, device=0\n    ControlAmp: chs=3, dir=Out, idx=0, ofs=0\n  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-Out vals:  [0x00 0x00]\n  Pincap 0x00010014: OUT EAPD Detect\n  EAPD 0x2: EAPD\n  Pin Default 0x90170110: [Fixed] Speaker at Int N/A\n    Conn = Analog, Color = Unknown\n    DefAssociation = 0x1, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x40: OUT\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 1\n     0x02\nNode 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out\n  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-Out vals:  [0x80 0x80]\n  Pincap 0x0000001c: OUT HP Detect\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x00:\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 2\n     0x02* 0x03\nNode 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out\n  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-Out vals:  [0x80 0x80]\n  Pincap 0x0000001c: OUT HP Detect\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x00:\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 3\n     0x02* 0x03 0x06\nNode 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Pincap 0x00000024: IN Detect\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x00:\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In\n  Control: name=\"Mic Boost Volume\", index=0, device=0\n    ControlAmp: chs=3, dir=In, idx=0, ofs=0\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Pincap 0x00003724: IN Detect\n    Vref caps: HIZ 50 GRD 80 100\n  Pin Default 0x04a11040: [Jack] Mic at Ext Right\n    Conn = 1/8, Color = Black\n    DefAssociation = 0x4, Sequence = 0x0\n  Pin-ctls: 0x24: IN VREF_80\n  Unsolicited: tag=02, enabled=1\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Pincap 0x00003724: IN Detect\n    Vref caps: HIZ 50 GRD 80 100\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x00: VREF_HIZ\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out\n  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0\n  Amp-In vals:  [0x00 0x00]\n  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-Out vals:  [0x80 0x80]\n  Pincap 0x00013734: IN OUT EAPD Detect\n    Vref caps: HIZ 50 GRD 80 100\n  EAPD 0x2: EAPD\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x00: VREF_HIZ\n  Unsolicited: tag=00, enabled=0\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 2\n     0x02* 0x03\nNode 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x1d [Pin Complex] wcaps 0x400400: Mono\n  Pincap 0x00000020: IN\n  Pin Default 0x40600001: [N/A] Modem Line at Ext N/A\n    Conn = Unknown, Color = Unknown\n    DefAssociation = 0x0, Sequence = 0x1\n  Pin-ctls: 0x20: IN\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\nNode 0x1e [Pin Complex] wcaps 0x400501: Stereo\n  Pincap 0x00000010: OUT\n  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear\n    Conn = 1/8, Color = Black\n    DefAssociation = 0xf, Sequence = 0x0\n    Misc = NO_PRESENCE\n  Pin-ctls: 0x40: OUT\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 1\n     0x06\nNode 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono\nNode 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono\n  Processing caps: benign=0, ncoeff=142\nNode 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out\n  Control: name=\"Headphone Playback Switch\", index=0, device=0\n    ControlAmp: chs=3, dir=Out, idx=0, ofs=0\n  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-Out vals:  [0x80 0x80]\n  Pincap 0x0001001c: OUT HP EAPD Detect\n  EAPD 0x2: EAPD\n  Pin Default 0x04211020: [Jack] HP Out at Ext Right\n    Conn = 1/8, Color = Black\n    DefAssociation = 0x2, Sequence = 0x0\n  Pin-ctls: 0xc0: OUT HP\n  Unsolicited: tag=01, enabled=1\n  Power states:  D0 D1 D2 D3 EPSS\n  Power: setting=D0, actual=D0\n  Connection: 2\n     0x02* 0x03\nNode 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In\n  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]\n  Connection: 5\n     0x19 0x1a 0x1b 0x1d 0x13\nNode 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In\n  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1\n  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x00 0x00]\n  Connection: 5\n     0x19 0x1a 0x1b 0x1d 0x12\nNode 0x24 [Audio Selector] wcaps 0x300101: Stereo\n  Connection: 3\n     0x12* 0x13 0x18\n
","title":"ALC285"},{"location":"technical/EC-queries/","text":"","title":"EC queries"},{"location":"technical/EC-queries/#battery","text":"","title":"Battery"},{"location":"technical/EC-queries/#_q22","text":"","title":"_Q22"},{"location":"technical/EC-queries/#_q4a","text":"

/ Battery 0 attach/detach /

Method(_Q4A, 0, NotSerialized) { Notify(BAT0, 0x81) }

","title":"_Q4A"},{"location":"technical/EC-queries/#_q4b","text":"

/ Battery 0 state change /

Method(_Q4B, 0, NotSerialized)\n{\n    Notify(BAT0, 0x80)\n}\n

","title":"_Q4B"},{"location":"technical/EC-queries/#_q4c","text":"

/ Battery 1 attach/detach /

Method(_Q4C, 0, NotSerialized)\n{\n    Notify(BAT1, 0x81)\n}\n

","title":"_Q4C"},{"location":"technical/EC-queries/#_q4d","text":"

/ Battery 1 state change /

Method(_Q4D, 0, NotSerialized)\n{\n    Notify(BAT1, 0x80)\n}\n

","title":"_Q4D"},{"location":"technical/EC-queries/#_q24","text":"

Battery 0 critical

Notify(BAT0, 0x80)\n

","title":"_Q24"},{"location":"technical/EC-queries/#_q25","text":"

Battery 1 critical

Notify(BAT1, 0x80)\n

","title":"_Q25"},{"location":"technical/EC-queries/#power","text":"Event EC Query Lid Open _Q2A Lid Close _Q2B Sleep Button _Q13 AC Status Change: Present _Q26 AC Status Change: Not Present _Q27","title":"Power"},{"location":"technical/EC-queries/#misc","text":"","title":"Misc"},{"location":"technical/EC-queries/#_q1c","text":"","title":"_Q1C"},{"location":"technical/EC-queries/#_q1d","text":"","title":"_Q1D"},{"location":"technical/EC-queries/#sleep","text":"","title":"Sleep?"},{"location":"technical/EC-queries/#_q62","text":"","title":"_Q62"},{"location":"technical/EC-queries/#_q65","text":"","title":"_Q65"},{"location":"technical/EC-queries/#_q3d","text":"","title":"_Q3D"},{"location":"technical/EC-queries/#_q48","text":"","title":"_Q48"},{"location":"technical/EC-queries/#_q49","text":"","title":"_Q49"},{"location":"technical/EC-queries/#_q7f","text":"","title":"_Q7F"},{"location":"technical/EC-queries/#_q46","text":"","title":"_Q46"},{"location":"technical/EC-queries/#_q3b","text":"","title":"_Q3B"},{"location":"technical/EC-queries/#_q4f","text":"","title":"_Q4F"},{"location":"technical/EC-queries/#_q2f","text":"","title":"_Q2F"},{"location":"technical/config.plist/","text":"","title":"Config.plist"},{"location":"technical/config.plist/#checking-your-opencore-configplist","text":"

When editing config.plist, confirm proper syntax by running ocvalidate config.plist.

","title":"Checking your OpenCore config.plist"},{"location":"technical/config.plist/#configplist-comments","text":"","title":"config.plist Comments:"},{"location":"technical/config.plist/#audio-patches","text":"

Device Properties > PciRoot(0x0)/Pci(0x1f,0x3) > layout-id: Injects AppleALC layout-id 21

","title":"Audio patches:"},{"location":"technical/config.plist/#intel-igpu-and-hdmi-patches","text":"

Device Properties > PciRoot(0x0)/Pci(0x2,0x0) >

","title":"Intel iGPU and HDMI patches:"},{"location":"technical/config.plist/#filevault-compatibility","text":"","title":"FileVault compatibility:"},{"location":"technical/config.plist/#hibernation-mode-25-support","text":"","title":"Hibernation Mode 25 support:"},{"location":"technical/config.plist/#personalization","text":"","title":"Personalization:"},{"location":"technical/config.plist/#opencanopy-support","text":"

I prefer OpenCanopy for its looks. However, it is completely optional and can take up space in your EFI. If you would rather use OpenCore's built in picker. Change PickerMode to Builtin and remove OpenCanopy.efi from UEFI > Drivers.

","title":"OpenCanopy Support:"},{"location":"technical/config.plist/#efi-tools","text":"","title":"EFI Tools"},{"location":"technical/keyboard-queries/","text":"KEY PS2 Scan Codes EC Queries ADB Injected ESC 1 35 (Fn) ESC EC _Q74 acidanthera/VoodooPS2 *Use Debug version F1 3b 7a RehabMan/OS-X-ACPI-Debug F2 3c 78 BIOS: F3 3d 63 TrackPoint [Enabled] F4 3e 76 TrackPad [Enabled] F5 3f 60 Fn and Ctrl Key Swap [Enabled] F6 40 61 Fn Sticky Key [Disabled] F7 41 62 F1-F12 as Primary Function [Enabled] F8 42 64 F9 43 65 F10 44 6d F11 57 67 F12 58 6f (Fn) F1 e020 4a (Fn) F2 e02e 49 (Fn) F3 e030 48 (Fn) F4 EC _Q6A (Fn) F5 EC _Q15 (Fn) F6 EC _Q14 (Fn) F7 EC _Q16 (Fn) F8 EC _Q64 (Fn) F9 EC _Q66 (Fn) F10 EC _Q60 (Fn) F11 EC _Q61 (Fn) F12 EC _Q62 Home e047 73 End e04f 77 Insert e052 92 Delete e053 75 ` 29 32 1 2 12 2 3 13 3 4 14 4 5 15 5 6 17 6 7 16 7 8 1a 8 9 1c 9 a 19 0 b 1d - c 1b Equal/ Plus d 18 Backspace e 33 Tab f 30 Q 10 c W 11 d E 12 e R 13 f T 14 11 Y 15 10 U 16 20 I 17 22 O 18 1f P 19 23 (Fn) P e045 71 [ 1a 21 ] 1b 1e \\ 2b 2a CapsLock 3a 39 A 1e 0 S 1f 1 (Fn) S 54 44 D 20 2 F 21 3 G 22 5 H 23 4 J 24 26 K 25 28 (Fn) K 46 6b L 26 25 ; 27 29 28 27 Enter 1c 24 Left Shift 2a 38 Z 2c 6 X 2d 7 C 2e 8 V 2f 9 B 30 b (Fn) B 1d 3b N 31 2d M 32 2e Comma/ < 33 3b Period/ > 34 2f / 35 2c Right Shift 36 3c Fn 1d 3b Left Control e063 80 Windows e05b 3a Left Alt 38 37 Spacebar 39 31 (Fn) Spacebar EC _Q1F Right Alt e038 36 Print Screen e037 0 (Fn) Print Screen EC _Q65 Right Control e01d 3e Page Up: e049 74 Page Down: e051 79 Up Arrow: e048 7e Down Arrow: e050 7d Left Arrow: e04b 7b Right Arrow: e04d 7c","title":"Keyboard queries"},{"location":"technical/patches/","text":"","title":"Patches"},{"location":"technical/patches/#acpi-patches","text":"
  1. Download and install MaciASL if you do not have it already.
  2. Dump your original ACPI tables. See Dortania/ ACPI Dump.
  3. In Terminal, disassemble the copied ACPI tables with \"iasl -dl DSDT.aml\". For our purpose, the only file that really matters is DSDT.dsl

  4. Your DSDT file will be used as a reference table in determining that needs to be patched and what patches need to be added.

  5. Source SSDT*.dsl patch files are located in patches folder.

  6. Refer to my EFI-OpenCore folder to see which patches are currently being used by me.
  7. If your x1c6's model is 20KH*, most of my compiled hotpatches and can likely be copied straight to your setup. However, some patches may require certain directories or variables to be changed depending on your hardware (examine your own disassemebled DSDT). For these, edit the .dsl patch files. Also, note that some SSDT patches also require accompanying OpenCore/ Clover ACPI patches to work.

A good way to see if you need to edit and compile your own SSDT patches is to compare your DSDT.dsl with mine of the same BIOS version. You can find my disassemebled DSDT file in ACPI/Disassembled ACPI/BIOS-v*.

Should your source DSDT be similar enough (in regards to certain items in these ACPI patches)to mine. Congrats! You can simply try my compiled patches. Should it differ however, please carefully examine these notes and create your own SSDT patches.

  1. Once you have the compiled ACPI patches, place them in EFI/OC/ACPI/ and make sure to create matching entries within OpenCore's config.plist's ACPI/Add/ section.
","title":"ACPI Patches"},{"location":"technical/patches/#important-note","text":"

Unlike Clover, where SSDT patches are only being applied when booting macOS. OpenCore will apply SSDT patches regardless of the operating system. This is critical when multi-booting, since Windows and Linux do not need the additional patches that macOS does. In many cases, if Windows/Linux fails to boot under OpenCore, it is likely that your macOS intended SSDT patch(s) is being applied universally. To prevent OpenCore from doing this, it is important that your SSDT patches specify its intended OS, which in our case is \"Darwin.\" See highlighted example:

Note

Network and Display patches are on a case-by-case basis and may differ for everyone.

","title":"Important Note:"},{"location":"technical/patches/#non-native-wifi-and-bluetooth","text":"

*Notice that these patches require additional kexts to be installed. See them in Kernel/Add/

","title":"Non-native WiFi and Bluetooth"},{"location":"technical/patches/#acpi-patches-in-use","text":"

Note

The following patches are arranged alphabetically for easy cross-referencing. For the loading order, please refer to the main EFI's config.plist.

","title":"ACPI Patches In-Use:"},{"location":"technical/patches/#ssdt-ac","text":"

Load AppleACPIACAdapter

","title":"SSDT-AC"},{"location":"technical/patches/#ssdt-als0","text":"

Fake Ambient Light Sensor Starting with Catalina, an ambient light sensor device is required for brightness preservation. This patch fakes an ambient light sensor device ALS0 since the x1c6 does not have one. Why?: ACPI0008 missing in DSDT.

","title":"SSDT-ALS0"},{"location":"technical/patches/#ssdt-battery","text":"

Enables Battery Status in macOS - Single battery system: only BAT0 in ACPI, no BAT1.

","title":"SSDT-Battery"},{"location":"technical/patches/#ssdt-dmac","text":"

Patch Memory Controller - Why?: PNP0200 is missing in DSDT.

","title":"SSDT-DMAC"},{"location":"technical/patches/#ssdt-darwin","text":"

Detects macOS to enable other patches

","title":"SSDT-Darwin"},{"location":"technical/patches/#ssdt-ec","text":"

Alow Reads/Write and Provide an Interface with Embedded Controller via YogaSMC - Two parts: - Allow access to EC - Sample SSDT from YogaSMC

","title":"SSDT-EC"},{"location":"technical/patches/#ssdt-hwac","text":"

Fix axxess to 16byte-EC-field HWAC

","title":"SSDT-HWAC"},{"location":"technical/patches/#ssdt-init","text":"

Initialize System Variables - Disables: - HPET - DPTF - Enables: - DYTC

","title":"SSDT-INIT"},{"location":"technical/patches/#ssdt-keyboard","text":"

Remap PS2 Keys, EC Keys are handled by BrightnessKeys.kext - Remap 1: PrtSc to F13 - Remap 2: Fn + K to Deadkey - Remap 3: Fn + P to Deadkey - For Fn 1-12 functions, check the following option within Preferences/Keyboard:

","title":"SSDT-Keyboard"},{"location":"technical/patches/#ssdt-pm","text":"

Enables Native Intel Power Managements - Why?: Processor search in DSDT, rename PR to other variables as needed.

    Scope (\\_PR)\n    {\n        Processor (PR00, 0x01, 0x00001810, 0x06){}\n        Processor (PR01, 0x02, 0x00001810, 0x06){}\n        Processor (PR02, 0x03, 0x00001810, 0x06){}\n        Processor (PR03, 0x04, 0x00001810, 0x06){}\n        Processor (PR04, 0x05, 0x00001810, 0x06){}\n        Processor (PR05, 0x06, 0x00001810, 0x06){}\n        Processor (PR06, 0x07, 0x00001810, 0x06){}\n        Processor (PR07, 0x08, 0x00001810, 0x06){}\n        Processor (PR08, 0x09, 0x00001810, 0x06){}\n        Processor (PR09, 0x0A, 0x00001810, 0x06){}\n        Processor (PR10, 0x0B, 0x00001810, 0x06){}\n        Processor (PR11, 0x0C, 0x00001810, 0x06){}\n        Processor (PR12, 0x0D, 0x00001810, 0x06){}\n        Processor (PR13, 0x0E, 0x00001810, 0x06){}\n        Processor (PR14, 0x0F, 0x00001810, 0x06){}\n        Processor (PR15, 0x10, 0x00001810, 0x06){}\n    }\n
","title":"SSDT-PM"},{"location":"technical/patches/#ssdt-pmcr","text":"","title":"SSDT-PMCR"},{"location":"technical/patches/#ssdt-pnlf","text":"

Enables Brightness Management in macOS - iGPU is PCI0.GFX0 - Why?: Skylake/ KabyLake/ KabyLake-R CPU. - Used in conjunction with WhateverGreen.kext.

","title":"SSDT-PNLF"},{"location":"technical/patches/#ssdt-pwrb","text":"","title":"SSDT-PWRB"},{"location":"technical/patches/#ssdt-sleep","text":"

Patch macOS Sleep, S3, and S0 under Windows Dual Boot - Comprehensive sleep/wake patch. - Fixes restart on shutdown. Needs OpenCore Patches/ Sleep.plist

","title":"SSDT-Sleep"},{"location":"technical/patches/#ssdt-tb-dsb0-to-ssdt-tb-dsb6","text":"","title":"SSDT-TB-DSB0 to SSDT-TB-DSB6"},{"location":"technical/patches/#ssdt-xhc1-usb-2030","text":"

Needs OpenCore Patches/ XHC1.plist - Map USB 2.0/3.0 - Patch USB Power Properties

","title":"SSDT-XHC1 - USB 2.0/3.0"}]}