Recently Browsing 0 members
No registered users viewing this page.
Installing macOS Mojave on Lenovo ThinkPad L440
There are two version of this laptop:
- 20AS = Chipset QM87, without Express Card (mine).
- 20AT = Chipset HM86, with Express Card.
I strong believe is the same thing...
01/20/2019 11:49h GMT-0
- First version.
What works and what does not
- Processor: Intel Core i5-4300M -> Work. All SpeedStep stages.
- Video Card: Intel HD4600 -> Work. QE/CI and Metal.
- Chipset: Intel QM87 -> Work.
- Mini DisplayPort -> Work. But no audio, yet.
- VGA -> Not work. Normal.
- Audio: ALC292 -> Work.
- WiFi/Bluetooth: Intel AC 7260 -> Not work. Replaced with DW1560 (need whitelist removal).
- Ethernet: Intel I217-LM -> Work.
- Card Reader: Realtek RTS5227 -> Not work.
- Keyboard and Touchpad -> Work.
- Webcam -> Work.
- Fingerprint Reader -> Not work. Normal.
- USB3.0 -> Work.
- Sleep -> Work.
- Airdrop, Handoff, Instant Hotspot and Continuity -> Work after replaced wireless.
- FullHD 1920x1080 display upgrade:
Replaced with AU Optronics B140HAN01.1 30pin eDP (B140HAN01.2 and B140HAN01.3 also compatible)
Apparently same screen as Dell Latitude E6440, E7440, Lenovo Ideapad U430 and E129.
- Make DP audio work.
- Make Card Reader work.
- Upgrade CPU to i7-4712MQ (Ordered. It's on the way)
- Replace touchpad with T460 model (Ordered. It's on the way)
- Sierra Gobi5000 4G LTE modem EM7355 (Ordered. It's on the way. I hope works. )
- Upgrade to 16GB RAM
What you need to install
- Running install of macOS
- One USB flash drive of 8GB or bigger
- macOS Mojave install app
- Clover EFI
- Clover Configurator
- Some KEXTs and SSDT patches
How create create the install flash drive
Prepare install flash drive
Format the flash drive with GUID partition mapping and name it "Install".
- Open Disk Utility.
- Click in View, then "Show All Devices".
- Select the destination flash drive, then Erase.
- Name: Install, Format: Mac OS Extended (Journaled) and Scheme: GUID Partition Map
Create install flash drive
Open terminal and run this command:
sudo /Applications/Install\ macOS\ .app/Contents/Resources/createinstallmedia --volume /Volumes/Install --nointeraction This will take about 30 minutes.
Download the RehabMan's CloverEFI fork (used 4701) and install with this options on "Install macOS Mojave":
- Install for UEFI booting only
- Install Clover in the ESP
- UEFI Drivers - ApfsDriverLoader-64
- UEFI Drivers - AptioMemoryFix64
Make things works
Will be created a partition named EFI and mounted in Desktop.
- Replace the /Volumes/EFI/CLOVER/config.plist with mine attached below
If you have modded BIOS with Advanced Menu and enabled 128MB DRAM-prealloc use 128MB_DRAM-prealloc_config.plist.zip
If no, then use 32MB_DRAM-prealloc_config.plist.zip
- Put SSDT_L440.aml attached below in /Volumes/EFI/CLOVER/ACPI/patched/
Generate your Serial, MLB and SmUUID
- Open the replaced config.plist with Clover Configurator (used 184.108.40.206)
- Go to SMBIOS, click few times in "Generate New" in Serial Number and SmUUID.
Download those Kexts and put in /EFI/CLOVER/kexts/Other/
- Download the FakeSMC.kext from here. I used the version 2018-0915.
- Download the VoodooPS2Controller.kext from here. I used version 2018-1008.
- Download the IntelMausiEthernet.kext from here. I used the version 2018-1031.
- Download the Lilu.kext from here. I used the version 1.3.1.
- Download the AppleALC.kext from here. I used the version 1.3.4.
- Download the WhateverGreen.kext from here. I used the version 1.2.6.
- Download the AppleBacklightFixup.kext from here. I used the version 2018-1013.
- Download the USBInjectAll.kext from here. I used the version 2018-1108.
- Download the ACPIBatteryManager.kext from here. I used the version 2018-1005.
Wifi and Bluetooth (DW1560 / BCM94352Z)
Unfortunately, some notebook manufacturers are currently blocking the replacement of wireless cards. They want you to only use the models sold by them. And of course, none of them from Lenovo for this notebook model is compatible with MacOS.
If you try to start with an unauthorized wifi card for them, you will receive a screen error:
1802: Unauthorized network card is plugged in - Power off and remove the network card. Since this check is done directly in the BIOS, the only solution is to modify it.
But since nothing is easy in this life, there is one small big problem:
- The BIOS update procedure does not allow you to use modded files as it used to be.
- You will need to physically reach your BIOS on the motherboard and make use of a USB BIOS reader/writer.
So what you need to do:
1. Disassembly your laptop;
2. Dump your BIOS with an USB BIOS reader with SOIC8 clip (to not desolder from the motherboard);
3. Patch it (In addition to removing the whitelist, add the advanced menu);
4. Fix RSA signature;
5. Reflash BIOS;
6. Replace wireless card;
7. Remount your laptop;
Soon, I'll provide step by step in this process. Probably until end of this week.
In the meantime, if you need to, send me your dump that I do steps 3 and 4 for you.
I also add the Advanced Menu so you can increase to 128MB the DRAM-prealloc.
After replaced the wireless card. Download those Kexts and put in /EFI/CLOVER/kexts/Other/
- Download the AirportBrcmFixup.kext from here. I used the version 1.1.9.
- Download the BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext from here. I used the version 2018-0505.
- Download the BT4LEContinuityFixup.kext from here. I used the version 1.1.2.
Now you can start the instalation without problem (I guess).
UEFI Setup Configuration and Installation
My BIOS is the latest: 1.93 (J4ET93WW)
- Shutdown and insert the flash drive.
- Power on with F1 pressed to enter BIOS setup.
- Change value: Config - Intel(R) AMT - Intel(R) AMT Control to DISABLED
- Change value: Security - Security Chip to DISABLED
- Change value: Security - Anti-Theft - Intel(R) AT Module Activation to DISABLED
- Change value: Security - Anti-Theft - Computrace to DISABLED
- Change value: Security - Secure Boot to DISABLED
- Change value: Startup - UEFI/Legacy Boot to BOTH, Legacy First and CSM Support = Yes
- Save & Exit Setup (F10)
- Now, hold the F12
- In the list, select your flash drive.
The installer will start.
Format destination disk
Format the disk with GUID partition mapping and name it "Macintosh".
- Select Disk Utility in the list, then press Continue.
- Click in View, then "Show All Devices".
- Select the destination Disk, then Erase.
- Name: HD, Format: APFS and Scheme: GUID Partition Map
Close Disk Utility.
Select "Install macOS", then Continue.
Follow instructions in screen.
After first part install the system will reboot. Maybe you have to press F12 again and select the flash drive.
The second part of the installation will begin. This will take 16 minutes.
When the second part of install finish, the system will reboot again.
After performing the user initial setup and go to the desktop, you need to install Clover on internal disk.
Open the Clover installer inside flash drive that you copied before.
Use same options above but choose the system partition this time.
Now you need to replace the config.plist inside your destination disk EFI parittion with config.plist inside flash card EFI partition.
The flash drive EFI partition is unmounted. Mount with terminal "sudo diskutil mount /dev/rdiskXs1". To know what X is, use "diskutil list", most likely is 1.
Copy all Kexts from flash drive to /Library/Extensions, with those commands in Terminal:
sudo cp -R /Volumes/EFI/EFI/CLOVER/kexts/Other/* /Library/Extensions/ sudo chmod -R 755 /Library/Extensions sudo chown -R root:wheel /Library/Extensions sudo kextcache -i / Restart the system.
And last but not least
I would like to thank the following community members, by making these dream possible:
@crushers, @snatch, @apianti, @blackosx, @blusseau, @dmazar, @slice2009, @autumnrain, @phpdev32, @EMlyDinEsH, @RehabMan, @Scellow, @mitch_de, @Shailua, @Andy Vandijck, @maxfierke, @ArturXXX, @LexHimself, @brumas, @Shiki and all others members involved directly or indirectly.
HI, I'm trying to enable my HD530 (i7-6700k) along my GTX 970 to use QuickSync and get better render times and all the advantages of it... also I need to use airplay mirroring.
As now all is working except it, and i'd like to get it working.
My problem is that when fcpx or another app exports the IGPU usage always stays at 0%...
How can I solve this?
MY config and gen debug results attached.
Intel Core i7 8700K
Gigabyte Z370 HD3P
Ballistix Sport LT 16GB
Gigabyte RX 580 8GB
AMD Pro WX7100 8GB
I was trying to do a fresh install to get my wx7100 working as it was not. I stupidly did not do a back up immediately before, because I was trying a patch and the os was not detecting the GPU and showing 7MB in installed graphics.
So my last back up was at mojave 14. I'm trying to update to 14.2 but get the following code, then it restarts. I'm in desperate need of help
Attached are my config.plist and installed kexts. Any help is grateful.
Framebuffer patching in Mojave
Binary patching framebuffers using KextsToPatch in Clover is no longer a viable method in Mojave for Skylake and above. Now you need to use Lilu + WhateverGreen.
Not just for Mojave
This method of framebuffer patching is not only required for Mojave we recommend it for all previous and future releases of macOS.
Coffee Lake Users
Please note that the new WhateverGreen will not work with fake Kaby Lake platform-id's. You will need to have either macOS 10.14 Beta 4 (18A336e) or macOS High Sierra 10.13.6 (17G2112). The latter is a special build only available to MacBookPro15,1 or MacBookPro15,2 board id's. You can create a macOS High Sierra 10.13.6 (17G2112) installer by running installinstallmacos.py. (Update: vit9696 added back ability to fake Kaby Lake platform-id's)
Lilu + WhateverGreen
WhateverGreen is going to replace all the other video patching plugins for Lilu (it currently has merged WhateverGreen, IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki and CoreDisplayFixup). Others will likely follow (such as AppleALC, HibernationFixup and IntelGraphicsDVMTFixup). This is aiming to be the all-in-one solution for video.
2. Turn off all graphics injections in Clover:
3. Disable DSDT Clover fixes:
4. Disable UseIntelHDMI
5. Remove boot argument: -disablegfxfirmware
6. Remove any IGPU and HDMI entries from:
7. Remove any IGPU and HDMI related SSDT and DSDT from:
8. Renaming GFX0 -> IGPU
- WhateverGreen will do this automatically (see caveat below)
- Be aware that WhateverGreen does not rename all instances of GFX0 -> IGPU but should be okay in most cases
- You may need to include Clover GFX0 -> IGPU rename for other kexts or ACPI patching that require it
Compile Lilu + WhateverGreen
Download WhateverGreen. Make sure you place the debug version of Lilu into the root of WhateverGreen before you compile. Install Lilu and WhateverGreen kext's into the usual place. Compile WhateverGreen as debug if you want to view debug output.
Having trouble compiling?
If you're having trouble compiling you can download the official release binaries or download my (unsupported) build_lilu.sh shell script and run it in a folder to download and build Lilu + WhateverGreen using Xcode automatically. I recommend you try the debug versions first (place them into Clover's EFI/Clover/kexts/Other folder).
Get the device path of your IGPU:
Download and use the gfxutil tool like so:
$ ./gfxutil -f IGPU DevicePath = PciRoot(0x0)/Pci(0x2,0x0) ig-platform-id
For the AAPL,ig-platform-id (AAPL,snb-platform-id for Sandy Bridge) entry Clover requires this value to be in Data format so you need to reverse the bytes. So if you want your platform-id to be 0x3EA50009 first reverse the bytes (0900A53E) then use Xcode's plist editor to add the values to Clover's config.plist.
What ig-platform-id should I use for my system?
You should choose one that is the closest match to your system. I recommend you do some research on this before choosing one. See post #2 for available options. More info can be found here.
You can determine the generation of your CPU by the first digit after the hyphen.
- Intel(R) Core(TM) i5-2760QM (Gen 2)
- Intel(R) Core(TM) i7-5257U CPU @ 2.70GHz (Gen 5)
- Intel(R) Core(TM) m3-6Y30 (Gen 6)
- Intel(R) Core(TM) i5-8350U (Gen 8)
Spoofing Intel CPU Gen
If you need to spoof a different Intel CPU generation you can use the lilucpu=N boot flag. The N refers to the following Intel generations:
4 SandyBridge 5 IvyBridge 6 Haswell 7 Broadwell 8 Skylake 9 KabyLake 10 CoffeeLake To spoof a CPU you will need to set a valid device-id in your GPU entry in Devices/Properties for the appropriate Intel generation.
Eg. Spoofing Skylake (lilucpu=8 boot flag with device-id=0x16190000), Kaby Lake (lilucpu=9 boot flag with device-id=0x12590000).
Here are some recommended frames:
Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000)
- Support started with OS X 10.7.x and ended with macOS 10.13.6
- Metal support is not available
- device-id: 0x0102 0x0106 0x010A 0x0112 0x0116 0x0122 0x0126
- AAPL,snb-platform-id (desktop): 0x00030010 (default)
- AAPL,snb-platform-id (laptop): 0x00010000 (default)
Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000)
- Support started with OS X 10.8.x
- device-id: 0x0152 0x0156 0x0162 0x0166
- AAPL,ig-platform-id (desktop): 0x0166000A (default), 0x01620005
- AAPL,ig-platform-id (laptop): 0x01660003 (default), 0x01660009, 0x01660004
Gen 4: Haswell (Intel HD Graphics 4200-5200)
- Support started with OS X 10.9.x
- device-id: 0x0D26 0x0A26 0x0A2E 0x0D22 0x0412
- AAPL,ig-platform-id (desktop): 0x0D220003 (default)
- AAPL,ig-platform-id (laptop): 0x0A160000 (default), 0x0A260005 (recommended)
Gen 5: Broadwell (Intel HD Graphics 5300-6300)
- Support started with OS X 10.10.2
- device-id: 0x0BD1 0x0BD2 0x0BD3 0x1606 0x160E 0x1616 0x161E 0x1626 0x1622 0x1612 0x162B
- AAPL,ig-platform-id (desktop): 0x16220007 (default)
- AAPL,ig-platform-id (laptop): 0x16260006 (default)
Gen 6: Skylake (Intel HD Graphics 510-580)
- Support started with OS X 10.11.4
- device-id: 0x1916 0x191E 0x1926 0x1927 0x1912 0x1932 0x1902 0x1917 0x193B 0x191B
- AAPL,ig-platform-id (desktop): 0x19120000 (default)
- AAPL,ig-platform-id (laptop): 0x19160000 (default)
Gen 7: Kaby Lake (Intel HD Graphics 610-650)
- Support started with macOS 10.12.6
- device-id: 0x5912 0x5916 0x591B 0x591C 0x591E 0x5926 0x5927 0x5923 0x87C0
- AAPL,ig-platform-id (desktop): 0x59160000 (default)
- AAPL,ig-platform-id (laptop): 0x591B0000 (default)
Gen 8: Coffee Lake (Intel UHD Graphics 630)
- Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e)
- device-id: 0x3E9B 0x3EA5 0x3E92 0x3E91
- AAPL,ig-platform-id (desktop): 0x3EA50000 (default), 0x3E9B0007 (recommended)
- AAPL,ig-platform-id (laptop): 0x3EA50009 (default)
WhateverGreen does most of the work automatically for you and in most cases you do not need any extra Framebuffer Patching. At the minimum though you should choose an ig-platform-id suitable for your system and place it in config.plist/Devices/Properties like this:
Here are some reasons why you might need extra Framebuffer Patching:
- Setting DVMT for those who can't set it above 32 MB in BIOS (framebuffer-stolenmem / framebuffer-fbmem)
- Setting higher VRAM for 4K users who experience graphical glitches (framebuffer-unifiedmem)
- Disabling eGPU (disable-external-gpu)
- Enable pixel clock patch for 4K support (enable-hdmi20)
- Disabling connectors to enable sleep (framebuffer-pipecount / framebuffer-portcount / framebuffer-conX-type=-1)
- Removing CNConnectorAlwaysConnected flag for eDP laptop screens on < 10.13.6 (framebuffer-con0-flags=0x00000090)
- Changing connector types to match your systems ports (framebuffer-conX-type)
Framebuffer Patching Types
We have three different types of patches:
1. Arbitrary (Recommended)
framebuffer-patch-enable (required to enable below) framebuffer-framebufferid (optional; defaults to current platform-id) (all below are optional) framebuffer-mobile framebuffer-pipecount framebuffer-portcount framebuffer-memorycount framebuffer-stolenmem framebuffer-fbmem framebuffer-unifiedmem framebuffer-cursormem (Haswell only) framebuffer-camellia framebuffer-flags framebuffer-conX-enable (required to enable below) framebuffer-conX-index framebuffer-conX-busid framebuffer-conX-pipe framebuffer-conX-type framebuffer-conX-flags 2. All Data
framebuffer-conX-enable (required to enable below) framebuffer-conX-alldata 3. Find / Replace
framebuffer-patchX-enable (required to enable below) framebuffer-patchX-framebufferid (optional; defaults to current platform-id) framebuffer-patchX-find framebuffer-patchX-replace framebuffer-patchX-count (optional; defaults to 1) You should place your patches in config.plist/Devices/Properties in Clover config.plist.
Here are some example patches:
- 32MB BIOS, 19MB stolen (framebuffer) 9MB fbmem (cursor) 2048MB unifiedmem (vram)
- Pipe / Port Count 3 to 2
- Connector 1 DP to HDMI
- Connector 2 Disable
Here is an example of the All Data method:
Here is an example of the Find / Replace method:
There are two ways to dump your framebuffer data (both require WhateverGreen + Lilu debug versions):
1. Using -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive)
There are several ways of reading this dump:
- Using 010 Editor along with the IntelFramebuffer.bt template
- Using Hackintool File->Open menu
2. Using -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen
There are several ways of reading this dump:
- Using dump_platformlist.sh shell script
- Using Hackintool File->Import->IOReg Dump menu
3. Using Hackintool Framebuffer->macOS 10.14 menu
To get debug output from Lilu use the -liludbgall liludump=60 boot flags. You will need to compile Lilu and WhateverGreen as debug for both of these flags to work. Log files should be located at /var/log/Lilu_*.
To view debug paste the following into Terminal (weglog.txt will output to your home directory):
log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "WhateverGreen" OR eventMessage CONTAINS "Lilu")' --style syslog --source --last boot >weglog.txt Getting Help
To help the users of this forum diagnose issues with your configuration please generate a Lilu debug log and then run gen_debug.sh to generate a folder of debug files you can attach to a forum post requesting help.
- vit9696 and lvs1974 for WhateverGreen (Full Credits) and Lilu (Full Credits)
- Andrey1970 for his guide on applelife.ru
- RehabMan for all data patching method, ioreg framebuffer dump and other contributions