Contribute
Register

[Guide] Lenovo X250

Status
Not open for further replies.
Joined
Oct 30, 2011
Messages
117
Motherboard
Lenovo x270
CPU
i5-6300U
Graphics
HD 520, 1920x1080
Mobile Phone
  1. iOS
This guide details the installation of macOS Sierra/High Sierra carried out on a Lenovo X250 with the following hardware:
- Core i5-5300U
- Intel HD5500 (ig-platform-id 0x16260006)
- Audio ALC3232
- Wireless&bluetooth card Intel AC...replaced by a Broadcom 94352z first which has no driver for windows. Now using a dw1830 which has drivers for windows 10 if needed.

Will work:
  • PowerManagement
  • Sleep & Wake up
  • Audio HDA + hdmi
  • Mini-DVI output
  • BT4 and wireless with support of Handoff, continuity and session opening with Apple Watch (if intel wireless card replaced). All options are activated but some issues are pending.
  • Full graphics support with luminosity control,QE,...
  • Webcam
  • Messages, FaceTime.
Will not work:
  • SD card reader

Main steps:
  1. Bios update and bios settings
  2. Creation of the USB stick
  3. Installation
  4. Post installation (first reboot) with:
    1. Clover Installation.
    2. DSDT/SSDT patching (common patches, two batteries to one, prepare sound, handoff&airport if BCM94352 card, led blink, Intelbacklight,...)
    3. Patching of the binary AppleIntelBDWGraphicsFramebuffer as KextsToPatch doesn't work.
    4. Audio patching based on smile guide and update of codeccommander
    5. Install the relevant Kexts.
    6. Check USB Injectors.
    7. Define your own SMBIOS in order to get ready for iMessage, FaceTime,...
    8. Reboot and login into iCloud (don't do it before step 4.4)
    9. Sierra common unsolved problems (option, troubleshooting of current common issues)

1. Bios upgrade and bios settings
Update to the latest version available from Lenovo website.
When done, set the following BIOS parameters:
  • USB 3.0 mode: Enabled (under Config/USB)
  • Intel (R) Rapid...: Disabled (under Power); if enabled, the boot process will stuck at the very beginning.
  • Security Chip: Disabled (under Security); if enabled, you will not be able to wake up the system after sleep.
  • Virtualization: Disabled both options (under Security, even if dark=0 into Clover(double belts;-)).
  • Security boot: Disabled (under Security/mandatory to boot other OS than Windows)
  • UEFI/Legacy Boot Priority: set to Both (under Startup)
  • UEFI/Legacy Boot Priority: set to UEFI First (under Startup/in order to use Clover EFI)
  • Define the boot order for priority to USB stick
As Bios settings is a tricky part, attached you will find screenshots for all parameters

2. Creation of the USB stick
Follow the steps as detailed in the tonymacx86 guide.
After installing Clover UEFI version as per above guide, I recommend you to use the attached config file, set of kexts and DSDT/SSDTs patched (available in the archive CLOVER-USB STICK):
  • ig-platform-id defined to 0x12345678 (if not you will get a kernel panic). The full ig-platform-id values are well defined by CPU type here.
  • VoodooPS2Controller uptodate for Sierra.
  • IntelMausiEthernet available for ethernet.
  • USB Injectors.
  • DSDT,SSDTs already patched
  • and in addition all required patches for wireless (if BCM94352 card installed),...
P.S.:
  • In case of unexpected behaviors, remove the DSDT & SSDTs.
  • Use EFI Mounter V3 to mount the EFI partition first and you will get access to the DSDT,...

3. Installation

Restart the laptop with the USB stick and proceed to the installation.
Do not enter your iCloud id/password when asked, SMBIOS must be tuned before that (see step 4.5)

4. Post installation

Reboot by using the usb stick and select your Sierra installation.

4.1 Clover Installation

  • Download and install Clover UEFI as per previous guide for USB stick.
  • Replace config.plist and other folders with the attached files (clover configs.zip).
Your laptop should be operational with this set of config.plist and files. Nevertheless I strongly recommend you to create your own DSDT/SSDTs files.
FYI, the set of KextsToPatch is including BCM94352 patches.If you don't have this card, that should not affect your installation.

4.2 DSDT/SSDTs create your own
A complete guide is available created by RehabMan here.
For that step you have to:
  • Install iasl as explain in the guide.
  • Extract your original DSDT/SSDTs files (I recommend to use F4 at the main Clover screen when booting).
  • Open your EFI partition and go to the folder EFI/CLOVER/ACPI/origin.
  • Remove all files with a name different of DSDT.* SSDT*.
  • Run "iasl -da -dl *.aml"
  • For the rest, only open file with extension .dsl by using MaciAsl (version as defined in the guide).
  • All SSDT* files with a x can be forgotten. They will not be added into the Patched folder of Clover.
When you have all .dsl files, you need to open them and have a look to the content. In that way you will be available to define which one have to be patched and which patches have to be applied.

You will find the DSDT/SSDTs structure of my model into the DSDT-SSDTs.zip file (open the pdf file):
  • File DSDT: all patches available into the folder "patch-files-x250" have to be applied + the following manual mod (in order to refer to SSDT-BATC as external DeviceObj and Notify only the value of BATC in case of state changes):
    • Find and replace every "Notify (...BAT0)" or Notify (...BAT1)" by "Notify (....BATC)"
    • Add line External (BATC, DeviceObj)
    • Add line External (_SB.PCI0.LPC.EC.BATC, DeviceObj)
  • File SSDT-1:
    • Apply patch "4_graphics_Rename-PCI0_VID.txt"
  • File SSDT-3:
    • Find and replace every "Notify (...BAT0)" or Notify (...BAT1)" by "Notify (....BATC)"
    • Add line External (_SB.PCI0.LPC.EC.BATC, DeviceObj)
  • File SSDT-10:
  • Apply patches "4_graphics_Rename-PCI0_VID.txt" & "5_graphics_Rename-B0D3.txt" into the file SSDT-10 and manually find and replace "VID" by "IGPU" and "B0D3" by "HDAU"
Don't forget to :
  • Add the SSDT-BATC.dsl file and compile it. The file is available here.
  • Create your own ssdt.dsl file and compile it (for CPUPowermanagement). Use ssdtPRGen.sh available here.
When all of them are compiled, simply copy and paste the .aml files into the EFI/CLOVER/ACPI/Patched.
You can also edit the variable SortedOrder under ACPI of your file config.plist. This in order to reflect the list of .aml file you have.

4.3 Patch AppleIntelBDWGraphicsFramebuffer with KextsToPatch

Lenovo has protected the Bios, then the DVMT variable can't be modify with EFI shell, the bios can't be modified without some hardware tools...
In order to make working the HD5500, all you need to know is detailed in this guide:
[Guide] Alternative to the minStolenSize patch with 32mb DVMT-prealloc
A brief resume:
  • Add the following patch available into the attached file config-HD5500.plist (credit to RehabMan)
  • start Kext Utility
  • restart
  • change ig-platform-id with the value 0x16260006
  • restart
Another possibility exists by reprogramming the eeprom, here is a guide for people interested. In that case no more patching needed. By using the hardware as specified in the guide and modified BIOS (for the purpose you want as set DVMT pre-alloc,...) you can get IntelGraphics working without any patch.

4.4 Patch Audio based on smile guide and update of codeccommander

It might be needed to install Xcode & their utilities first.
  • Download a copy of https://github.com/shmilee/T450-Hackintosh
  • Open a terminal and go to the folder ALC3232.
  • Type make & sudo make install
  • Download the latest CodecCommander available here.
  • Install the kext with Finder to /Library/Extension (replaced the previous one, this step will ensure a correct management of sound inputs/outputs after wake.)
  • Start Kext Utility to repair the permissions and recreate the kernel-cache. hda-verb is available for debugging purpose only.
4.5 Recommended Kexts

it is apparently recommended to install all Kexts into S/L/E/.
Then I have installed them by using Kext Utility:
  • VoodooPS2Controller: for the trackpad&keyboard. Follow the how to install as two additional files are needed.
  • IntelBackLight: kext for activating the luminosity control (was necessary for Sierra, not sure for High Sierra).
  • Injector USB_Injector_X250.kext: for correct mapping of the USB ports. Use the one I have created as a first step (available in the attached "Kexts.zip") and check if it matches with your config in step 4.6.
  • FakeSMC: The RehabMan fork allows the use of HWMonitor. Move the App HWMonitor to Applications.in
  • IntelMausiEthernet: Ethernet driver with more options than IntelE1000. Compile it or use the one in the attached archive.
  • ACPIBatteryManager: latest version is needed for merging the two batteries into one (not in a hardware way ;-), software method)
  • FakePCIID & FakePCIID_Broadcom_WiFi if BCM94352 card (for wifi).
  • BrcmFirmwareRepo & BrcmPatchRAM2 if BCM94352 card (for bluetooth).

