Jump to content

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


tluck
 Share

1,289 posts in this topic

Recommended Posts

hmm. have not had any issues with TrackPad... was this happening before the Jan 27 version?

 

Yes it was.  A reboot makes the trackpad work again.  It is (much) more frequent in the Jan 27 version.  I don't shutdown my T460s, so before Jan 27 update it would go 2-3 days before the trackpad stops working.  Now it's once or twice a day.

Link to comment
Share on other sites

HI tluck,

I'm wondering how did you make the HDMI audio work?

since I have a similar laptop(X1 yoga), I checked your file, it seems you follow the similar procedure as toleda's HD5x0 guide.

 

I followed similar  procedures:

on clover config:

               rename GFX0 TO IGPU

               rename HECI TO IMEI

               add one kext to patch for HDMi from your config 

 

add 2 ssdt patch file:

              modified your hdef file

              copied your igpu file

 

I don't know why once I used modified version of HDEF ssdt and set audio inject to empty string on clover, my aduio icon is dimmed and of course there's no corresponding change on ioReg when I looked at property for 'HDEF'

 

thanks in advance!

Link to comment
Share on other sites

@loppol - the other key factor is the kext - AppleHDA (or AppleALC.kext)  layout file. I added a property in there. 

Hi tluck, thanks for the hint and I assume you means this post http://www.insanelymac.com/forum/topic/319211-guide-fix-skylake-hdmidp-output/

 

After I added the property in the layout file and it shows 'HDMI output' on sys report/audio, I still can't get the audio work, my problem probably is that no codec of HDMI is detected

 

post-1550556-0-50858000-1486517635_thumb.png

post-1550556-0-93287800-1486518710_thumb.png

 

could you show me your status of DPCIManger as well as the output HDEF result on IOReg?

 

thanks!

Link to comment
Share on other sites

so you have a working AppleHDA kext?

 

and you seem to not have SDDT-HDEF as there are some properties missing

 

my HDEF in IOREG

attachicon.gifScreen Shot 2017-02-07 at 10.26.58 PM.png

 

this is where I don't know why, I have a working aDummyHda.kext if I inject layout ID to 3 in clover config, which is what the above pic showed (which shows correct layout id:3, and missing some other properies)

but If I set audio inject to empty in clover config and include SSDT-HDEF, It gets even worse and seems the SSDT-HDEF doesn't work.

 

I checked boot log which shows SSDT-HDEF is patched successfully:

7:834  0:000  === [ ACPIPatchedAML ] ====================================
7:834  0:000  Start: Processing Patched AML(s): Sorted
7:834  0:000  Inserting table[0]:SSDT.aml from EFI\CLOVER\ACPI\patched ... Success
7:834  0:000  Inserting table[1]:SSDT-0.aml from EFI\CLOVER\ACPI\patched ... Success
7:835  0:000  Inserting table[2]:SSDT-1.aml from EFI\CLOVER\ACPI\patched ... Success
7:835  0:000  Inserting table[3]:SSDT-2.aml from EFI\CLOVER\ACPI\patched ... Success
7:835  0:000  Inserting table[4]:SSDT-3.aml from EFI\CLOVER\ACPI\patched ... Success
7:835  0:000  Inserting table[5]:SSDT-4.aml from EFI\CLOVER\ACPI\patched ... Success
7:836  0:000  Inserting table[6]:SSDT-12.aml from EFI\CLOVER\ACPI\patched ... Success
7:836  0:000  Inserting table[7]:SSDT-UIAC-AL.aml from EFI\CLOVER\ACPI\patched ... Success
7:836  0:000  Inserting table[8]:SSDT-NVMe.aml from EFI\CLOVER\ACPI\patched ... Success
7:836  0:000  Inserting table[9]:SSDT-XOSI.aml from EFI\CLOVER\ACPI\patched ... Success
7:836  0:000  Inserting table[10]:SSDT-IGPU-T460.aml from EFI\CLOVER\ACPI\patched ... Success
7:837  0:000  Inserting table[11]:SSDT-HDEF-T460.aml from EFI\CLOVER\ACPI\patched ... Success

 

here is my ioreg on this situation(which shows layoutid=0 so that audio icon is dimmed...):
post-1550556-0-98119900-1486525709_thumb.png
 
