Contribute
Register

[Guide] Lenovo ThinkPad L440 (v3.0)

Status
Not open for further replies.
@Sniki I now have the audio as this but still not working, please help me.
View attachment 272788
If you are using my Audio Kext + CodecCommander + SSDT-ALC292 + ALC_FIX from my guide you should have audio working.
IF you do so,you have not Injected Layout ID13.

From the files that you sent on the previous post: your ACPI Patching your config.plist Kernel and Kext Patches is a mess..

Starting with DSDT
  • Layout ID/HDEF section or Layout ID Patch not Applied on DSDT at all: leading to no Audio even if audio kext installed.
  • B0D3 not renamed to HDAU on DSDT, HDMI Audio won't work.
  • PCI0.VID not renamed to PCI0.IGPU = leading to incorrect/missing Power Management & no working Brightness.
  • Missing FN Buttons ReMap/Patches (including Brightness and other FN Keys) ; will attach them below


Code:
# _Q1D (Fn+F5) Brightness Down
into method label _Q1D replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0405)\n Notify(\_SB.PCI0.LPCB.KBD, 0x0485)\n end;

# _Q1C (Fn+F6) Brightness Up
into method label _Q1C replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0406)\n Notify(\_SB.PCI0.LPCB.KBD, 0x0486)\n
end;

# _Q28 (Fn+F4) Microphone Mute - Mapped to Siri
into method label _Q28 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0368)\n Notify(\_SB.PCI0.LPCB.KBD, 0x3e8)\n end;

# _Q19 (Fn+F7) Projector / Mirror mode
into method label _Q19 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x046e)\n Notify(\_SB.PCI0.LPCB.KBD, 0x04ee)\n end;

# _Q2A (Fn+F8) Wireless ON/OFF - Mapped to Notification Center
into method label _Q2A replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0369)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e9)\n end;

# _Q66 (Fn+F9) Settings - Mapped to System Preferences
into method label _Q66 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0364)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e4)\n end;
# _Q67 (Fn+F10) Windows Search (Cortana) - Mapped to Spotlight Search
into method label _Q67 replace_content
begin
Notify(\_SB.PCI0.LPCB.KBD, 0x036A)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03eA)\n end;

# _Q68 (Fn+F11) Alt + Tab Menu - Disabled
into method label _Q68 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x036B)\n
Notify(\_SB.PCI0.LPCB.KBD, 0x03eB)\n end;

# _Q69 (Fn+F12) Start Menu - Mapped to LaunchPad
into method label _Q69 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0367)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e7)\n end;

SSDT-0:
  • You ditched SSDT-0 completely from the Patched folder thinking that it's the same with SSDT-1 which does have PCI.VID and LCD0 on it.this is wrong and you messed everything by changing SSDT names,you should keep the SSDT's names as they are on Origin folder.
SSDT-2 (SATA):
  • This one is fine,not sure if im correct and if it is necessary but i notice some different ThinkPad's have SAT1 instead of SAT0 into SSDT's,i wonder if the SAT1 to SATA applies here too,maybe @RehabMan can clarify us here.
Each SSDT should be included on the Patched folder too (after being patched individually) which is a requirement if you want to static patch.

You need to learn more about ACPI Patching.
Follow the proper Rehabman Guide where everything is correctly explained/detailed:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

As soon as you get familiar with Static Patching,i would highly suggest you to go for the HotPatch method,it will save you a lot of time and headache,and it will be more update proof and you wont need to do it after each clean install.
Follow the guide here:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

Use my files from the Guide to see on hand how Hotpatch works,you can even use my files as a base and just adjust it for your needs for example:
Instead of the present patch on my config.plist:
Rename GFX0 to IGPU , remove this patch and the one that matches you laptop : Rename PCI0.VID to PCI0.IGPU
Remove H_EC patch since you ACPI has EC already named as it should for mac os
Rename LPC to LPCB.
Simply follow the guide and analyze stuff,you should be able to do it.
you can find the Patches on the Rehabman's HOTPATCH folder on his Laptop Clover Config Repo on Github.


If you get stuck somewhere we can help you by providing us details and " Problem Reporting " data.
Good Luck
 
If you are using my Audio Kext + CodecCommander + SSDT-ALC292 + ALC_FIX from my guide you should have audio working.
IF you do so,you have not Injected Layout ID13.

