Jump to content

[GUIDE] Lenovo T460/T470 macOS with Clover and OpenCore


tluck
 Share

1,289 posts in this topic

Recommended Posts

Lenovo T460 macOS with Clover Guide

  • Latest Release on GitHub (July 2020)
    • Updated to Clover r5120
    • Updated Lilu based kexts - Lilu, ALC, WEG
    • Added AirportBrcmFixup.kext
       
  • Various Tweaks over Last months
 
  • Release on GitHub (February 2020)
    • Updated to Clover r5104
    • Updated Lilu based kexts - Lilu, ALC, WEG
    • Updated acidanthera VoodooPS2 kext v2.1.1
      • the older 1.9 to the Misc Folder as an option.
  • Release on GitHub (November 2019)
    • Updated to Clover r5099
    • Updated Lilu based kexts - Lilu, ALC, WEG
    • Added acidanthera VoodooPS2 kext v2.0.4
      • moved the older 1.9 to the Misc Folder as an option.
  • Release on GitHub (October 2019)
    • Updated to Clover r5097
    • Updated Lilu kexts - ALC, WEG
    • Merged Verleihnix' config.plist - especially to NOT inject GFX
    • Updated BacklightInjector as option to WEG
    • Added new DSDT patch for Catalina
  • Release v2019.01.24 on GitHub
    • Updated to Clover r4861
    • Updated Kexts
    • Shift to use WhatEvergreen.kext
    • SSDT updates for T460
    • Added Frank's T470p DSDT files
    • Added T470 DSDT
    • Remove kextunload/kextload in /etc/rc.sleep and /etc/rc.wake to avoid KP on sleep
  • Release v2018.06.05 on GitHub
    • Updated to Clover r4513
    • Updated Lilu.kext - supports both Sierra and High Sierra
    • Updated AppleALC.kext - supports both Sierra and High Sierra + added back DVMT patch for 10.13.2+
    • Updated VoodooPS2Controller.kext (RehabMan version) + SSDT updates for T460
    • Added Frank's T470p DSDT files
  • Release v2018.05.17 on GitHub
    • Updated to Clover r4458
    • Updated Lilu.kext - supports both Sierra and High Sierra
    • Updated AppleALC.kext - supports both Sierra and High Sierra + added back DVMT patch for 10.13.2+
    • Updated VoodooPS2Controller.kext (RehabMan version) + SSDT updates for T460
    • Added Frank's T470p DSDT files
  • Release v2018.04.04 on GitHub
    • Updated to Clover r4424
    • Updated apfs.efi - patched 10.13.4 version
    • Updated Lilu and AppleALC kexts - supports both Sierra and High Sierra)
  • Release v2018.01.28 on GitHub
    • Updated to Clover r4394
    • Updated apfs.efi to patched 10.13.3 version
    • Updated Lilu and AppleALC kexts to v1.2.3 (supports both Sierra and High Sierra)
    • Revised misc kexts (FakeSMC) 
  • Release v2017.11.05 on GitHub
    • Updated Clover to r4293
    • Updated Lilu and AppleALC kexts to v1.2.1 (for Sierra and High Sierra)
  • Release v2017.10.15 on GitHubRelease v2017.09.20 on GitHubRelease v2017.09.02 on GitHub
    • Updated Clover to r4247
    • Updated FakeSMC kext (merged slices's FakeSMC keys)
    • Updated ACPIBatteryManager kext to latest
    • Revised Utility and Clover scripts installer
    • Updated to Clover r4212
    • Updated Lilu and AppleALC kexts to v1.2 (for Sierra and High Sierra)
    • Updated USBInjectAll kext
    • Updated to Clover r4189
    • Updated AppleALC and Lilu kext
    • Updated VoodooPS2Controller kext
    • Updated ACPIBatteryManager kext
    • Updated misc scripts for 10.13
    • Updated Theme for High Sierra
    • Update install_nvram_save script in Utility folder
  • Release v2017.07.31 on GitHub
    • Updated to Clover r4129
    • Updated Theme for High Sierra
    • Updated Lilu and AppleALC for High Sierra
  • Release v2017.05.28 on GitHub
    • Updated to Clover r4078
    • Updated SSDT-XHC for Sierra method for USB power and current
    • Updates on misc scripts for esp mount and esp cleanup
    • Updated AppleALC and Lilu (1.1.2b) - revised patching to use the RehabMan's patch frame buffer method vs patch assertion for DVMT 32MB
    • Updated BrcmPatchRAM2.kext - increase sleep times for better BT recovery after wakeup from sleep

    • Config.plist - remove GFX properties - let Clover inject them

    • revised NVRAM script (1.16.5) + GFX fixes
    • Updated IntelMausiEthernet.kext Info.plist to enable TSO
    • Updated VoodooPS2Trackpad.kext Info.plist for TrackPad changed bogus move threshold = 100
  • Release v2017.04.25 on GitHub:
    • Updated to Clover 4063
    • Updated AppleALC (1.1.2a) - this kext does all the patching of SKLGraphicsFramebuffer and AppleHDA kexts - no GFX FakeID needed anymore
    • Updated Lilu.kext (1.1.0)
    • Added config.patchSKL.plist and config.noSKL.plist (to patch SKL FB and AppleHDA via Clover - the old way)
    • Converted the .bash scripts to .command script to be runnable from Finder
    • Added extra tools and scripts in the Utilities folder - patchmatic, iasl, skylakeFB patch/unpatch scripts
    • Cleaned up stuff for GitHub
  • Tweaks for config.plist
  • Updated FakeSMC.kext and HWMonitor pkg - see Utilities folder for full installation tool.
  • Updated VoodooPS2Trackpad kext Info.plist - setting to ignore larger bogus jumps.
  • re-added SSDT-CPU for HWP feature
  • Updated "NVRAM save scripts" with installation script to use a LogoutHook for the launch method.
  • Added RehabMan's AppleBacklightInjector method for Backlight for 10.12.4 and removed IntelBackLight.kext from Other (now an optional kext)
  • Changed to model MacbookPro13,1 for HWP support with syscl's X86Platform injector and SSDT in support of HWP 
  • Switched Audio to use AppleALC.kext instead of AppleHDA_ALC293/CodecCommander
  • Added revised rc.boot and rc.shutdown scripts by syscl/tluck that seem to save nvram.plist to ESP more reliably.
  • Updated Audio - added LineOut for Dock and ambient noise for external Mic input. - reduced Boost levels - thanks to syscl who figured HDMI out.
  • Updated CodecCommander - seems to help after wake.
  • USB - updated SSDT-XHC-T460 - added internal HS09 device for fingerprint reader
  • Added EDID patch scripts to force RGB mode in Utilities directory - gets rid of menu color glitches
  • Updated sleepwatcher scripts to deal with ethernet and wifi on sleep/wakeRevised VoodooPS2Controller kext - based on Jakibaki's work for middle button cut/paste + TrackPoint Scroll.
  • Changed layout id for Audio to 28 - for AppleALC implementation
  • Updated VoodooPS2Controller.kext
    -- TrackPoint scroll with cut/paste
    -- adding T560 support by barrrrt
    -- which include Belyaev's Sierra TrackPad preference pane mods
    -- cap locks fix

The main branch in my github repo is a complete Clover ESP (/EFI) bundle and kext pack for the Lenovo T460. The current file bundle seems to work on Sierra, HighSierra, Mojave and Catalina. There is an OpenCore branch in the repo as an alternative to Clover. This guide was developed for a Clover implementation. But the thread has evolved to include discussion of both Clover and Opencore for these systems: T460 and T470 family of ThinkPads.

 

  • Full Clover file set - config.plist etc.
  • Includes all custom kexts
  • Includes custom DSDT/SSDT scripts and patches
  • Utility scripts

The zip bundles are posted to GitHub: https://github.com/tluck/Lenovo-T460-Clover/releases

Caveat: The T460 systems used here was configured with: i5-6300U, Intel HD Graphics 520, 1920x1080 touch screen. If you have a different system model, then extract the ACPI files and use the included scripts to create a set of files consistent with your system type and BIOS version. See below for details.

Credits: RehabMan, Shmilee, vusun123, TimeWalker, Mieze from which, much of their work and help is/was was used to get the T460 to this point.

Devices and aspects working:

  1. Ethernet -  Intel I219LM is enabled via IntelMausiEthernext.kext
  2. WiFi/BT - substitute the Intel WiFi/BT with a compatible Broadcom or Atheros chip
  3. Audio - ALC293 codec implemented via AppleALC.kext (the old AppleHDA_ALC293 and CodecCommander kexts are not needed)
  4. PS2 - ClickPad + TrackPoint + all 3 buttons - using a modified VoodooPS2Controller to support new layouts - and added some custom Fn key maps based on 440/450 dsdt
  5. USB - implemented via custom SSDT + USBInjectAll kext. All USB3/USB2 ports are intel-based and work -  3 external USB and internal Camera, BT, etc 
  6. Sleep/Wake - the sleepwatcher package and custom sleep/wake scripts are used to help with sleep/wake for BT and PS2 devices.

Note: have not tried to implement the SD card reader - no driver found.

ACPI Files

 

 

If you have a T460, the ACPI files in zip should just "work" - at least to get the macOS installed. But in general it is best to make your own custom DSDT based on your system BIOS.  The ACPI (DSDT/SSDT) modifications are handled by combination of Clover on-the-fly patches, custom/direct patches to DSDT and the "hot-patch" method. Here are the key files:

  • DSDT- patched DSDT with included scripts. 
  • ssdt - (not included) and can be created for your CPU - will define C/P states via Pike's script ssdtPRGen.sh
  • SSDT-CPU - generic - for HWP support -  (no longer needed)  Clover 4016+ will generate SSDT with HWPEnabled and PStates true
     
  • SSDT-ARPT-T460 - Airport for Broadcom 4360 (if added)
  • SSDT-HACK-T460 - add misc functions for DSDT
  • SSDT-HDEF-T460 - fix/define Audio for ALC293 codec with layout ID 28 - linked to AppleALC.kext (or optional AppleHDA_ALC293.kext)
  • SSDT-IGPU-T460 - fix/define GFX for Intel HD 520 device 1916 (not really needed - since we inject graphics via clover as 4063)
  • SSDT-LPC-T460 - add/fix/define LPC device
  • SSDT-PNLF-T460 - add LCD/Panel
  • SSDT-PS2K-T460 - fix/define/add T460 defines keyboard and ClickPad/TrackPoint - linked to VoodooPS2Controller.kext
  • SSDT-SMBUS-T460 - add/fix/define SMBUS device
  • SDT-XHC-T460 - fix/define/add internal and external USB ports by custom UIAC device - linked to USBInjectAll.kext
  • SSDT-XOSI - generic - to set OS type

 

The (sample) custom DSDT in the zip is extracted from a T460 on BIOS v1.22.  

In the DSDT.T460 directory, there are the samples and scripts to create your own custom DSDT. The DSDT in the zip may work but its best to just match your system. The create_patch_DSDT.bash script will create a patched DSDT starting from the original ACPI files located the ACPI-Tables folder. The final DSDT is patched via patchmatic using the files in patch-files folder.  Follow these steps:

 

  1. Download and expand (extract) the contents from the Latest Release (zip file). 
     
  2. Copy the Utilities files into /usr/local/bin  The key files needed here are patchmatic, iasl, and espmount.bash
    Note: I assume the directory /usr/local/bin exists and is in your environment variable PATH
    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/Utilities/
    sudo ./install_tools.command
  3. Extract ACPI files.
    Start by extracting your original ACPI files by hitting F4 after you boot up with Clover. It will save the files to EFI/CLOVER/ACPI/origin. Note: this origin folder needs to exist.
     
  4. Copy the newly created ACPI files from the HD ESP to your working folder
    Copy the original .aml files from the origin directory - just the ones with names starting with DSDT and SSDT - from the ESP to a directory called DSDT.T460/ACPI-Tables ( which is part of the expanded zip file).

    Note: To mount the main system ESP, run this command which was installed with the tools in step 1.
    
    /usr/local/bin/espmount.bash 0
  5. Create your own patched DSDT.
    Using the original copied to the ACPI-Tables directory as the source, create a custom patched DSDT.dsl by:
    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/DSDT.T460
    ./create_patched_DSDT.command
  6. Install the new custom ACPI files into the ESP
    Now there is a new custom DSDT.dsl along with some other .dsl files in this same directory as the result of the patching script. To compile and install this newly create patched DSDT.dsl along with the other SSDT*.dsl files into the ESP, run this script below. It will mount the system disk partition disk0s1 (the ESP) on /Volumes/ESP, compile all the *.dsl files, and then copy them all to /Volumes/ESP/EFI/CLOVER/ACPI/patched location
    
    ./install_ACPI_to_ESP.command

 

New Installation - Steps and Details

 

BIOS settings:

  • Update to latest BIOS
  • Use Defaults settings, but check these items:
  • Set Security / Memory Protection / Execution Prevention = Enabled
  • Disable Secure Boot

Terms:

GPT = GUID Partition Table
MBR = Master Boot Record
ESP = EFI System Partition

The ESP is created automatically as the first (hidden) partition by the Disk Utility when the GPT option is selected for partitioning a disk.

Part 1 - OS Installation

 

 

 
This procedure is for a new macOS installation using a USB Installer. If you are upgrading from an older working version of OS X (say El Capitan) already on your HD, skip down to Part 2, Step 3 to update your ESP. You must replace or merge in the changes from the EFI/CLOVER files to your HD ESP before you perform the upgrade. 

  1. Download and expand (extract) the zip file contents from the GitHub Lenovo T460 Clover Latest Release.
    This same file set will be installed on the USB and the HD for UEFI boot.
     
  2. Download macOS from the App Store - they are freely available
    We build a macOS USB installer with the standard macOS installer app downloaded from the "App Store".
     
  3. Install macOS to a GPT formatted disk using the standard Install macOS.app downloaded from the Apple Store.

Create macOS USB installer

  1. Partition an 8GB (or larger) USB formatted with GUID Partition Table (GPT)
    - In Sierra, use the Erase option to change from MBR to GPT/GUID scheme.
    - Name the new partition USB. The install process will rename it, but this matches the script below.
    - Use format: macOS Extended (Journaled)
    Note: if you have a larger USB (say 16GB) you can split into 2 8GB partitions, so you can have 10.12 and 10.11 installers on the same USB key 
     
  2. Run this command to copy the downloaded bits to the USB key: 
    
    sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction

Put Clover installation on USB

  1. Install Clover on the USB
    a ) Manually mount the ESP of the USB and copy the entire EFI directory.
    b ) If not done already, expand the downloaded Zip to ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD (this set is called the Zip below)
    c ) Copy the EFI directory to the ESP directory of the USB

    For example, assuming the USB is disk1:
    
    sudo mkdir /Volumes/ESP-USB
    sudo mount -t msdos /dev/disk1s1       /Volumes/ESP-USB
    cp -a ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/EFI/ /Volumes/ESP-USB/EFI
    Note: run "diskutil list" on the command line to find your USB and HD disk devices
 

    Dual BOOT tip:
    If you plan to dual boot Windows from the same HD - DO NOT make the 2nd partition NTFS or ExFAT with the Disk Utility app.
    Make them both macOS Extended (Journaled) to keep a PMBR vs MBR.
    Size the 2 partitions appropriately - but later you will delete/reformat the 2nd partition for Windows. I recommend gpt which can make an NTFS partition without converting the PBMR.
         
  2. For a T560: Set up the ACPI configuration files to match your model.  

    go to /Volumes/ESP-USB/EFI/CLOVER
    Rename  ACPI to ACPI.T460
    Rename ACPI.T560 to ACPI

