Graphics, GPU & Display

AMDGPU cannot load a required firmware file

A missing AMD firmware blob can prevent acceleration or early display setup; check the exact requested filename and the initramfs contents.

On this page
  1. Symptoms & scope
  2. Possible causes
  3. Diagnose safely
  4. Evidence-guided next steps
  5. References & review
  6. Related problems

Symptoms & scope

  • Low-resolution fallback console or no accelerated desktop after boot.
  • Kernel requests an amdgpu firmware filename and reports error -2.

Relevant environment

Linux systems loading amdgpu, particularly after adding a newer GPU or updating the kernel independently of firmware packages.

Recognizable messages (synthetic examples)
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/example_smc.bin failed with error -2

Error -2 means the file was unavailable at request time. Other codes can mean permission or format problems; check the complete code and subsequent initialization, since optional requests may have working fallbacks.

Possible causes

These are possible explanations, not a confirmed diagnosis. Several independent faults can coexist.

  • The requested blob may be absent from the firmware package or early boot image.
  • A kernel needing newer firmware may have been installed without a matching distribution firmware update; -2 means lookup failed, not that the GPU is broken.

Diagnose safely

Run one command at a time in the relevant session. Read the explanation first. Uppercase placeholders need your own values; tools and privileges vary by distribution. These commands are displayed here and never executed by the website.

Check 1

Read the actual requested path; kernel journal access can require administrator rights.

journalctl -b -k --no-pager --grep='amdgpu.*firmware|Direct firmware load'

Interpret the result: A path beginning amdgpu/ with error -2 points to an unavailable file at request time. An unrelated Wi-Fi blob is not evidence for this issue.

Check 2

Inventory firmware files in this directory, following local directory and blob symlinks; the command only reads names. A distribution may use another firmware path or include blobs only in the initramfs.

find -L /lib/firmware/amdgpu -maxdepth 1 -type f -name '*.bin*'

Interpret the result: Compare the exact filename from the log with the package inventory. A missing line here is not proof that the kernel lacks the blob: also inspect the configured search paths and initramfs contents. A dangling symlink or wrong package version is evidence to investigate.

Evidence-guided next steps

Install the distribution firmware package

If the requested file is absent, install or update the distribution’s official AMD/linux-firmware package for this supported kernel. Verify the exact filename after installation before scheduling a reboot.

Precautions: Use the distribution package mechanism; do not replace arbitrary blobs from downloads or assume every similarly named GPU shares firmware.

Recovery / rollback: Keep the previous supported kernel and firmware package version available; boot that pair if the updated combination cannot initialize.

Did this solution help you?

Share this solution#

Refresh the correct early boot image

If the blob exists on disk but early amdgpu initialization still fails, rebuild the affected kernel’s initramfs using the distribution tool with its firmware inclusion rules. Verify the resulting image and its boot entry.

Precautions: Check that the intended /boot or EFI partition is mounted and has free space. Rebuilding an image for another kernel will not fix the selected entry.

Recovery / rollback: Boot the retained earlier image or generation; restore the previous firmware package and regenerate only if a regression is confirmed.

Did this solution help you?

Share this solution#

References & review

This guide was prepared from primary project or distribution sources and reviewed on the date shown. This is an editorial source check, not evidence that a fix was reproduced on your hardware. Diagnostic log examples are synthetic fixtures. Version-dependent details must be checked against your installed release.