Adding Kernel-Firmware Blobs (for Radeon HD 4670)

After almost ten years I finally decided to upgrade my system. While my old AMD 5050e is still fast enough for most applications one needs in real life, it is too slow to display an image on some crappy javascript webpage.

As currently all AMD graphics cards are out of stock, my ancient Radeon HD 4670 has to do the job. Usually installing AMD graphics cards is always the same game under linux, especially Funtoo/Gentoo:

  • configure kernel to use radeon as a module
  • add VIDEO_CARDS="radeon" to /etc/make.conf
  • emerge -av @x11-module-rebuild
  • startx and go fragging

In the past there were more steps to it, but the last few times it went just like this. However, now I just could not get the firmware to load. Well, X only told me that the driver did not load. However, dmesg showed the following line:

radeon 0000:22:00.0: Direct firmware load for radeon/R700_rlc.bin failed

Indeed, it did not take long to find the right answer in the Gentoo forums. I simply needed to add some firmware blobs to the kernel, namely

radeon/R700_rlc.bin radeon/RV710_uvd.bin radeon/RV730_smc.bin

First step is to install these via emerge -av sys-kernel/linux-firmware. Then, navigating into /usr/src/linux in and running make menuconfig one has to set

Device Drivers
→ Generic Driver Options
→ [y] Include in-kernel firmware blobs in kernel binary
  ( ) External firmware blobs to build into the kernel binary
  (firmware) Firmware blobs root directory

However, and this is what irritated me first, to finally add the list of blobs to the kernel, one needs to select the entry below, which is ( ) External firmware blobs to build into the kernel binary. Finally one should set, the next entry below, (firmware) Firmware blobs root directory to /lib/firmware. After this you have something like

Device Drivers
→ Generic Driver Options
→ [y] Include in-kernel firmware blobs in kernel binary
  (radeon/R700_rlc.bin ... ) External firmware blobs to build into the kernel binary
  (/lib/firmware) Firmware blobs root directory

Now just rebuild the kernel, do not forget to copy it to your boot partition and then you can go.

Maybe I will need this again when finally new AMD cards are available, we will see.

blogroll

social