4.6 USB Injectors
Recommended method:
[Guide] Creating a Custom SSDT for USBInjectAll.kext
  • Inject all USB ports for getting an exhaustive overview of available USB ports by installing USBInjectAll.kext and reboot.
  • Start IORegisteryExplorer (the version recommended by RehabMan) and survey your USB ports when plugging and unplugging a usb device. For each port do the same with a USB2 & USB3 device.
  • Register the parameters as per example in my attached files (USB-X250.zip; see the mapping). As we have USB 3 enabled in bios, you can forget EHxx & PRxx.
  • Create your own SSDT (my is attached, name: SSDT-UIAC.dsl), install it into Clover and reboot.

4.7 Define your own SMBIOS

This step will help you to create your unique SMBIOS file. The guide "An iDiot's Guide To iMessage" is really good, follow it and select MacBookAir7,2 or MacBookPro12,1. Both match pretty well with the hardware.

4.8 iCloud configuration

Nothing to explain ;-)
 

Attachments

  • Bios Screenshots.zip
    1.3 MB · Views: 1,892
  • CLOVER-USB Stick.zip
    5.2 MB · Views: 2,096
  • DSDT-SSDTs.zip
    235.7 KB · Views: 1,796
  • Kexts.zip
    2.7 MB · Views: 2,852
  • clover configs.zip
    813 KB · Views: 1,990
  • USB-X250.zip
    4 MB · Views: 1,804
  • TrackPad.app.zip
    1.5 MB · Views: 1,543
  • VoodooPS2Controller.kext.zip
    90.9 KB · Views: 1,226
  • config-HD5500.plist
    672 bytes · Views: 1,393
  • SSDT-UIAC.dsl
    2 KB · Views: 1,297