From the files that you sent on the previous post: your ACPI Patching your config.plist Kernel and Kext Patches is a mess..

Starting with DSDT
  • Layout ID/HDEF section or Layout ID Patch not Applied on DSDT at all: leading to no Audio even if audio kext installed.
  • B0D3 not renamed to HDAU on DSDT, HDMI Audio won't work.
  • PCI0.VID not renamed to PCI0.IGPU = leading to incorrect/missing Power Management & no working Brightness.
  • Missing FN Buttons ReMap/Patches (including Brightness and other FN Keys) ; will attach them below


Code:
# _Q1D (Fn+F5) Brightness Down
into method label _Q1D replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0405)\n Notify(\_SB.PCI0.LPCB.KBD, 0x0485)\n end;

# _Q1C (Fn+F6) Brightness Up
into method label _Q1C replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0406)\n Notify(\_SB.PCI0.LPCB.KBD, 0x0486)\n
end;

# _Q28 (Fn+F4) Microphone Mute - Mapped to Siri
into method label _Q28 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0368)\n Notify(\_SB.PCI0.LPCB.KBD, 0x3e8)\n end;

# _Q19 (Fn+F7) Projector / Mirror mode
into method label _Q19 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x046e)\n Notify(\_SB.PCI0.LPCB.KBD, 0x04ee)\n end;

# _Q2A (Fn+F8) Wireless ON/OFF - Mapped to Notification Center
into method label _Q2A replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0369)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e9)\n end;

# _Q66 (Fn+F9) Settings - Mapped to System Preferences
into method label _Q66 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0364)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e4)\n end;
# _Q67 (Fn+F10) Windows Search (Cortana) - Mapped to Spotlight Search
into method label _Q67 replace_content
begin
Notify(\_SB.PCI0.LPCB.KBD, 0x036A)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03eA)\n end;

# _Q68 (Fn+F11) Alt + Tab Menu - Disabled
into method label _Q68 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x036B)\n
Notify(\_SB.PCI0.LPCB.KBD, 0x03eB)\n end;

# _Q69 (Fn+F12) Start Menu - Mapped to LaunchPad
into method label _Q69 replace_content begin
Notify(\_SB.PCI0.LPCB.KBD, 0x0367)\n Notify(\_SB.PCI0.LPCB.KBD, 0x03e7)\n end;

SSDT-0:
  • You ditched SSDT-0 completely from the Patched folder thinking that it's the same with SSDT-1 which does have PCI.VID and LCD0 on it.this is wrong and you messed everything by changing SSDT names,you should keep the SSDT's names as they are on Origin folder.
SSDT-2 (SATA):
  • This one is fine,not sure if im correct and if it is necessary but i notice some different ThinkPad's have SAT1 instead of SAT0 into SSDT's,i wonder if the SAT1 to SATA applies here too,maybe @RehabMan can clarify us here.
Each SSDT should be included on the Patched folder too (after being patched individually) which is a requirement if you want to static patch.

You need to learn more about ACPI Patching.
Follow the proper Rehabman Guide where everything is correctly explained/detailed:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

As soon as you get familiar with Static Patching,i would highly suggest you to go for the HotPatch method,it will save you a lot of time and headache,and it will be more update proof and you wont need to do it after each clean install.
Follow the guide here:
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

Use my files from the Guide to see on hand how Hotpatch works,you can even use my files as a base and just adjust it for your needs for example:
Instead of the present patch on my config.plist:
Rename GFX0 to IGPU , remove this patch and the one that matches you laptop : Rename PCI0.VID to PCI0.IGPU
Remove H_EC patch since you ACPI has EC already named as it should for mac os
Rename LPC to LPCB.
Simply follow the guide and analyze stuff,you should be able to do it.
you can find the Patches on the Rehabman's HOTPATCH folder on his Laptop Clover Config Repo on Github.


If you get stuck somewhere we can help you by providing us details and " Problem Reporting " data.
Good Luck

@Sniki Thank you so much for the time you took to go through my files, with your help i am now working with your config.plist and your HOTPATCH. Everything is now except the Audio and Brightness. I want to know if there is anything you can help me with at this stage, Thank you once again for your time.
 
Without files i don't know what you did and why it's not working.

Read Last section of the Guide " Problem Reporting " from Rehabman
Attach Files here.
RehabMan was able to help me get the brightness buttons working in another thread - the other keys are not of importance to me.

