Jump to content

Help: Fixing Lenovo Y510p Nvidia GT 755M on OS X Yosemite 10.10.2


ahmed_ais
 Share

169 posts in this topic

Recommended Posts

Hello everyone,

 

I have a laptop(Lenovo Y510p) and I have a problem to get its Nvidia card working with OS X Yosemite. As the hardware configuration is unusual, I will make an introduction of the graphics system on this laptop first.

 

Introduction

 

The laptop mentioned above have three (yes three) graphics cards:

  1. Intel HD Graphics 4600 Mobile
  2. NVIDIA GeForce GT 755M (internal / built-in)
  3. NVIDIA GeForce GT 755M (external and connected through ultrabay)

It is important before I go further to describe clearly how these are configured. The laptop is in gaming category and that's why there are two Nvidia cards which are able to work in SLI mode in Windows (I know this is not supported in OS X and I don't ask about it). The laptop can run in three graphics modes (using stock BIOS of course):

  1. UMA (Intel card only): this is achievable when the external card is removed and the UMA option is selected in BIOS so the built-in Nvidia card is disabled.
  2. Dedicated: this is achievable when the external card is removed and the Dedicated option is selected in BIOS so the built-in Nvidia card is enabled. In this scenario, the built-in Nvidia card works somehow (but not exactly) like Optimus with the display being handled by Intel card.
  3. No Intel: this is achievable when the external card is connected so the BIOS will offer no graphics options at all. In this case, the built-in Nvidia card is the main for display and external Nvidia card is only available as a possible way for SLI if activated.

Not every configuration of this laptop comes with external graphics card but for those who have it like I do, the third graphic mode above certainly allow for completely disabling Intel card. Therefor, this thread is NOT to discuss Nvidia Optimus and that OS X will never utilize it, this is a totally different case.

 

The easiest way for me to install and use OS X Yosemite was to remove the external card and disable the internal Nvidia card using BIOS (or SSDT) so I rely only on Intel HD4600 which have a fix for Yosemite. Due to a problem we have with that fix for HD4600 that seems impossible to fix, I decided to ditch the Intel card and to try get Nvidia card working with Yosemite.

 

These are few questions (and their answers) that I hope they clarify the situation:

 

Q: What are you seeking?

A: To enable Nvidia built-in card (which is not Optimus and is fully connected to display) in OS X Yosemite, in the absence of Intel card

 

Q: Even if you successfully did, what do you expect to get from the external card?

A: Nothing. It will not work in SLI mode of course and it is not connected to display.

 

Q: So why do you mention / use this card at all?

A: Because it is the only way to disable Intel card completely without flashing a modded BIOS.

 

Q: Can you prove that using the external card will disable Intel card completely?

A: Definitely yes. Here's a screenshot from MSI Afterburner software with the mentioned configuration:

 

afterburner.png

 

The two Nvidia cards are almost identical and the differences between them can be seen from the image below. There are not much difference between them AFAIK.

 

both.png

 

 

The problem with OS X Yosemite

 

So I connected the external card and so Intel card is disabled and booted to Clover. As expected, Clover read only one card (the built-in Nvidia) and no sign of Intel card. I have no clue why the external card does not appear in Clover but OS X will see it after boot as I will show later on.

clover.png

 

So now I should know the proper Clover configuration for boot-args, graphics injection, and SMBIOS. I am not sure about any of these and it is the main question for this thread.

 

I tried few things to be able to boot and some of them actually worked:

  • Used SMBIOS: iMac 14.2 because one of the macs in this set actually have Nvidia GT 755M so it should be more compatible (frankly Macbook Pro 11.1 worked too).
  • Disabled dropping any ACPI table (i.e. use native tables because Nvidia may not be happy with IGPU patches I used to use before while using the Intel card)
  • Ticked Inject Nvidia (I tried with and without)
  • Ticked Inject EDID (I tried with and without)
  • Set FakeID: 0x10DE0FE9 (other FakeID I tried 0x10DE0FEA and 0x010DE0FE4 and both are for 750M)
  • Add boot-flag: nvda_drv=1, NVidia=False, npci=0x2000 (I tried all combinations)
  • Boot without caches