here is what I edited based on your SSDT-HDEF file
DefinitionBlock ("", "SSDT", 2, "T460", "HDEF", 0x00000000)
{
    External (_SB_.PCI0.HDEF, DeviceObj)    // (from opcode)

    Method (\_SB.PCI0.HDEF._DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
    {
        If (LNot (Arg2))
        {
            Return (Buffer (One)
            {
                 0x03                                           
            })
        }

        Return (Package (0x14)
        {
            "AAPL,slot-name", 
            Buffer (0x09)
            {
                "Built in"
            }, 

            "layout-id", 
            Buffer (0x04)
            {
                 0x03, 0x00, 0x00, 0x00                         
            }, 

            "codec-id", 
            Buffer (0x04)
            {
                 0x11, 0x51, 0xF1, 0x14                         
            }, 

            "model", 
            Buffer (0x18)
            {
                "Conexant 20753 HD Audio"
            }, 

            "name", 
            Buffer (0x0F)
            {
                "Conexant 20753"
            }, 

            "device_type", 
            Buffer (0x11)
            {
                "Audio Controller"
            }, 

            "built-in", 
            Buffer (One)
            {
                 0x00                                           
            }, 

            "PinConfigurations", 
            Buffer (Zero) {}, 
            "hda-gfx", 
            Buffer (0x0A)
            {
                "onboard-1"
            }, 

            "MaximumBootBeepVolume", 
            0x2F
        })
    }
}
What I'm thinking is that probably I mixed up with some config settings so that clover override the HDEF related property? 
 
here is my config file, if you have time, could you please take a look?
 
thanks!
Link to comment
Share on other sites

Hi tluck,

I finally get the hdmi audio working, I checked my original DSDT, there's one special non-trivial line of code 

ADBG ("HDAS _DSM")

inside the _DSM method under the HDEF scope.

 

I tried to use a separate ssdt by adding ADGB method(it's a method from the root of dsdt), but is failed to inject on ioreg so that I have to do it in dsdt and I also disable the patch of ‘change _DSM to XDSM’,then issue is sloved! :lol:

 

by the way, for all the scripts from your root folder, did you make any special/ particular hack only for T460, if not, do you think I can steal them directly for my x1 yoga? :D

 

thanks for your help!

Link to comment
Share on other sites

well yes i disable _DSM in DSDT and use SSDT method mostly.  and sure i have ADBG  in my DSDT in many places - but these do nothing as it is defined:

 

Method (ADBG, 1, Serialized)
    {
        Return (0x00)
    }

 

well of course the SSDT define devices specific to the T460/T560 - such as audio device/codec etc ... i don't know how many apply as-is to Yoga?

Link to comment
Share on other sites

well yes i disable _DSM in DSDT and use SSDT method mostly.  and sure i have ADBG  in my DSDT in many places - but these do nothing as it is defined:

 

Method (ADBG, 1, Serialized)

    {

        Return (0x00)

    }

 

well of course the SSDT define devices specific to the T460/T560 - such as audio device/codec etc ... i don't know how many apply as-is to Yoga?

yes, I also think this method is somehow useless, but it seems that without this method and in place tweaks of HDEF stuffs in dsdt, my hdmi audio does not work :( 

Link to comment
Share on other sites

yes.

 

Note: the clover I build and post does not have grub support (i drop that, since i don't use linux on my system natively). but i can add that in for the future - or you will need to download Clover directly. 

Link to comment
Share on other sites

I can download clover directly thats no problem, the normal clover has grub support?

 

Can you give me a hint how to split my partition, so i dont loose my ubuntu?

 

Ps: I read osx need to be on the first partition or something. But that is ubuntu right?

 

Thank you very much

Link to comment
Share on other sites

i have not done it myself but i suspect this is the process in general:

 

1) you need/want a disk formatted as GPT/GUID vs MBR disk.

2) since OSX/macOS does not need to be first (or 2nd if you count the ESP) so then you can shrink your ext3 or ext4 filesystem and create a new partition as ext3 for now.

 

layout:

ESP

Ubuntu

macOS

 

3) use the USB macOS installer method to boot up installer and with tools and reformat the 2nd ext3 partition has HFS+ journalled filesystem

4) install macOS

Link to comment
Share on other sites

over the weekend, i followed syscl's post on HWP and switched to model MBP13,1

 

- i can't really tell yet if i am getting any better power control - i.e. lower power consumption etc.

- i will update zip shortly with these minor changes. it doesn't require a custom SSDT for CPU C/P states anymore as the OS figures it out

- however, one aspect that will require some tweaking is about modifying a custom profile (resource file) for X86PlatformPlugin kext based on the CPU params (frequency/speed).

there seems to be 4 T460 CPU models and based on Intel Ark website 

  • Intel® Core™ i7-6600U Processor - base speed 2600, turbo 3400
  • Intel® Core™ i5-6300U Processor - base speed 2400, turbo 3000
  • Intel® Core™ i5-6200U Processor - base speed 2300, turbo 2800
  • Intel® Core™ i3-6100U Processor - base speed 2300

to customize the profile, I changed the max speed and the so called LFM (lowest) 

- which seems to explain why some of saw the box staying on x13 speed and not going lower.

 

Edit: in the zip - all 4 CPUs above are supported.

 

--- on brightness for LCD in 10.12.4 beta

 

there seems to be a change in the way macOS handles brightness in the recent 12.4 betas. the IntelBacklight.kext does not receive updates from the sys-prefs or f5/f6...

so there are several approaches (per RehabMan - thanks)

1) use brightness menu bar app by bergdesign - which can communicate with IntelBacklight 

2) remove the IntelBacklight and implement and older style ACPIBacklight kext

or

3) remove IntelBacklight - and go native.

 

