[Guide] Lenovo Y50 with Clover

Introduction
I've spent a few days working on Hackintosh-ing this computer, and I've gotten it to a state where I can use it for daily use. There isn't much information on how you can Hackintosh this computer out there and how to fix everything to become usable, so I decided to compile my knowledge together and share it. This guide will walk you through creating a working OS X Yosemite and Windows 8.1 dual boot. Now, let's get started...

The Lenovo Y50-70 is a gaming laptop with the following base specifications:
- i7-4710HQ Haswell (4th generation) CPU
- Windows 8.1 64-Bit, installed in UEFI mode
- dedicated NVIDIA GeForce GTX 860M with 2GB VRAM
- integrated Intel HD 4600
- 8GB RAM
- Hybrid 500GB + 8GB Solid State Hard Drive
- Intel Wireless-AC 3160 (with Bluetooth 4.0, supporting Bluetooth LE)
- Realtek RTL8111 Ethernet Card
- ALC283 Onboard Audio
- "Lenovo EasyCamera" webcam



With more higher tier models:
- USB Optical Drive (Lenovo branded, drive is by Hitachi)

There are two types of screen models:
- 15.6" 1920 x 1080 "Full HD" Display (FHD)
- 15.6" 3840 x 2160 "Ultra HD" Display (UHD)