Boot Clover from USB Installer and select Install macOS

  1. Boot from the USB and install macOS on your GPT disk partition. (Hit F12 to select USB drive)

    Make sure the HD/SSD drive is formatted using:
        Scheme: GUID Partition Map (GPT),
        Partition Name: macOS,
        Format: mac OS Extended (Journaled)

    Note: *should NOT be needed* but If you get a KP from AppleIntelSKLGraphicsFramebuffer, then use the Clover Options Menu and to select the alternate configuration file: config.noSKL.plist. This injects a bogus graphics device ID 0x12345678.
     
  2. Click through GUI Install menus and wait for the installation to fully complete - on a spinning disk takes about 30-45 minutes. Follow these Notes and Tips
    • When the installer screens shows:   "To pair a Bluetooth keyboard, turn it on and wait for your computer to connect to it.”

  
               Hit the Space Bar to get past this step
    • When installer seems to hang at:  "About a second remaining”
               

Don’t Panic, this "second" may take about 10 minutes or more to finish.
               Just wait for the installer to reboot the computer and continue the installation.
               The whole install process takes  about 1 hour to complete.
    • On the first boot from the HD when asked:  "How Do You Connect?”
               

Select: “My computer does not connect to the Internet”
               And set up the network later after installation the NIC driver kext.
               Your Intel WiFi will not work. Period. 

 