With some of this combinations I was able to boot OS X with Nvidia running the display:

About.png

Both Nvidia cards were recognised but the built-in card with VRAM = 0 MB the ultrabay card with a whooping VRAM = 2048 MB. This image is for the built-in card (the one connected to display):

Card1.png

This one next is for the external (ultrabay) card:

Card2.png

Now I don't know why the external one have full VRAM but the built-in card have 0 MB since both are almost the same chip. I think, since the external is correctly configured then I should not use any FakeID since it is natively supported by OS X but then I didn't have success to get the card working without any FakeID.

 

I'm sorry for the lengthy thread and all these images but I thought it is better to give all information I have. I would appreciate any help getting this to work correctly. I attached the native ACPI tables and my IOREG (with the mentioned configuration / no Intel).

 

Thanks in advance.

ACPI.zip

IOREG.zip

  • Thanks 1
Link to comment
Share on other sites

The Nvidia 755M (Optimus technology) doesn't work in OS X, only HD 4600.

 

I'm sorry but it seems you just replied to the title. This is not Optimus and I was able to get it working because the card is configured as dedicated. I put all the details in the thread so please give it 5 minutes of your time to read though it. Thanks!

Edit:

 

From Nvidia website: http://www.geforce.com/hardware/notebook-gpus/geforce-gt-755m/description

Boost your notebook performance by up to 6.7x1 with the NVIDIA GeForce GT 755M dedicated graphics. 
Richer visuals and faster gaming for your thin and light notebook driven by the performance efficient NVIDIA Kepler™ architecture - up to 50% faster than the previous generation.2 Preview and create HD video up to 5x faster3 with GPU-accelerated video software. Perfect and share your photos in less than half the time4 with popular applications.
Link to comment
Share on other sites

Ok, read this too - From Nvidia website.

Enjoy great performance and long battery life - automatically - with NVIDIA® Optimus™ technology
The most dependable switchable graphics technology for notebooks5. The performance of dedicated graphics when you need it, battery conservation when you don’t. Perfectly balanced performance and battery life, whether you’re editing a video, surfing the web, or playing a 3D game.

NVIDIA® Optimus™ technology  ;)

Link to comment
Share on other sites

Alright ... tell me what you think about this image from my BIOS:

 

IMAG0359.jpg

 

It doesn't say SG (switchable graphics) but Discrete .. Also if it is Optimus, how am I able to boot with it alone and without Intel which I did?

Link to comment
Share on other sites

Okay, thanks for your time and I will wait.

 

The Optimus technology is only enabled when the Intel HD4600 is enabled. When running with both cards plugged in, the Intel card is disabled and so is Optimus. Instead, only the NVIDIA cards are active. I run my Linux install with both cards plugged in, no Optimus, and no SLI. This can be confirmed at Linux command line by running lspci and seeing no Intel HD 4600 graphics chip on the PCI-e bus when running with both NVIDIAs.

 

Therefore, I think we can run the same configuration in OS X: primary NVIDIA GPU drives the display, drives OS X. Second GPU will only serve to disable the Intel HD4600 and therefore Optimus.

 

We should also consider trying the following NVIDIA OS X drivers, especially the CUDA ones. I run the CUDA drives on my Linux install. They are designed for CUDA work, and one of the main cases for CUDA work is to run one GPU driving your display while other GPUs are doing CUDA/GPGPU work. I think this may be a reason why they could be helpful. However, I haven't confirmed that these drivers support the GT755M (or GT750M). Here are the driver links:

 

http://www.nvidia.com/download/driverResults.aspx/78853/en-us

http://www.nvidia.com/object/mac-driver-archive.html

 

