Contribute
Register

[Guide] Lenovo Z50-70/Z40-70/G50-70/G40-70 using Clover UEFI

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,220
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Overview

The purpose of this guide is to provide a step-by-step guide to installing Mojave, High Sierra, Sierra, or El Capitan on Lenovo Z50-70/Z40-70 or G50-70/G40-70 laptops.

My machine is a Z50-70 with Broadcom BCM94352Z and SSD.

As you might already know, Lenovo BIOS is known to implement a WiFi whitelist, which must be defeated in order to install a macOS compatible WiFi card.


What you need

- Lenovo Z50-70/Z40-70 or G50-70/G40-70
- macOS Mojave, High Sierra, Sierra, or El Capitan downloaded from the Mac App Store
- 8GB USB stick
- Broadcom BCM94352Z for native WiFi/BT


BIOS settings

To start, set BIOS to Windows defaults.

Then insure:
- UEFI boot is enabled
- secure boot is disabled
- enable Legacy Boot (but UEFI first) and you may experience less boot time glitches

Note: If your laptop has a discrete graphics card (Nvidia), keep it enabled in BIOS. It will be disabled automatically by SSDT-Z50.aml (or SSDT-G50.aml) when running macOS.


Preparing USB and initial Installation

This guide for creating USB and installing using Clover UEFI works well for this laptop: http://www.tonymacx86.com/el-capita...de-booting-os-x-installer-laptops-clover.html

Special notes:

- Use the 'createinstallmedia' approach. It works well, and there is little chance for pilot error. > [Guide] Booting the OS X Installers on LAPTOPS with Clover.


- Definitely copy RealtekRTL8111.kext to Clover/kexts/Other as having network support during post-install is helpful. The rest of this guide depends on it. An alternate is to copy FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext to Clover/kexts/Other. This will enable WiFi, provided you have a compatible WiFi card already installed.

Note: FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext are available here: https://github.com/RehabMan/OS-X-Fake-PCI-ID.

- Some of these laptops come with ELAN trackpad so RehabMan's VoodoPS2Controller.kext might not work properly. An alternate is to download ELAN kext from the Z50 repo.

- GenericUSBXHCI.kext is not necessary with this laptop since AppleUSBXHCI.kext appears to work well natively. Also, GenericUSBXHCI.kext does not work on 10.11+ so it should not be used.

- Use the config_install.plist from the Lenovo repo: https://github.com/the-braveknight/Lenovo-X50-macOS.

Post Installation

