Contribute
Register

[Guide] Lenovo U310/U410 using Clover UEFI (10.11)

Status
Not open for further replies.
Joined
Aug 12, 2013
Messages
26
Motherboard
Lenovo U410
CPU
I5 3317U
Graphics
Intel HD4000
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. Android
The Hardware:
Lenovo U410, i5 3317U (1.7Ghz), Intel 4000 graphics.
Replaced the wifi card with Atheros 9285
Replaced 32GB SSD with 120GB Samsung EVO 850


The BIOS:
BIOS is 65CN99WW. I had the whitelist removed to allow it to boot with a different wifi card.

BIOS settings:
USB Legacy - Enabled
SATA Controller - AHCI
iRST Support - Disabled
Entry on S3 critical battery event - Enabled
Memory Remap - Enabled

Boot Mode - Legacy Supp
Boot Priority - UEFI First
USB Boot - Enabled

Set boot order to have USB first. This way you can let the install go unattended, as it takes some time, but will be able to boot back to the right place on its own. Change the order after install.


The USB Installer:
Follow this thread by RehabMan to make the USB installer.

Some details

  1. I used the Clover installer, not CloverGrower
  2. I used createinstallmedia method of putting Yosemite installer on the USB
  3. I put FakeSMC and VoodooPS2Controller to EFI->CLOVER->kexts->Other and delete other folders (10.11, 10.10…)
  4. I used my own config.plist linked at this post but you can try config_HD4000_1366x768.plist


The Install:
Boot from flash drive (INSTALLER). Use USB2 port, no USB3!

First use disk utility to partition the target drive. I am installing to the SSD. Use GUID and HFS+J.
Install to this target drive.

After a couple of reboots you should be able to select the installed drive from Clover. You are now in a (mostly) working El Capitan install.




After install
Install Clover:
You will essentially repeat what we did to put Clover on the USB stick.

Use the Clover installer again, but select the hard drive as your target.
For options select:

  • Install for UEFI booting only
  • Drivers64UEFI
    -- CsmVideoDxe-64
    -- OsxAptioFixDrv-64
  • Install RC scripts on target volume
  • Install clover preference pane

Copy HFSPlus.efi to EFI/EFI/CLOVER/drivers64UEFI
Put the same 2 kexts in Other (FakeSMC, VoodooPS2Controller).
Put ethernet kext in Other as well. RTL8100 - http://www.insanelymac.com/forum/topic/296190-driver-for-realteks-rtl810x-fast-ethernet-series/.

Again make a copy of my config.plist (or config_HD4000_1366x768.plist) in EFI/EFI/CLOVER and rename it to config.plist

Go to Clover preference pane (at Settings) and select “force mount selected ESP” at startup, as we’re going to be needing to do a fair amount in EFI until everything works. You’ll probably want to uncheck this after everything is running smoothly to prevent accidental changes later.

Reboot. When in Clover press F4 (and Fn+F4, as I’m not sure which one gets the job done) to grab a copy of DSDT. This and a number of SSDT files will be placed in EFI/EFI/CLOVER/ACPI/origin. We will need the DSDT file later, but these SSDT files are different than what we will generate in another step later, and I did not end up using them for anything.


Kext install tool:
I used Kext Util
http://mac.softpedia.com/get/Utilities/Kext-Wizard.shtml
Rebuild cache after installing a new kext.


DSDT patching
Patch DSDT.dsl with MaciASL (step 3.) and save as DSDT.aml
Place your DSDT.aml to EFI/EFI/CLOVER/ACPI/patch


  1. download RehabMan’s iasl. https://bitbucket.org/RehabMan/acpica/downloads. Place in /usr/bin
    in terminal type:
    Code:
    sudo mv iasl /usr/bin/iasl

    copy DSDT.aml and any SSDT.aml files from EFI/EFI/CLOVER/ACPI/origin to a new folder on your hard drive.
    In terminal navigate to the folder you just put the aml files in. Then type:
    Code:
    iasl -da -dl *.aml
    This generates the dsl files we will work with in MaciASL. I always patch the dsl file, compile, and then save a copy as both dsl and aml. Compile after every patch you apply. Make copies of various stages of these patches so you can back up a step if something goes wrong. There is no way I know of to undo a patch if you just have one DSDT file you keep making all the changes to. After each issue is dealt with I would replace EFI/EFI/CLOVER/ACPI/patched/DSDT.aml and reboot. You could do all the patches (compiling after each one), install all the kexts, and then reboot, but if something goes wrong you likely will not know what step caused it.


  1. Download patchmatic and MaciASL.
    https://github.com/RehabMan/OS-X-MaciASL-patchmatic
  2. Open MaciASL. Add http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master as a source in preferences.