By the way, I happen to have direct access to two Lenovo Y510Ps with dual GPUs, and I also have a couple of buddies and a cousin who own them too. All of them have the dual NVIDIA GPU configuration. I have OS X Yosemite 10.10.2 installed on one of them. 

 

Maybe one thing we can try is to fake the PCI ID of the 2nd GPU so OS X doesn't recognize it. I'm thinking OS X recognizes the 2nd GPU first, initializes it correctly, and leave the primary GPU uninitialized (and hence no VRAM detection). If we were to use Fake PCI ID to disable proper detection of the 2nd GPU, we might force it to initialize the first one properly.

  • Like 1
Link to comment
Share on other sites

Hello!

 

Perhaps injecting an efistring is a possible way to get it working. The topic in the link is a bit old, but with correct inserted properties (real Apple ones) it could work for you: http://aquamac.proboards.com/thread/569?page=1

 

Have fun.

Thanks for this but it is really old.

 

Before doing anything I'm wondering why the external card is correctly identified while the internal card is not knowing that they are the same chip?

Link to comment
Share on other sites

Hello!

 

It is old, but principle should be working til now. No other gfx-injection is needed with correct efi string. GFX-card must be injected at early boottime. All other methods, especially DSDT edits, are coming to late.

 

Can you upload an Ioreg extracted with IORegestryExplorer 2... with your 2 NVDA cards being dedected? I will have a look at it, when i have time.

 

Have fun.

Link to comment
Share on other sites

Hello!

 

It is old, but principle should be working til now. No other gfx-injection is needed with correct efi string. GFX-card must be injected at early boottime. All other methods, especially DSDT edits, are coming to late.

 

Can you upload an Ioreg extracted with IORegestryExplorer 2... with your 2 NVDA cards being dedected? I will have a look at it, when i have time.

 

Have fun.

