Tested on: macOS Mojave 10.14.x, macOS Catalina 10.15.x
Apple Services: iCloud, iMessage, FaceTime, etc. tested and working!
This project is designed to help other T470 owners get a fully working macOS installation on their Thinkpads. Maybe you don't have a T470 but have run into a problem with a specific hardware device that is shared between this system and yours. Either way, Welcome! If you run into an issue with this guide or have a suggestion, feel free to submit an issue. I will maintain this as best I can with more updates coming soon to this guide.
- Always keep a copy of your disassembled DSDT file and back it up as you apply patches.
- On top of this, I also keep each patch in a separate txt file in case I need to rebuild my DSDT
- To keep power management and battery life under control, I have disabled always-on USB and wake from thunderbolt
- Battery life is currently on par with what I was getting under Windows
- I haven't experienced a single kernel panic or other crash on Mojave or Catalina
- Your results may vary, submit an issue if you need help and I'll do my best to help you
- Part Number: 20JMS0Q400
- BIOS 1.61 (N1QUJ27W)
- Set default config
- Config > USB > Always on USB: Disabled
- Config > Thunderbolt 3 > All options: Disabled (No Security)
- Security > Security Chip: Disabled (TPM2.0)
- Security > I/O Port Access: WWAN, Fingerprint, TB3, WiGig: Disabled
- Security > Secure Boot > Secure Boot: disabled
- Startup > Boot Mode: UEFI Only
- Startup > CSM Support: Disabled
- Intel Core i7-7300U @ 2.6GHz
- Intel HD Graphics 620
- 1920x1080 IPS Panel (Matte)
- 8GB DDR4 2133Mhz
- Intel SSD Pro 7600P 512GB NVME
- Dual 3-cell batteries
- USB - XHC 100-series chipset (8086:9d2f)
- Realtek ALC298
- Integrated Camera (IMC Networks)
- Intel I219-LM Network Adapter
- Touchpad (Synaptics UltraNav)
- Trackpoint
- Keyboard backlight
- LCD backlight
- Sleep/wake
- Power button
- Power management
- Thinkpad/Power button LED (sleep mode)
- Intel Dual-Band Wireless AC 8260 (vPro) (buggy but works)
- Realtek USB Card Reader (0BDA:0316)
- WWAN (M.2 2242 "B") - Empty Slot
- Function/Media Keys (aside from Vol/Bright)
- Headphone jack
- Thunderbolt 3
- Fingerprint reader (Validity Sensors - 138a:0097)
- Touchscreen (Raydium Touch Systems)
- USB flash drive with macOS Installer & CLOVER
- Clover Configurator
- iasl (needed to disassemble ACPI files)
- MaciASL (needed to patch and assemble ACPI files)
- IORegistryExplorer (good for troubleshooting and needed to create custom SSDT for USBInjectAll)
Everything described below is already contained in the EFI folder, though some kexts may not be the latest version available by the time you read this. Since not all models of the ThinkPad T470 are completely the same, I'm including the methods I used to get the individual devices working which can be cherrypicked to finalize your setup.
If you're just getting started and you've got yourself a bootable USB installer with CLOVER loaded on it, go ahead and install these kexts to /EFI/CLOVER/kexts/Other
and place the config.plist under /EFI/CLOVER
. I found these necessary to get the installer running and macOS installed. Most things such as battery status, brightness control, audio, etc. will not work but that's expected.
- config.plist for HD 620
- Lilu
- WhateverGreen
- VirtualSMC
- SMCBatteryManager
- SMCLightSensor
- SMCProcessor
- SMCSuperIO
- VoodooPS2Controller (RehabMan's version)
- IntelMausiEthernet
- USBInjectAll
Since the ThinkPad T470 has two batteries (internal & removable), we need to use a patch that will present both batteries as one to the system. From this repo, grab SSDT-BATC-T470.aml
and place it under /EFI/CLOVER/ACPI/patched
. You will also need to apply a DSDT patch located at Extras/DSDT Patch/Battery Indicator
via MaciASL.
Now in order to get the battery status indicator working, we need to apply a DSDT hotpatch via Clover Configurator. Open the config.plist from your EFI partition in Clover Configurator and select ACPI from the sidebar. Under DSDT\Patches we'll add these four change Notify
lines:
In order to get the ALC298 chipset working, we'll need to make use of AppleALC.kext (which requires Lilu.kext). Download the latest versions and place them under /EFI/CLOVER/kexts/Other
.
Now that we have the plugin, we need to tell Clover how to use it. Open your config.plist in Clover Configurator and use one of the two methods below:
- Add property under Devices\Properties:
- Add boot argument under Boot\Arguments:
alcid=47
Tip: Try running
lspci | grep audio
oraplay -l
from a Linux live USB to find which codec your system has (e.g. ALC298).
Getting the onboard network adapter working only requires placing IntelMausiEthernet under /EFI/CLOVER/kexts/Other
.
Warning: For some reason, I couldn't get this to work with the installer so I used a USB to Ethernet adapter. Once macOS was installed I was able to use the onboard network adapter.
The backlight works but we need to be able to control its brightness. Place the SSDT-PNLF.aml
from my EFI folder inside of the /EFI/CLOVER/ACPI/patched
directory and put AppleBacklightFixup.kext under /EFI/CLOVER/kexts/Other
. These alone should give you control of the backlight under System Preferences.
In order to control the backlight using the brightness keys involves patching the DSDT.
-
Brightness Controls
Note: My model's brightness keys (Fn+F5 & Fn+F6) uses ACPI not PS2. To determine the key name (_Q14, _Q15 below) please see RehabMan's ACPIDebug.kext. Compatibility Note: If using ACPIDebug.kext to determine keys, syslog/Console.app will not show these anymore. From Terminal run
log show --last 5 | grep ACPIDebug
instead.-
Requires DSDT patch; my model uses LPCB.KBD not LPC.PS2M or LPC.PS2K
Method (_Q14, 0, NotSerialized) // _Qxx: EC Query { // Brightness Up Notify(\_SB.PCI0.LPCB.KBD, 0x0206) Notify(\_SB.PCI0.LPCB.KBD, 0x0286) } Method (_Q15, 0, NotSerialized) // _Qxx: EC Query { // Brightness Down Notify(\_SB.PCI0.LPCB.KBD, 0x0205) Notify(\_SB.PCI0.LPCB.KBD, 0x0285) }
-
Coming soon
Coming soon
Info: For my Synaptics touchpad, I was able to get it working using RehabMan's VoodooPS2Controller.kext but tluck's SSDT-Thinkpad_Clickpad patch was required to enable the PrefPane. Multi-touch gestures are fairly limited. You can utilize two finger scrolling but swiping to go back a page in Safari, pinch-to-zoom and rotate don't work. I would also recommend disabling tap-to-click as this caused the cursor to intermittently jump to a second position on the screen if you touched the touchpad simultaneoulsy with a second finger.
Note: To enable three finger gesture for Exposé you must define the gesture as a keyboard shortcut under SysPrefs > Keyboard > Shortcuts. Under Mission Control, select Application Windows and make the gesture on the touchpad to set it.
- VoodooPS2Controller.kext
- Location: /EFI/CLOVER/kexts/Other
- SSDT-Thinkpad_Clickpad.aml
- Location: /EFI/CLOVER/ACPI/patched
It is easiest to just use RehabMan's guide here to create a custom SSDT. It seems difficult at first but it's really quite easy. You can also take a look at my SSDT-UIAC-T470.dsl to get an idea of how it should look. I've left comments pertaining to which logical device belongs to which physical device. I would also recommend disabling (which is done by commenting out //
those lines) things that aren't supported like the touchscreen, fingerprint reader, etc.
Coming soon
Make sure you generate a new serial number and UUID in Clover Configurator to avoid any conflicts with iCloud, iMessage, etc. I've removed some of my unique identifiers so they
- digitalec - Starter repo, modified to work for 7th gen
- okay - some good info here which kickstarted my efforts
- RehabMan - base config.plist for Intel 520, various kexts, DSDT patches and SSDTs
- tluck - modified version of RehabMan's SSDT-BATC; SSDT-Thinkpad_Clickpad
- ImmersiveX - dark theme for Clover