Jump to content
kosakgroove

[Guide] Lenovo Thinkpad L420 with El Capitan

33 posts in this topic

Recommended Posts

Hello fellow Hackintoshers :D

 

I come to present my full guide on how to install Mac OS X 10.11 El Capitan on any Lenovo Thinkpad L420. I understand this is not a highly popular laptop outside corporations, I don’t even know if it was ever sold to the general public, so I guess this post will help me know that hahah anyway a friend of mine gave me two of them, one with i5 another with i3. This tutorial applies to any of those models. It should also apply to older versions of Mac OS X all the way until Snow Leopard (little modifications required as well as appropriate kexts)

 

First, screenshot proof of beautiful functionality

 

post-1517295-0-18038500-1484761583_thumb.png

 

What is working

WiFi , Bluetooth, Airdrop (Wifi replaced with Atheros AR9285)

Full QE/CI acceleration with integrated Intel HD3000 graphics

Trackpad with 1 finger , 2 finger and 3 finger gestures

keyboard as well as function keys (brightness, volume)

Battery percentage

Sleep, Shutdown and Reboot

Sound working on ALC269 mobile

DVD Drive

DisplayPort audio and video

VGA out

USB 3.0 ExpressCard (Renesas)

iMessage and Facetime

Recovery Partition

 

What is not working

You tell me :P

 

 

Install bootloader (Clover) to El Capitan USB install media

 

You should select your USB in the Clover installer and then hit “Customize”

Select the next options:

 

Install Clover in the ESP

Install boot0ss in MBR

Clover EFI 64bits SATA

CSMVideoDxe-64

EmuVariableUEFI-64

OsxAptioFix2Drv-64

Fat64

 

 

 

Configuring the bootloader

 

After installation is complete, the EFI partition we want to configure will already be mounted, so we proceed to open it and do the following

Install HFSPlus.efi and NTFS.efi in drivers64UEFI folder and remove VboxHFS.efiOpen the folder /EFI/Clover/kexts and delete all the folders starting by 10 and leave only the “other” folderIn the above mentioned “other” folder place the kexts that I will quote next (you can download the ones attached to the post, but I always recommend the latest versions) :

 

ACPIBatteryManager.kext

AppleALC.kext

BroadcomBluetooth.kext

CodecCommander.kext

DisableTurboBoostBattery.kext

FakePCIID_XHCIMux.kext

FakePCIID.kext

FakeSMC, HWInfo, IntelCPUMonitor (HwSensors3 from Slice)

GenericUSBXHCI.kext (only if you use an USB3.0 ExpressCard)

IntelBacklight.kext

RealtekRTL8111.kext

toledaARPT.kext (if you use Atheros AR9285)

USBInjectAll.kext

