Awesome
ThinkPad-L13-Yoga-Hackintosh
Status: Success | Stable
<img align="right" src="./Other/README_Resources/l13-yoga2.png" alt="L13 Yoga macOS" width="430">**DISCLAIMER: ** As you embark on your Hackintosh journey you are encouraged to READ the entire README and Dortania guides before you start, or check out some Youtube videos to get an understanding of the install process. It will save many a message instructing you to read the manual. I am not an expert, I haven't forced you to do anything, so put on your big boy pants and take responsibility for any mess you get yourself into.
With that said I'm happy to help when/where I can. When you encounter bug or want to improve this repo, consider opening an issue or pull request. You can also find a wealth of knowledge on Reddit, TonyMacX86 or Google.
Introduction
⚠️ Still issues with Ventura & Sonoma ⚠️ - see MacOS Selection
below.
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 copy the EFI folder to their EFI partition. For clarity the EFI folder needs to go into the EFI partition.
EFI (partition)
EFI
├── BOOT
├── OC
It should work and your ThinkPad L13 Yoga 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.
</details> <details> <summary><strong>This is a guide!</strong></summary>NOTE if you simply wish to copy my EFI please do the following:
- Generate SMBIOS values and add them in the config.plist (Use MacBookPro16,3)
- Ensure the value of
showpicker
istrue
in the config.plist file to provide the opencore menu when booting.- Prepare your install USB
- Move the entire EFI folder (with your modifications) to the proper partition on your USB (or hard drive once the install is complete).
- Install - You'll need to select <kbd>F12</kbd> 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.
To install macOS follow the guides provided by Dortania 🤔
</details> <details> <summary><strong>Shout out and credits</strong></summary>Shout out to oddish_enthusiast who pointed me in the right direction and let me know when OpenCore 0.6.7 fixed booting on 10^th^ gen processors. (He actually had it working before that).
Shout out toDAlexis74 for the DevicesProperties patches to enable HDMI.
Shout out to alexjaixd for enabling Built-in SmartCard Reader #20
Credit to all these great people whom I don't know but have made my hackintosh dreams come true:
- EETagent for his repository (I like the layout of his guide and used it to create this one)
- The guys from Acidanthera that make this possible
- Apple for macOS and HfsPlus.efi
- corpnewt for USBMap and CPUFriendDataProvider
- headkaze for Hackintool
- jwise for HoRNDIS
- Mieze for IntelMausiEthernet
- OpenIntelWireless for IntelBluetoothFirmware
- zhen-zen for YogaSMC
- Useful tools by CorpNewt and headkaze
- And every other contributor
- People at r/hackintosh for their advice and help
- ThinkPad L13 Yoga -hackintosh repositories:
ThinkPad L13 Yoga
Category | Component | Note |
---|---|---|
Type | 20R5, 20R6 | |
CPU | Intel Core i5-10210U | |
GPU | Intel UHD 630 | |
SSD | WD 512GB | Replaced cursed PM 981 which still doesn't work reliably |
Screen | 13" FHD 1920x1080 | Multi touch and pen* support working |
Memory | 8GB / 2666MHz DDR4 | |
Battery | Integrated Li-Polymer 46Wh | Single battery |
Camera | 720p Camera and 5MP camera | Both cameras working |
Wifi & BT | Intel Wireless-AC 9560 | Use AirportItlwm for your macOS version and enjoy native Wi-Fi control. |
Input | PS2 Keyboard & I2CHID TrackPad (touchscreen and pen) | I'm using YogaSMC for media keys. The kext is in the folder but you'll need to install the app. |
Component | Version |
---|---|
macOS Sonoma | 14.2.1 |
OpenCore | v1.0.0 |
Component |
---|
ssdt_data.aml |
SSDT-AWAC.aml |
SSDT-EC-USBX-LAPTOP.aml |
SSDT-OCBAT1-lenovoPRO13.aml |
SSDT-PNLF-CFL.aml |
SSDT-RHUB.aml |
SSDT-XOSI |
Kext | Version |
---|---|
AirportItlwm | 2.2.0 |
AirportItlwmV (Ventura) | 2.2.0 |
AirportItlwmS (Sonoma) | 2.3.0 alpha |
AppleALC | 1.8.8 |
BrightnessKeys | 1.0.3 |
CPUFriend | 1.2.7 |
IntelBluetoothFirmware | 2.3.0 |
BlueToolFixup.kext | 2.6.8 |
IntelMausi | 1.0.7 |
Lilu | 1.6.7 |
RealtekCardReader | 0.9.7 |
RealtekCardReaderFriend | 1.0.4 |
SMCBatteryManager | 1.3.2 |
SMCProcessor | 1.3.2 |
SMCSuperIO | 1.3.2 |
USBMap | 1.0.1 |
VirtualSMC | 1.3.2 |
VoodooI2C* | 2.8 custom |
VoodooI2CHID | 2.8 custom |
VoodooPS2Controller | 2.3.5 custom |
WhateverGreen | 1.6.6 |
YogaSMC | 1.5.3 |
</details> <details> <summary><strong>UEFI drivers</strong></summary>*VoodooI2C issues have been fixed. Custom addition means that files have been altered to work properly(not from main github)
Driver | Version |
---|---|
HfsPlus.efi | 1.0.0 |
OpenRuntime.efi | OpenCorePkg 1.0.0 |
ResetNvramEntry.efi | OpenCorePkg 1.0.0 |
Before installation
<details> <summary><strong>UEFI settings</strong></summary>Config
- Keyboard/Mouse
Trackpoint
EnabledTrackpad
Enabled
- Display
Boot Display Device
ThinkPad LCDTotal Graphics Memory
512MBBoot Time Extension
Disabled
- CPU
Intel Hyper-Threading Technology
Enabled
Security
Password
DisabledSecurity Chip
DisabledMemory Protection -> Execution Prevention
EnabledVirtualization -> Intel Virtualization Technology
EnabledVirtualization -> Intel VT-d Feature
DisabledVirtualization -> Enhanced Windows Biometric Security
DisabledI/O Port Access -> FingerPrint Reader
DisabledI/O Port Access -> Memory Card Slot
EnabledSecure Boot -> Secure Boot
DisabledIntel SGX -> Intel SGX Control
DisabledDevice Guard
Disabled
Startup
UEFI/Legacy Boot
UEFI OnlyCSM Support
NoBoot Mode
Diagnostics (This can be changed to "Quick" once you know your system is running properly)
In the config.plist file you set the default language as outlined in the guide. You can either add it as a string or as a hex data using ProperTree
The setting is found in the config.plist under:
- NVRAM
- 7C436110-AB2A-4BBB-A880-FE41995C9F82
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 |
It is set to English but you can find alternatives here:
</details> <details> <summary><strong>MacOS Selection</strong></summary>The EFI folder is setup for both Monterey, Ventura, and Sonoma. I used MinKernel
and MaxKernel
values in the config.plist to load the proper kexts based on which OS is being used. It kinda works with Ventura and Sonoma but there are still some issues:
- To use the stylus you need VoodooI2C-v2.6.5 (last version where stylus was working). Unfortunately this creates kernel panics when shutting down or rebooting in Ventura.
- When shutting down Ventura with VoodooI2C-2.6.5 kexts installed the computer reboots.
- If you upgrade to newer version of VoodooI2C then Ventura works (touch works with finger) but the stylus doesn't.
</details>I'm primarily using this EFI with Sonoma 14.2.1 at the moment.
Post-Install
<details> <summary><strong>TrackPad - Disable force touch</strong></summary>If the Battery management doesn't show up in the System Preferences after the SSDT-OCBAT1-lenovoPRO13.aml file is added to your ACPI folder and config.plist file. You will not be able to change any trackpad settings. You may experience the annoying behaviour of clicking on the touchpad and it doing a Force Touch where the preview of the file is shown. I found this very annoying. You can disable force touch by modifying the file in ~/Library/Preferences/com.apple.AppleMultitouchTrackpad.plist
Opened it with Propertree and changed ForceSuppressed to True
Another trick to manage your trackpad, if you can't get the battery to work, is to connect a bluetooth trackpad. Once the bluetooth trackpad is connected you can adjust the settings. Disconnect the bluetooth trackpad and your built in one will maintain those settings.
I used these methods prior to adding the SSDT-OCBAT1-lenovoPRO13.aml from hagenest/thinkpad-l13-yoga-hackintosh repo.
</details> <details> <summary><strong>Generate your own SMBIOS</strong></summary> <br>Use GenSMBIOS to create your own serial #... based off of your preferred model.
- MacBookPro16,3 -
What I used
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.
</details> <details> <summary><strong>CPUFriend power management</strong></summary> <br>Generate CPUFriendDataProvider
or ssdt_data.aml
(choose one) for your machine here or use the ssd_data.aml file provided. My files are set for power conservation over performance. Highly recommended that you use power management.
While first port mapping I followed the Dortania guide here with USBInjectAll.kext install... when doing so the internal USB ports did not show up and the cameras, touch screen, and bluetooth did not function. I noticed on the USBmap tool
screen that RHUB was showing so I Googled it and it brought me back to the Dortania guide here. I added the SSDT-RHUB.aml to the APCI folder rebooted and all the ports showed up. I then mapped the USB ports creating the included USBMap.kext file.
The L13 Yoga has CX8070 for audio which requires the boot-arg or device property below. You can use the boot-args to initially setup your config.plist file as suggested in the guide or simply add the device property. Everything should work, built-in microphone, speakers, headphone jack and microphone.
NVRAM:
Key | Value |
---|---|
boot-args | alcid=15 |
DeviceProperties
Key | Type | Value |
---|---|---|
PciRoot(0x0)/Pci(0x1F,0x3) | Dictionary | |
layout-id | Data | 0f000000 |
Status
<details> <summary><strong>What's working ✅</strong></summary>- Battery percentage
- Bluetooth - Intel Wireless-AC 9560
- Wifi - Intel Wireless-AC 9560
- CPU power management
- GPU UHD hardware acceleration / performance
- iMessage, FaceTime, App Store, iTunes Store.
Generate your own SMBIOS
- Intel I219-V Ethernet port -
works with the Lenovo dongle
- Keyboard
Volume and brightness hotkeys, with YogaSMC and BrightnessKey kexts
- Audio - Conexant CX8070 -
"alcid=15" - or see setup above
- Microphone
- Sleep/Wake
- TrackPoint
Works perfectly. Just like on Windows or Linux.
- USB Ports
USB map created.
- Web camera
Both cameras are working after the USB mapping was done.
- TouchPad
1-3 fingers swipe gestures
- Multi-Touch Screen
Pen also working
- Graphical Boot menu
OpenCanopy (It does work. Not included in OC folder as I generally skip the boot menu.)
- HDMI
- SD Card reader
- SmartCard Reader
not available on all units
- Fingerprint reader -
No. Don't expect macOS driver any time soon.
- Samsung PM 981 NVME drive -
Still unstable. Could work for some, not for others.
- Intel Optane -
It causes Kernel Panic in boot
(see issue #14)
- Boot chime
should work I just haven't tried it
- FileVault
should work I just haven't tried it
- Sidecar wired
- Sidecar wireless
- Windows/Linux from OC boot menu
I'm not dual booting my system but there's no reason it shouldn't work.