Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

dosdude1

macrumors 68030
Original poster
Feb 16, 2012
2,797
7,439
UPDATE:

The solution detailed below is more or less out of date at this point, as I have recently developed a custom gMux IC firmware that not only permanently disables the AMD GPU, but also retains full native software-controlled display backlight brightness. Documentation explaining the process of flashing my custom firmware can be found here.

-----------------------------------------------------------------------------------

Recently, I figured out a very good solution to PERMANENTLY disable the dedicated AMD video card on a 2011 15"/17" MacBook Pro (MacBookPro8,2/8,3)! For those of you who don't know, MacBook Pros that utilize dynamic GPU switching between a dedicated GPU and integrated GPU use an IC known as the "gMux" chip. This is simply an off-the-shelf micro-controller, programmed with special firmware that switches active GPUs on-the-fly in a MacBook Pro system. This IC has 3 sets of LVDS lines connecting to it: The LVDS output lines from the dedicated GPU, the LVDS output lines from the integrated GPU, and the LVDS lines connecting to the connector for the display. In order to accomplish dynamic GPU switching, all this IC does is, when told to by the system, routes the correct set of LVDS lines to the display's LVDS output on the logic board.

In order to permanently keep the dedicated GPU disabled, there are 2 options:

- Option A, which will be detailed below, is to hard-wire the LVDS output lines from the integrated graphics straight to the lines connecting to the display.
- Option B would be to re-program the gMux IC (which is simply a Lattice LFXP2 FPGA), with a custom firmware to disable the GPU switching functionality. I may experiment with this in the future, but doing so requires special hardware that I don't have. This would, of course, be the optimal solution, though. EDIT: I have now done this, and it works perfectly! More details can be found by watching my video demonstrating my custom gMux IC firmware.

Performing the Modification ("Option A")

Before I get started with the explanation, I just want to make it clear this this is a VERY tedious modification, and requires precision soldering equipment. Use of a microscope is recommended.

To begin, here is a brief look at the schematic, and the main premise of this mod. In the following pictures, you can see how the LVDS data lines appear for both the integrated graphics output, dedicated graphics output, and the LVDS output for the display (EG for dedicated GPU, IG for integrated GPU, and CONN of course for connector). You can see how this data line corresponds with each set of LVDS lines. There are 12 total LVDS lines (6 pairs).

Screen Shot 2018-08-25 at 9.39.48 PM.png Screen Shot 2018-08-25 at 9.40.06 PM.png Screen Shot 2018-08-25 at 9.43.05 PM.png

In order to perform this modification, the first thing that needs to be done is to remove the gMux IC. EDIT: Do NOT remove the gMux IC. After further experimentation, I found that leaving it in place will allow you to achieve full graphics acceleration WITHOUT flashing the system firmware at all. Simply proceed with the wiring, with the gMux IC in place.

Once the chip is removed and the pads are cleaned, each LVDS data line from the LVDS_IG side needs to be connected to its corresponding data line on the LVDS_CONN side. Of course, to do this, the use of small bodge wires is required. I used 0.1MM jumper wire (which can be purchased here). A wire needs to be used to connect each IG data line to its respective point on the CONN side.

Here is a wiring diagram that will help you do this very easily. This one is for a 15" machine, but I will update this post with the 17" one once I make it.

2011-15-inch-gMux-bypass.jpg

Once all the data lines are soldered properly, there are still a couple more lines that need to be soldered. We'll start with the clock lines. If you look on the schematic, you will notice that there is one set of clock lines on the LVDS_IG side (LVDS_IG_A_CLK), but 2 sets on the LVDS_CONN side (LVDS_CONN_A_CLK and LVDS_CONN_B_CLK). All you need to do in this instance is connect the A_CLK pair from the IG side to the A_CLK resistor pair on the CONN side. Then, simply connect the A_CLK pair to the B_CLK pair on the CONN side as well.

The next thing we need to do is pull the LVDS_DDC_SEL_IG rail high. To do this, all you need to do is connect the high side of this rail's pulldown resistor (R6982) to the PP3V3_S0 rail. I connected it to a capacitor near the backlight IC (C9711), as it was the easiest and closest source of PP3V3_S0 to that point of the board. This routes the necessary LVDS DDC clock lines to the integrated GPU.

The last few things we need to wire up are the enable rails for the LCD backlight and LCD panel power, as well as the PWM signal for the backlight. The first wire simply needs to bridge the following rails: LCD_PWR_EN, LVDS_IG_PANEL_PWR, and LCD_BKLT_EN.

