Contribute
Register

[Guide] Lenovo IdeaPad U330/U430/U530 using Clover UEFI

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,731
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Overview

The purpose of this guide is to provide a step-by-step guide to installing Mojave, High Sierra, Sierra, El Capitan, or Yosemite on the Lenovo u330/u430/u530.

Note: This guide will also work with Mavericks, although that is not my primary testing target.

My machine is a u430 with Broadcom BCM94352HMB (originally used a rebranded AR9280) and SSD.

Background/development thread is here: http://www.tonymacx86.com/laptop-compatibility/121632-lenovo-ideapad-u430-mavericks.html

If you are installing High Sierra, Sierra, El Capitan, or Yosemite, it is expected that you will read the guide here, but ask questions at the appropriate Sierra, Yosemite, or El Capitan threads. This thread should be used only for Mojave questions.


What you need

- Lenovo IdeaPad U330/U430/U530 (p or Touch)
- Mojave, High Sierra, Sierra, Yosemite or El Capitan downloaded from the Mac App Store
- 8GB USB stick
- (optional) 32GB USB stick for Lenovo OEM backup
- preferred (optional) Broadcom BCM94352 for native WiFi
- (optional) Atheros AR9280 WiFi (AR5BHB92) for native WiFi (not supported on Mojave)


BIOS settings

To start, set BIOS to Windows 8 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
- USB "deep sleep" is disabled

Note: If you have one of 'p' laptops (with Nvidia), keep it enabled in BIOS. It will be disabled automatically by SSDT-HACK.aml when running OS X.


Preparing USB and initial Installation

Prior to installing macOS/OS X, it is a good idea to create an OEM recovery USB from Windows. If anything goes wrong and you want/need to get back to Windows, you can restore it via the USB. Use the utility provided by Lenovo to accomplish this.

You can also leave Windows intact, but it can get tricky. Read here for more information: http://www.tonymacx86.com/multi-booting/133940-mavericks-windows-8-same-drive-without-erasing.html

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

Special notes:

- Use the latest RehabMan Clover build

- 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 the BCM94352HMB WiFi card already installed. Since the u330 does not have an Ethernet port, BCM WiFi is your only choice. You cannot complete this guide (as written) without internet access.

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

- GenericUSBXHCI.kext is not necessary with this laptop. Do not use it.

- Use the 'createinstallmedia' approach. It works well, and there is little chance for pilot error. This method also gives you a recovery partition.

- Certain USB3 sticks draw too much power to be recognized by BIOS. For example, I have a 64GB PNY USB3 stick that is recognized by BIOS only if I use a powered hub. I have another 16GB Sandisk USB3 stick which is recognized when plugged into the USB3 port directly.

- Use the config_install.plist from the u430 repo: https://github.com/RehabMan/Lenovo-U430-Touch-DSDT-Patch/raw/master/config_install.plist


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 Lenovo u430 repository: https://github.com/RehabMan/Lenovo-U430-Touch-DSDT-Patch

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

Code:
xcode-select --install
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 get a couple of projects from my github.

In Terminal:
Code:
mkdir ~/Projects
cd ~/Projects
git clone https://github.com/RehabMan/Lenovo-U430-Touch-DSDT-Patch u430.git
Now it is time to install some more tools and all the kexts that are required...

In Terminal:
Code:
cd ~/Projects/u430.git
./download.sh
./install_downloads.sh
The download.sh script will automatically gather the latest version of all tools (patchmatic, iasl, MaciASL) and all the kexts (FakeSMC.kext, ACPIBatteryManager.kext, etc) from bitbucket and github. The install_downloads.sh will automatically install them to the proper locations.

Note: My u430 has a Synaptics trackpad. According to some of the feedback in this thread, some of these u330/u430/u530 laptops are coming with an ELAN trackpad instead. I'm not going to link the ELAN trackpad, due to the author's disregard for the open source license, but you can find it on the internet. You will lose much of the keyboard functionality (eg. function keys) present in my setup (brightness keys are accounted for).

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 DSDT/SSDT.

With the current project, no patched DSDT/SSDTs are used. Instead I use Clover hotpatches and a small SSDT called SSDT-HACK.