Also, my Lenovo T440s uses the same audio codec (ALC292) and I'm simply using a kext with CodecCommander. As long as they are in S/L/E, my microphone and headphone jack always works. What exactly does the alc_fix do that you need to install?

If you would like to inspect my files, I can upload them.
 
RehabMan was able to help me get the brightness buttons working in another thread - the other keys are not of importance to me.

Also, my Lenovo T440s uses the same audio codec (ALC292) and I'm simply using a kext with CodecCommander. As long as they are in S/L/E, my microphone and headphone jack always works. What exactly does the alc_fix do that you need to install?

If you would like to inspect my files, I can upload them.
ALC_FIX in case you haven't tested out,if you plug headphones with microphone (combo Jack) like Apple EarPods you will notice that on first plug the External microphone (Line-In) will work for a few minutes,after that you will get static noise,if you unplug and plug them in again your external mic wont be detected anymore and you will have static noise on headphones.
Same goes for when you wake from sleep,you lose Ext Mic.
ALC_FIX does fix that.
 
ALC_FIX in case you haven't tested out,if you plug headphones with microphone (combo Jack) like Apple EarPods you will notice that on first plug the External microphone (Line-In) will work for a few minutes,after that you will get static noise,if you unplug and plug them in again your external mic wont be detected anymore and you will have static noise on headphones.
Same goes for when you wake from sleep,you lose Ext Mic.
ALC_FIX does fix that.
Oh! You're right, I have never actually tested that.

I was able to implement the wake from sleep fix for the internal microphone by using CodecCommander, I wouldn't be surprised if we could implement a custom patch to do the same for the external microphone.

EDIT: I see what commands he's sending by looking at his source code:
https://github.com/goodwin/ALCPlugFix

We can add those CodecCommander, but they only get called on wake from sleep or initialization (not when the plug is inserted). If it's needed during plug insert/removal, then we will have to use the patch provided.
 
Last edited:
Oh! You're right, I have never actually tested that.

I was able to implement the wake from sleep fix for the internal microphone by using CodecCommander, I wouldn't be surprised if we could implement a custom patch to do the same for the external microphone.
There's no such custom patch existing for the moment to do that, alc_fix is built to do that, I tried every existing ALC292 patch on existing hackintosh forums, no one actually had it perfectly patched so far, because they didn't try that issue most of them or the others had laptops with separate jacks (2) 1 for headphones and 1 for mic.

I dumped my codec on latest Ubuntu and with the help of InsanelyDeepak we managed to 100% fix this problematic codec.
There are other codec models that do use alc_fix too for same purpose not just alc292

Its modified for ALC292, not the one you are looking at, it was changed to match the commands for my codec.
Yes, it needs the commands on Insert/Unplug so that's why we must use it.
 
@Sniki Thank you so much for the time you took to go through my files, with your help i am now working with your config.plist and your HOTPATCH. Everything is now except the Audio and Brightness. I want to know if there is anything you can help me with at this stage, Thank you once again for your time.
It depends on what you want me to help you for now,if you are at Audio, Install my Audio Files and on DSDT apply the patch layout ID 12 but go check the code and change it to 13 to match my audio codec patch. so it applies layout ID 13 if you are using static patch with MaciASL.
 
There's no such custom patch existing for the moment to do that, alc_fix is built to do that, I tried every existing ALC292 patch on existing hackintosh forums, no one actually had it perfectly patched so far, because they didn't try that issue most of them or the others had laptops with separate jacks (2) 1 for headphones and 1 for mic.

I dumped my codec on latest Ubuntu and with the help of InsanelyDeepak we managed to 100% fix this problematic codec.
There are other codec models that do use alc_fix too for same purpose not just alc292

Its modified for ALC292, not the one you are looking at, it was changed to match the commands for my codec.
Yes, it needs the commands on Insert/Unplug so that's why we must use it.
Very interesting. I've downloaded your ALC292.kext and installed CodecCommander as well. Is the SSDT file really necessary? When I looked at it, it includes the same commands that I added a while ago to CodecCommander.

Also, I just tried my EarPods. Internal Microphone does not change, and I don't think it's working. :S

EDIT: Have you ever noticed any screen glitches when you hot plug your DisplayPort cable?
 
Last edited:
Yes it is necessary for me, I will upload you my ALC292.kext,i might have uploaded the wrong one somehow (maybe.)
 
Status
Not open for further replies.
Back
Top