Now, unfortunately, some of the hardware is not compatible with OS X. They are:
- dedicated NVIDIA GeForce GTX 860M (You shouldn't really be using OS X for gaming anyway...)
- Intel Wireless-AC 3160

There will be some additional steps to enable the UHD internal display. As I do not own a UHD model, I cannot give you specific step by step instructions. Read the whole thread, paying more attention to iPlayGuitar and RehabMan's posts for more information.

Onwards to Pre-Installation!!
Pre-Installation

You will need a working Mac/Hackintosh/OS X Virtual Machine to get started.

1. Obtain the Yosemite installer app from the Mac App Store and create an installation USB using
http://hackintoshrizwan.blogspot.in/2015/03/guide-booting-os-x-installer-on-laptops.html

2. In addition when installing kexts when following RehabMan's guide, install ApplePS2ElanTouchpad.kext and RealtekRTL8111.kext. Also, do NOT install VoodooPS2 as it is incompatible with Elan touchpads.

3. Using Clover Configurator, open [USB Installer]/EFI/CLOVER/config.plist.

4. Change Graphics > Inject Intel to off.

5. Download the utilities at the bottom of the post under "Utilities" and copy them to your USB drive.

Now, let's prepare the laptop for OS X.

6. Open Disk Management in Windows (Win + R > diskmgmt.msc) and shrink your Windows8_OS partition to create some space for a OS X partition. You can delete the Lenovo partition (D: drive) to make some room (remember to backup the data stored there!).

7. Create a new volume in the free space formatted to FAT32.

8. Change the Graphics Card to UMA Graphics in the BIOS settings (Hit F2 or use the Novo button). This will disable the GeForce GTX860M, as it is unsupported due to Optimus.
> This is optional as OS X will still boot even with the dedicated graphics card still active as long as you include nv_disable=1 in the boot args.
> I've heard some reports that changing this can actually brick your laptop, so it's up to you if you want to take the risk to save some battery life (as the GTX860M would be off)

Installation

1. Boot the USB Drive by going to the boot menu (Hit F12 or use the Novo button). Use these boot args:
> kext-dev-mode=1 dart=0 nv_disable=1 -v -no-zp

2. Using Disk Utility, erase the FAT32 partition and reformat it with Mac OS Extended (Journaled)

3. Proceed with installation as normal. (No MBR patch needed as the disk is already in GPT format)

4. Reboot into Windows.

Post-Installation

The following will work without any further modification:
- USB Optical Drive
- Lenovo EasyCamera

Part I: Installing Clover to your Hard Drive

Now that we have installed Yosemite to our disk, let's also install Clover to our disk so we don't have to rely on our USB drive.

1. Using your working OS X machine, copy the EFI folder from your Clover USB to another USB drive formatted to FAT32 (there is no NTFS write support in OS X). For the steps below, X: means the actual letter assigned to this new USB drive in Windows.

2. Mount your EFI Partition by opening a Command Prompt as an Admin (Windows Key > type cmd.exe > Right click cmd.exe > Click Run as Administrator).

3. Type the following into the Command Prompt:

Code:
diskpart
select disk 0
select partition 2
assign letter=b
exit
taskkill /f /im explorer.exe
explorer.exe
Now your EFI Partition has been assigned the drive letter B: and made accessible in Explorer.

4. Copy the folder X:\EFI\CLOVER to B:\EFI.

5. Download and install EasyUEFI.

6. In EasyUEFI, click the plus button in the middle.

7. Set the OS Type from Windows to Linux in the top left corner.

8. Set the Name in the top right to OS X.

9. In the bottom right, click Browse and navigate to EFI/CLOVER/CLOVERX64.efi and click OK.

10. Move "OS X" to the top using the button with an Up arrow in the middle.

11. Close EasyUEFI and reboot. Clover has now replaced the Windows bootloader. You can still boot into Windows by selecting the option that says "Boot Microsoft EFI from SYSTEM_DRV" (which should be the first option).

12. Select the Yosemite drive to boot into OS X.

13. Using Clover Configurator, mount your EFI Partition by going to Mount EFI > Mount EFI Partition > Enter your password > Click Continue if you see a disk identifier error

14. Open [SYSTEM_DRV]/EFI/CLOVER/config.plist with Clover Configurator.

15. Generate a MacBookPro11,2 SMBIOS by going to SMBIOS > Click the magic wand > Select the MacBook that is second from the left > From the dropdown box on the left column, select MacBook Pro Retina (11,2).

16. Click both Shake buttons on the right a couple of times to generate a serial number and click OK.

17. Click File > Export Configuration.

18. Go to the "Install Drivers" tab > Select "EFI" from the dropdown in the top right > In the bottom right box, select EmuVariableUEFI so it becomes grey.

19. In the bottom left box, select "NTFS UEFI" so it becomes grey.

Part II: Patching your DSDT

Patching your DSDT will allow you to enable QE/CI (Graphics Acceleration) and various other OS X features. However, first your DSDT needs to be fixed of all errors before you can apply the appropriate patches to it.

1. Obtain your DSDT and SSDT files via Clover and disassemble them with iasl. (see patching DSDT

2. Open MaciASL.

3. Add RehabMan's Laptop DSDT Patch repository by going to MaciASL > Preferences > Sources > + button > Set a name > Set URL as http://raw.github.com/Riz/Laptop-DSDT-Patch/master

4. Also in Preferences, open the iASL tab and switch the compiler from ACPI 4.0 to ACPI 5.0.

5. Click Update iASL to update the compiler.

6. Close Preferences and open up your DSDT.dsl file.

7. Go to Patch and paste the following in the text area that says "Patch text":

Code:
into DefinitionBlock code_regex External\s\(_SB_\.PCI0\.PEG0,\sUnknownObj\) remove_matched;
into DefinitionBlock code_regex External\s\(_SB_\.PCI0\.PEG1,\sUnknownObj\) remove_matched;


into method label _Q1C code_regex ,\sSleep\s\(0x01F4\)\)\)\s\{\} replace_matched begin
))\n
                       {\n
                           Sleep (0x01F4)\n
                       }\n
end;
into method label _Q11 code_regex \^\^\^GFX0\.AINT\s\(One\)\n\s+DerefOf\s\(Index\s\(PLV1,\sLocal0\)\) replace_matched begin
^^^GFX0.AINT (One, DerefOf (Index (PLV1, Local0)))
end;
into method label _Q12 code_regex \^\^\^GFX0\.AINT\s\(One\)\n\s+DerefOf\s\(Index\s\(PLV1,\sLocal0\)\) replace_matched begin
^^^GFX0.AINT (One, DerefOf (Index (PLV1, Local0)))
end;
into method label VPCW code_regex \^\^\^\^GFX0\.AINT\s\(One\)\n\s+DerefOf\s\(Index\s\(PLV1,\sLocal0\)\) replace_matched begin
^^^^GFX0.AINT (One, DerefOf (Index (PLV1, Local0)))
end;
into method label MHCF code_regex And\s\(Local0,\s0x60\) replace_matched begin
And (Local0, 0x60, Local0)
end;
8. Click Apply.

Now you can start patching your DSDT!

9. Apply the following patches (they are listed in the left column) by selecting the patch > waiting a few moments > clicking Apply:
- Fix _WAK Arg0 v2
- HPET Fix
- SMBUS Fix
- IRQ Fix
- RTC Fix
- OS Check Fix
- Fix Mutex with non-zero SyncLevel
- Fix PNOT/PPNT
- Add IMEI
- Haswell LPC
- GFX0 to IGPU
10. Ensure that there are no errors when you click on Compile.

12. Save the file as a "Disassembled ASL File" somewhere safe. Save the file again as an "ACPI Machine Language Binary" in [SYSTEM_DRV]/EFI/CLOVER/ACPI/patched, named "DSDT".

13. Open [SYSTEM_DRV]/EFI/CLOVER/config.plist with Clover Configurator.

14. Ensure that the "DSDT name" text box has "DSDT.aml" in it.

15. Click File > Export Configuration.

Part III: Patching your SSDT

We also need to patch our SSDT for full Graphics Acceleration.

1. Open SSDT-7.dsl from Part II, Step 1. Look for a line with "Device (GFX0)". If it does not exist in the file, look through the other SSDT files until you find a file with that line and use that one instead of SSDT-7.dsl.

2. Apply the following patches:

- GFX0 to IGPU
- Haswell HD4600 Yosemite
- Brightness fix (Haswell)

3. Remove any text in the text area and copy the following patch in:

Code:
into method label _DSM code_regex \"AAPL,ig-platform-id\",\sBuffer\(\)\s\{\s0x06,\s0x00,\s0x26,\s0x0a\s\}, replace_matched begin
"AAPL,ig-platform-id", Buffer() { 0x07, 0x00, 0x26, 0x0D },
end;
4. Click Apply then Close.

5. Ensure that there are no errors when you click on Compile.

6. Save the file as a "Disassembled ASL File" somewhere safe. Save the file again as an "ACPI Machine Language Binary" in [SYSTEM_DRV]/EFI/CLOVER/ACPI/patched, named "SSDT".

7. Open [SYSTEM_DRV]/EFI/CLOVER/config.plist with Clover Configurator.

8. In the ACPI tab, check "Drop OEM".

9. Click File > Export Configuration.

You must complete the next section after completing this section!!


Part IV: Graphics Acceleration (QE/CI)

1. Using Clover Configurator, add the following Kext Patch:

Code:
NAME:
-------------------
AppleIntelFramebufferAzul

FIND:
-------------------
0700260d0103040300000004000020020000500100000060a1070000a1070000000000000000000000000800020000003000000001050b00000400000701000002040b0000040000070100000306030000080000060000001e03000005050900040000000000000000000000000000000000000000000000320000000e000000

REPLACE:
-------------------
0700260d01030403000000020000300100000000000000609914000099140000000000000000000000000800020000003000000001050b00000400000701000002040b0000040000070100000306030000080000060000000200000001010000040000000000000000000000000000000000000000000000320000000e000000

COMMENT:
-------------------
Lenovo Y50 - Intel 4600
OR manually add the following to config.plist under KernelAndKextPatches (if you already have KextsToPatch, only copy from <dict> to </dict> to under <array>):

Code:
<key>KextsToPatch</key>
<array>
    <dict>
        <key>Comment</key>
        <string>Lenovo Y50 - Intel 4600</string>
        <key>Find</key>
        <data>
        BwAmDQEDBAMAAAAEAAAgAgAAUAEAAABgoQcAAKEHAAAA
        AAAAAAAAAAAACAACAAAAMAAAAAEFCwAABAAABwEAAAIE
        CwAABAAABwEAAAMGAwAACAAABgAAAB4DAAAFBQkABAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAA4AAAA=
        </data>
        <key>Name</key>
        <string>AppleIntelFramebufferAzul</string>
        <key>Replace</key>
        <data>
        BwAmDQEDBAMAAAACAAAwAQAAAAAAAABgmRQAAJkUAAAA
        AAAAAAAAAAAACAACAAAAMAAAAAEFCwAABAAABwEAAAIE
        CwAABAAABwEAAAMGAwAACAAABgAAAAIAAAABAQAABAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAA4AAAA=
    ​    </data>
    </dict>
</array>
OR use Piker-Alpha’s AppleIntelFramebufferAzul.sh to manually patch framebuffer 0x0d260007 to match these settings:
- 32MB BIOS-allocated memory
- 19MB frame buffer memory
- 0MB cursor bytes
- 1536MB VRAM
- BCL max and BCL PWM frequency: 5273 Hz

2. Download and unzip the FakePCIID Kernel Extension.

3. Install FakePCIID_HD4600_HD4400.kext and FakePCIID.kext using Kext Utility.

4. Reboot.

Part V: Power Management

1. Open up Terminal and run the following commands:

Code:
curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh

chmod +x ~/ssdtPRGen.sh

~/ssdtPRGen.sh
2. When asked to copy or open the generated SSDT, type n and press enter.

3. In the Finder, press Command + Shift + G and type in ~/Library/ssdtPRGen and click Go.

4. Open ssdt.dsl in that folder with MaciASL.

5. Ensure that there are no errors when you click on Compile.

6. Save the file as a "Disassembled ASL File" somewhere safe. Save the file again as an "ACPI Machine Language Binary" in [SYSTEM_DRV]/EFI/CLOVER/ACPI/patched, named "SSDT-1".

7. Remove NullCPUPowerManagement.kext if you have it! This kext disables power management.

8. Reboot.

Part VI: Audio

1. Download VoodooHDA (use VoodooHDA_V286_MAV.pkg.zip as it includes an installer).

2. Open Terminal and run (type your password in when prompted):

Code:
sudo nano /System/Library/Extensions/VoodooHDA.kext/Contents/Info.plist
3. Press Control + W, type in IGain and press enter.

4. Change:

Code:
<key>IGain</key>
<integer>70</integer>
to

Code:
<key>IGain</key>
<integer>0</integer>
5. Press Control + O then Control + X to return to the bash prompt.

6. Reboot.

7. Open Terminal again and run:

Code:
sudo killall coreaudiod
8. Reboot.

Part VII: OS X Features

1. Battery and Charging Indicator
> No DSDT patching required, the DSDT has all registers under 8 bits by default!!
> Install ACPIBatteryManager.kext with Kext Utility.

And now you have a working OS X installation! Congratulations! There are still a few problems, however...

Problems

- Bluetooth requires fixing, as it used to work but doesn't anymore.

- The computer entering hibernation causes it to reboot. Attempting to load the hibernation image does not work, it also reboots when the progress bar finishes. I'm not sure what's causing this.

> To boot the computer without the hibernation image, press Space when the cursor is over the OS X drive and select "Cancel hibernation wake".

Utilities

Here are the various utilities I mention multiple times throughout the guide:

- MaciASL
- Kext Utility
- Clover Configurator

Change Log

- 1.5.1: (Cleared change log) Update UHD note in Pre-Installation, update SSDT instructions to look for GFX0, added restart of coreaudiod to audio section (was required for the microphone to work with the iPhone -> Mac phone call relay)

I hope this helps! If there is any issues with the guide, feel free to post below.

Post a Comment

2 Comments

  1. Could you share your clover EFI folder? Thank you!

    ReplyDelete
  2. Hello I own the same laptop, could you share your efi folder? PLEASE!

    ReplyDelete