Contribute
Register

[Guide] Thinkpad T15 - Sonoma and OpenCore

Joined
May 15, 2019
Messages
114
Motherboard
Lenovo Ideapad S340-OpenCore
CPU
i7-8565U
Graphics
UHD 620,1920x1080
TLDR: Grab my EFI from the repo, update your system info, and you should be all set.
For details on how I got each component working please read my posts below.

I will cleanup and consolidate the guide in this post soon.

My EFI will be available at this repository:https://github.com/aruhant/t15-hackintosh



The Hardware

CPU and Motherboard:
CPU Type QuadCore Intel Core i7-10510U, 1.80GHz
Motherboard Name Lenovo ThinkPad T15 Gen 1
Motherboard Chipset Intel Comet Point-LP, Intel Comet Lake-U
System Memory 16131 MB (DDR4 SDRAM)
BIOS Type Phoenix (10/31/2023)
Video:
iGPU Intel Comet Lake-U GT2 - Integrated Graphics Controller
Monitor Lenovo LP156WFC-SPD1 [15.6" LCD]
Audio:
Audio Adapter Intel Comet Point-LP PCH - cAVS (Audio, Voice, Speech)
Storage:
IDE Controller Realtek PCIE CardReader
Storage Controller Standard NVM Express Controller
Disk Drive SAMSUNG MZVLB512HBJQ-000L7 (512 GB, PCI-E 3.0 x4) Replaced with WD PC SN740 SDDQNQD-256G-1001

Input:
Keyboard HID Keyboard Device
Keyboard Standard PS/2 Keyboard
Trackpoint PS/2
Trackpad PS/2 Synaptics HID-Compliant Touch pad Device

Network:
Network Adapter Intel(R) Ethernet Connection (10) I219-V
Network Adapter Intel(R) Wi-Fi 6 AX201 160MHz (192.168.1.116)

Peripherals:
USB3 Controller Intel Comet Point-LP PCH - USB 3.1 xHCI Host Controller
USB Device Integrated Camera
USB Device Intel(R) Wireless Bluetooth(R)
USB Device Synaptics UWP WBDI
USB Device USB Composite Device
Battery Microsoft AC Adapter
Battery Microsoft ACPI-Compliant Control Method Battery

BIOS and System:
BIOS Vendor LENOVO
BIOS Version N2XET40W (1.30 )
System Manufacturer LENOVO
System Product 20S6000WUS
System Version ThinkPad T15 Gen 1


t15.jpg


What's Working:
  • Keyboard
  • Trackpad and Trackpoint
  • WiFi
  • Backlight
  • Sound via speakers and audio-jack.
  • Volume and Brightness keys
  • Sleep and CPU power management
  • USB
  • Camera
  • iGPU
What's not Working (yet)
  • HDMI
  • Thunderbolt port
  • MicoSD card
 
Last edited:
Setting up the installer by following dortania guide.
Created a 14.3.1 offline installer from a MacOS Machine, and used 0.9.8 opencore base files.
EFI drivers:
We need only the following EFI drivers:
  • OpenRuntime.efi
  • OpenCanopy.efi
  • ResetNvramEntry.efi
  • HfsPlus.efi (From acidanthera's github repo)
Tools:
Only OpenShell.efi is needed in tools

kexts:
  • Lilu
  • VirtualSMC
  • WhateverGreen
  • VoodooPS2Controller - Enables the keyboard, trackpad and the trackpointer. All PS/2 devices.
  • AirportItlwm - Currently using the Sonoma alpha debug driver.
  • NVMeFix - I have a Samsung OEM NVMe SSD. Known to cause kernel panics. Fingers Crossed.


Above are sufficient to run the installer. Will enable and optimize for non-essential components post-install.
 
Last edited:
The installer freezes at 'About 15 mins remaining' mark.
Trying to solve that...
 
The installer freezes at 'About 15 mins remaining' mark.
Trying to solve that...
could be the Samsung NVME that is causing that
 
The Samsung drive is indeed a bummer! PM981 drives are notorious for kernel crashes under load.
Mine is PM81a (MZVLB512HBJQ-000L7), but that does not appear to make a difference.


I'm already using latest NVMeFix.
Wondering if Find : f6c1100f 85410100 00, Replace : f6c1010f 85410100 00 in IONVMeFamily will help.
Any tips on how applying this patch using Opencore?
 
The Samsung drive is indeed a bummer! PM981 drives are notorious for kernel crashes under load.
Mine is PM81a (MZVLB512HBJQ-000L7), but that does not appear to make a difference.


I'm already using latest NVMeFix.
Wondering if Find : f6c1100f 85410100 00, Replace : f6c1010f 85410100 00 in IONVMeFamily will help.
Any tips on how applying this patch using Opencore?
use xcode or plist editor in mac

or propertree in windows
 
use xcode or plist editor in mac

or propertree in windows
Ah right... I meant is there a ref that i can use for patching kexts. I tried looking for it, but couldn't find any on patching kexts.

I know how to do this in using Clover KextsToPatch, but i need the equivalent in Opencore,
 
Ah right... I meant is there a ref that i can use for patching kexts. I tried looking for it, but couldn't find any on patching kexts.

I know how to do this in using Clover KextsToPatch, but i need the equivalent in Opencore,
you already have this as an example:

Code:
 <dict>
                    <key>Arch</key>
                    <string>Any</string>
                    <key>Base</key>
                    <string>__ZN8AppleRTC18setupDateTimeAlarmEPK11RTCDateTime</string>
                    <key>Comment</key>
                    <string>Disable RTC wake scheduling</string>
                    <key>Count</key>
                    <integer>1</integer>
                    <key>Enabled</key>
                    <false/>
                    <key>Find</key>
                    <data></data>
                    <key>Identifier</key>
                    <string>com.apple.driver.AppleRTC</string>
                    <key>Limit</key>
                    <integer>0</integer>
                    <key>Mask</key>
                    <data></data>
                    <key>MaxKernel</key>
                    <string></string>
                    <key>MinKernel</key>
                    <string>19.0.0</string>
                    <key>Replace</key>
                    <data>ww==</data>
                    <key>ReplaceMask</key>
                    <data></data>
                    <key>Skip</key>
                    <integer>0</integer>
                </dict>
 
I tried patching the IONVMeFamily kext, but no cigar.

Finally, I decided to replace the Samsung NVMe with a WD one... and we're back in business - the installation completed without any kernel panics!

Now working on post-install config. Will update as I make progress.
 
Audio:
ALC 257 works with layout 99.

Backlight:
Works with prebuilt SSDT-PNLF.aml
BrightnessKeys.kext to enable brightness control keys

Battery status:
Works after adding SMCBatteryManager.kext and ECEnabler.kext
 
Last edited:
Back
Top