In Terminal:
Code:
cd ~/Projects/u430.git
make
make install
The 'make' causes the SSDT-HACK.aml files to be compiled (with iasl), the results placed in ./build.

Finally, 'make install', 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 u430 repo.

First, mount the EFI partition:
Code:
cd ~/Projects/u430.git
./mount_efi.sh
Then copy the file:
Code:
cd ~/Projects/u430.git
cp config.plist /Volumes/EFI/EFI/Clover/config.plist
You could also copy the file using Finder.

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.

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


WiFi using BCM94352HMB

At least some BCM94352HMB WiFi cards can work in this laptop, passing the BIOS whitelist. I purchased a BCM94352HMB (Azurewave) and it works great.

The IDs on my broadcom card are: 14e4:43b1:106b:2154. Also reported as working is the same card with IDs: 14e4:43b1:106b:2123.

The ./download.sh and ./install_downloads.sh script have both been updated to install the necessary kexts for BCM94352HMB. Country code may need to be customized for countries other than the US. Refer to the AirportBrcmFixup.kext README on github (google should help you find it).


WiFi using rebranded AR9280

Only supported prior to Mojave. And really Broadcom BCM94252HMB is recommended.

This laptop has a strictly enforced WiFi whitelist, and the BIOS is next to impossible to patch. Although I wrote patches for this BIOS (and they work), implementing the a patched BIOS requires removing the BIOS chip from the motherboard and using a hardware programmer.

Instead of flashing the BIOS to disable the whitelist, we can instead work around the whitelist. It is possible to rebrand an AR9280 (AR5BHB92) as a Lenovo branded AR946x, then implement some tricks to get macOS/OS X to still recognize it as an AR9280.

The recognized Atheros IDs are 168c:0034 17aa:3114. This guide can be used for rebranding: http://www.tonymacx86.com/hp-probook/115110-rebranding-atheros-928x-cards-guide.html. Use the Linux method as the Windows method is near unworkable in 64-bit Windows.

You should also make sure the regdomain is set correctly. See this thread for information: http://www.tonymacx86.com/hp-probook/97428-ar9280-athr-unknown-locale-xx-eeprom-mod.html. The Linux guide is easier to use (again because of security in 64-bit Windows): http://blog.asiantuntijakaveri.fi/2014/08/one-of-my-atheros-ar9280-minipcie-cards.html

Please see this post for background details and links: https://www.tonymacx86.com/threads/lenovo-ideapad-u430-mavericks.121632/page-37#post-917057. Note: At the time that post was written kext binary patches were being used, but now we use FakePCIID.kext. Disregard the information regarding config.plist KextsToPatch.

Although you can use USB WiFi, it is not recommended. The user interface is poor, and it can cause some instability.

Note: Although a rebranded card will work on Linux, it will not work on Windows. You'll need to use USB WiFi for Windows.


Updates to the patch repositories

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

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

In Terminal:
Code:
cd ~/Projects/u430.git
git pull
./download.sh
./install_downloads.sh
make
make install
You will also need to update config.plist as written in "Final config.plist" section in this guide.


What works

I have tested the following features:
- 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 rebranded AR9280 or BCM94352HMB
- Bluetooth (with handoff) using BCM94352HMB
- 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 (may have to set 1000baseT manually to get full speed)
- Mac App Store working
- screen works without flicker (contrary to HP ProBook)
- 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)
- touchscreen (single touch only)

Not tested/not working

The following features have issues, or have not been tested:
- some special Fx keys not working (F7)
- card reader is not working (would require significant development effort, not important to me)


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.

CPU Frequency: Clover identifies the CPU speed (as shown in "About this Mac") incorrectly. On my system (1.8Ghz Core i7-4500u), it shows 2.39Ghz. 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.

Trackpad three finger support: You can configure three finger swipes in SysPrefs->Keyboard->Shortcuts. Instead of pressing keys for a given function, do the three finger swipe (up/down/left/right).

Disable trackpad when using an external mouse: It allows you to disable the built-in trackpad when a USB mouse is plugged in. Just check the box in SysPrefs->Accessibility->"Mouse & Trackpad".

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


