kosakgroove Posted January 18, 2017 Share Posted January 18, 2017 Hello fellow Hackintoshers 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 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 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 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 PS: DSDT and SSDT patches tutorial for this specific laptop are on their way 5 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 18, 2017 Author Share Posted January 18, 2017 (edited) 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 Cool Right? Replace your _Q19 method with mineMethod (_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 patchinto 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}endMy 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 andcd /path/to/patched/tablesiasl *.dslAfter getting the resulting patched aml files, place them in /EFI/Clover/ACPI/patched for Clover to load itFinally 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" 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 January 19, 2017 by kosakgroove 4 Link to comment Share on other sites More sharing options...
vusun123 Posted January 19, 2017 Share Posted January 19, 2017 For display port and VGA out, check tluck's T420 guide for reference 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 19, 2017 Author Share Posted January 19, 2017 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 DSDTDevice (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 WindowsEnjoy our fully functional Hack 2 Link to comment Share on other sites More sharing options...
tluck Posted January 20, 2017 Share Posted January 20, 2017 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 ? 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 21, 2017 Author Share Posted January 21, 2017 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 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 Link to comment Share on other sites More sharing options...
Alec M Posted January 27, 2017 Share Posted January 27, 2017 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 Link to comment Share on other sites More sharing options...
vusun123 Posted January 27, 2017 Share Posted January 27, 2017 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 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 27, 2017 Author Share Posted January 27, 2017 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 Sent from my iPhone using Tapatalk Link to comment Share on other sites More sharing options...
tluck Posted January 27, 2017 Share Posted January 27, 2017 @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> 1 Link to comment Share on other sites More sharing options...
Alec M Posted January 27, 2017 Share Posted January 27, 2017 Nevermind! I got it working without that. I'm not sure if it's because I have an i7 2730QM or not. Thanks for the help! Link to comment Share on other sites More sharing options...
Alec M Posted January 28, 2017 Share Posted January 28, 2017 @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? Link to comment Share on other sites More sharing options...
kosakgroove Posted January 28, 2017 Author Share Posted January 28, 2017 @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 Link to comment Share on other sites More sharing options...
Alec M Posted January 28, 2017 Share Posted January 28, 2017 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. Link to comment Share on other sites More sharing options...
kosakgroove Posted January 28, 2017 Author Share Posted January 28, 2017 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 Link to comment Share on other sites More sharing options...
Alec M Posted January 29, 2017 Share Posted January 29, 2017 @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? Link to comment Share on other sites More sharing options...
kosakgroove Posted January 30, 2017 Author Share Posted January 30, 2017 @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. 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 ApplePS2SmartTouchPad kosakgroove.kext.zip 1 Link to comment Share on other sites More sharing options...
Alec M Posted January 31, 2017 Share Posted January 31, 2017 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. Link to comment Share on other sites More sharing options...
kosakgroove Posted January 31, 2017 Author Share Posted January 31, 2017 It is all in System Preferences buddy 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? Link to comment Share on other sites More sharing options...
tluck Posted January 31, 2017 Share Posted January 31, 2017 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 } 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 31, 2017 Author Share Posted January 31, 2017 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??? Link to comment Share on other sites More sharing options...
tluck Posted January 31, 2017 Share Posted January 31, 2017 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 1 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 31, 2017 Author Share Posted January 31, 2017 there are some others reporting CMOS errors on the latest Clover. a solution could be to compile Clover say 3994 with older edk2 like 23701This has been happening AFAIK since Clover 32xx Has anyone had any success fixing this issue? Link to comment Share on other sites More sharing options...
tluck Posted January 31, 2017 Share Posted January 31, 2017 have not seen this on the T420 Link to comment Share on other sites More sharing options...
kosakgroove Posted January 31, 2017 Author Share Posted January 31, 2017 have not seen this on the T420I am going to try to install Mac OS in a MBR disk to find out if its the GUID partition scheme Link to comment Share on other sites More sharing options...
Recommended Posts