eGPU via OCuLink: Adding a Desktop GPU to a Mini PC

How a 1.5mm cable lets a tiny box punch like a tower, and where the seams show

For years the external GPU story was a sad one: Thunderbolt enclosures that cost as much as a mid-range card, ate a third of your bandwidth in overhead, and dropped the link if you breathed on the cable. OCuLink quietly changed that. It’s an external PCIe connector — no protocol translation, just raw PCIe lanes on a cable — and a growing number of mini PCs now ship with a port. I’ve been running a desktop GPU off a palm-sized machine for a few months, and it’s the first eGPU setup I’d actually recommend.

Advertisement

Thunderbolt eGPUs tunnel PCIe inside the Thunderbolt protocol, which adds latency and caps you at the equivalent of roughly PCIe 3.0 x4. OCuLink doesn’t tunnel anything. An OCuLink SFF-8612 cable carries four PCIe lanes directly. On a mini PC wired for PCIe 4.0, that’s x4 at gen 4 speeds — about 7.9 GB/s, double what a typical Thunderbolt enclosure manages.

It’s still only four lanes, so it isn’t a full x16 desktop slot. But for inference, transcoding, and the vast majority of compute work, x4 gen 4 is plenty — these workloads are rarely bandwidth-bound across the bus. Even for gaming the penalty is in the low single-digit percentages at sensible resolutions.

The hardware is unglamorous: an OCuLink port on the mini PC, an OCuLink-to-PCIe adapter board that the GPU slots into, the cable, and a separate ATX power supply for the card. There’s no fancy enclosure required. My “enclosure” is the adapter board sitting on a piece of MDF next to the mini PC, with a 550W PSU jump-started so it powers on without a motherboard.

This is the bit nobody warns you about. A standard ATX PSU won’t turn on unless its motherboard says so. Without a motherboard, you bridge two pins on the 24-pin connector — the green PS_ON line to any black ground:

24-pin ATX connector, PS_ON (green) → GND (black)
Use a paperclip or, better, a £3 jumper plug.

There are purpose-made jumper plugs for exactly this; buy one rather than relying on a literal paperclip that can fall out. With the PSU on, the GPU has 12V before the mini PC even boots, which is the correct order — the card should be powered when the link trains.

Boot the mini PC with the cable connected and check that the card shows up at full speed. lspci tells you the truth:

$ lspci | grep -i vga
0a:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070]

$ sudo lspci -vv -s 0a:00.0 | grep -i lnksta
        LnkSta: Speed 16GT/s (ok), Width x4 (ok)

Speed 16GT/s is PCIe 4.0; Width x4 is the OCuLink lane count. If you see Speed 8GT/s (gen 3) or a narrower width, your BIOS may have negotiated down — check for a PCIe link-speed setting and make sure the port isn’t sharing lanes with an NVMe slot.

Then confirm the driver is happy:

$ nvidia-smi --query-gpu=name,pcie.link.gen.current,pcie.link.width.current --format=csv
name, pcie.link.gen.current, pcie.link.width.current
NVIDIA GeForce RTX 4070, 4, 4

For an AMD card you’d be looking at the same picture via lspci and a working amdgpu driver — no proprietary blob, which is one fewer thing to break.

Hotplug is the weak spot. OCuLink was never designed to be plugged and unplugged with the system running; the spec allows it electrically, but the Linux PCIe hotplug path for an external GPU is fragile. In practice I boot with the cable connected and leave it connected. Treat it as an internal card that happens to live outside the case, not a laptop dock.

The second seam is display output. If you want the GPU driving a monitor, plug the monitor into the GPU, not the mini PC. Routing the external GPU’s output back through the mini PC’s internal display works on some setups and not others, and it costs you performance. For a headless compute box — my use case — none of this matters; the card does its work and the results come back over the network.

Cable length is the last gotcha. PCIe is fussy about signal integrity; stick to 50cm or shorter OCuLink cables. The 1m ones exist and mostly work, but “mostly” is not a word you want near a PCIe link.

This is for the person who likes the footprint and power draw of a mini PC but occasionally needs real GPU horsepower — local LLM inference, video transcoding, the odd training run, or a compact gaming box. You get most of a desktop GPU’s capability without committing to a desktop’s bulk and idle wattage.

It is not for someone who wants laptop-style “plug in at my desk, unplug and go” convenience; the hotplug story isn’t there yet, and you should plan to leave it bolted in place. It’s also not cheaper than just buying a small tower with a real PCIe slot. But if you already own the mini PC and value the form factor, an OCuLink adapter, a cheap PSU, and a cable turn it into something genuinely more capable for about £60 of parts. After Thunderbolt eGPUs burned me twice, this is the first one I’ve kept.

Advertisement

Related Content

Advertisement
Smarc
Written by Smarc

Founder and editor of vo.rs. A lifelong tinkerer who self-hosts far more than is sensible, hardens Linux boxes for fun, and prods the latest AI tools to see what they can really do. The how-to guides here are the notes Smarc wishes had existed the first time round.