Clover Config
Download Clover Configurator (Vibrant Edition) http://mackie100projects.altervista.org/download/ for user friendly config.plist edit.

SSD and TRIM

Open terminal and paste:
Code:
sudo trimforce enable


SMBIOS
I use MacBookAir 5,1 because this mac has the same processor (3317U).
You can use SMBIOS from my attached config or generate own by Clover Configurator:
Open Clover Configurator, select SMBIOS -> tap the magic wand and select the Macbook Air. Product name should now be MacBookAir5,2.

For working iMessage/FaceTime read http://www.tonymacx86.com/general-help/110471-how-fix-imessage.html#post671803
(never worked for me)



So now we need to get everything else to work.

Backup config.plist from EFI/EFI/CLOVER. Then import it into Clover Configurator.

Kernel and Kext Patches:
there should be a list of items under Kexts To Patch. These are part of the default config.plist we downloaded and were added by Rehabman. All have disabled: in front of the entry. This means that they are, wait for it, disabled.

Similarly, there are predefined fixes for HDMI audio. There are three entries with
disabled:AppleIntelFramebufferCapri remove the disabled: from in front of them. This should get HDMI audio working when combined with the DSDT patch coming up below.


Base DSDT patches:
"Remove _DSM methods"
"SMBUS Fix"
"OS Check Fix (Windows 8)"
"Add IMEI"
"RTC Fix"
"HPET Fix"
"Fix Mutex with non-zero SyncLevel"


Wifi
Next order of business for me was to get the wifi working, as I have no easily accessed ethernet. Refer to http://www.tonymacx86.com/network/104850-guide-airport-pcie-half-mini-v2-101.html for the specifics. I do have to say that the thread was a little confusing to me. The gist is that there are four ways to get the supported cards working. Use toledaARPT.kext, edit the native kext, patch DDST, or inject SSDT. There are plusses and minuses to each method. To me the easiest was to use Kext Wizard to install toledaARPT.kext. Read up to find the method that works best for you.

After you are done make sure that your network cards are sequential in their BSD names. Go to System Information and look at ethernet under hardware. It should have BSD name en0. Then go to network and click on WiFi (if you replaced your wifi card). It should have interface en1. If there is any skipping of numbers, if your ethernet is something other than en0, it is likely going to cause problems with iMessage. To fix, go to terminal and:
Code:
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
Code:
sudo rm /Library/Preferences/SystemConfiguration/preferences.plist

Restart and they will hopefully be assigned the right BSD names.


USB

  1. Patch DSDT with:
    "7-series/8-series USB"
    “USB3 _PRW(0x0D) and Rename XHC to XHC1”
  2. Add DSDT patches to clover config.plist (included in attached config.plist):
    <dict>
    <key>Comment</key>
    <string>change EHC2 to EH02</string>
    <key>Find</key>
    <data>
    RUhDMg==
    </data>
    <key>Replace</key>
    <data>
    RUgwMg==
    </data>
    </dict>
    <dict>
    <key>Comment</key>
    <string>change EHC1 to EH01</string>
    <key>Find</key>
    <data>
    RUhDMQ==
    </data>
    <key>Replace</key>
    <data>
    RUgwMQ==
    </data>
    </dict>
  3. Install USBInjectAll.kext:
    https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads

These steps enable USB3 support and fix wake issue.


Brightness adjustments

  1. Patch DSDT with:
    "Brightness Fix (ACPI 100)"
  2. install ACPIbacklight.kext: https://bitbucket.org/RehabMan/os-x-acpi-backlight/downloads
  3. For working brigthness keys patch DSDT with:
    Code:
    into method label _Q71 replace_content
    begin
    // Brightness Down\n
        Notify(\_SB.PCI0.LPCB.PS2K, 0x0205)\n
        Notify(\_SB.PCI0.LPCB.PS2K, 0x0285)\n
    end;
    into method label _Q70 replace_content
    begin
    // Brightness Up\n
        Notify(\_SB.PCI0.LPCB.PS2K, 0x0206)\n
        Notify(\_SB.PCI0.LPCB.PS2K, 0x0286)\n
    end;


