This repository contains files and instructions for installing Hackintosh on a Lenovo Thinkpad Yoga 12 Gen 2 (from 2015).
- Mac OS 12.6.2 (Monterey)
- OpenCore 0.8.8
-
installation-usb-files
- EFI -> efi folder snapshot used to boot into the installer.
-
host-files
- EFI -> efi folder of host computer. Contains "final" working revision of config.plist.
Item | Description |
---|---|
Model | Lenovo Thinkpad Yoga 12 Gen 2 (2015) |
CPU | Intel Core i7-5600U (Broadwell) |
GPU | Intel HD Graphics 5500 (Integrated GPU) |
Storage | Samsung 860 SSD QVO 2.5" SATA III 1TB |
WLAN | Intel Dual Band Wireless-AC 7265 |
Ethernet | None (onboard) / Thinkpad OneLink Pro Dock Gigabit Ethernet |
Input | PS2 trackpad, mouse, mousenub, Wacom Digitizer Pen |
Item | Notes |
---|---|
Power management | |
Battery | |
Sound | works oob, alcid=3 |
Graphics | acceleration working, use platform-id 0x16160002 |
laptop keyboard | special Fn keys except brightness (use OS custom keyboard shortcuts as workaround) |
laptop trackpad | |
external usb kb | |
external usb mouse | |
trackpoint | |
Digitizer | somewhat; recognizes pen as a mouse with one button. |
OneLink Pro Docking Station | audio, ethernet, and usb hub work. External monitors do not work! |
Sleep | no changes necessary |
SD Card Reader | |
Integrated camera | |
Integrated microphone | |
Wireless | |
Bluetooth |
Item | Notes |
---|---|
DRM | DRM not supported on iGPU only systems (use Chrome instead of Safari) |
External Monitors | DP/DVI port of OneLink Pro docking station unsupported. HDMI out of side probably works. |
Sensors | Brightness/ambient light, gyroscope not working |
Touchscreen | Doesn't work at all. |
CFG unlock | Couldn't unlock BIOS or dump image from update executable. |
Dortania's OpenCore Install Guide
The installation USB method was created with macOS offline installer method using a MacOS (Catalina) VM on Windows. The USB drive was 32 GB in capacity and supported only USB 2.0.
The hackintosh live install USB was made on a 32GB PNY USB 2.0 drive. An image of MacOS Catalina was downloaded and installed on Windows 10 using VMware to create the live usb installer. The drive was formatted to use the mac filesystem (just follow the instructions for usb creation on macOS).
Previous attempts to create a USB install on windows and linux worked, but the hackintosh installation did not boot up. (I suspect the reason for this was an incorrect SSDT-EC file, but I have not gone back to confirm. I know for a fact that the aforementioned way using a Mac VM, so try that if all else fails.)
Note: In a VM, the operating system does not have graphics acceleration, so this process is painfully slow.
This should be identical to the output given by the USBToolBox mapping tool. Pay attention to the "Assign" column for what values to use.
Also, see here for another reference to this map.
Port # | Type | Assign | Description |
---|---|---|---|
1 | USB 2.0 | USB 3 Type A | Left external USB port |
2 | USB 2.0 | USB 3 Type A | Right external USB port |
3 | USB 2.0 | Internal | OneLink Pro Dock port |
4 | USB 2.0 | Internal | Bluetooth |
5 | USB 2.0 | Internal | Synaptics Touch |
6 | USB 2.0 | Internal | Integrated Camera |
7 | USB 2.0 | Not used | |
8 | USB 2.0 | Internal | ISD-V4 (tablet) |
9 | USB 2.0 | Not used | |
10 | USB 2.0 | Not used | |
11 | USB 2.0 | Not used | |
12 | USB 2.0 | USB 3 Type A | Left external USB port 3.0 companion |
13 | USB 2.0 | USB 3 Type A | Right external USB port 3.0 companion |
14 | USB 2.0 | Internal | OneLink Pro Dock port 3.0 companion |
15 | USB 2.0 | Not used |
Following the guide for Broadwell laptops, these files are needed:
- SSDT PLUG
- SSDT EC
- SSDT PNLF
- SSDT IRQ
Note, SSDT XOSI or SSDT GPIO are not needed if there are no I2C devices attached (like in this case).
The SSDTTime generated file was incorrect! This causes kernel boot hang after opencore hand-off (i.e. after EXITBS:START
).
If SSDTTime detects that the embedded controller is at \_SB.PCI0.LPCB.NVT6
, this is incorrect! Generate this file manually or copy the .dst
output of SSDTTime and change all instances of \_SB.PCI0.LPCB.NVT6
to \_SB.PCI0.LPCB
.
Make sure all ACPI entries have
Enabled -> True
underACPI > Add
. Don't forget to replaceACPI -> Patch
.
Use 0x16160002
(i.e. 02001616
) for platform-id
. This is exactly the Intel HD 5500 graphics card.
The framebuffer memory patch needs to be added or it will hang on boot with IOG Flags 0x3 (0x51)
.
Key | Type | Value |
---|---|---|
framebuffer-patch-enable | Data | <01000000> |
framebuffer-stolenmem | Data | <00003001> |
framebuffer-fbmem | Data | <00009000> |
Use MacBookAir7,2 for the SMBIOS. This computer is very similar in specs to the Thinkpad Yoga 2015.
More details from kymodoke: https://github.com/kymodoke/MacOS-Thinkpad-Yoga-12#2-smbios
If a setting is not mentioned, it can be left at default value.
- Config -> USB -> USB 3.0 enabled
- Config -> CPU -> hyperthreading enabled
- Config -> Intel AMT -> disabled
- Security -> Security Chip -> disabled
- Security -> Virtualization -> Vt-d -> disabled
- Secure boot -> disabled
- Startup -> UEFI/Legacy Boot -> UEFI Only
- Startup -> UEFI/Legacy Boot -> CSM Support -> Yes
- Startup -> Boot Mode -> Diagnostics
Boot Mode can be changed back to Quick once everything is done. The rest of the settings must remain.
Make the USB stick higher than other boot loaders in the boot order settings. This can be reversed after the installation is complete.
Pretty much follow the opencore guide for this section. Some minor changes are necessary (detailed below).
Follow the OpenCore guide. In this section, I describe the specifics of my EFI folder, because it's not a singular MacOS install.
In my case, I triple-booted mac with Windows 10 and Fedora. The EFI partition needs to be close to the beginning (first partition, if possible, but not necessary).
Mount the EFI partition and copy the USB installer contents into it. The EFI partition should look like this:
(EFI partition name)/
├─ mach_kernel
├─ System/
├─ EFI/
│ ├─ Boot/
│ │ ├─ bootx64.efi
│ ├─ Microsoft/
│ ├─ fedora/
│ ├─ mac/
│ │ ├─ BOOT/
│ │ ├─ OC/
Copy the usb contents (BOOT and OC folders) into a new folder under EFI/<new folder name>. Here I called it "mac". The fedora
and Microsoft
folders are there from the Fedora Linux and Windows 10 installs, respectively.
Sometimes people prefer to have OpenCore load Grub or be the only bootloader. I wanted to keep Grub.
I booted into Fedora and added a new entry based on this guide.
Open /etc/grub.d/40_custom
and add a new entry:
menuentry 'Mac OS 12.6.2 (Monterey)' $menuentry_id_option 'macOS-efi' {
savedefault
insmod chain
insmod part_gpt
insmod fat
search --no-floppy --fs--uuid --set <EFI partition UUID>
chainloader /efi/mac/OS/OpenCore.efi
set root = /efi/mac
}
NOTE: where it says "" put the partition UUID of the efi partition. This can be found in linux with
lsblk -f
or looking at fstab. Reading partition info using fdisk does not seem to give the correct number. This is better than the previously suggested method of manually setting root according to the hd(X, gptY) scheme, which failed if you plugged in an external harddrive or bootable USB, because the gpt numbering changed.
NOTE: where it says "mac", replace with what you put under EFI/<new folder name>.
Don't forget to rebuild grub config once the changes are done.
> su
> grub2-mkconfig --output=/boot/grub2/grub.cfg
- In the boot picker, press
ctrl + enter
on the entry you want to set as default. (Choose mac and not windows). - Set
Misc > ShowPicker
toFalse
in the config plist to disable the boot menu. (uses default entry)
Once this is done, after you chainload from grub, Opencore will skip the boot menu and automatically load the mac partition. So opencore is invisible to the user.
If you see this message upon every reboot after booting into mac...
Set Kernel > Quirks > DisableRTCChecksum
to True
in config.plist.
Don't forget to modify Windows' registry to fix clock on dual boot systems. Instructions here.
If you want to add CPUFriend.kext and CPUFriendFriend, the i7-5600U can support clock frequencies as low as 600 Mhz, so use that value when generating the kext.
Add the StartupMode = 0x00
optional NVRAM variable to hear sound.
Also use "2" for the AudioOutMask
.
Using 0xFireWolf/RealtekCardReader. Seems to work just fine.
- Dortania's OpenCore Install Guide
- Kymodoke/MacOS-Thinkpad-Yoga-12 - EFI repo from an older clover install
- racka98/Lenovo-Thinkpad-T450-T450s-Hackintosh-Guide-Opencore - Thinkpad T450 is literally the same computer but without tablet functionality.
- SamarthCat success post - Proof that Big Sur is able to be installed on this type of computer.
- SayantanRC's Guide for Grub to Opencore - Bootloader modifications for dual-boot systems.
- Fix Windows Time Incorrect on Dualboot Hackintosh - Modify Windows registry to use UTC.
- Thread about OneLink Pro Docking Station External Monitor - debugging external monitor off docking station
- Mac Doesn't Support MST - Multi-stream DisplayPort unsupported (docking station external monitors unsupported)
- SD Card Reader Kext by 0xFireWolf - SD Card Reader kext