The last wire will be used to wire the backlight PWM signal. The purpose of this signal is to control the backlight brightness level. Now, normally, the PWM signal is generated by the gMux IC. However, since the gMux IC is no longer in place, it cannot provide this signal (and even if you were to leave it in place, it still would not be able to provide this signal. I may be wrong on this, but feel free to test if you want.) As such, we will simply be wiring this rail to the LVDS_IG_BKL_ON rail. Unfortunately, what this means is that the backlight will remain at a fixed brightness, and be uncontrollable from the OS.

UPDATE: I have finished working on a new solution for backlight brightness control! You can read about, and see this modification in action here.

Finally, once all that is wired up, the system should be good to go! The final product will look something like this:

IMG0007.jpg

Last Step

After all your wiring is complete, you will need to cut power to the dedicated GPU, otherwise it will simply produce waste heat. To do so, all you need to do is remove the resistor that supplies power to the GPU VCORE regulator IC, R8911.

At last, once all that is complete, you are now done! You will now have a fully working 2011 15" or 17" MacBook Pro, running off ONLY integrated graphics! No OS X modifications are necessary, and it is not reliant on any NVRAM variable (obviously). This, short of making custom firmware for the gMux chip, is the BEST solution for rectifying the defective AMD GPU issue on these machines. The only issues are the lack of brightness control as mentioned earlier, and the external display port will not work. Other than that, though, everything works perfectly!

I have a video showing the mod in detail here.

IMG_7865.jpg
 
Last edited:
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
Very cool mod and lots of detail.

Not sure why I would want to disable the dGPU other than for the learning aspect.
 
Whats the difference in functionality to the long thread about a software solution without the need of soldering?
 
Whats the difference in functionality to the long thread about a software solution without the need of soldering?
That solution will require you to repeat the whole process every time you do an OS update, and when you reset the PRAM. It also requires that all AMD kexts be deleted from Mac OS. Yes, it works, but it is not a permanent solution like this is.
 
I had my 2011 15” MBP reballed a little over three and a half years ago. It finally gave out, the same repair shop did a hardware bypass of the dgpu a few weeks ago for free. Not being a tech guy at all, it sounded similar to Option A above, obviously I will never know for sure.

On the downside I have no brightness control (as the OP stated) and the no sleep software I used to use when I closed the lid is now useless, as the screen would stay on. Occasionally when I edit photos in Aputure 3 the screen goes wonky, but comes back.

On the plus side, I’ve got my MBP back and I’m keeping it until it dies :)
 
  • Like
Reactions: ASentientBot
That solution will require you to repeat the whole process every time you do an OS update, and when you reset the PRAM. It also requires that all AMD kexts be deleted from Mac OS. Yes, it works, but it is not a permanent solution like this is.

Very cool mod, dude

IMO, if your mod doesn't enable the output port, not worth it

Out there is a script which take 1 minute to run.
Just boot in single user mode and type "bash roxy"
And with the bash roxy, you actually have backlight control...

BTW, there is no need to delete the AMD kexts if you remove the R8911
 
Last edited:
Very cool mod, dude

IMO, if your mod doesn't enable the output port, not worth it

Out there is a script which take 1 minute to run.
Just boot in single user mode and type "bash roxy"
And with the bash roxy, you actually have backlight control...

BTW, there is no need to delete the AMD kexts if you remove the R8911
Do you have a link to this?
 
Dosdude1, where are you getting those cad layouts of the pub and components? Only someone who works for Apple and has ten actual gerber/cadence files would be able to produce such things. You don’t have to answer, I guess.

But good work. You must have access to the actual design schematics (none of which you’ve posted). Layouts are not schematics (not to me, anyway).

But keep it up. Too bad we can’t keep dimming. Too bad there isn’t an easier way.
 
  • Like
Reactions: ASentientBot
Dosdude1, where are you getting those cad layouts of the pub and components? Only someone who works for Apple and has ten actual gerber/cadence files would be able to produce such things. You don’t have to answer, I guess.

But good work. You must have access to the actual design schematics (none of which you’ve posted). Layouts are not schematics (not to me, anyway).

But keep it up. Too bad we can’t keep dimming. Too bad there isn’t an easier way.
I used the schematics for the board. I actually had a copy linked in the OP, but I had to remove it due to MacRumors forum rules that I wasn't aware of. However, the schematics can easily be found by Googling. The 15" board is an 820-2915, and the 17" board is an 820-2914.
 
Just a quick update: I've found that performing this modification, but leaving the gMux chip in place, gets the system working with full graphics acceleration without needing to flash the system firmware. I have updated the OP to reflect this, along with a slightly revised wiring diagram.
 
  • Like
Reactions: Jhonjhon236
I recently used an eBay service to replace the failed GPU in my 2011 17" MBP, for about $160. It is working so far, so people might consider that as an alternative.