i am using method 3 for now - with an additional framebuffer kext patch. the patch helps with the brightness levels near the top  - otherwise i get a weird dip and flashing - the max brightness is still max - just uses a different relative scale.

 

find: 6C050000 6C050000

replace: E8030000 E8030000

 

which changes max brightness from 1388 to 1000

<dict>
    <key>Comment</key>
    <string>Framebuffer - brightness fix</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    bAUAAGwFAAA=
    </data>
    <key>Name</key>
    <string>AppleIntelSKLGraphicsFramebuffer</string>
    <key>Replace</key>
    <data>
    6AMAAOgDAAA=
    </data>
   </dict>
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I reposted the zip today... (sorry if you downloaded from yesterday!)

 

Clover 4016 - will generate the related SSDT for P States when HWPEnabled and PStates are true

and I revised the Resource file in the X86PlatformInjector kext - I was getting too much CPU throttling!

 

20-Feb-2017 Update

  • Updated to Clover 4016
  • Changed to model MacbookPro13,1 for HWP support
  • Added syscl's X86Platform injector and SSDT in support of HWP

So remove any CPU P/C SSDT - i.e SSDT-CPU or from ssdtPrgen.

Link to comment
Share on other sites

In prep for 10.12.4 with brightness  changes, I updated the zip and added RehabMan's AppleBackLight Injector method.

 

- There is an Injector in the kext/Other folder which matches my LCD model 050b - which is an LG (or as it shows in the EDID 30e40b05)... but you can re-run the script to match your LCD.

 

- I modified the original script and Panel template to match the max in SkyLake framebuffer (a kext patch changes the max to 1000 vs 1388) and scales brightness in 17 steps from 0 to 1000 (0x3E8).

- This method (and kext) should replace the IntelBacklight.kext. Note: the real nice and smooth transitions are gone but we get a nice full range again. No additional DSDT patching was needed.

Link to comment
Share on other sites

Hi there,

 

I just got a T460s, I've been using a X220 thanks to @tluck great guide on the other post. I'm stuck with a recurrent KP at the beginning of the installation. I'm posting a couple of pictures. 

 

My specs are 192GB m2 NVMe SATA SSD, 12GB RAM and 1920x1080 non-touch display. 

 

Injecting Fake graphics DeviceID doesn't change a thing.

 

 

Any idea?

 

Thank you!

 

post-36060-0-71710800-1488022133_thumb.jpg

 

post-36060-0-45992000-1488022143_thumb.jpg

 

EDIT: Maybe it has something to do with the NVMe SSD drive, I'm looking at this thread http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?p=2322636 It looks daunting though... 

 

@thedeliveryboy did you had any problems on the initial installation on your T460s?

 

EDIT 2: My drive is SATA  :blush: still checking for solutions...

Link to comment
Share on other sites

@espamac - what is the KP? is it SkylakeFramebuffer or something else? did you check Inject Graphics and change the ID to 0x12345678?

 

perhaps take your T420 drive - clone it. then patch the graphics with the manual patch script. 

Link to comment
Share on other sites

@tluck - After clover loads I go to Options -> Graphics Injector -> InjectIntel FakeID:0x12345678

 

After the installer boots in verbose I always get stuck in the same line (1st image posted above):

 

000033.547509 HS04@14400000: AppleUSBHostPort : :disconnect: persistent enumeration failures

 

After 10 seconds the screen gets glitchy (2nd image posted). It actually seems to be doing something (jumps from time to time) but I can't read clearly what is says, it looks like it keeps writing "still waiting for root device". The USB installation drive is blinking all the time. 

 

I'm doing a clean install using your package. I'll start from scratch again just in case there's something wrong with the USB installer.

 

Just for clarification after I execute sudo mount -t msdos /dev/disk1s1 /Volumes/ESP-USB Can I simply drag an drop the EFI folder from T460-distribute? (that's how I've been doing it until now)

 

Thanks a lot for your time.

Link to comment
Share on other sites

@Espamac -

 

check the box to Inject GFX

AND

change FakeID=0x12345678

 

on the USB installer. sure you can use cp or drag-n-drop to copy the zip EFI to the USB...

 

but you have a T460s - you probably need to change your ACPI (DSDT/SSDT)  to match your box. the zip contains T460 ACPI - and the scripts to make the custom DSDT. not sure if you did that?

 

I just update the guide to help with creating your own patched DSDT file.

Edited by tluck
Link to comment
Share on other sites

I was changing my brightness today, and it seems that my Fn key has stopped working.  Now I am unable to change brightness or volume, even after a reboot.  I tried rebuilding the kextcache, but my Fn key is still not working.  Does anyone have any idea what's happening?

Link to comment
Share on other sites

@mangyver

 

hhmmm  do you have FnLk on? 

 

a brightness issue cropped up in 10.12.4...

- do you have IntelBacklight installed? is so remove and see new guide, zip for BacklightInjector

Link to comment
Share on other sites

 Share

×
×
  • Create New...