Last edited:
Wow,

Thank you so much for this guide.

I am awaiting for the arrival for a WiFi card that's compatible. I will test this as soon as I have it.

Again thank you so much for your hard work on this. Truky thankful.
 
Hi @fraisdos125,

Quick quesiton,
  1. Which BIOS version you are using? I am using 1.12 (N10ET33W), is it enough? If no, how did you perform update. Is it straight to latest version or try to update BIOS per increment version available. For example, from 1.12 to 1.15, then to 1.17, etc.
  2. Did you modify your BIOS? If so, can you share your BIOS mods file?
  3. In the BIOS Screenshot, under Config > Display > Total Graphics Memory, you set 512MB. Correct me if I am wrong, this option is nothing to do with DVMT, right? And as workaroud for DVMT, you suggest to patch "AppleIntelBDWGraphicsFramebuffer", right?
  4. Which Clover version you are using? r3899?
  5. Current Sierra version is 10.12.1, and this thread indicates you install beta version. Is there any differences on known bug on sierra?
  6. Can you show me vendor id & product id of your WIFI Card? (I need this to make sure I didn't buy the wrong card)
Apologize if too many questions.
 
Last edited:
Hi @fraisdos125,

Quick quesiton,
  1. Which BIOS version you are using? I am using 1.12 (N10ET33W), is it enough? If no, how did you perform update. Is it straight to latest version or try to update BIOS per increment version available. For example, from 1.12 to 1.15, then to 1.17, etc.
  2. Did you modify your BIOS? If so, can you share your BIOS mods file?
  3. In the BIOS Screenshot, under Config > Display > Total Graphics Memory, you set 512MB. Correct me if I am wrong, this option is nothing to do with DVMT, right? And as workaroud for DVMT, you suggest to patch "AppleIntelBDWGraphicsFramebuffer", right?
  4. Which Clover version you are using? r3899?
  5. Current Sierra version is 10.12.1, and this thread indicates you install beta version. Is there any differences on known bug on sierra?
  6. Can you show me vendor id & product id of your WIFI Card? (I need this to make sure I didn't buy the wrong card)
Apologize if too many questions.
Good day Agungandika,

  1. 1.24: here is the link for the update.
    I assume that Sierra would work no matter if you have the latest version.
    Anyway, always create your own DSDT/SSDTs when updating your BIOS.
  2. No, write protected. This is the reason why I have patched AppleIntelBDWGraphicsFramebuffer.
  3. In the BIOS, this option refers to the maximum theoretical amount of Memory for the Graphic card. Which can be different when checking under Sierra (see attached file "a propos.png).
    If I am right, the DVMT you are talking out is the DVMT prealloc (amount of pre-allocation memory when starting the system). This one has either to be modified in the BIOS, or apply the kextstopatch into clover (which doesn't work for me?) or the kext must be patch to accept other values than expected by macOS.
    Another thing would be to patch the BIOS for real and set DVMT prealloc to the right value. For that you will have to play with this.
  4. Exact, simply use the latest version when you install it.
  5. 10.12.1. The thread refers to a post with a name "...Beta...." but it has been update to create an usb stick with the GM version. Only the command line is little bit different. Have a second look to the article.
  6. See attached. FYI, there is no windows driver for the card I have. When buying yours, take care to select the model with two "grooves", I received one with only one and I had to grind the missing one on the card...

One more point, you still have credits for more questions ;-)
 

Attachments

  • a propos.png
    a propos.png
    68.9 KB · Views: 1,580
  • wireless.png
    wireless.png
    70.8 KB · Views: 1,499
Last edited:
Good day Agungandika,

  1. 1.24: here is the link for the update.
    I assume that Sierra would work no matter if you have the latest version.
    Anyway, always create your own DSDT/SSDTs when updating your BIOS.
  2. No, write protected. This is the reason why I have patched AppleIntelBDWGraphicsFramebuffer.
  3. In the BIOS, this option refers to the maximum theoretical amount of Memory for the Graphic card. Which can be different when checking under Sierra (see attached file "a propos.png).
    If I am right, the DVMT you are talking out is the DVMT prealloc (amount of pre-allocation memory when starting the system). This one has either to be modified in the BIOS, or apply the kextstopatch into clover (which doesn't work for me?) or the kext must be patch to accept other values than expected by macOS.
    Another thing would be to patch the BIOS for real and set DVMT prealloc to the right value. For that you will have to play with this.
  4. Exact, simply use the latest version when you install it.
  5. 10.12.1. The thread refers to a post with a name "...Beta...." but it has been update to create an usb stick with the GM version. Only the command line is little bit different. Have a second look to the article.
  6. See attached. FYI, there is no windows driver for the card I have. When buying yours, take care to select the model with two "grooves", I received one with only one and I had to grind the missing one on the card...

One more point, you still have credits for more questions ;-)

1.24: here is the link for the update.
I assume that Sierra would work no matter if you have the latest version.
Anyway, always create your own DSDT/SSDTs when updating your BIOS.

ok, I will try to use current version of BIOS. And... I will always create my own DSDT/SSDTs, previous hackintosh gave me hard lesson about this. thank you for remind me :)

2. No, write protected. This is the reason why I have patched AppleIntelBDWGraphicsFramebuffer.

Ok, understood.

3. In the BIOS, this option refers to the maximum theoretical amount of Memory for the Graphic card. Which can be different when checking under Sierra (see attached file "a propos.png).
If I am right, the DVMT you are talking out is the DVMT prealloc (amount of pre-allocation memory when starting the system). This one has either to be modified in the BIOS, or apply the kextstopatch into clover (which doesn't work for me?) or the kext must be patch to accept other values than expected by macOS.
Another thing would be to patch the BIOS for real and set DVMT prealloc to the right value. For that you will have to play with this.

Wow, never know before. And yes, DVMT I am talking is DVMT Pre-Alloc, which the only way to make this happens is modify with BIOS. I don't have enough ball to perform that.

4. Exact, simply use the latest version when you install it.
5. 10.12.1. The thread refers to a post with a name "...Beta...." but it has been update to create an usb stick with the GM version. Only the command line is little bit different. Have a second look to the article.

Ok, will follow yours.

See attached. FYI, there is no windows driver for the card I have. When buying yours, take care to select the model with two "grooves", I received one with only one and I had to grind the missing one on the card...

Been looking on eBay and got this one: http://www.ebay.com/itm/282139161446
s-l500.jpg

s-l500.jpg

Ah, have you tried this driver on Windows?
http://support.lenovo.com/id/en/pro...ops/Y50-70-Notebook-Lenovo/downloads/DS100494

Seems that the card is same, Am I wrong?

Again, thank you for your response!
 
Friend for creating USB stick I use windows and guide the creation and made by mac which another procedure to be followed?
 
Friend for creating USB stick I use windows and guide the creation and made by mac which another procedure to be followed?
I am not sure to understand. Are you willing to create the usb stick from Windows?
If it is the case, I do not have any experience.
 
Been looking on eBay and got this one: http://www.ebay.com/itm/282139161446
undefined

Take care, the chip is OK for macOS but the slot/connection looks like to do not be the right one. As specified on eBay, this card could not compact to Lenovo.
I travel to Senegal, then I can't take a picture of my previous Intel card. I recommend you to open your laptop and check the slot ype you have.


I tested thousand of drivers. Doesn't work for the BCM94392z card, check for other one with other extension at the end (not z, something else).
With the z card, the software power doesn't work. Meaning that windows will tell you that the card is switched on what is not the case.
Even by doing a hardware modification (isolation of some pins with tape), I didn't success to force the power on.
Definitively, test with another model than the BCM...Z one
 
Last edited:
Take care, the chip is OK for macOS but the slot/connection looks like to do not be the right one. As specified on eBay, this card could not compact to Lenovo.
I travel to Senegal, then I can't take a picture of my previous Intel card. I recommend you to open your laptop and check the slot ype you have.
Definitely to open my laptop cover back and measuring intel chip size.

I tested thousand of drivers. Doesn't work for the BCM94392z card, check for other one with other extension at the end (not z, something else).
With the z card, the software power doesn't work. Meaning that windows will tell you that the card is switched on what is not the case.
Even by doing a hardware modification (isolation of some pins with tape), I didn't success to force the power on.
Definitively, test with another model than the BCM...Z one

Have you tried with, checking vendor_id, device_id (checking on linux, maybe) then do some modification on .inf driver files on windows and try to -install again?

On T430, I need to patch wifi bios (not my laptop bios) and doing the wrong thing, mixed up vendor id, and such, my wifi is not recognized. but, editing .inf driver files with *wrong vendor_id* could help windows to detect and install wifi card again. and perform patching wifi card with corrent vendor id for lenovo.

if you haven't try, i think i will try this method on Windows.
 
Have you tried with, checking vendor_id, device_id (checking on linux, maybe) then do some modification on .inf driver files on windows and try to -install again?

I fear that will not help. All the drivers will be apparently properly installed telling you that the hardware works properly.
But this is wrong, windows thinks that the card is powered on what is not the case.
 
Status
Not open for further replies.
Back
Top