<https://www.ebay.com/itm/Apple-MacBook-Pro-A1286-A1297-New-Graphics-Chip-Replacement-Service/261749033541?ssPageName=STRK:MEBIDX:IT&_trksid=p2057872.m2749.l2649>
It will fail again in the future. I've replaced these GPUs myself, and believe me, they WILL fail again. AMD never made a revised chipset that wasn't defective, which is the main reason why.
 
Hi, dosdude1

I have tried your solution on Late 2011 MacBook Pro 15 with HiRes Mate Display.
Unfortunatelly it doesn't work for me.
I connected all LVDS lines, Removed R8911 to disable GPU and connected enable lines for LCD anf Backlight.
I get the image, but no backlight. During boot I get small rectangles on the screen and soon afterwards kernel panic and reboot. I made some measurements:
• LVDS_DDC_SEL_IG gives me only 2.5V when connected to PP3V3_S0
• bridged rails: LCD_PWR_EN, LVDS_IG_PANEL_PWR, and LCD_BKLT_EN get only 0.7V (hence no backlight). Without bridge VDS_IG_PANEL_PWR gives me 3.3V after connecting one of LCD rails it drops to 2.5V (I get backlight if it is LCD_BKLT_EN) and with both to 0.7 V (no backlight)

any idea?
 
Hi, dosdude1

I have tried your solution on Late 2011 MacBook Pro 15 with HiRes Mate Display.
Unfortunatelly it doesn't work for me.
I connected all LVDS lines, Removed R8911 to disable GPU and connected enable lines for LCD anf Backlight.
I get the image, but no backlight. During boot I get small rectangles on the screen and soon afterwards kernel panic and reboot. I made some measurements:
• LVDS_DDC_SEL_IG gives me only 2.5V when connected to PP3V3_S0
• bridged rails: LCD_PWR_EN, LVDS_IG_PANEL_PWR, and LCD_BKLT_EN get only 0.7V (hence no backlight). Without bridge VDS_IG_PANEL_PWR gives me 3.3V after connecting one of LCD rails it drops to 2.5V (I get backlight if it is LCD_BKLT_EN) and with both to 0.7 V (no backlight)

any idea?
Thanks for the info, I actually just tried this mod on another system, and had the exact same issue. I got it working by revising the wiring like so:

- Connect LVDS_IG_BKL_ON to LCD_BKLT_EN
- Connect LVDS_IG_PANEL_PWR to LCD_PWR_EN
- Connect PP3V3_S0 to LCD_BKLT_PWM

After making these changes, it should turn the display and backlight on, and work normally. I'll update the wiring diagram to reflect these changes.
 
  • Like
Reactions: bitshovler
Thanks for the info, I actually just tried this mod on another system, and had the exact same issue. I got it working by revising the wiring like so:

- Connect LVDS_IG_BKL_ON to LCD_BKLT_EN
- Connect LVDS_IG_PANEL_PWR to LCD_PWR_EN
- Connect PP3V3_S0 to LCD_BKLT_PWM

After making these changes, it should turn the display and backlight on, and work normally. I'll update the wiring diagram to reflect these changes.

I pmed you about this thread. Just wanted to let you know.
 
Thanks for the info, I actually just tried this mod on another system, and had the exact same issue. I got it working by revising the wiring like so:

- Connect LVDS_IG_BKL_ON to LCD_BKLT_EN
- Connect LVDS_IG_PANEL_PWR to LCD_PWR_EN
- Connect PP3V3_S0 to LCD_BKLT_PWM

After making these changes, it should turn the display and backlight on, and work normally. I'll update the wiring diagram to reflect these changes.

Thanx dosdude1

it works now, but I still get screen with artefacts (see attachment) after a while following a restart.
then it doesn't boot unless I do SMC reset first and then it boots again.
 

Attachments

  • IMG_2879.jpg
    IMG_2879.jpg
    3 MB · Views: 5,659
Thanx dosdude1

it works now, but I still get screen with artefacts (see attachment) after a while following a restart.
then it doesn't boot unless I do SMC reset first and then it boots again.
I'd check your wiring... You probably have some of the LVDS lines connected incorrectly.
 
I'd check your wiring... You probably have some of the LVDS lines connected incorrectly.

I have checked them at least 5 times... It is strange that it works perfectly for a while and then it happens.
I have 3 more MacBook Pros like this one. I will try another one and we'll see if it is the same issue.
 
Thanx dosdude1

your solution works... I applied it to 4 MacBook Pros allready.
The first one had graphic artefacts due to bad RAM slot.
There is a russian version on Youtube which is slightly different and also works.
I maneged to merge both of them to make it as simple as possible without the need to take out the logicboard.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.