Part 2- Post OS Installation and Setup

 
  1. Boot Clover from the USB 
    On startup, hit F12 and select USB -  You boot Clover from the USB, but now select the newly installed disk/partition to start macOS.  

    Note: *should NOT be needed* but if you get a KP from AppleIntelSKLGraphicsFramebuffer, then use the Clover Options Menu and select config.noSKL.plist. See step 7 below to fix this problem. AppleALC.kext + Lilu.kext will patch the Graphics Framebuffer to avoid a DVMT check KP.

    Note: You may see 3 Volumes instead of the expected 2 on the HD - macOS + Recovery HD - make sure you pick the volume that is NOT labelled Recovery HD. See step 3 below to convert the logical volume which will eliminate the abstraction and confusion.
     
  2. Complete the installation steps and login
    Note: This will boot up macOS with Clover injecting the custom kexts from the USB (for now). 
     
  3. Convert the Logical volume to Physical volume (for HFS)

    With an HFS formatted volume, the full installer may want to make a logical volume. So for simplicity, I recommend one to revert the root volumes to a regular volume.

    In Terminal run: 
    
    sudo diskutil corestorage revert /
  4. Install Clover (ESP) on the HD
    Now the make the HD bootable with Clover. Transfer the Zip file contents to the new HD. Then use a similar process as used for the USB.  
    Note: I assume the Zip is in ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/

    a ) NVRAM
    Since we are using Clover's EmuVariable method to simulate NVRAM, Clover looks for the file nvram.plist to get its persistent values - which is stored in the ESP now. Install the "root" utilities and clover scripts and files from Utilities folder to your HD. This step is important as it installs the "rc scripts" to save the nvram contents to a file upon reboot.

    Important: It will register your system to use a LogoutHook.
    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/Utilities/
    sudo ./install_clover_scripts.command
    b ) ESP
    The ESP contents on the HD are now to be made exactly like the ESP used for the USB installer above.  
    Mount the HD ESP and copy over the EFI items. You can follow the same procedure used for the USB installer.
    Note: If you previously installed Windows, be careful to not lose the EFI/Microsoft contents by following the procedure outlined below. 

    For example, assuming the main drive is disk0:
    
    sudo mkdir /Volumes/ESP
    sudo mount -t msdos /dev/disk0s1       /Volumes/ESP
    cp -a ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/EFI/ /Volumes/ESP/EFI
    c ) Custom DSDT
    Using the procedure outlined above in the ACPI Files section, create and replace the custom DSDT in EFI/CLOVER/ACPI/patched
     
  5. Install Kexts onto the HD in /Library/Extensions

    a ) For 10.12.4+: Create a custom AppleBackLightInjector kext

    Note: This kext is not needed on the USB installer.

    Since this method replaces the IntelBacklight.kext (which is still included as an optional kext) - manually remove that kext if present. Now create a custom Backlight Injector that matches your LCD Panel. The script will update the kext in the ../../EFI/CLOVER/kexts/Other directory - which is the unzipped package location. Run this procedure script:

    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/Utilities/Create_AppleBacklightInjector_kext/
    sudo ./createAppleBacklightInjector.command

    b )  Install the kexts
    Install the custom kexts from the Zip kexts directory to the /Library/Extensions directory by running:

    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/EFI/CLOVER/kexts/
    ./_kext-install.command
  6. Ethernet Device Installation (Optional)
    This step loads the ethernet kext and resets network device order to have ethernet as en0 (seems to help with AppStore and iMessage etc)

    Note:  macOS may already have configured the ethernet, so this step may be unnecessary but it will not hurt anything either for a fresh installation.
    Run this set of commands:

    
    sudo kextload /Library/Extensions/IntelMausiEthernet.kext
    sleep 10
    sudo rm       /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
  7. Remove the USB and Reboot with Clover from the HD

    Note: For this boot session, you may want to
    1- in Clover hit F3 to save the ACPI files
    and 
    2 - in Clover hit the spacebar on your boot volume selection (macOS) to set verbose mode to watch for any issues.

