Maze of adapters, software patches gets a dedicated GPU working on a Raspberry Pi
Raspberry Pi owners have always been prone to coming up with elaborate, technically-interesting-but-practically-questionable projects, and Pi enthusiast Jeff Geerling has an exciting new submission to that canon: an old AMD Radeon RX 460 GPU, connected to the Raspberry Pi 5’s PCI Express bus and managing to play demanding titles like Doom 3 (2004) and Tux Racer at a crisp 4K resolution.
Geerling’s maze of adapters, software tweaks, and workarounds is a testament both to his ingenuity and the flexibility of the Raspberry Pi and its ecosystem. By default, the Pi 5 provides a single PCI Express 2.0 lane for use with external accessories (most commonly M.2 SSDs for storage). Geerling uses an M.2 slot on the Pi and then connects it to an external GPU dock using an M.2-to-Oculink adapter. This gets the GPU connected to the Pi’s PCIe bus.
But there were other problems that had to be solved as well. The Pi’s PCIe slot can only provide 5 W of power for external accessories, far short of the 75 W that a desktop graphics card would be able to get from a typical PCIe slot in a motherboard. Geerling needed to provide external power to both the GPU and to the slot itself to make sure that the RX 460 could draw all the power it needed to.