MacBook Pro: External Display on Ubuntu Without the dGPU
Reviving the 2011 MacBook Pro: External Display on Ubuntu Without the dGPU
If you’ve read my previous post on repairing the 2011 MacBook Pro GPU failure, you’ll know the story all too well — the infamous AMD Radeon dGPU failure that left thousands of otherwise perfect machines effectively useless.
I’d already disabled the faulty AMD GPU at the firmware level and forced Ubuntu to use the integrated Intel HD 3000 graphics. That works brilliantly for most things — until you need an external monitor.
The mini DisplayPort on these models is wired only to the discrete GPU, which means once the AMD chip is disabled, the port goes dead. No amount of software trickery will bring it back to life — the connection simply doesn’t exist anymore.
But that’s not the end of the road. Thanks to a simple USB DisplayLink adapter and a bit of Linux know-how, we can get full dual-monitor functionality again — no soldering, no GPU reflowing, and no magic smoke.
The Problem
MacBook Pro model: 2011 15-inch (MacBookPro8,2)
Issue: Discrete AMD GPU failure
Workaround: Disable AMD GPU, use Intel graphics only
Result: No working mini DisplayPort
For years, that meant living with just the internal display. But when I installed Ubuntu 24.04 LTS, I discovered a new path forward — DisplayLink.
The Solution: DisplayLink USB Graphics
DisplayLink adapters work by compressing the display output over USB and decoding it on the adapter’s built-in chip, then sending it to your monitor via HDMI, DVI, or DisplayPort.
I used the StarTech USB32HDPRO, though almost any DisplayLink-based USB 3.0 adapter should work just as well.
What makes DisplayLink perfect for this situation is that it doesn’t depend on the GPU hardware routes inside the MacBook. It just needs a USB port — and those are still alive and well.
Installing the DisplayLink Driver on Ubuntu 24.04
Plugging in the adapter won’t immediately do anything. You’ll need to install the official DisplayLink Linux driver.
Step 1 — Download the Driver
Go to DisplayLink’s official driver page and grab the latest .zip
package for Ubuntu.
Extract it, then in your terminal run:
cd ~/Downloads/DisplayLink* sudo ./displaylink-installer.sh install
When it finishes, reboot your MacBook:
sudo reboot
Step 2 — Plug In the Adapter
After rebooting, plug your DisplayLink adapter into a USB 3.0 port and connect your external display.
If everything’s gone well, your external monitor should come to life — but it’ll probably mirror your internal screen by default. Let’s fix that.
Step 3 — Automatically Extend the Display
To make Ubuntu automatically detect and extend your DisplayLink screen every time it’s plugged in (or when you log in), we can use a small shell script.
Create a new file:
sudo nano /usr/local/bin/displaylink-autosetup.sh
Paste this inside:
#!/bin/bash # displaylink-autosetup.sh — Automatically extend desktop when DisplayLink screen is detected sleep 8 # Wait a few seconds for the DisplayLink driver to load MAIN_DISPLAY=$(xrandr --query | grep " connected" | grep -v "HDMI-" | awk '{ print $1 }' | head -n 1) DL_DISPLAY=$(xrandr --query | grep " connected" | grep "HDMI-" | awk '{ print $1 }' | head -n 1) if [ -n "$DL_DISPLAY" ] && [ -n "$MAIN_DISPLAY" ]; then xrandr --output "$DL_DISPLAY" --auto --right-of "$MAIN_DISPLAY" echo "DisplayLink screen ($DL_DISPLAY) extended to the right of $MAIN_DISPLAY" else echo "No DisplayLink display detected or main display missing." fi
Save and exit (Ctrl + O
, Enter
, Ctrl + X
), then make it executable:
sudo chmod +x /usr/local/bin/displaylink-autosetup.sh
Step 4 — Run It Automatically on Startup
Ubuntu’s “Startup Applications” tool can handle this easily.
If it’s not already installed:
sudo apt install gnome-startup-applications
Then launch it:
gnome-session-properties
Click Add →
Name: DisplayLink Auto Setup
Command: /usr/local/bin/displaylink-autosetup.sh
Comment: Automatically extend DisplayLink screen
Step 5 — Run It After Sleep/Wake (Optional)
If you often close your lid or suspend the MacBook, add this small script so it re-applies after waking:
sudo nano /lib/systemd/system-sleep/displaylink-resume.sh
Paste this in:
#!/bin/bash case $1 in post) export DISPLAY=:0 export XAUTHORITY=/home/$USER/.Xauthority /usr/local/bin/displaylink-autosetup.sh ;; esac
Then:
sudo chmod +x /lib/systemd/system-sleep/displaylink-resume.sh
Now whenever your MacBook wakes up, it’ll re-detect the DisplayLink monitor and extend it automatically.
The Result
After this setup:
Ubuntu boots using the Intel integrated GPU only
The DisplayLink adapter provides a second monitor via USB
The display layout automatically restores at login or wake
No reliance on the failed AMD dGPU
Performance is perfectly usable for web, office work, and even lightweight development. You won’t be gaming or editing 4K video on it — but for daily use, it’s an elegant fix that keeps these old machines alive and productive.
Final Thoughts
This 2011 MacBook Pro might have been written off years ago by Apple, but with Ubuntu and a little Linux ingenuity, it’s still a fully functional laptop in 2025 — complete with dual monitors.
In true Apple Geek fashion, this is about more than saving an old Mac — it’s about understanding and adapting the hardware to keep it useful long after the official support has ended.
If you’re following this series, next time I’ll show how to fine-tune power management and cooling on these Intel-only 2011 models to make them run cooler and quieter under Linux.