Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Kernel does not find firmware for amdgpu after 4.19
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
printf
Tux's lil' helper
Tux's lil' helper


Joined: 02 Dec 2010
Posts: 93

PostPosted: Thu Nov 08, 2018 5:45 pm    Post subject: [SOLVED] Kernel does not find firmware for amdgpu after 4.19 Reply with quote

Just updated the kernel from 4.18 to 4.19 and noticed that the amd card from my system is not working (dell notebook with an intel card and an amd card).
Here is the dmesg error:
Code:
[    0.275619] [drm] amdgpu kernel modesetting enabled.
[    0.275649] amdgpu 0000:01:00.0: enabling device (0000 -> 0003)
[    0.317971] amdgpu 0000:01:00.0: Direct firmware load for amdgpu/oland_mc.bin failed with error -2
[    0.317974] amdgpu 0000:01:00.0: si_mc: Failed to load firmware "amdgpu/oland_mc.bin"
[    0.317976] amdgpu 0000:01:00.0: Failed to load mc firmware!
[    0.317981] amdgpu 0000:01:00.0: amdgpu_device_ip_init failed
[    0.317983] amdgpu 0000:01:00.0: Fatal error during GPU init
[    0.317984] [drm] amdgpu: finishing device.
[    0.318251] amdgpu: probe of 0000:01:00.0 failed with error -2

here is the 4.18 config: https://pastebin.com/raw/YiWg0HJK
here is the 4.19 config: https://pastebin.com/raw/eSXDqkPe

