The Lone C++ Coder's Blog

The Lone C++ Coder's Blog

The continued diary of an experienced C++ programmer. Thoughts on C++ and other languages I play with, Emacs, functional, non functional and sometimes non-functioning programming.

Timo Geusch

2-Minute Read

I’ve blogged about getting Manjaro Linux to work with my AMD RX 470 before. The method described in that post got my AMD RX 470 graphics card working with the default 4.4 kernel. This worked fine - with the usual caveats regarding VESA software rendering - until I tried to upgrade to newer versions of the kernel.

My understanding is that the 4.4 kernel series doesn’t include drivers for the relatively recent AMD RX 470 GPUs, whereas later kernel series (4.8 and 4.9 specifically) do. Unfortunately trying to boot into a 4.9 kernel resulted in the X server locking up so well that even the usual Alt-Fx didn’t get me to a console to fix the problem.

First, while still on the 4.4 kernel, enable sshd to be able to remote into the system. That’s probably a good idea anyway in case you bork the GUI in new and interesting ways. This is how you enable sshd and start it on Manjaro:

sudo systemctl enable sshd.service
sudo systemctl start sshd.service

At this point, reboot into the newer kernel and ssh into the machine, then use mhwd to remove the VESA video driver:

sudo mhwd -r pci video-vesa
Reboot from ssh and the system came up with X running the Gallium driver:

OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.8.0 / 4.9.13-1-MANJARO, LLVM 3.9.1)

The faffing about with enabling sshd and booting into the 4.9 kernel might not be strictly necessary. Given that I wasn’t able to get 4.4 working with video-amdgpu, this approach looked like a safer route compared to trying to remove video-vesa while still running the 4.4 kernel.

Anyway, it’s nice to be able to run X with actual hardware rendering and acceleration.

Recent Posts



A developer's journey. Still trying to figure out this software thing after several decades.