Notes on Custom Kexts

 

All the kexts listed below are contained in the zip file. The origin is listed below if you wish to download them as well. I recommend you use the _kext-install.command script to properly copy all kexts to the /Library/Extensions directory.
 

  • Audio/GFXAppleALC.kext  + Lilu.kext  kernel patcher
    - 2 layout options
    - If you have a Docking Station, you can use LayoutID 28 for HDMI, Speaker, Mic, Headphones, ExtMic + extra LineOut for Dock Out
    - or optionally use LayoutID 29 to remove the extra LineOut option if it is not wanted.

    Important:
    1. Requires matching SSDT-HDEF with layoutID=28 or 29. The AppleALC kext defines the patches for AppleHDA and AppleIntelSKLGraphicsFramebuffer.kex in lieu of Clover. This kext version has extra GFX Framebuffer patching for DVMT KP,  brightness levels, as compared to the AppleALC distribution on GitHub.

    2. Keep original/unmodified AppleHDA.kext in /S/L/E and add the AppleALC.kext and Lilu.kext to /Library/Extensions for full audio support (and critical patching)


Obsolete: Also included are the old alternate audio kexts in ALC293 directory: 
- AppleHDA_ALC293.kext (v9278.56) -  custom kext adapted from an ALC292.kext and based on 10.12.3 AppleHDA. This kext requires the HDA kext patching via Clover.
- CodecCommander_ALC293.kext  - TimeWalker's kext - with ALC293 added - OPTIONAL - used to resolve missing input/outputs or sleep/wake issues.

 

  • Old Keyboard/Mouse: VoodooPS2Controller.kext (v1.9.2) - RehabMans's PS2 Keyboard/TouchPad/TrackPoint (my branch has been merged in to master branch)
    • This version has T460 definitions in the SSDT-PS2K 
      see LENOVO T460 "override" settings. Change defaults to suite your needs.
    • VoodooPS2Controller keyboard mappings have 3 or 4 finger swipe left/right to back/forward configured for Safari browser
    • Note: If MouseMiddleScroll is set to true - TrackPoint scrolling with MiddleButton works better. 
       
  • OSFakeSMC.kext (v6.26.1443) - Core hack mechanism. Using Kozlek's version + plugins + custom FakeSMC Info.plist
    - A Custom package is included in the Utilities folder so you can install HWMonitor.app - it just selects these 2 Plugins Sensors: ACPI and CPU.
    - Two Custom SMC keys are added to Kozlec's standard FakeSMC - FNum (to find the Fan) and ACID (for AC power and eliminate powerd syslog messages every 30 seconds).
     
  • Battery: ACPIBatteryManager.kext (v1.90.1) - RehabMan's kext to show/track battery info on menu bar
     
  • GFX/LCD: WEG (and optionally) AppleBackLightInjector.kext (v0.9.3) - Whatevergreen (WEG)+ Lilu is the way to go now. But still can use RehabMan's Injector method - modified for Lenovo T460 to incrementally scale brightness in 17 levels from 0 to 1000 - see matching kext patch for Framebuffer brightness - which changes the maximum backlight brightness level to 1000. Note: The template file has 2 models: T420 and T460 but can be expanded as needed. To create a customer Injector, run the Utilities createAppleBacklightInjector script to create a custom Panel definition specific to your LCD. It will put the new injector in the kexts/Other folder. Install it along other kexts with _kext_install.bash script.
    
    cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/Utilities/Create_AppleBacklightInjector_kext
    sudo ./createAppleBacklightInjector.command

 

  • Ethernet: IntelMausiEthernet.kext (v.2.5.0) - Mieze's kext for Intel LAN that supports TSO, EEE and other features. 
     
  • USB: USBInjectAll.kext (v0.6.5) - RehabMan's kext -  See SSDT-XHC.dsl for related UIAC Device
     
  • CPU: X86PlatformPluginInjector.kext (v9.9.9) - based on syscl's injector for HWP properties. When using, MBP13,1 there is a custom property file for standard T460 CPUs:  i7-6600U 3400 MHz, i5-6300U 3000 Mhz, i5-6200U 2800 Mhz and i3-6100U 2300 Mhz.  This is the only kext that must be in /L/E since it uses a symbolic link to the standard version of this kext.