VoodooPS2Controller.kext ( tluck's version )

 

 

kextpack Lenovo L420 .zip

 

 

After all the kexts are in the correct folder you should tweak your config.plist as follows, I recommend using Clover Configurator

 

post-1517295-0-78487600-1484761755_thumb.png

 

post-1517295-0-54557300-1484761781_thumb.png

 

post-1517295-0-55146900-1484761796_thumb.png

 

post-1517295-0-78851600-1484761823_thumb.png

 

post-1517295-0-97817300-1484761841_thumb.png

 

post-1517295-0-53081400-1484761857_thumb.png

 

post-1517295-0-66999300-1484761882_thumb.png

 

post-1517295-0-88961000-1484761890_thumb.png

 

post-1517295-0-56500900-1484761900_thumb.png

 

post-1517295-0-29411100-1484761918_thumb.png

 

post-1517295-0-05800100-1484761927_thumb.png

 

 

Lenovo mostly whitelist the Wifi cards on their laptops (and some desktops) so you will have to use a custom BIOS for this. There is one here luckily.

https://app.box.com/s/j4fffsagyzlohxmnvq6t

 

If you need me to explain how to flash it then you shouldn’t really be Hackintoshing in the first place.

After you have flashed the BIOS make sure you set the SATA controller to AHCI. You should be able to boot from the Clover USB and install Mac OS X

Remember to use a GUID partition scheme for the drive you will use. Recovery partition should be generated automatically by the OS X installer.

 

Enjoy your new HackBook :D

 

PS: DSDT and SSDT patches tutorial for this specific laptop are on their way

Share this post


Link to post
Share on other sites
Advertisement

In order to get everything working properly , follow these guidelines for ACPI tables patching. Firstly, press F4 at Clover GUI in order to dump the native ACPI tables. You will most probably get a crash, a red screen full of weird black numbers and strange symbols, do not worry, just force shutdown. At the next boot if you look in /EFI/Clover/ACPI/origin you should have a bunch of files.

After getting MaciASL and acpica tools from RehabMan (always updated) and installing them, and adding rehabman’s laptop dsdt patch repository, which is this:

 

https://github.com/RehabMan/Laptop-DSDT-Patch

 

Delete all files except DSDT, SSDT-0 and SSDT-1 in /EFI/Clover/ACPI/origin

 

You should decompile the DSDT , SSDT-0 and SSDT-1 using the following commands

cd /path/to/your/filesiasl -da -dl *.aml
After obtaining the .dsl files you should open them and check for errors.

The only error you will find will be in one of the SSDTs and it can be fixed using the Remove _PSS placeholders patch to fix that SSDT that only contains info about the CPU and is full of “Package (0x06)”

When your files are nice and clean and in dsl format you can happily apply the following patches to DSDT

 

 

Hit Command + F and type GFX0, then in replace type IGPU and then hit ALL

Use the patch "DTGP" (provided below)

Use the patch "Fix _WAK Arg0 v2"

Use the patch "HPET Fix"

Use the patch "SMBUS Fix"

Use the patch "IRQ Fix"

Use the patch "RTC Fix"

Use the patch "OS Check Fix"

Use the patch "Fix Mutex with non-zero SyncLevel"

Use the patch "Add IMEI"

Use the patch “6 Series USB”

Use the patch "USB PRW 0x6D"

Use the patch "Igpu Brightness Fix"

Use the patch "Audio Layout id 3"

Use the patch "Kosakgroove L420 battery patch" (created by me, provided below)

 

For Brightness keys ( Q14 and Q15 in DSDT) replace your methods with mine

Method (_Q14, 0, NotSerialized)  // _Qxx: EC Query            {                Store (0x14, P80H)                If (^HKEY.MHKK (0x8000))                {                    ^HKEY.MHKQ (0x1010)                }                If (LGreaterEqual (OSYS, 0x07D6))                {                    If (IGDS)                    {                        Notify (^^^IGPU.DD02, 0x86)                        Sleep (0x50)                    }                    Else                    {                        Notify (^^^PEG0.VGA.LCD, 0x86)                    }                    UCMS (0x16)                }                ElseIf (IGDS)                {                    Store (UCMS (0x15), BRNS)                    Store (BRNS, Local0)                    If (LNotEqual (Local0, 0x0F))                    {                        Increment (Local0)                        Store (Local0, BRNS)                    }                    UCMS (0x16)                    BLCL ()                }                Else                {                    UCMS (0x04)                }                Notify (PS2K, 0x0406)            }            Method (_Q15, 0, NotSerialized)  // _Qxx: EC Query            {                Store (0x15, P80H)                If (^HKEY.MHKK (0x00010000))                {                    ^HKEY.MHKQ (0x1011)                }                If (LGreaterEqual (OSYS, 0x07D6))                {                    If (IGDS)                    {                        Notify (^^^IGPU.DD02, 0x87)                        Sleep (0x50)                    }                    Else                    {                        Notify (^^^PEG0.VGA.LCD, 0x87)                    }                    UCMS (0x16)                }                ElseIf (IGDS)                {                    If (VCDB)                    {                        Store (Zero, VCDB)                        Store (UCMS (0x15), BRNS)                        UCMS (0x16)                        BLCL ()                    }                    Else                    {                        Store (UCMS (0x15), BRNS)                        Store (BRNS, Local0)                        If (Local0)                        {                            Decrement (Local0)                            Store (Local0, BRNS)                        }                        UCMS (0x16)                        BLCL ()                    }                }                Else                {                    UCMS (0x05)                }                Notify (PS2K, 0x0405)            }
Little bonus, since the ThinkVantage key does absolutely nothing, I patched the DSDT so that when you hit that key, the fans will remain at 100% speed all the time. Hit it again and they go back to auto mode :D Cool Right? Replace your _Q19 method with mine
Method (_Q19, 0, NotSerialized)  // _Qxx: EC Query            {                Name (FANS, One)                Store (HFSP, FANS)                XOr (FANS, 0x80, Local0)                If (Local0)                {                    Store (0x80, HFSP)                }                Else                {                    Store (0x07, HFSP)                }            }
DTGP patch
into method label DTGP remove_entry;into definitionblock code_regex . insertbeginMethod (DTGP, 5, NotSerialized)\n{\n    If (LEqual (Arg0, Buffer (0x10)\n            {\n                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n            }))\n    {\n        If (LEqual (Arg1, One))\n        {\n            If (LEqual (Arg2, Zero))\n            {\n                Store (Buffer (One)\n                    {\n                        0x03\n                    }, Arg4)\n                Return (One)\n            }\n            If (LEqual (Arg2, One))\n            {\n                Return (One)\n            }\n        }\n    }\n    Store (Buffer (One)\n        {\n            0x00\n        }, Arg4)\n    Return (Zero)\n}end
My Battery patch
#Maintained by: RehabMan for: Laptop Patches#battery_Lenovo-L420.txt# Created by kosakgroove 2016-12-02.  Some additions/fixes by RehabMan# Works for:#   Lenovo L420into method label B1B2 remove_entry;into definitionblock code_regex . insertbeginMethod (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\nend;into method label B1B4 remove_entry;into definitionblock code_regex . insertbeginMethod (B1B4, 4, NotSerialized)\n{\n    Store(Arg3, Local0)\n    Or(Arg2, ShiftLeft(Local0, 8), Local0)\n    Or(Arg1, ShiftLeft(Local0, 8), Local0)\n    Or(Arg0, ShiftLeft(Local0, 8), Local0)\n    Return(Local0)\n}\nend;into device label EC code_regex BATD,\s+16, replace_matched begin ATD0,8,ATD1,8, end;into device label EC code_regex SMW0,\s+16 replace_matched begin MW00,8,MW01,8 end;into device label EC code_regex SBRC,\s+16, replace_matched begin BR00,8,BR01,8, end;into device label EC code_regex SBFC,\s+16, replace_matched begin BF00,8,BF01,8, end;into device label EC code_regex SBVO,\s+16, replace_matched begin BV00,8,BV01,8, end;into device label EC code_regex SBSN,\s+16 replace_matched begin SN00,8,SN01,8 end;into device label EC code_regex SBDC,\s+16, replace_matched begin DC00,8,DC01,8, end;into device label EC code_regex SBDV,\s+16, replace_matched begin DV00,8,DV01,8, end;into device label EC code_regex SBAE,\s+16, replace_matched begin BA00,8,BA01,8, end;into device label EC code_regex SBAF,\s+16, replace_matched begin BB00,8,BB01,8, end;into device label EC code_regex SBBS,\s+16, replace_matched begin BD00,8,BD01,8, end;into device label EC code_regex SBMD,\s+16, replace_matched begin SB00,8,SB01,8, end;into device label EC code_regex SBCC,\s+16, replace_matched begin CC00,8,CC01,8, end;into device label EC code_regex SBOM,\s+16, replace_matched begin OM00,8,OM01,8, end;into device label EC code_regex SBSI,\s+16, replace_matched begin SI00,8,SI01,8, end;into device label EC code_regex SBDT,\s+16, replace_matched begin DT00,8,DT01,8, end;into device label EC code_regex SBAC,\s+16, replace_matched begin AC00,8,AC01,8, end;into method label SELE code_regex \(BATD, replaceall_matched begin (B1B2(ATD0,ATD1), end;into method label SMRD code_regex \(SMW0, replaceall_matched begin (B1B2(MW00,MW01), end;into method label SMWR code_regex \(\^PCI0\.LPCB\.EC\.SMW0, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.MW00,^PCI0.LPCB.EC.MW01), end;into method label GBST code_regex \(\^PCI0\.LPCB\.EC\.SBRC, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.BR00,^PCI0.LPCB.EC.BR01), end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBFC, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.BF00,^PCI0.LPCB.EC.BF01), end;into method label GBST code_regex \(\^PCI0\.LPCB\.EC\.SBVO, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.BV00,^PCI0.LPCB.EC.BV01), end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBSN, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.SN00,^PCI0.LPCB.EC.SN01), end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDC, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.DC00,^PCI0.LPCB.EC.DC01), end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDV, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.DV00,^PCI0.LPCB.EC.DV01), end;into method label GBST code_regex \(\^PCI0\.LPCB\.EC\.SBAC, replaceall_matched begin (B1B2(^PCI0.LPCB.EC.AC00,^PCI0.LPCB.EC.AC01), end;into device label EC code_regex SBCH,\s+32 replace_matched begin SH00,8,SH01,8,SH02,8,SH03,8, end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBCH, replaceall_matched begin (B1B4(^PCI0.LPCB.EC.SH00,^PCI0.LPCB.EC.SH01,^PCI0.LPCB.EC.SH02,^PCI0.LPCB.EC.SH03), end;into method label SMWR code_regex Store\s\(Arg3,\sSMW0\) replaceall_matched begin Store (Arg3,MW00) Store(ShiftRight(Arg3,8),MW01)  end;into method label RE1B parent_label EC remove_entry;into method label RXCB parent_label EC remove_entry;into device label EC insertbeginMethod (RE1B, 1, NotSerialized)\n// Arg0 - offset in bytes from zero-based EC\n{\n    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n    Return(BYTE)\n}\nMethod (RXCB, 2, Serialized)\n// Arg0 - offset in bytes from zero-based EC\n// Arg1 - size of buffer in bits\n{\n    ShiftRight(Arg1, 3, Arg1)\n    Name(TEMP, Buffer(Arg1) { })\n    Add(Arg0, Arg1, Arg1)\n    Store(0, Local0)\n    While (LLess(Arg0, Arg1))\n    {\n        Store(RE1B(Arg0), Index(TEMP, Local0))\n        Increment(Arg0)\n        Increment(Local0)\n    }\n    Return(TEMP)\n}\nend;into device label EC code_regex (SBMN,)\s+(128) replace_matched begin BMNX,%2,//%1%2 end;into device label EC code_regex (SBDN,)\s+(128) replace_matched begin BDNX,%2,//%1%2 end;into device label EC code_regex (FLD0,)\s+(64) replace_matched begin FL0X,%2,//%1%2 end;into device label EC code_regex (FLD1,)\s+(128) replace_matched begin FL1X,%2,//%1%2 end;into device label EC code_regex (FLD2,)\s+(192) replace_matched begin FL2X,%2,//%1%2 end;into device label EC code_regex (FLD3,)\s+(256) replace_matched begin FL3X,%2,//%1%2 end;into device label EC code_regex (SMD0,)\s+(100) replace_matched begin SMDX,%2,//%1%2 end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBMN, replaceall_matched begin (^PCI0.LPCB.EC.RXCB(0xA0,128), end;into method label GBIF code_regex \(\^PCI0\.LPCB\.EC\.SBDN, replaceall_matched begin (^PCI0.LPCB.EC.RXCB(0xA0,128), end;into method label SMRD code_regex \(\FLD1, replaceall_matched begin (RXCB(0x54,128), end;into method label SMRD code_regex \(\FLD2, replaceall_matched begin (RXCB(0x54,192), end;into method label SMRD code_regex \(\FLD3, replaceall_matched begin (RXCB(0x54,256), end;into method label BFWL code_regex \(SMD0, replaceall_matched begin (RXCB(0x54,100), end;into method label WE1B parent_label EC remove_entry;into method label WXCB parent_label EC remove_entry;into device label EC insertbeginMethod (WE1B, 2, NotSerialized)\n{\n    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n    Store(Arg1, BYTE)\n}\nMethod (WXCB, 3, Serialized)\n// Arg0 - offset in bytes from zero-based EC\n// Arg1 - size of buffer in bits\n// Arg2 - value to write\n{\n    ShiftRight(Add(Arg1,7), 3, Arg1)\n    Name(TEMP, Buffer(Arg1) { })\n    Store(Arg2, TEMP)\n    Add(Arg0, Arg1, Arg1)\n    Store(0, Local0)\n    While (LLess(Arg0, Arg1))\n    {\n        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n        Increment(Arg0)\n        Increment(Local0)\n    }\n}\nend;# Calling WXCB method to write into SMDX (offset 0x54)into method label SMWR code_regex Store\s?\(Arg3,\s?\SMD0\) replaceall_matched begin WXCB (0x54,100,Arg3) end;
After all the ACPI tables are properly patched save them all and
cd /path/to/patched/tablesiasl *.dsl
After getting the resulting patched aml files, place them in /EFI/Clover/ACPI/patched for Clover to load it

Finally you will need to generate an SSDT using ssdtPRGen.sh

 

https://github.com/Piker-Alpha/ssdtPRGen.sh

 

After you have your DSDT, SSDT-0, SSDT-1 and SSDT (the one generated by the script) place them all together in /EFI/Clover/ACPI/patched and in the ACPI section of your config.plist make sure to "Drop OEM" tables and set the "Sorted Order"

 

post-1517295-0-57484800-1484776902_thumb.png

 

 

post-1517295-0-80476900-1484776200_thumb.png

 

Overall I would say this laptop is quite perfect for a Hackintosh , I use it for a few months and I love it, hope you do too.

Edited by kosakgroove

Share this post


Link to post
Share on other sites

Thanks for the help, this is what made Display Port and VGA work

 

Number 1 - Kernel and Kext patches clover in order to fix VGA

Name: AppleIntelSNBGraphicsFB

Find: 010204001007000010070000050300000200000030000000020500000004000007000000030400000004000009000000040600000004000009000000

 

Replace:

010204001213000012130000050300000200000030000000020500000004000007000000030400000004000009000000060200001000000009000000

 

 

Number 2 - adding a DSM to the IGPU device in DSDT

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method                {                    Store (Package (0x06)                        {                            "hda-gfx",                             Buffer (0x0A)                            {                                "onboard-1"                            },                             "model",                             Buffer (0x17)                            {                                "Intel HD Graphics 3000"                            },                             "built-in",                             Buffer (One)                            {                                 0x00                                                                       }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }
Number 3 - Adding HDMI device to DSDT
Device (HDMI)            {                Name (_ADR, One)  // _ADR: Address                Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method                {                    Store (Package (0x02)                        {                            "hda-gfx",                             Buffer (0x0A)                            {                                "onboard-1"                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }
This Hack is functioning 100% in Mac OS X and certainly it performs so much better than in Windows

Enjoy our fully functional Hack :yes:

Share this post


Link to post
Share on other sites

cool - an addition to the Thinkpad x420 family! Certain this model has proven to be a great hack platform. Sierra works great on it too. interesting that the Audio and Ethernet are RealTek (vs Conexant and Intel). but every thing else looks to be about the same. if i ever needed to do it again, i certainly would use the patchmatic and hotpatch method for DSDT/SSDT for this box.

 

anyway, feel free to reference or leverage the T420 guide as needed - as this box is certainly very similar. I can add a link to this guide from the T420 Guide.

 

- The VoodooPS2 for T420 may have some trackpad settings that may be of value.

 

- not that matters that much - but your kext pack has some things that I wondered about? 

 

USB - seems these may not be needed since it just it only has USB 2 and no XHC (AFAIK)

USBInjectall  ?

PCIID XHCIMux ?

Disableturboboostbattery ?

Share this post


Link to post
Share on other sites

cool - an addition to the Thinkpad x420 family! Certain this model has proven to be a great hack platform. Sierra works great on it too. interesting that the Audio and Ethernet are RealTek (vs Conexant and Intel). but every thing else looks to be about the same. if i ever needed to do it again, i certainly would use the patchmatic and hotpatch method for DSDT/SSDT for this box.

 

anyway, feel free to reference or leverage the T420 guide as needed - as this box is certainly very similar. I can add a link to this guide from the T420 Guide.

 

- The VoodooPS2 for T420 may have some trackpad settings that may be of value.

 

- not that matters that much - but your kext pack has some things that I wondered about? 

 

USB - seems these may not be needed since it just it only has USB 2 and no XHC (AFAIK)

USBInjectall  ?

PCIID XHCIMux ?

Disableturboboostbattery ?

It would be a pleasure to have a reference in your great guide, I am currently trying your VoodooPS2 and its great :P i will edit the guide to reference it. I am using a USB3.0 card so i need GenericUsB XhciMux and Injectall for it to work properly

I have tried sierra as well but it doesnt run nearly as good as Capitan, maybe the next OSX version will be better hihihi

Share this post


Link to post
Share on other sites

I followed all the steps in the first post, but when I try to load the El Captian installer it fails with: p state stepper error 18 at step 2 in context 2

Does anyone know why?

 

Thanks in advance,

Alec

Share this post


Link to post
Share on other sites

I followed all the steps in the first post, but when I try to load the El Captian installer it fails with: p state stepper error 18 at step 2 in context 2

Does anyone know why?

 

Thanks in advance,

Alec

Try "DropOEM=True" first as Sandy Bridge CPUs with Turbo Boost enabled won't pass the AICPUPM check without a proper ssdt.aml from PikeRAlpha's script

Share this post


Link to post
Share on other sites

Try "DropOEM=True" first as Sandy Bridge CPUs with Turbo Boost enabled won't pass the AICPUPM check without a proper ssdt.aml from PikeRAlpha's script

Mine didnt have this issue but i suppose it can help in some cases , nice tip :D

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post
Share on other sites

@Alec M

 

make sure you generate P/C states with Clover (or ssdt-pr script).

you may want to check out the config.plist in the T420 zip for another reference for valid options.

 

Note: it is even possible to boot without any custom DSDT/SSDT with the right config.plist. anyway here is snippet of config.plist from ACPI that may help

<key>DropTables</key>
  <array>
   <dict>
    <key>Signature</key>
    <string>SSDT</string>
    <key>TableId</key>
    <string>Cpu0Ist</string>
   </dict>
   <dict>
    <key>Signature</key>
    <string>SSDT</string>
    <key>TableId</key>
    <string>CpuPm</string>
   </dict>
   <dict>
    <key>Signature</key>
    <string>DMAR</string>
   </dict>
  </array>
  <key>ResetAddress</key>
  <string>0x0CF9</string>
  <key>ResetValue</key>
  <string>0x06</string>
  <key>SSDT</key>
  <dict>
   <key>Generate</key>
   <dict>
    <key>CStates</key>
    <true/>
    <key>PStates</key>
    <true/>
   </dict>
  </dict>

Share this post


Link to post
Share on other sites

Nevermind! I got it working without that.   :thumbsup_anim:

 

I'm not sure if it's because I have an i7 2730QM or not.

 

Thanks for the help!

Share this post


Link to post
Share on other sites

@kosakgroove

 

When I'm trying to apply the DTGP DSDT patch through MaciASL, it won't apply it because it thinks that there is nothing to change.

 

Is this fixable?

Share this post


Link to post
Share on other sites

@kosakgroove

 

When I'm trying to apply the DTGP DSDT patch through MaciASL, it won't apply it because it thinks that there is nothing to change.

 

Is this fixable?

Dtgp is one of the first patches to apply, maybe thats your problem

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post
Share on other sites

Dtgp is one of the first patches to apply, maybe thats your problem

I tried it before patching anything, and after patching everything, with no luck.

Share this post


Link to post
Share on other sites

I tried it before patching anything, and after patching everything, with no luck.

DTGP is so generic and widespread, maybe try another version if the patch from somewhere else, it should work. Worst case you can always use the AddDTGP option in Clover

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post
Share on other sites

@kosakgroove

 

I'm just wondering, but what OS check patch did you use?

Also, did you use the HD3000/HD4000 graphics patch, and not any of the other igpu brightness fixes?

Share this post


Link to post
Share on other sites

@kosakgroove

 

I'm just wondering, but what OS check patch did you use?

Also, did you use the HD3000/HD4000 graphics patch, and not any of the other igpu brightness fixes?

I used the generic brightness fix, named "Brightness Fix" nothing else.

Worth noting that this method currently not working well with Sierra

Finally upgraded the Thinkpad L420 to Mac OS Sierra

Everything is working even better than in El Capitan. Only issue for now is that brightness keys are not fully functional, and brightness slider in System Preferences is unresponsive. Brightness changes only using Brightness Menu Bar app from App Store.

 

post-1517295-0-50089600-1485796329_thumb.png

 

Everything is working cool with Sierra, 

I am working on ditching VoodooPS2 for ApplePS2SmartTouchpad and it just needs a bit more optimization and it will be ready for you guys to enjoy. It works every boot unlike VoodooPS2, although after sleep it stops working, and it might cause you a kernel panic. In case you feel like trying, here is my modded version of it.

All gestures working as well as scrolling

 :D

 

ApplePS2SmartTouchPad kosakgroove.kext.zip

Share this post


Link to post
Share on other sites

I used the generic brightness fix, named "Brightness Fix" nothing else.

I tried that, but when I changed the brightness, it wouldn't actually change the display's brightness.

Also, I can't see the volume control at the top of the screen, or the Bluetooth control.

Sound and Bluetooth are working though.

Share this post


Link to post
Share on other sites

It is all in System Preferences buddy :D

 

post-1517295-0-32852700-1485858025_thumb.png

 

post-1517295-0-74219800-1485858036_thumb.png

 

 


I tried that, but when I changed the brightness, it wouldn't actually change the display's brightness.

Also, I can't see the volume control at the top of the screen, or the Bluetooth control.

Sound and Bluetooth are working though.

Are you using IntelBacklight kext?

Share this post


Link to post
Share on other sites

for brightness:

 

Note: at the time of this post, IntelBacklight will not work for macOS past 10.12.3 (10.12.4PB1 breaks something). 

the brightness slider should work with or without this kext - IntelBacklight.kext makes a smoother and fuller range

the only thing needed in the DSDT is PNLF that looks like this. ( if you use ACPIBacklight more extensive DSDT mods are needed.)

 

Device (PNLF)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
                    Name (_CID, "backlight")  // _CID: Compatible ID
                    Name (_UID, 0x0A)  // _UID: Unique ID
                    Name (_STA, 0x0B)  // _STA: Status

                }

Share this post


Link to post
Share on other sites

I have a weird bug I have noticed, and it only happens when Mac OS X is installed in the hard drive.

I get a message 2 out of 3 times I boot or restart the computer... 

 

0251- CMOS bad checksum error - Default configuration used

 

After I press Esc then the computer resets the BIOS and successfully boots Clover from the GUID disk.

 

I already changed the CMOS battery for a brand new one and the error kept popping up. Then I installed the latest original BIOS from Lenovo and the error continued there. So I flashed again the custom BIOS mentioned in the first post. Then  I inserted a HDD with Linux installed, and after like 20 boots I noticed the error was not there, even with the custom BIOS.

 

Then I tried with Windows, and the error also was not there. So I thought maybe the bug is gone, and proceeded to reinstall Mac OS X with Clover and yes, the error came back....

 

I figured maybe using the Apple RTC fix in Clover would help, but it doesn't

 

We are left with two explanations... This Lenovo does not like to have a GUID hard disk as a boot device or it is Mac OS X that randomly writes something to the BIOS or EFI partition and corrupts that boot sector, giving the checksum error. Weird thing is that it doesn't happen every boot, that is what really boggles my mind.

 

Is there anyone who could help debug this issue???

 

Share this post


Link to post
Share on other sites

there are some others reporting CMOS errors on the latest Clover. a solution could be to compile Clover say 3994 with older edk2 like 23701

This has been happening AFAIK since Clover 32xx

Has anyone had any success fixing this issue?

Share this post


Link to post
Share on other sites

have not seen this on the T420

I am going to try to install Mac OS in a MBR disk to find out if its the GUID partition scheme

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RoroMush
      Hi Guys,
       
      I was finally able to get my Catalina installer to boot using by changing EC0 to EC 4543305f 45435f5f. Huge headache with this as it took me a good couple of days to fix the error. 
       
      The good news is I can make it to the installer but now the problem is now the Catalina installer gets stuck at 2 minutes with the error code showing disk25s1 is not convertible to APFS.
       
      My Troubleshooting Steps:
       
      - Tried another NVMe drive, with same results
      - Checked Samsung Magician for updates, no luck
      - Formatted the drives in Ubuntu, same exact installer error.
       
      For some reason the disks always show as "Writable: NO" 
       
      Hardware:
      - Asus Z390-E 
      - Intel i7 9700K
      - Samsung 970 Pro
      - 16GB Crucial 
      - Intel UHD Graphics
       
      Is there something wrong with my kexts or config? 
       
      Thank You!
       
       
       
      EFI.zip

    • By KrzychuX86
      Hello my friends!
      First, idk if that's proper place for this post, if not, please move it.
       
      I'm trying to get Mojave working on my laptop. I have all proper kexts. Everything works great on Yosemite and Sierra, because I'm using Enoch bootloader for them. But I can't get Mojave to work with Enoch, so my only option is Clover.
      But I have some troubles with it:
      - I don't have uefi interface in my laptop, so my only option is Clover for BIOS,
      - Niresh Mojave contains only option to install Clover for UEFI. After installing it my system drops to PXE because it doesn't have UEFI so hard disk becomes non-bootable.
       
      But these problems can be solved, I "just" need to install Sierra first, which can be booted via Enoch and then I install Clover using official pkg installer, which has option to install BIOS version of Clover. Then I connect Niresh Mojave USB, Clover detects it and boots installer. I uncheck "Install bootloader" and I get bootable Mojave. Yay
       
      But the real problem is:
      Clover on my device is not working as well as Enoch. Why? Because when I'm on Enoch (for example on Sierra) my kexts for PS/2 keyboard and touchpad (Voodoo PS2 Controller kext) and for Wi-Fi are working good. They are installed in S/L/E and just works. But Clover somehow doesn't want to load them... or has something missing. System booted with Clover has not working keyboard, touchpad working as mouse and not working Wi-Fi.
       
      Guys! What I have to do to make Clover work as good as Enoch? What Enoch has that Clover hasn't? Why Clover can't load any kext EVEN from CLOVER/kexts/other?
      I have tried booting with -v but I don't see any error related to that...
      Can you help me please?
      Both Enoch and Clover configs are default ones without any modifications. 
      Any help is appreciated.
       
      P.S. I have lost all DMGs so I can't install MacOS right now, I need to redownload them but my Internet connection is very slow, so for any logs we'll need to wait. But maybe my problem is very easy to fix so I don't need to send any logs? Thanks for any answer
    • By viktr
      A few days ago I faced a problem - installed ocquirks and it somehow broke my prelinked kernel. System won't boot then, and I spent more than a day restoring from the netatalk  backup to copy working prelinked kernel directory from the backup to the s/l
      So, my question is - how to relink prelinked kernel without that? I found boot args -f UseKernelCache=No but it didn't work. I was able to boot to the recovery, if that can help.
    • By AudioGod
      I have put together this simple little guide for anybody wanting to use a Patched DSDT EFI with the same configuration as me.
      This is also a thread to discuss everything Z390 Pro and try and help where we can and maybe make things a little better for you. 
       
      A huge massive thank you to @glasgood @MaLd0n @larabee These three guys have helped me and talked me so much and are as helpful as you could ever get, Without them I wouldn't have a perfect working build like I do or be putting up this Guide & Discussion Thread sharing the hard work and countless hours that we have all put in to this.   
       
       
      This EFI and Patched DSDT have been created to work with a Gigabyte Aorus Z390 Pro, 9900k with a Vega 56 but has also been tested and verified fully working with the following Hardware using Catalina 10.15.4
       
      CPU's
      8700k, 9600k, 9700k, 9900k
       
      GPU's
      RX 560, 570, 580, 590, Vega 56, Vega 64, Radion VII, 5700, 5700 XT
      (If you have success with any different CPU or GPU's then please do let me know)
       
       
       @glasgood Has kindly put together a new simple Catalina install guide so Just Follow He's Guide For a Perfect Install.
       
       
      HARDWARE USED
      • Intel I9 9900k 
      • Gigabyte AORUS Z390 PRO
      • Sapphire Nitro+ SE Vega56 (connected to monitor with DisplayPort)
      • Corsair Vengeance Pro RGB 16GB @3200mhz (2 x 8GB)
      • Corsair RM850x 80 Plus Gold Power Supply Unit. 
      • CoolerMaster MASTERLIQUID ML360R RGB CPU Cooler
      • Samsung 970 EVO 1TB NVMe SSD macOS Catalina 10.15.3
      • Samsung 860 EVO 1TB SSD (2.5) Windows 10 Pro
      • ABWB BCM943602CS 802.11AC WI-FI With Bluetooth 4.0 PCI-Express (PCI-E)   
      • Lian Li PC-O11DW Dynamic ATX Case
       

       

       

       

       
       
      WORKING
      • Sound 
      • Ethernet Port
      • WiFi
      • SSD Trim
      • USB 3.0 & 2.0 (All ports Open Natively)
      • AirDrop
      • iCloud
      • Hardware Acceleration
      • iMessages
      • Facetime
      • Sleep & Wake
      • Sleep and Shutdown via the Power Button
      • Handoff
      • Netflix on Safari browser
      • Continuity
      • Sidecar
       
       
      CLOVER  FOLDER
      Use this folder with fully patched DSDT
      Current EFI 
      Updated 06/04/2020
      PLEASE NOTE - You MUST update to the latest EFI before updating to 10.15.4 or you may find your unable to update.
       
       
      Clover EFI Update - 06/04/2020 - Use with Bios revision F12d Only or Replace with the older F11 DSDT if you don't want to update the bios
      Clover Z390 Pro Navi Vega 19,1 EFI 060420.zip - Vega, Navi (5700, 5700XT etc), Radeon VII DSDT EFI
      Clover Z390 Pro Polaris 19,1 EFI 060420.zip - R5xx Polaris DSDT EFI
       
       
      PLEASE NOTE - Please flash your motherboard bios to revision F12d to use my current EFI. It’s a major rework of the bios and vital changes have been made to the layout and power tables. New DSDTs have been created and installed into the new EFI’s but will not work correctly with any other bios revision.
       
       
      Latest Gigabyte Z390 PRO BIOS (F12d)
      mb_bios_z390-aorus-pro_f12d.zip
       
       
      CFG Unlock (MSR) F12d (F12c Pro WIFI) BIOS Profile - The Easy Way 
      Highly recommended if your using a Vega 56/64, Radeon VII or Navi GPU
       
       
      DSDT's (A big thanks to @MaLd0n for compiling these DSDT's)
       
       
      Alternative EFI - OpenCore v0.5.7, No DSDT and Done the way OpenCore intended it (06/04/2020)
       
       
      Alternative EFI 2 - N-D-K OpenCore v0.5.7 (06/04/2020)
       
       
      To Create Your Own Patched DSDT Message @MaLd0n using the link bellow
      https://www.olarila.com/forum/17-dsdt-patch-requests/
      (If you want a perfect setup then getting your own patched DSDT made would be the best thing to do, Mine will work perfectly fine but different hardware no matter how small a change it is can tend to have some sort of effect on the DSDT and your setup)
       
       
      If Your Not Using File Vault Then Please Disable Hibernate
      disablehibernate.command
       
       
      ADDITONAL DOWNLOADS
      Clover
      Clover Configurator
      Kext Updater
       
       
      OPTIONAL DOWNLOADS
      BroadcomFix.zip   (Use these kexts if your Broadcom bluetooth/Wifi isn't working properly)
      FakeSMC    (Can be used instead of VirtualSMC)
      Hackintool
      IORegistryExplorer
      Native Display Brightness with MonitorControl
       
       
      BIOS SETTINGS (Bios Revision F12d)
      • Enter BIOS → Press F12 → Enter Setup
      • Save & Exit → Load Optimized Defaults
       
      • Boot -> Windows 8/10 Features -> Win 8/10WHQL
      • Boot -> CSM Support -> Disabled (Can be set to Enabled if need be but try to have it set to Disabled first)
      • Favourites -> Extreme Memory Profile (X.M.P.) -> Profile1
      • Favourites -> VT-d -> Disabled (Can be set to Enabled or Disabled, Your choice)
      • Settings -> IO Ports -> Internal Display Output -> PCIe 1 Slot
      • Settings -> IO Ports -> Internal Graphics -> Enabled (Set to Disabled if using SMBios iMacPro1,1)
      • Settings -> IO Ports -> DVMT Pre-Allocated -> 64M
      • Settings -> IO Ports -> DVMT Total GFX0-Allocated -> 256M
      • Settings -> IO Ports -> Aperture Size -> 256MB
      • Settings -> IO Ports -> Audio Controller -> Enabled
      • Settings -> IO Ports -> Above 4G Decoding -> Enabled
      • Settings -> IO Ports -> USB Configuration -> Legacy USB Support -> Auto
      • Settings -> IO Ports -> USB Configuration ->  XHCI Hand-off -> Enabled
      • Settings -> Miscellaneous -> Software Guard Extensions (SGX) -> Disabled
      • Settings -> Platform Power -> Platform Power Management -> Enabled
      • Settings -> Platform Power -> ErP -> Enabled
      • Settings -> Platform Power -> RC6(Render Standby) -> Enabled
       
      • Save & Exit → Save & Exit Setup 
       
       
      SCREENSHOTS
      
       

       

       

       

       

       

       

       

       

       

    • By AudioGod
      I have put together this simple little guide for anybody wanting to use a Patched DSDT EFI with the same configuration as me.
      This is also a thread to discuss everything Z390 Master and try and help where we can and maybe make things a little better for you. 
       
      A huge massive thank you to @glasgood @MaLd0n @larabee These three guys have helped me and talked me so much and are as helpful as you could ever get, Without them I wouldn't have a perfect working build like I do or be putting up this Guide & Discussion Thread sharing the hard work and countless hours that we have all put in to this.   
       
       
      This EFI and Patched DSDT have been created to work with a Gigabyte Aorus Z390 Master using bios revision F11c, 9900k with a 5700 XT but has also been tested and verified fully working with the following Hardware
       
      CPU's
      8600K, 8700, 8700K, 9600K, 9700K, 9900K, 9900KS
       
      GPU's
      RX 560, 570, 580, 590, Vega 56, Vega 64, Radion VII, 5700, 5700 XT
      (If you have success with any different CPU or GPU's then please do let me know)
       
       
       @glasgood Has kindly put together a new simple Catalina install guide so Just Follow He's Guide For a Perfect Install. (glasgood put the guide together for the Z390 Pro but the two boards are so alike that you can follow this guide with no problems at all using the Z390 Master)
       
       
      HARDWARE USED
      • Intel I9 9900k @5.2Ghz
      • Gigabyte AORUS Z390 MASTER
      • Sapphire Reference RX 5700 XT ( connected to monitor with DisplayPort )
      • Corsair Vengeance Pro RGB 32GB @3600mhz (2 x 16GB)
      • Corsair RM850x 80 Plus Gold Power Supply Unit
      • EK Custom Liquid Cooling Loop
      • Samsung 970 EVO 1TB NVMe SSD macOS Catalina 10.15.3
      • Samsung 860 EVO 1TB SSD (2.5) Windows 10 Pro
      • ABWB BCM943602CS 802.11AC WI-FI With Bluetooth 4.0 PCI-Express (PCI-E)   
      • Lian Li PC-O11DW Dynamic ATX Case
       

       

       

       
      WORKING
      • Sound 
      • Ethernet Port
      • WiFi
      • SSD Trim
      • USB 3.0 & 2.0 (All ports Open Natively)
      • AirDrop
      • iCloud
      • Hardware Acceleration
      • iMessages
      • Facetime
      • Sleep & Wake
      • Sleep and Shutdown via the Power Button
      • Handoff
      • Netflix on Safari browser
      • Continuity
      • Sidecar (only works using the iMac19,1 EFI and with your igpu Enabled)

       
      EFI FOLDERS  
      please note - You must flash your Z390 MASTER bios to revision F11c to use any of these EFI's, The DSDT is not designed for any other Bios revision
      mb_bios_z390-aorus-master_f11c.zip - Aorus Z390 Master Bios F11c 
       
      Current EFIs 
      Updated 06/04/2020
      PLEASE NOTE - You MUST update to the latest Clover EFI before updating to 10.15.4 or you may find your unable to update.
       
      Clover EFI Updated 06/04/20 - Use with Bios revision F11c Only or Replace with the older F10 DSDT if you don't want to update the bios
      Clover Z390 Master Navi Vega 19,1 EFI 060420.zip - Vega, Navi (5700, 5700XT etc), Radeon VII DSDT EFI
      Clover Z390 Master Polaris 19,1 EFI 060420.zip - R5xx Polaris DSDT EFI
       
       
      CFG Unlock (MSR) F11c BIOS Profile - The Easy Way 
      Highly recommended if your using a Vega 56/64, Radeon VII or Navi GPU
       
       
      ADDITIONAL DSDT's (A big thanks to @MaLd0n for compiling these DSDT's)
       
       
      Alternative EFI - OpenCore v0.5.7, No DSDT and Done the way OpenCore intended it (06/04/2020)
       

      Alternative EFI 2 - N-D-K OpenCore v0.5.7 (06/04/2020)
       
       
      To Create Your Own Patched DSDT Message @MaLd0n using the link bellow
      https://www.olarila.com/forum/17-dsdt-patch-requests/
      (If you want a perfect setup then getting your own patched DSDT made would be the best thing to do, Mine will work perfectly fine but different hardware no matter how small a change it is can tend to have some sort of effect on the DSDT and your setup)
       
       
      If Your Not Using File Vault Then Please Disable Hibernate
      disablehibernate.command
       
       
      ADDITONAL DOWNLOADS
      mb_bios_z390-aorus-master_f10
      Clover
      Clover Configurator
      Kext Updater
      RepairPermissions
       
       
      OPTIONAL DOWNLOADS
      BroadcomFix.zip   (Use these kexts if your Broadcom bluetooth/Wifi isn't working properly)
      Hackintool
      IORegistryExplorer
      Native Display Brightness with MonitorControl
       
       
      BIOS SETTINGS (Bios Revision F11C)
       
      • Enter BIOS → Press Delete → Enter Setup
      • Save & Exit → Load Optimized Defaults
       
      • Boot -> Windows 8/10 Features -> Win 8/10WHQL
      • Boot -> CSM Support -> Disabled (Can be set to Enabled if need be but try to have it set to Disabled first)
      • Favourites -> Extreme Memory Profile (X.M.P.) -> Profile1
      • Favourites -> VT-d -> Disabled (Can be set to Enabled or Disabled, Your choice)
      • Settings -> IO Ports -> Internal Display Output -> PCIe 1 Slot
      • Settings -> IO Ports -> Internal Graphics -> Enabled
      • Settings -> IO Ports -> DVMT Pre-Allocated -> 64M
      • Settings -> IO Ports -> DVMT Total GFX0-Allocated -> 256M
      • Settings -> IO Ports -> Aperture Size -> 256MB
      • Settings -> IO Ports -> Wifi -> Disabled
      • Settings -> IO Ports -> Audio Controller -> Enabled
      • Settings -> IO Ports -> Above 4G Decoding -> Enabled
      • Settings -> IO Ports -> USB Configuration -> Legacy USB Support -> Auto
      • Settings -> IO Ports -> USB Configuration -> XHCI Hands-off -> Enabled
      • Settings -> Miscellaneous -> Software Guard Extensions (SGX) -> Disabled
      • Settings -> Platform Power -> Platform Power Management -> Enabled
      • Settings -> Platform Power -> ErP -> Enabled
      • Settings -> Platform Power -> RC6(Render Standby) -> Enabled
       
      • Save & Exit → Save & Exit Setup
       
       
      SCREENSHOTS

       

       

       

       

       

       

       

       
×