Keyboard Mapping

The mapping for Control, Option, and Command are according to the physical layout of the keys on an actual MacBook keyboard, not the labels on the keys. Control=Control, Windows=Option, and Alt=Command. If you want a more PC friendly keyboard layout, use Karabiner (formerly KeyRemap4MacBook).

Special media function keys are mapped as follows:
F1,F2,F3: standard audio controls
F4: F14 (mapped to brightness down by default)
F5: F15 (mapped to brightness up by default)
F6: trackpad on/off toggle
F7: not functional
F8: F18
F9: screen on/off toggle
F10: mirror mode toggle (when HDMI or AirPlay display is connected)
F11: brightness down
F12: brightness up

The function of Fn+F1..F12 and F1..F12 can be changed in SysPrefs->Keyboard.

The PrtSc key initiates a selection-based screen shot.

The Fn key works as standard Apple Fn. You can double tap it to get dictation, for example.


System updates

Before doing an update, it is important to have all components up-to-date as there may be changes required to kexts, ACPI, config.plist, Clover, etc to handle the new update.

First step should be to update to the latest repository.

To do so:
Code:
cd ~/Projects/u430.git
git stash
git pull
./download.sh
./install_downloads.sh
make
make install
Also update Clover to the latest using the Clover installer. Be sure to fix EFI/Clover/kexts, so that only EFI/Clover/kexts/Other is existing. All version specific directories under EFI/Clover/kexts should be removed.

Also update config.plist at EFI/Clover/config.plist to the latest content from the repo. Be sure to retain your own SMBIOS data at config.plist/SMBIOS.

Now you can update via the App Store. Just boot the installer/updater upon restart.

After updating, run ./install_downloads.sh again:
Code:
cd ~/Projects/u430.git
./install_downloads.sh

Updating to High Sierra

As you probably already know, High Sierra (and later) has a new file system called APFS. Boot drives on SSDs will automatically be converted to APFS by the installer.


Problem reporting

Problem reports should be accompanied by various files that allow your progress to be accounted for...

Read FAQ, "Problem Reporting". 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.
 
Last edited:
Joined
Jun 7, 2014
Messages
45
Mac
Classic Mac
Mobile Phone
Hi Rehabman
In the "Do Not Stop Reading" section it referred to additional Audio steps in the Known problems, but I can't seem to find those instructions. I remember having to do something with the audio each update. Please advise.
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
10,362
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,731
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi Rehabman
In the "Do Not Stop Reading" section it referred to additional Audio steps in the Known problems, but I can't seem to find those instructions. I remember having to do something with the audio each update. Please advise.
Fixed.
 
Joined
Mar 10, 2015
Messages
17
Motherboard
Lenovo ideapad u330 touch with Azurwave BCM94352hmb
CPU
i7-4500U
Graphics
HD4400
Mac
MacBook Pro
Mobile Phone
iOS
There are no solutions for booting delay with trim enabled using apfs?

To solve this issue, is the good choice disabling trim?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,731
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
There are no solutions for booting delay with trim enabled using apfs?

To solve this issue, is the good choice disabling trim?
TRIM is disabled by the config.plist provided by the guide.
Enable TRIM if you want, but you'll likely have slower boots as a result.
 
Joined
Mar 10, 2015
Messages
17
Motherboard
Lenovo ideapad u330 touch with Azurwave BCM94352hmb
CPU
i7-4500U
Graphics
HD4400
Mac
MacBook Pro
Mobile Phone
iOS
TRIM is disabled by the config.plist provided by the guide.
Enable TRIM if you want, but you'll likely have slower boots as a result.
Is there no benefit using trim on apfs?
 
Joined
Mar 10, 2015
Messages
17
Motherboard
Lenovo ideapad u330 touch with Azurwave BCM94352hmb
CPU
i7-4500U
Graphics
HD4400
Mac
MacBook Pro
Mobile Phone
iOS
No problems occured after updating to 10.14.1 through automatic(?) update.

Anyway...continuity function is fine but instant hotspot does not work.
 
Top