previously i generated the firmware config line according to the wiki (https://wiki.gentoo.org/wiki/AMDGPU#Firmware):
Code:
radeon/{oland_{ce,mc,me,pfp,rlc,smc},TAHITI_uvd}.bin


it's clear that the files were in the /lib/radeon folder, but i do not know why it is trying to search it there

also i tried a "locate oland":
Code:
/lib64/firmware/amdgpu/oland_ce.bin
/lib64/firmware/amdgpu/oland_k_smc.bin
/lib64/firmware/amdgpu/oland_mc.bin
/lib64/firmware/amdgpu/oland_me.bin
/lib64/firmware/amdgpu/oland_pfp.bin
/lib64/firmware/amdgpu/oland_rlc.bin
/lib64/firmware/amdgpu/oland_smc.bin
/lib64/firmware/radeon/oland_ce.bin
/lib64/firmware/radeon/oland_k_smc.bin
/lib64/firmware/radeon/oland_mc.bin
/lib64/firmware/radeon/oland_me.bin
/lib64/firmware/radeon/oland_pfp.bin
/lib64/firmware/radeon/oland_rlc.bin
/lib64/firmware/radeon/oland_smc.bin
/mnt/support/portage/dev-python/colander
/mnt/support/portage/dev-python/colander/Manifest
/mnt/support/portage/dev-python/colander/colander-1.3.1.ebuild
/mnt/support/portage/dev-python/colander/metadata.xml
/mnt/support/portage/dev-util/goland
/mnt/support/portage/dev-util/goland/Manifest
/mnt/support/portage/dev-util/goland/goland-2018.1.3.ebuild
/mnt/support/portage/dev-util/goland/goland-2018.1.4.ebuild
/mnt/support/portage/dev-util/goland/goland-2018.1.5.ebuild
/mnt/support/portage/dev-util/goland/goland-2018.2.ebuild
/mnt/support/portage/dev-util/goland/metadata.xml
/mnt/support/portage/metadata/md5-cache/dev-python/colander-1.3.1
/mnt/support/portage/metadata/md5-cache/dev-util/goland-2018.1.3
/mnt/support/portage/metadata/md5-cache/dev-util/goland-2018.1.4
/mnt/support/portage/metadata/md5-cache/dev-util/goland-2018.1.5
/mnt/support/portage/metadata/md5-cache/dev-util/goland-2018.2
/usr/lib64/clc/oland-amdgcn--.bc
/usr/lib64/clc/oland-amdgcn-mesa-mesa3d.bc
/usr/portage/dev-python/colander
/usr/portage/dev-python/colander/Manifest
/usr/portage/dev-python/colander/colander-1.3.1.ebuild
/usr/portage/dev-python/colander/metadata.xml
/usr/portage/dev-util/goland
/usr/portage/dev-util/goland/Manifest
/usr/portage/dev-util/goland/goland-2018.1.3.ebuild
/usr/portage/dev-util/goland/goland-2018.1.4.ebuild
/usr/portage/dev-util/goland/goland-2018.1.5.ebuild
/usr/portage/dev-util/goland/goland-2018.2.ebuild
/usr/portage/dev-util/goland/metadata.xml
/usr/portage/metadata/md5-cache/dev-python/colander-1.3.1
/usr/portage/metadata/md5-cache/dev-util/goland-2018.1.3
/usr/portage/metadata/md5-cache/dev-util/goland-2018.1.4
/usr/portage/metadata/md5-cache/dev-util/goland-2018.1.5
/usr/portage/metadata/md5-cache/dev-util/goland-2018.2
/usr/share/vim/vim80/lang/menu_polish_poland.1250.vim
/usr/share/zoneinfo/Poland
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_ce.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_mc.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_me.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_pfp.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_rlc.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/.oland_smc.bin.gen.o.cmd
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_ce.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_ce.bin.gen.o
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_mc.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_mc.bin.gen.o
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_me.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_me.bin.gen.o
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_pfp.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_pfp.bin.gen.o
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_rlc.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_rlc.bin.gen.o
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_smc.bin.gen.S
/usr/src/linux-4.16_p6-pf/firmware/radeon/oland_smc.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_ce.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_mc.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_me.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_pfp.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_rlc.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/.oland_smc.bin.gen.o.cmd
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_ce.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_ce.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_mc.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_mc.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_me.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_me.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_pfp.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_pfp.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_rlc.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_rlc.bin.gen.o
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_smc.bin.gen.S
/usr/src/linux-4.17_p1-pf/firmware/radeon/oland_smc.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_ce.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_mc.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_me.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_pfp.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_rlc.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/.oland_smc.bin.gen.o.cmd
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_ce.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_ce.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_mc.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_mc.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_me.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_me.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_pfp.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_pfp.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_rlc.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_rlc.bin.gen.o
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_smc.bin.gen.S
/usr/src/linux-4.18_p1-r1-pf/firmware/radeon/oland_smc.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_ce.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_mc.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_me.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_pfp.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_rlc.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/.oland_smc.bin.gen.o.cmd
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_ce.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_ce.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_mc.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_mc.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_me.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_me.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_pfp.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_pfp.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_rlc.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_rlc.bin.gen.o
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_smc.bin.gen.S
/usr/src/linux-4.18_p4-pf/firmware/radeon/oland_smc.bin.gen.o

it seems, for 4.19 it does not even try to include it in the kernel


Last edited by printf on Mon Nov 19, 2018 9:58 pm; edited 1 time in total
Back to top
View user's profile Send private message
ct85711
Veteran
Veteran


Joined: 27 Sep 2005
Posts: 1696

PostPosted: Thu Nov 08, 2018 6:38 pm    Post subject: Reply with quote

For builtin modules, you have to specifically specify the firmware to build into the kernel. The ability for the kernel to just go look for the firmware needed was discontinued, with the exception for the stuff that is built as a module (which will grab the needed firmware as the module is loaded. The big thing is that there is a big difference on when those modules are started, builtin modules is available immediately, where modules are started later as it is needed.

https://wiki.gentoo.org/wiki/Linux_firmware
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 13845

PostPosted: Fri Nov 09, 2018 2:58 am    Post subject: Reply with quote

As I understand it, the kernel still seeks the firmware when needed. The problem is that, "when needed" is now defined as "when the relevant driver initializes." Builtin drivers initialize before the root filesystem is mounted, so when they seek firmware, the only places they can look are in the builtin firmware and possibly in the initramfs. They cannot look in the /lib/firmware on your disk because / has not been mounted yet. Drivers built as modules cannot be loaded until the storage containing the module is available. When that storage also contains the firmware, the ordering dependency prevents the kernel trying to initialize the driver or require the firmware too early.
Back to top
View user's profile Send private message
printf
Tux's lil' helper
Tux's lil' helper


Joined: 02 Dec 2010
Posts: 93

PostPosted: Fri Nov 09, 2018 11:13 pm    Post subject: Reply with quote

i looked around on the wiki and in the kernel menu config and it seems to me that all option are set, that force firmware to be built into the kernel.
am i missing something?
Back to top
View user's profile Send private message
Marlo
Veteran
Veteran


Joined: 26 Jul 2003
Posts: 1414

PostPosted: Fri Nov 09, 2018 11:21 pm    Post subject: Reply with quote

printf wrote:
...am i missing something?


You don't miss anything!
Your configuration for both kernels looks right. Make sure the link is correct:

"eselect kernel list"

And rebuild the kernel.
_________________
Thank you for your attention, interest and support.
------------------------------------------------------------------
http://radio.garden/
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 13845

PostPosted: Sat Nov 10, 2018 12:39 am    Post subject: Reply with quote

Marlo wrote:
printf wrote:
...am i missing something?
You don't miss anything!
Your configuration for both kernels looks right.
I disagree. His dmesg says it wants amdgpu/oland_mc.bin. His 4.19 kernel configuration embeds radeon/oland_mc.bin (among other files). These are not the same string, so one is not an acceptable substitute for the other. The strings must match exactly.
Back to top
View user's profile Send private message
Marlo
Veteran
Veteran


Joined: 26 Jul 2003
Posts: 1414

PostPosted: Sat Nov 10, 2018 10:07 am    Post subject: Reply with quote

Ok HU!
The wiki says to oland "radeon/".
Code:

tux ~ $ echo radeon/{oland_{ce,mc,me,pfp,rlc,smc},TAHITI_uvd}.bin
radeon/oland_ce.bin radeon/oland_mc.bin radeon/oland_me.bin radeon/oland_pfp.bin radeon/oland_rlc.bin radeon/oland_smc.bin radeon/TAHITI_uvd.bin


Until kernel 4.18. that was apparently correct and worked.

If the kernel 4.19. want "amdgpu/" then the kernel can have that.
Code:

tux ~ $ echo amdgpu/{oland_{ce,mc,me,pfp,rlc,smc},TAHITI_uvd}.bin
amdgpu/oland_ce.bin amdgpu/oland_mc.bin amdgpu/oland_me.bin amdgpu/oland_pfp.bin amdgpu/oland_rlc.bin amdgpu/oland_smc.bin amdgpu/TAHITI_uvd.bin


But that does not clarify the cause of the error. Why denied 4.19. radeon/oland_mc.bin? Although he accepts all other radeon/oland*?
Why does the 4.19. switch from the commanded radeon/ to the not issued instruction amdgpu/?
_________________
Thank you for your attention, interest and support.
------------------------------------------------------------------
http://radio.garden/
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 13845

PostPosted: Sat Nov 10, 2018 5:26 pm    Post subject: Reply with quote

Marlo wrote:
But that does not clarify the cause of the error. Why denied 4.19. radeon/oland_mc.bin? Although he accepts all other radeon/oland*?
Why does the 4.19. switch from the commanded radeon/ to the not issued instruction amdgpu/?
I don't understand your questions. 4.19 is not denying anything. It is ignoring an inappropriate file. It wants a file the user failed to embed in the kernel (because it was previously not required, so the user did not expect the change). If I had to guess, 4.19 either is using a different driver for this graphics card, or the kernel developers decided that a different firmware blob was more appropriate to this card.
Back to top
View user's profile Send private message
printf
Tux's lil' helper
Tux's lil' helper


Joined: 02 Dec 2010
Posts: 93

PostPosted: Fri Nov 16, 2018 8:03 am    Post subject: Reply with quote

updated kernel to 4.19.0-p4 (from 4.19.0-p3) and the problem still persists

also googling around found someone with similar problem: https://github.com/xanmod/linux/issues/14
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 5761

PostPosted: Fri Nov 16, 2018 8:51 am    Post subject: Reply with quote

Have you made any attempt to use the correct firmware paths as described above?
Back to top
View user's profile Send private message
printf
Tux's lil' helper
Tux's lil' helper


Joined: 02 Dec 2010
Posts: 93

PostPosted: Fri Nov 16, 2018 11:33 am    Post subject: Reply with quote

Ant P. wrote:
Have you made any attempt to use the correct firmware paths as described above?

not yet...
was hoping for an explanation first, but when i saw the dmesg output, it passed trough my mind.
will try tonight hopefully
Back to top
View user's profile Send private message
printf
Tux's lil' helper
Tux's lil' helper


Joined: 02 Dec 2010
Posts: 93

PostPosted: Fri Nov 16, 2018 10:42 pm    Post subject: Reply with quote

using this line:
Code:
CONFIG_EXTRA_FIRMWARE="iwlwifi-6000g2b-6.ucode amdgpu/oland_ce.bin amdgpu/oland_mc.bin amdgpu/oland_me.bin amdgpu/oland_pfp.bin amdgpu/oland_rlc.bin amdgpu/oland_smc.bin radeon/TAHITI_uvd.bin"

fixed it after i did a make clean -> make -> make install
NOTE: TAHITI_uvd.bin is still from the radeon folder as it is not found in the amdgpu folder
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum