Contribute
Register

[Guide] Getting Nvidia cards to work on Thinkpad P71

Status
Not open for further replies.
Joined
Oct 10, 2018
Messages
32
Motherboard
Supermicro X11DPH-i
CPU
ES-6149
Graphics
GTX 760
Mac
  1. MacBook Pro
I have only tested this on my Thinkpad P71, but I assume the same could apply to P50/51/52 and P70/71/72.
Only P70/P71
As most of you are already know, Thinkpad P series can switch between Nvidia Optimus and Discrete GPU only. It opens the possibility to run Nvidia cards on Hackintosh like what we have been able to do for the desktop. There are a few laptops can do this, mainly Alienware/certain Chinese brand. Thinkpad however, uses very customized/proprietary software. It was unsuccessful when I first tried it, getting stuck at IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0. I think there are a few threads here having the same problem. From what I have seen in their boot log, it's the same error when loading vbios. I figure there must be something wrong with the vbios. I try to use vbios from GPUZ and adding vbios rom to clover, but nothing worked. Then I realize the rom I got from GPUZ is incomplete and missing some important infos when I verify it in NVFLASH. Out of desperation, I watched some tutorials and figured out how to extract Vbios from BIOS I downloaded from Lenovo driver page. I manage to get a dump of all the BIOS file and find all the Vbios for different cards. I flash my P4000 with the vbios I got from BIOS and wallah, it worked! *kinda

Sorry about the rant, I'm too excited after spending more than a week working on this stuff and finally getting it to work.

TL;DR:
Thinkpad Nvidia cards have incomplete hardware Vbios causing communication issues with MacOS.
Flashing Nvidia card with complete Vbios from BIOS dump fixes the issue.

Current issue:
Can't use internal display, it shows a black screen after boot. Hardware acceleration functions normally (tested on VNC)
I assume this is an EDID issue, need more research on EDID patching.

Can anyone help me out?

Update:
Change SMBIOS to iMac 14.2 solves black screen issue. HDMI port tested working fine, not sure about sound since my monitor doesn't have speakers. Will have to do more testing on Thunderbolt3 and miniDP connectors, so far looks promising.

04/07
HDMI audio tested working. Unable to output 4k, only 1080p on my LG OLED, will try EDID fix next.
HDMI output on thunderbolt3 port works, have yet to test eGPU and other tb3 exclusive devices.
04/08
P50/51/52 P72 have soldered GPU, with no separated video bios chip. They read directly from BIOS, as a result, they have a completely different set of problems. I don't think my guide will help:(
04/20
Friend tested on his P71 with P5000, confirm working.
05/28
igpu+dgpu tested working, external monitor uses Nvidia card while internal one using igpu. Softwares like Davinci Resolve and Adobe Premiere are able to utilize discrete gpu even without connecting to an external monitor.
Thunderbolt3 hotplug needs fix.

Walk Through Guide

WARNING: this method requires you to flash your graphics card video BIOS. There is a chance of bricking your graphics card in the process if you don't know what you are doing. Proceed with caution.


1. Install Hackintosh like any other laptop
Recommend following this guide provided by RehabMan: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

2. Flash your Video BIOS in Windows on a different drive
Download Nvflash here:https://www.techpowerup.com/download/nvidia-nvflash/
Go to the directory where you download the software, move the folder to desktop for easier access.
Download vbios.zip in the attachment
Find the vbios of the same model of graphics card you have and move it to nvflash folder
Right click nvflash64 Run as Admin if you are on 64bit system or nvflash if are still using 32. Seriously who use 32bit system these days.
Type in nvflash --save whateveryoulike.rom
Hit Enter

This saves your current vbios in case of bricking
Once it's done
Type in nvflash thenameofvbioswhatwanttoreplacewith.rom (copy paste the name of the vbios you just downloaded, make sure it's the GPU model you currently have)
Hit Enter

3. Replace EFI folder
Download EFI.zip in the attachment. Only compatible with P71, if you are using P70 you might need to make some changes and that requires experience.

Reboot your system into macos with flag nv_disable=1
Make sure you have ethernet connection and cable with you
Mount EFI using Clover Configurator
Replace the EFI folder you currently have with the ones you downloaded.

You will have two options:
(1)
The folder named EFI is the one I'm currently using, which is what I recommend for most use cases.
The internal screen uses Intel integrated graphics, while any external monitors connected through HDMI or DP uses Nvidia graphics card. This allows you to have maximum battery life while having the flexibility to have more horsepower when you need it.
Some software can still utilize discreet GPU even without an external monitor connected. For example, Adobe Premiere and Davinci Resolve (the software I use) can still utilize Nvidia GPU to accelerate video encoding/decoding.
(2) The folder named EFI_1 is there in case you only want to use Nvidia GPU and nothing else.
In order to use EFI_1, you will have to turn off IGPU inside Graphics settings in BIOS.
Rename EFI_1 to EFI if you want to use it.

If you find yourself in a situation where you don't have access to an external monitor and still need the GPU horsepower, then this option makes sense for you. Obviously, this comes with some downsides, mainly worse battery life, and no brightness control for internal display.

4. Download and install Nvidia web driver

The best and easiest way to install Nvidia web driver is to use a script, which you can find it here:
Credit: Benjamin-Dobell

5. All done, enjoy your Hackintosh experience
One more thing, you will need a Hackintosh compatible Wifi card in order to use wifi or Bluetooth.
DW1560 or DW1830 for example.
 

Attachments

  • Screenshot_20190406-023808_VNC Viewer.jpg
    Screenshot_20190406-023808_VNC Viewer.jpg
    169.8 KB · Views: 482
  • Screenshot_20190406-034716_VNC Viewer.jpg
    Screenshot_20190406-034716_VNC Viewer.jpg
    105.7 KB · Views: 491
  • vbios.zip
    758.4 KB · Views: 306
  • EFI.zip
    64.6 MB · Views: 515
Last edited:
I have only tested this on my Thinkpad P71, but I assume the same could apply to P50/51/52 and P70/71/72.

As most of you are already know, Thinkpad P series can switch between Nvidia Optimus and Discrete GPU only. It opens the possibility to run Nvidia cards on Hackintosh like what we have been able to do for the desktop. There are a few laptops can do this, mainly Alienware/certain Chinese brand. Thinkpad however, uses very customized/proprietary software. It was unsuccessful when I first tried it, getting stuck at IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0. I think there are a few threads here having the same problem. From what I have seen in their boot log, it's the same error when loading vbios. I figure there must be something wrong with the vbios. I try to use vbios from GPUZ and adding vbios rom to clover, but nothing worked. Then I realize the rom I got from GPUZ is incomplete and missing some important infos when I verify it in NVFLASH. Out of desperation, I watched some tutorials and figured out how to extract Vbios from BIOS I downloaded from Lenovo driver page. I manage to get a dump of all the BIOS file and find all the Vbios for different cards. I flash my P4000 with the vbios I got from BIOS and wallah, it worked! *kinda

Sorry about the rant, I'm too excited after spending more than a week working on this stuff and finally getting it to work.

TL;DR:
Thinkpad Nvidia cards have incomplete hardware Vbios causing communication issues with MacOS.
Flashing Nvidia card with complete Vbios from BIOS dump fixes the issue.

Current issue:
Can't use internal display, it shows a black screen after boot. Hardware acceleration functions normally (tested on VNC)
I assume this is an EDID issue, need more research on EDID patching.

Can anyone help me out?

Update:
Change SMBIOS to iMac 14.2 solves black screen issue. HDMI port tested working fine, not sure about sound since my monitor doesn't have speakers. Will have to do more testing on Thunderbolt3 and miniDP connectors, so far looks promising.

04/07
HDMI audio tested working. Unable to output 4k on my LG OLED, will try EDID fix next.
HDMI output on thunderbolt3 port works, have yet to test eGPU and other tb3 exclusive devices.
A full step by step tutorial on the whole process would be welcomed!
 
Awesome. Yeah. A quick rundown on how to get the Vbios to be flashed would be great.

Just because no one wants to brick their GPU.
 
I've managed to grab a ROM of the VBIOS for my P50. Were there any changes needed to get it working with macOS?
 
I've managed to grab a ROM of the VBIOS for my P50. Were there any changes needed to get it working with macOS?
Can you post some step by step on this process?
 
From what I gathered online, this won't work with P50/51/52 P72 because they all have soldered GPUs. And like what it said in your linked page, they have no vbios chip so hackintosh has no idea where to read the vbios from. Try load vbios, if that doesn't work, you are out of luck.

If you try to flash vbios with nvflash, you will get an error message saying no EEPROM was found.

I suspect Nvidia mobile cards on hackintosh is only possible when
1. integrated graphics card can be disabled in hardware, meaning the laptop has to have a MUXed design. (which is the case for Thinkpad P series)
2. The nvidia card has MXM or max-Q design where it has its own vbios chip (EEPROM) that are not shared with other devices on board.
 
Last edited:
4k 60hz tested working with thunderbolt adapter. Only 1080p with HDMI port.
 

Attachments

  • 1b65fe4e3812eb04.jpg
    1b65fe4e3812eb04.jpg
    92.7 KB · Views: 310
Status
Not open for further replies.
Back
Top