Install Clover UEFI as described in the guide linked by the previous section (post #2). After installing Clover, and configuring it correctly (config.plist, kexts, etc) you should be able to boot from the HDD/SSD.

But there are still many issues and devices that won't work correctly. For that, we need to patch DSDT, provide a proper config.plist, and install the kexts that are required.

Since you have RealtekRTL8111.kext already injected by Clover, you should have internet access simply by using an Ethernet cable to your router. Plug it in and make sure you have internet access before continuing. Or if you're using FakePCIID_Broadcom_WiFi.kext, you can connect to your WiFi router before continuing.

Installation of the tools and patching is easy provided the scripts and tools at the repository: https://github.com/the-braveknight/Lenovo-X50-macOS.

To start, the developer tools must be installed. Run Terminal, and type:
Code:
git

You will be prompted to install the developer tools. Since you have internet working, you can choose to have it download and install them automatically. Do that before continuing.
After the developer tools are installed, we need to make a copy of the project on github.

In Terminal:
Code:
mkdir ~/Projects
cd ~/Projects
git clone https://github.com/the-braveknight/Lenovo-X50-macOS lenovo.git

Now it is time to install some more tools and all the kexts that are required...
To download the kexts & tools, in Terminal:
Code:
cd ~/Projects/lenovo.git
./X50.sh --download-requirements
To install:
Code:
./X50.sh --install-downloads

The '--download-requirements' argument will automatically gather the latest version of all tools (patchmatic, iasl, MaciASL) and all the kexts (FakeSMC.kext, ACPIBatteryManager.kext, etc) from bitbucket, and the needed hotpatch SSDTs from RehabMan's repo. The '--install-downloads' argument will automatically install the kexts & tools to the proper locations.

If you wish, you can reboot to verify a few more items are working (many only partially).

To finish the setup, we need a correctly patched ACPI.

For the Z50-70/Z40-70 models, in Terminal:
Code:
cd ~/Projects/lenovo.git
make
make install_z50

For the G50-70/G40-70 models, in Terminal:
Code:
cd ~/Projects/lenovo.git
make
make install_g50


The 'make' causes the patched files to be compiled (with iasl), the results placed in ./build.

Finally, 'make install_z50' (or 'make install_g50'), mounts the EFI partition, and copies the built files where they can be loaded by Clover (to EFI/Clover/ACPI/patched).

Power Management

Everything required for CPU/IGPU power management is already installed with the steps above.
There is no longer any need to use the ssdtPRgen.sh script.

Also, be aware that hibernation (suspend to disk or S4 sleep) is not supported on hackintosh.

You should disable it:
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage

Always check your hibernatemode after updates and disable it. System updates tend to re-enable it, although the trick above (making sleepimage a directory) tends to help.

Final config.plist

Up to now, you've been using the same config.plist we were using for installation. After all the APCI files are in place (previous two steps), you're ready to use the final config.plist from the lenovo repo.

Code:
cd ~/Projects/lenovo.git
./X50.sh --install-config

After copying the config.plist from the repo to EFI/Clover/config.plist, you should customize the SMBIOS so you have a unique serial. You can use Clover Configurator to do this (use google to find/download it). DO NOT use Clover Configurator to edit your actual config.plist. Instead edit a "dummy" config.plist to create the SMBIOS data and then use copy/paste with a plist editor (I use Xcode) to copy the SMBIOS section into my active config.plist. Clover Configurator is too buggy and cannot be trusted with edits to your real config.plist. This guide uses MacBookAir6,2. Do not use any other model identifier.

Repeat: DO NOT edit your config.plist with Clover Configurator. Clover Configurator will erase important settings from the config.plist, and as a result, it will not work.


Do not stop reading

Although most of the post-install tasks are done, continue to read this guide. It it has important information you should know about.

Be sure to visit "Known Problems", especially the instructions in the "Audio:" section. Typically, even after completing all the above tasks, audio will not work on the first reboot. You must follow the specific instructions in that section in order to get the audio kexts in cache.

In the case of a problem, don't bother asking about with without all files requested in "Problem Reporting".


BIOS mods for compatible WiFi installation

The laptop BIOS implements a WiFi whitelist, which must be defeated in order to install a macOS compatible WiFi card.

See this guide for more info: http://www.tonymacx86.com/el-capita...ovo-g50-70-z50-70-bios-whitelist-removal.html



WiFi using BCM94352Z (DW1560)

The repo scripts have been updated to install the necessary kexts for BCM94352Z.


WiFi using BCM943602BAED (DW1830)

This card is a bit more native as it uses the same chip that's found in original Macs (Bcm4360), it is recognized OOB, FakePCIID is used to get the AirPort branding. It doesn't require the 5GHz patch or the fcvo patch that's is required for Bcm4352 cards in macOS Sierra (10.12).

Note that this card requires a third antenna to be set up in order to work properly.


Updates to the patch repositories

From time to time, updates may become available to the lenovo repository. In the event of such updates, you may want to update your copies, and re-patch ACPI with the updates.

Since you're using git, it is easy...

In Terminal:
Code:
cd ~/Projects/lenovo.git
./X50.sh --update # to save any local changes you might have made and update repo to latest
./X50.sh --download-requirements
./X50.sh --install-downloads
./X50.sh --update-config
make clean
make
make install_z50 # or make install_g50


What works

- UEFI booting via Clover
- built-in keyboard (with special function keys)
- built-in trackpad (basic gestures)
- HDMI video/audio with hotplug
- AirPlay mirroring to AppleTV
- native WiFi via BCM943602BAED
- Bluetooth (with handoff) using BCM943602BAED
- native USB3 with AppleUSBXHCI (USB2 works also)
- native audio with AppleHDA, including headphone
- built-in mic
- built-in camera
- native power management
- battery status
- backlight controls with smooth transitions, save/restore across restart
- accelerated graphics for HD4400 including OpenCL
- wired Ethernet
- Mac App Store working
- screen works without flicker
- Messages/FaceTime (working on 10.10.3 even though I didn't run through the guide: http://www.tonymacx86.com/general-help/110471-how-fix-imessage.html)

Known Problems

Find My Mac/Locking: Find My Mac does not work properly. Don't lock your mac because it's difficult (or impossible) to unlock again.

Slow WiFi after sleep/wake cycle: Disable "Wake for network access" in SysPrefs->Energy Saver.

Audio: After installing new/updated kexts or after the initial installation, you may lose audio.

To fix:
- reboot without caches (hit space at Clover, select without caches)
- rebuild cache
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
- reboot normally (if needed, two times)

CPU Frequency: Clover identifies the CPU speed (as shown in "About this Mac") incorrectly. On my system (2.0Ghz Core i7-4510u), it shows 2.59Ghz. This appears to be cosmetic. You can fix it by overriding Clover logic with config.plist/CPU/FrequencyMHz. You will see how my setting is commented in the config.plist. Set it as appropriate for your own CPU.


Other post-install tasks

Trackpad: Be sure to visit the options in SysPrefs->Trackpad and change them to your liking.

Bluetooth: If you get the Bluetooth Setup Assistant popup, go to SysPrefs->Bluetooth->Advanced, uncheck the boxes.


Problem Reporting

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda

Also, post EFI/Clover folder (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory, especially if you have an overabundance of themes installed.

Also post output of:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /


Credits

RehabMan for his repos, tools, guides, and scripts.
 
Last edited:
Hello. Great guide. Question. With my G50. Should I update Clover And the config plist and then upgrade to Mojave and then go through the post installation?
 
Thank you for the guide. Worked great. Do anyone know how to get the sound workig on Z50-70 please. Thank you
 
I think the problem I have is
"Kext with invalid signatured" when installing
I tried using https://www.tonymacx86.com/threads/solved-invalid-signature-on-all-kexts.220285/
and dev-mode=1 getting no luck. Any other ideas.
Thank you
"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
sorry forgot to add debug file,

I looked at page and I can't see anything on Kext with invalid signatured. thank you for help.
 

Attachments

  • debug_3838.zip
    1.6 MB · Views: 357
sorry forgot to add debug file,

I looked at page and I can't see anything on Kext with invalid signatured. thank you for help.

No ioreg here. Please check your files before upload.
 
When I run
install_tools.sh I get this error.

IOREG dump failed. Retrying by increasing delays...
IOREG dump has failed 3 times.

I did a save as in the IORegistryExplorer. Hope I that is you need to help me..Thank you for your patience I am new to the hackintosh
 

Attachments

  • Andrew’s MacBook Air.ioreg
    6 MB · Views: 517
When I run
install_tools.sh I get this error.

IOREG dump failed. Retrying by increasing delays...
IOREG dump has failed 3 times.

Probably you neglected to enable accessibility for Terminal.

I did a save as in the IORegistryExplorer. Hope I that is you need to help me..Thank you for your patience I am new to the hackintosh

You're not booting from the EFI/Clover that you attached.
It appears you're booting from USB:
0:100 0:000 SelfDevicePath=PciRoot(0x0)\Pci(0x1D,0x0)\USB(0x0,0x0)\USB(0x2,0x0)\HD(1,GPT,B7FFDAB1-800E-41C5-AB2C-19A4527E9B49,0x28,0x64000) @A7CD0118

No expectation of working audio (among other things) when you're booting from USB installer EFI/Clover.
 
Back
Top