Thanks for offering help. Unfortunately, I currently have Windows only as I took the opportunity when InsanilyMac was down to focus on my work. I might install OS X in weekend but for now the only Ioreg I have is with IORegistryExplorer-SLRID_v10.6.3 (attached to post #1). If you want a different version I hope someone would offer it on my behalf or I will do next week end.

Link to comment
Share on other sites

Ops, I wasn't expecting that as I read the tweet by InsanilyMac and thought it is a matter of time. I will install OS X again and get the files you requested.

 

Thanks.

You don't multiboot? I have OS X installed and could get you some files if you tell me exactly what you need and how I can get it for you.

Link to comment
Share on other sites

You don't multiboot? I have OS X installed and could get you some files if you tell me exactly what you need and how I can get it for you.

 

I used to dual-boot but currently I run Windows only to focus on my work (in which I only need Windows) and I removed OS X to avoid distraction. As styrian said, he needs a copy of ioreg which you can get by using IORegistryExplorer (read here where to download and how to use it). You need to get this while booting with both Nvidia GPUs so no trace of Intel card. He also asked for an origin IOREG of MBP 11,1 but I don't know exactly what would be different but I would assume he want another IOREG with Intel card while running with MBP 11,1 SMBIOS ... so here's what I think he wants:

  1. Copy of IOREG using IORegistryExplorer (from the link) while booting with both Nvidia GPUs and MBP 11,1 SMBIOS
  2. Copy of IOREG using IORegistryExplorer (from the link) while booting with only Intel GPU and MBP 11,1 SMBIOS

I hope he clarifies if he needs anything otherwise. Thanks for your help and of course for his help and time too.

Link to comment
Share on other sites

Hello!

 

IOREG from real MBP 11,1 would be nice. I want to look at the gfx-properties.

 

Have fun.

 

Hi,

 

I don't know this would be easy to get at least from me as I don't have this laptop.

Link to comment
Share on other sites

Hello!

 

IOREG from real MBP 11,1 would be nice. I want to look at the gfx-properties.

 

Have fun.

I have an Early 2011 model MBP but the system info says MacBookPro8,2... Is this useful?

 

EDIT: Guess not.

 

EDIT 2: In the meantime, what can I get you from the Y510P? IOREG dump with the NVidia cards installed? Does it need to be on SMBIOS MBP 11,1? I have it on iMac 14,2 or whatever the recommended is at this point in time.

 

EDIT 3: I went from a booting OS X 10.10.2 with the config from the other thread to a broken 10.10.2 with this config. Kernel just restarts when it gets to the graphics boot part. I'm using the exact config from the first post. Do I have to do anything extra with ACPI tables except not drop any in my config? The attached ACPI tables file is gone. Any info on how to generate my own?

 

EDIT 4: I also removed the Intel patches I had from the other thread.

Link to comment
Share on other sites

Hello!

 

we should be a bit patient til the attachments have gotten restored. Using the SMB of MBP 11,1 is for sure not a bad idea. Try to set at clover screen temporary the boot argument: nv_disable=1, to make it boot.

 

Have fun.

Link to comment
Share on other sites

I have an Early 2011 model MBP but the system info says MacBookPro8,2... Is this useful?

 

EDIT: Guess not.

 

EDIT 2: In the meantime, what can I get you from the Y510P? IOREG dump with the NVidia cards installed? Does it need to be on SMBIOS MBP 11,1? I have it on iMac 14,2 or whatever the recommended is at this point in time.

 

EDIT 3: I went from a booting OS X 10.10.2 with the config from the other thread to a broken 10.10.2 with this config. Kernel just restarts when it gets to the graphics boot part. I'm using the exact config from the first post. Do I have to do anything extra with ACPI tables except not drop any in my config? The attached ACPI tables file is gone. Any info on how to generate my own?

 

EDIT 4: I also removed the Intel patches I had from the other thread.

 

 

Well, thanks for all this. 

 

I reinstalled OS X using both Nvidia GPU without intel and the installation went smooth as the case with Intel. The system booted normally and I was able to capture copies for IOREG for both SMBIOS's:

I also thought to give the EFI-String idea a try. I followed the guide here but without a success due to not being able to extract VBIOS for built-in Nvidia GPU. I understand it doesn't have a separate VBIOS as with the ultrabay GPU and its VBIOS is integrated into system BIOS. So here's what I was able to get (after suffering):

  • Ultrabay GPU VBIOS: VBIOS_UltrabayGPU.zip
  • System BIOS: (probably contains Windows license key so I prefer not to attach) 

I thought to continue with the mentioned guide above and was able to generate the efi-string xml file (EFI-String.zip) that would be used with Clover but it didn't work either.

 

I'm clueless at the moment ...

Link to comment
Share on other sites

Well, thanks for all this. 

 

I reinstalled OS X using both Nvidia GPU without intel and the installation went smooth as the case with Intel. The system booted normally and I was able to capture copies for IOREG for both SMBIOS's:

I also thought to give the EFI-String idea a try. I followed the guide here but without a success due to not being able to extract VBIOS for built-in Nvidia GPU. I understand it doesn't have a separate VBIOS as with the ultrabay GPU and its VBIOS is integrated into system BIOS. So here's what I was able to get (after suffering):

  • Ultrabay GPU VBIOS: attachicon.gifVBIOS_UltrabayGPU.zip
  • System BIOS: (probably contains Windows license key so I prefer not to attach) 

I thought to continue with the mentioned guide above and was able to generate the efi-string xml file (attachicon.gifEFI-String.zip) that would be used with Clover but it didn't work either.

 

I'm clueless at the moment ...

 

Can you upload your config.plist minus the SMBIOS as well? I tried modifying mine as per your initial post, but I still can't get it to boot. As soon as it goes to switch to graphics mode, it reboots. I'm willing to try messing with the NVIDIA drivers and try messing with FakePCIIID to get the second card to detect incorrectly. I think this might be the way to get the first card to initialize properly. My reasoning is that OS X initializes the UltraBay card correctly and skips the internal because of this.

Link to comment
Share on other sites

 Share

×
×
  • Create New...