WiFi Replacement

These kexts and procedure are used with Broadcom WiFi/B. Replace the Intel WiFi with suitable supported card such as a BCM94352Z (Dell DW1560) with proper M.2 form-factor. To install the SleepWatcher scripts, which will help with WiFi on Sleep/Wake use this process to install the scripts into / of your HD


cd ~/Downloads/Lenovo-T460-Clover-YYYY.MM.DD/Utilities/
sudo ./install_sleepwatcher.command

Reboot and check that SleepWatcher is running via "ps -ef | grep sleep". 

Install these kexts for a Broadcom chip.

  • BrcmFirmwareRepo.kext (v2.2.7) - RehabMan's kext - to load firmware for Broadcom
  • BrcmPatchRAM2.kext  (v2.2.7) - based on RehabMan's kext, but modified to fix/change sleep/wake timings for T460.
  • FakePCIID.kext (v1.3.6)- RehabMan's kext
  • Fake_Broadcom_WiFi.kext (v1.3.6) - RehabMan's kext

 

 

Edited by tluck
Updates
  • Like 19
Link to comment
Share on other sites

On the graphics, I don't think the DVMT is the problem, as most Skylake laptops with closed-off bios such as Dell and Acer also have 32MB DVMT-pre allocated memory and they still boot in just fine - only minor glitch on finder bar and gradient area, but that can be dealt with by using other display color profiles

Link to comment
Share on other sites

First off, EDID. Use MonInfo ( Windows ) and post the current EDID of your monitor ( in text format, save the raw numbers ). Then we will actually have something to work with. There are also cases of laptop display ( mainly Sony Vaio ) doesn't detect the right EDID, therefore it will get stuck or black screen with backlight on

Link to comment
Share on other sites

@azerty076 - just posted a reply on another site. but i will update the GUIDE with my latest files etc. 

 