With these steps I have full brightness range which this laptop support.


Sound

  1. Patch DSDT with:
    “audio_HDEF-layout12”
    "IRQ Fix"
  2. Install attached AppleHDA_20672.kext
  3. Add kexts patch ( (included in attached config.plist). Open /EFI/EFI/CLOVER/Config.plist in TextEdit. Look for the section with KextsToPatch and paste:
    <dict>
    <key>Name</key>
    <string>AppleHDA</string>
    <key>Comment</key>
    <string>Expect 2 matches</string>
    <key>Find</key>
    <data>hBnUEQ==</data>
    <key>Replace</key>
    <data>blDxFA==</data>
    </dict>
    <dict>
    <key>Comment</key>
    <string>El Capitan Sound Patch</string>
    <key>Find</key>
    <data>
    gxnUEQ==
    </data>
    <key>Name</key>
    <string>AppleHDA</string>
    <key>Replace</key>
    <data>
    AAAAAA==
    </data>
    </dict>


Battery

  1. Install ACPIBatteryManager.kext:
    https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads
  2. Patch DSDT with battery_Lenovo-Ux10-Z580


HDMI
Patch DSDT with graphics_HD4K_low


Power Management (SSDT)

  1. Generate SSDT. Go to https://github.com/Piker-Alpha/ssdtPRGen.sh and follow the ReadMe
  2. Copy to /EFI/EFI/CLOVER/ACPI/patched/SSDT.aml
  3. Open Clover Configurator. Check Drop OEM under ACPI


This guide is updated copy of http://www.tonymacx86.com/yosemite-...e-lenovo-u310-u410-yosemite-using-clover.html Thanks to lazarus, who is author of original guide.
Thanks to RehabMan, who is nearly omnipresent on these forums.

 

Attachments

  • kexts.zip
    240.3 KB · Views: 1,297
  • SSDT-i5_3317U.aml.zip
    681 bytes · Views: 885
  • DSDT.zip
    51.1 KB · Views: 1,043
  • gynekologs_config.plist.zip
    1.6 KB · Views: 1,189
Last edited:
The Hardware:
Lenovo u10, i5 3317U (1.7Ghz), Intel 4000 graphics.

"Lenovo u10" seems like a typo.

[*]Add DSDT patches to clover config.plist (included in attached config.plist):
<key>Comment</key>
<string>change _OSI to XOSI</string>

Please note that _OSI->XOSI patch requires SSDT-HACK.aml that implements the XOSI method.

Unpredictable results (calls to XOSI [formerly _OSI] will cause ACPI abort) otherwise.
 
"Lenovo u10" seems like a typo.



Please note that _OSI->XOSI patch requires SSDT-HACK.aml that implements the XOSI method.

Unpredictable results (calls to XOSI [formerly _OSI] will cause ACPI abort) otherwise.

Guide updated. Thank you for corrections and all your work for us!
 
Good Job!
Work for me!

I have a strage issue

My laptop work well with AR9280 and AR9285, but don't wont power up with AW-CE123H.
When i put in the new card a Azurewave AW-CE123H into the slot and press the power button nothing happend, i can't turn on the laptop.

 
Good Job!
Work for me!

I have a strage issue

My laptop work well with AR9280 and AR9285, but don't wont power up with AW-CE123H.
When i put in the new card a Azurewave AW-CE123H into the slot and press the power button nothing happend, i can't turn on the laptop.


Did you patch BIOS to disable/remove the WiFI whitelist implemented by BIOS?
 
Also putting the tape in 20 and 51 pin the laptop don't work

It seems a power issue

Could be a defect in the device you've installed. Or it is installed incorrectly...
 
"Remove _DSM methods" patch when compiled gives me the following error

line 11867
code 4096
message syntax error, unexpected $end

where have i gone wrong? thanks
 
"Remove _DSM methods" patch when compiled gives me the following error

line 11867
code 4096
message syntax error, unexpected $end

where have i gone wrong? thanks

Not possible to tell when you don't provide the files involved.
 
Status
Not open for further replies.
Back
Top