# AMDGPU black screen during boot

## rexy712

I just got a new computer built and am working on installing Gentoo on it. The issue I'm currently facing is with my graphics card. It's an RX 580 and I'm trying to use the AMDGPU driver with it. I followed the wiki guide for setting up the kernel and using the firmware. When I try to boot, the screen goes blank after a showing some text which goes by too fast to read. I know that the boot process completes because I can still ssh into the machine.

What seems to be the relevant snippet of dmesg:

```

[    0.826972] amdgpu 0000:0b:00.0: Direct firmware load for amdgpu/polaris10_k_smc.bin failed with error -2

[    0.827151] [drm:amdgpu_cgs_get_firmware_info] *ERROR* Failed to request firmware

[    1.294505] amdgpu: [powerplay] Failed to send Message.

[    1.634394] tsc: Refined TSC clocksource calibration: 3593.248 MHz

[    1.634524] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x33cb68e6ea4, max_idle_ns: 440795288133 ns

[    1.768568] amdgpu: [powerplay] SMU Firmware start failed!

[    2.241338] amdgpu: [powerplay] Failed to send Message.

[    2.708461] amdgpu: [powerplay] SMU Firmware start failed!

[    2.708571] amdgpu: [powerplay] Failed to load SMU ucode.

[    2.708681] amdgpu: [powerplay] smc start failed

```

The complete dmesg error: https://pastebin.com/6DmKgYx6

And the firmware does exist in /lib/firmware/amdgpu folder:

```

root ~ # ls /lib/firmware/amdgpu/polaris*

/lib/firmware/amdgpu/polaris10_ce_2.bin

/lib/firmware/amdgpu/polaris10_ce.bin

/lib/firmware/amdgpu/polaris10_k_smc.bin

/lib/firmware/amdgpu/polaris10_mc.bin

/lib/firmware/amdgpu/polaris10_me_2.bin

/lib/firmware/amdgpu/polaris10_me.bin

/lib/firmware/amdgpu/polaris10_mec2_2.bin

/lib/firmware/amdgpu/polaris10_mec_2.bin

/lib/firmware/amdgpu/polaris10_mec2.bin

/lib/firmware/amdgpu/polaris10_mec.bin

/lib/firmware/amdgpu/polaris10_pfp_2.bin

/lib/firmware/amdgpu/polaris10_pfp.bin

/lib/firmware/amdgpu/polaris10_rlc.bin

/lib/firmware/amdgpu/polaris10_sdma1.bin

/lib/firmware/amdgpu/polaris10_sdma.bin

/lib/firmware/amdgpu/polaris10_smc.bin

/lib/firmware/amdgpu/polaris10_smc_sk.bin

/lib/firmware/amdgpu/polaris10_uvd.bin

/lib/firmware/amdgpu/polaris10_vce.bin

/lib/firmware/amdgpu/polaris11_ce_2.bin

/lib/firmware/amdgpu/polaris11_ce.bin

/lib/firmware/amdgpu/polaris11_k_smc.bin

/lib/firmware/amdgpu/polaris11_mc.bin

/lib/firmware/amdgpu/polaris11_me_2.bin

/lib/firmware/amdgpu/polaris11_me.bin

/lib/firmware/amdgpu/polaris11_mec2_2.bin

/lib/firmware/amdgpu/polaris11_mec_2.bin

/lib/firmware/amdgpu/polaris11_mec2.bin

/lib/firmware/amdgpu/polaris11_mec.bin

/lib/firmware/amdgpu/polaris11_pfp_2.bin

/lib/firmware/amdgpu/polaris11_pfp.bin

/lib/firmware/amdgpu/polaris11_rlc.bin

/lib/firmware/amdgpu/polaris11_sdma1.bin

/lib/firmware/amdgpu/polaris11_sdma.bin

/lib/firmware/amdgpu/polaris11_smc.bin

/lib/firmware/amdgpu/polaris11_smc_sk.bin

/lib/firmware/amdgpu/polaris11_uvd.bin

/lib/firmware/amdgpu/polaris11_vce.bin

/lib/firmware/amdgpu/polaris12_ce_2.bin

/lib/firmware/amdgpu/polaris12_ce.bin

/lib/firmware/amdgpu/polaris12_mc.bin

/lib/firmware/amdgpu/polaris12_me_2.bin

/lib/firmware/amdgpu/polaris12_me.bin

/lib/firmware/amdgpu/polaris12_mec2_2.bin

/lib/firmware/amdgpu/polaris12_mec_2.bin

/lib/firmware/amdgpu/polaris12_mec2.bin

/lib/firmware/amdgpu/polaris12_mec.bin

/lib/firmware/amdgpu/polaris12_pfp_2.bin

/lib/firmware/amdgpu/polaris12_pfp.bin

/lib/firmware/amdgpu/polaris12_rlc.bin

/lib/firmware/amdgpu/polaris12_sdma1.bin

/lib/firmware/amdgpu/polaris12_sdma.bin

/lib/firmware/amdgpu/polaris12_smc.bin

/lib/firmware/amdgpu/polaris12_uvd.bin

/lib/firmware/amdgpu/polaris12_vce.bin

```

It's failing to load some part of the firmware. I've tried it with the stable linux-firmware-20170314 and the unstable linux-firmware-20171206. Both cause the same error message.

Here's my kernel config. I think everything I should need for AMPGPU to work is in there. https://pastebin.com/YK8jnsJX

I really appreciate anyone who could give me some help.

----------

## NeddySeagoon

rexy712,

Welcome to the Forums.

```
[    0.826972] amdgpu 0000:0b:00.0: Direct firmware load for amdgpu/polaris10_k_smc.bin failed with error -2
```

That's a problem.

The first step is to check that the file /lib/firmware/amdgpu/polaris10_k_smc.bin exists on your system.

The firmware being pulled into the kernel is 

```
CONFIG_EXTRA_FIRMWARE="amdgpu/polaris10_ce.bin amdgpu/polaris10_mc.bin amdgpu/polaris10_me.bin amdgpu/polaris10_mec2.bin amdgpu/polaris10_mec.bin amdgpu/polaris10_pfp.bin amdgpu/polaris10_rlc.bin amdgpu/polaris10_sdma1.bin amdgpu/polaris10_sdma.bin amdgpu/polaris10_smc.bin amdgpu/polaris10_smc_sk.bin amdgpu/polaris10_uvd.bin amdgpu/polaris10_vce.bin amd-ucode/microcode_amd.bin amd-ucode/microcode_amd_fam15h.bin amd-ucode/microcode_amd_fam16h.bin"
```

amdgpu/polaris10_k_smc.bin is the name of the required file.  You have amdgpu/polaris10_smc.bin, which is a different file that you also need.

Add amdgpu/polaris10_k_smc.bin to that list of firmware files, rebuild and reinstall your kernel.

----------

## rexy712

 *Quote:*   

> 
> 
> amdgpu/polaris10_k_smc.bin is the name of the required file. You have amdgpu/polaris10_smc.bin, which is a different file that you also need.
> 
> 

 

Wow I feel really stupid now. I missed the '_k_' in the dmesg is all   :Laughing: 

It works fine now that I included that.

I did double check the wiki and it wasn't included on the required list for the RX 580 on there. Probably needs updated. Still my fault for not reading the error message correctly.

Thanks for the help, NeddySeagoon.

----------

## Ant P.

The easy way to make sure you haven't missed anything is to let the computer figure out the details for you:

```
cd /lib/firmware

echo 'CONFIG_EXTRA_FIRMWARE="' amdgpu/polaris10* '"'
```

----------