So quickly what works:

1) ethernet - IntelMausi kext
2) WiFi/BT - with BCM4352Z NGFF M.2 (aka Dell DW1560) - BrcmPatchRAM2 modified for to slow down firmware for USB wake.
3) Audio - ALC293 AppleHDA.kext
4) PS2 - Clickpad/Trackpad + TrackPoint + all 3 buttons - VoodooPS2Controller modified - F key maps
5) USB - custom SSDT + USBInjectAll kext mods. so all external USB3/USB2 ports and internal ports - Camera, BT work.
6) sleep/wake
 

have not messed with SD Card.

Edited by tluck
  • Like 3
Link to comment
Share on other sites

@azerty076 - just posted a reply on another site. but i will update the GUIDE with my latest files etc. 

 

So quickly what works:

1) ethernet - IntelMausi kext

2) WiFi/BT - with Dell 1510 (BCM43252Z) - BrcmPatchRAM2 modified for to slow down firmware for USB wake.

3) Audio - ALC293 AppleHDA.kext

4) PS2 - Clickpad/Trackpad + TrackPoint + all 3 buttons - VoodooPS2Controller modified - F key maps

5) USB - custom SSDT + USBInjectAll kext mods. so all external USB3/USB2 ports and internal ports - Camera, BT work.

6) sleep/wake

7) GFX 2D - turn off IntelAccellerator.

have not messed with SD Card.

 

Hello,

 

I saw your message on the other site. It will be good if you can update this guide with the latest files ;) 

 

Otherwise, I think that i saw in the bios that we can configure the NVRAM size, for me it was 128Mo I think. I have a core i7 6660U.

Link to comment
Share on other sites

  • 2 weeks later...

I posted the current/updated zip - not much changed. 

 

@tluck,

hello In my case I have 3D acceleration but I have transparency glitches only. I didn't rename file AppleIntelSKLGraphics.kext and my Hackintosh is working like a charm.

 

 

Here I attach transparency glitch example:

 

 

 

do you have this issue also ?

post-1637991-0-53571700-1475696139_thumb.png

Link to comment
Share on other sites

@aleixsr - what is your machine model? perhaps post your clover ESP and any other ideas for comparison? i will repost my zip later today. i made some slight changes in the VoodooPS2Controller kext.

  • Like 1
Link to comment
Share on other sites

@tluck,

hello In my case I have 3D acceleration but I have transparency glitches only. I didn't rename file AppleIntelSKLGraphics.kext and my Hackintosh is working like a charm.

 

 

Here I attach transparency glitch example:

 

 

 

do you have this issue also ?

Try changing display color profile. One of the sRGB profiles will solve the issue

  • Like 1
Link to comment
Share on other sites

darn. no joy. i tried your clover zip and got to same exact place - hung on IntelAccelerator.

 

wonder about differences in computer

cpu  - mine is i5-6300U? vs you have i5-6200U.

LCD - do you have touch screen?

 

i noticed you dont have a DSDT or SSDT files in your ACPI folders?

 

$ ioreg -l 

 ....

    | |   | | +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x1000003df, !registered, !matched, active, busy 0, retain 5>

    | |   | |     {

    | |   | |       "IOUserClientCreator" = "pid 220, WindowServer"

    | |   | |     }

    | |   | |    

    | |   | +-o IntelAccelerator  <class IntelAccelerator, id 0x1000002fd, registered, matched, active, busy 0 (0 ms), retain 10>

    | |   |   | {

^C^C^C

 

I don't have touch screen.

Why you said I don't have DSDT and SDST? Yes, I have it and I'm based on your files you posted on another forum. Please let me know.

 

Here is my ioreg -l:

...

| |   | | +-o IOFramebufferUserClient  <class IOFramebufferUserClient, id 0x100000380, !registered, !matched, active, busy 0, retain 5>

    | |   | | |   {

    | |   | | |     "IOUserClientCreator" = "pid 172, WindowServer"

    | |   | | |   }

    | |   | | |

    | |   | | +-o IOFramebufferSharedUserClient  <class IOFramebufferSharedUserClient, id 0x100000431, !registered, !matched, active, busy 0, retain 6>

    | |   | |     {

    | |   | |       "IOUserClientSharedInstance" = Yes

    | |   | |       "IOUserClientCreator" = "pid 1071, firefox"

    | |   | |     }

    | |   | |

    | |   | +-o AppleIntelFramebuffer@1  <class AppleIntelFramebuffer, id 0x1000002d3, registered, matched, active, busy 0 (1 ms), retain 14>

    | |   | | | {

 

...

 

| |   | +-o IntelAccelerator  <class IntelAccelerator, id 0x1000002d0, registered, matched, active, busy 0 (42 ms), retain 92>

 

 

Please tell me how can I help you.

Try changing display color profile. One of the sRGB profiles will solve the issue

 

GREAAAATTTT !!!!!

 

It's true! Using sRGB IEC61966-2.1 Display profile did the trick!!

 

Thank you very much!!!

  • Like 1
Link to comment
Share on other sites

GREAAAATTTT !!!!!

 

It's true! Using sRGB IEC61966-2.1 Display profile did the trick!!

 

Thank you very much!!!

In fact your problem is the same as Haswell's 9MB Cursor issue. A little bit edit to the framebuffer will solve this matter without changing display profile, but I'm no expert on this one

Link to comment
Share on other sites

In fact your problem is the same as Haswell's 9MB Cursor issue. A little bit edit to the framebuffer will solve this matter without changing display profile, but I'm no expert on this one

 

Hi, it is not fully fixed, can you help me or tell me where I can found info about how to solve it ?

 

Thank you

Link to comment
Share on other sites

Hi, it is not fully fixed, can you help me or tell me where I can found info about how to solve it ?

 

Thank you

Google "Haswell 9MB Cursor Patch" and 1st result should be from tony's site. It has basic information on how to fix that problem on Haswell, take that and do what you can with Skylake ( do not replicate the same patch onto the SKLFramebuffer, I do not know if the patch will crash your system or not )

Link to comment
Share on other sites

In fact your problem is the same as Haswell's 9MB Cursor issue. A little bit edit to the framebuffer will solve this matter without changing display profile, but I'm no expert on this one

 

Hello, I discovered that if I boot Windows and then reboot these graphic glitches don't appear, it is related to framebuffer? How can I know what I must change?

Here I attach ioreg files booting directly to OS X and rebooting from Windows.

 

Thank you very much

T460-01-Post_WIN_Boot.ioreg.zip

T460-01-OSX_Boot.ioreg.zip

Link to comment
Share on other sites

In fact your problem is the same as Haswell's 9MB Cursor issue. A little bit edit to the framebuffer will solve this matter without changing display profile, but I'm no expert on this one

 

Can you please help me on how to edit framebuffer ?

 

thank you.

Link to comment
Share on other sites

Lenovo T460 Clover Guide

 

Overview - Work in Progress - 05-Oct-2016

 

  • Updated Clover to 3787
  • Updated VoodooPS2Controller.kext (again) 
  • Updated FakeSMC kext to next rev

Attached is a current zip file with a complete /EFI pack for the Lenovo T460 using Clover on OS X

The current File Bundle is for 10.11 - the zip file attached to the bottom of this post

  • Full Clover file set - config.plist etc.
  • Includes all custom kexts
  • Includes custom DSDT/SSDT scripts and patches

Caveat:

My system is a T460 with Intel 520 Graphics. Currently, the full advanced graphics are not working due to lack of DVMT pre-allocated memory. Most systems need 64, 96 or 128 MB. This system seems to have 32 MB. 

I must rename /S/L/E/AppleIntelSLKGraphics.kext to not be used at this time.

 

Credits to: RehabMan and Shmilee (more to come) from which, much is/was based on to get the T460 to this point.

 

 

Devices and aspects working:

  1. Ethernet -  needs IntelMausiEthernext.kext
  2. WiFi/BT - substituted Intel WiFi/BT with Dell 1510 (BCM43252Z) - BrcmPatchRAM2 modified for to slow down firmware for USB wake.
  3. Audio - ALC293 AppleHDA.kext
  4. PS2 - Clickpad/Trackpad + TrackPoint + all 3 buttons - VoodooPS2Controller modified - F key maps
  5. USB - custom SSDT + USBInjectAll kext mods. so all external USB3/USB2 ports and internal ports - Camera, BT work.
  6. Sleep/Wake - sleep watch
  7. GFX 2D - turn off IntelAccellerator.

Note: have not tried to implement the SD card reader.

 

 

ACPI Patches and Files:

  • DSDT.dsl - patched DSDT  
  • ssdt.dsl - define C/P state for I5 via Pike's script

     

  • SSDT-HACK-T460.dsl - add misc functions
  • SSDT-XOSI.dsl  - sets OS type
  • SSDT-LPC-T460.dsl - add/fix/define LPC device
  • SSDT-SMBUS-T460.dsl - add/fix/define SMBUS device
  • SSDT-HDEF-T460.dsl - fix/define Audio for ALC293 codec
  • SSDT-IGPU-T460.dsl - fix/define GFX for Intel HD 520 device 1916
  • SSDT-PNLF-T460.dsl - add LCD/Panel
  • SSDT-PS2K-T460.dsl - fix/define/add T460 keyboard
  • SSDT-XHC-T460.dsl - fix/define/add internal and external USB ports 

 

Boot Clover and define gfx device ID=0x12345678 until able to disable AppleIntelSKLGraphics.kext

 

Part 1 - OS Installation

 

see http://www.insanelymac.com/forum/topic/285678-lenovo-thinkpad-t420-with-uefi-only/page-25?do=findComment&comment=1952283

 

Part 2 - Post OS Installation and Setup on HD

 

 

  1. Boot Clover from USB 

    On startup, hit F12 and select USB boot -  but now in Clover select the newly installed disk/partition to start OS X.  

     

    Note: You may see 3 Volumes instead of the expected 2 on the HD - OS X + Recovery HD - make sure you pick the volume that is NOT labelled Recovery HD. See step 3 below to remove the logical volume eliminates the confusion.

     

  2. Complete the installation steps and login

    Note: This will boot up OS X with Clover injecting the custom kexts from the USB (for now). 

     

  3. Convert the Logical volume to Physical volume

    The full installer likes to make a logical volume. So for simplicity, I recommend one to revert the root volumes to a regular volume.

     

    Run: 

    sudo diskutil corestorage revert /
  4. Install Clover on the HD

    Transfer the Zip file and the most Clover installation pkg to HD (via another USB). 

     

    a ) Run the Clover_v2.3k_rxxxx.pkg to install the related latest bits into the HD OS and ESP (usually partition 1) of disk0. Use the link to download the pkg from SourceForge.  You can do this step later on if you don't have way to get it before you are setup on the network.

     

    Select (check box) at least first 2 items! This picture shows a good set of overall options:

    attachicon.gifclover-pkg-options.png  After you close the pkg installer, then follow these step to replace the ESP.

     

    b ) The ESP contents on the HD are now to be made exactly like the ESP used to setup the USB installer above. If the ESP is not mounted from the running Clover installer pkg, manually mount the ESP of your HD on /Volumes/ESP. (See first 2 commands below.) Then you will replace the ESP installed by Clover in the previous step. Which means you copy/replace these 2 directories /Volume/ESP/EFI/CLOVER and BOOT with the ones from the Zip file. Then just as you did for the USB, the config.plist is renamed from the one that matched your LCD. For a manual mount and install of the ESP bits to disk0 follow same procedure as for the USB. If you previously installed Windows, be careful to not lose the EFI/Microsoft contents.

    Note:

    The Clover config.plist default volume name (the volume to boot automatically) is set to OSX - meaning your new volume is assumed to be named OSX

    If you use a different name, change the volume name or edit the name in config.plist to match. 

    mkdir /Volumes/ESP
    sudo mount -t msdos /dev/disk0s1 /Volumes/ESP
    
    mkdir -p /Volumes/ESP/EFI
    cp -a ~/Downloads/T460/EFI/* /Volumes/ESP/EFI
    
    
  5. Install custom kexts on HD

     

    Install the custom kexts from the Zip kexts directory to the /Library/Extensions directory by running EFI/CLOVER/kexts/_kext-install.command

    Note: If you choose to NOT install the custom kexts in the OS /L/E directory, then AppleHDA kext will not work properly. DO NOT remove standard AppleHDA.kext from /S/L/E.

     

    Run this script:

     ~/Downloads/T460/EFI/CLOVER/kexts/_kext-install.command
  6. Ethernet Device Installation

     

    This step loads the ethernet kext and resets network device order to have ethernet as en0 (seems to help with AppStore and iMessage etc)

    Note: OSX may already have configured the ethernet, so this step may be unnecessary but it will not hurt anything either for a fresh installation.

    Run this set of commands:

     

    sudo kextload /Library/Extensions/IntelMausiEthernet.kext
    sleep 10
    sudo rm       /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
  7. Remove the USB and Reboot to load Clover from the HD

    Note: For this first boot, hit the spacebar on your boot selection (OSX) and use verbose mode.

 

 

 

Notes on Custom Kexts

 

All the kexts listed below are contained in the zip file. The origin is listed below if you wish to download them as well. I recommend you use kext install tool to properly copy all kexts to the /Library/Extensions directory.

  • FakeSMC.kext (v6.21.1413) - Core hack mechanism. Using Kozlek's version + plugins + custom FakeSMC Info.plist

    A Custom package is included in the Utilities folder so you can install HWMonitor.app - it just selects these 2 Plugins Sensors: ACPI and CPU.

    • ​2 Custom SMC keys are added to Kozlec's standard FakeSMC - FNum (to find the Fan) and ACID (for AC power and eliminate powerd syslog messages every 30 seconds).
  • ACPIBatteryManager.kext (v1.70.1) - RehabMan's kext to show/track battery info on menu bar

     

  • AppleHDA_ALC293.kext (v9274.12) adapted from ALC292.kext. Note: Keep original/unmodified AppleHDA.kext and add this kext to /L/E for full audio support. Note: requires matching DSDT sections for config.plist layoutID 1. and uses Kext Patch via Clover. 

     

  • USB_Injector.kext (1.0.0) - based on RehabMan's UsbInjectAll.kext but modified for T460 XHCI devices. see SSDT-XHC.dsl for related details. 

     

  • IntelBacklight.kext (v1.0.10) - RehabMan's kext for smoother/enhanced LCD backlight (dimming) control. 

     

  • IntelMausiEthernet.kext (v.2.2.0) - Mieze's Intel LAN kext that supports TSO, EEE and other features. Put this kext in /Library/Extensions

     

  • VoodooPS2Controller.kext (v1.8.24a) - New T460 version of RehabMans's PS2 Keyboad/TouchPad/TrackPoint -  

     

    This version has extra T460 definitions in the Info.plist files. And recoded to support 3 real buttons as well ClickPad Right/Left click.

    • Modified Info.plist(s) to add LENOVO T460 override settings. Change defaults to suite your needs in VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2TrackPad.kext/Contents/Info.plist
    • Reduced MouseMultiplier X and Y for TrackPoint.
    • Note: VoodooPS2Controller keyboard mappings have 3 or 4 finger swipe left/right to back/forward configured for Safari browser

OPTIONAL - used with Dell 1560 Wifi/BT replacement card:

 

Hi @tluck,

your script is returing this error:

 

./_kext-install.command: line 86: cd: /Library/Extensions/AppleHDA_20672.kext/Contents/MacOS: No such file or directory

 

Where is AppleHDA_20672.kext ?

 

Thank you

 

Link to comment
Share on other sites

ah sorry that is an older script that was hardcoded for my T420... meaning that kext is for the T420 not the T460.

 

ill update the package later but here is revised script that ought to work 

Thank you, I just saw there is:

sudo ln -s /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

but I don't have AppleHDA.kext ?¿?¿ Does it make sense?

Thank you, I just saw there is:

sudo ln -s /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

but I don't have AppleHDA.kext ?¿?¿ Does it make sense?

 

Sorry, I found it was on /Backup Extensions folder, I restored it but I don't have any sound device, how did you got it working?

Link to comment
Share on other sites

 Share

×
×
  • Create New...