View previous topic :: View next topic |
Author |
Message |
demiurg Tux's lil' helper
Joined: 26 Jul 2005 Posts: 111
|
Posted: Thu Oct 24, 2024 6:35 pm Post subject: Welchen Firmware blob für Ryzen 9950x |
|
|
Hat jemand eine Idee, welchen Firmeware blob ich für die integrierte Grafik des Prozessors nehmen muss. Das AMDGPU Wiki hilft nicht so richtig weiter und die Suche hier in den Foren hat mir auch nichts geliefert. Für die extra RX6800 ist alles klar und die HDMI/DP Tonübertragung funktioniert auch.
nach der Initialisierung der RX 6800 liefert dmesg
Code: |
fbcon: amdgpudrmfb (fb0) is primary device
[ 4.160121] [drm] pre_validate_dsc:1578 MST_DSC dsc precompute is not needed
[ 4.339002] Console: switching to colour frame buffer device 480x135
[ 4.373800] amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 4.374085] amdgpu 0000:16:00.0: enabling device (0000 -> 0003)
[ 4.374144] [drm] initializing kernel modesetting (IP DISCOVERY 0x1002:0x13C0 0x1458:0xD000 0xC1).
[ 4.374168] [drm] register mmio base: 0xF6200000
[ 4.374172] [drm] register mmio size: 524288
[ 4.375604] [drm] add ip block number 0 <nv_common>
[ 4.375609] [drm] add ip block number 1 <gmc_v10_0>
[ 4.375613] [drm] add ip block number 2 <navi10_ih>
[ 4.375617] [drm] add ip block number 3 <psp>
[ 4.375621] [drm] add ip block number 4 <smu>
[ 4.375625] [drm] add ip block number 5 <dm>
[ 4.375628] [drm] add ip block number 6 <gfx_v10_0>
[ 4.375632] [drm] add ip block number 7 <sdma_v5_2>
[ 4.375636] [drm] add ip block number 8 <vcn_v3_0>
[ 4.375639] [drm] add ip block number 9 <jpeg_v3_0>
[ 4.376662] [drm] BIOS signature incorrect c7 b0
[ 4.376667] amdgpu 0000:16:00.0: ROM [??? 0x00000000 flags 0x20000000]: can't assign; bogus alignment
[ 4.377681] [drm] BIOS signature incorrect c7 b0
[ 4.377685] amdgpu 0000:16:00.0: amdgpu: Unable to locate a BIOS ROM
[ 4.377689] amdgpu 0000:16:00.0: amdgpu: Fatal error during GPU init
[ 4.377694] amdgpu 0000:16:00.0: amdgpu: amdgpu: finishing device.
[ 4.377713] amdgpu 0000:16:00.0: probe with driver amdgpu failed with error -22
|
lspci relevantes mit Grafik
Code: |
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c3)
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c3)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
16:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 13c0 (rev c1)
16:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller
|
Wenn ich das recht interpretiere sitzt die RX6800 auf 0000:03:00.0 und die GPU vom Prozessor auf 0000:16:00.0.
Nicht dass ich die integrierte GPU bräuchte, aber es interessiert mich.
LG
demiurg _________________ Kernel 6.xx-gentoo
GCC 14.xx
default/linux/amd64/23.0/desktop/plasma/systemd (stable)
Ryzen 9950X
GA X670 AORUS ELITE AX BIOS FB3c
ATI RX6800 |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1713
|
Posted: Fri Oct 25, 2024 8:08 am Post subject: |
|
|
Bei der Fehlermeldung bin ich mir nicht sicher, was das heißen soll. wenn man nach "[drm] BIOS signature incorrect" googled, dann scheint "0 0" danach zu heißen, dass die Firmware nicht gefunden wird.
Bei dir stehen da aber andere Zahlen danach, was evtl heißen könnte, dass eine Datei gefunden wird, aber die Signatur nicht passt? Evtl wäre aber das dann das Problem...
Aber fangen wir mal von vorn an.
Quote: | Firmware
It is necessary to install the proper firmware (or microcode) for the card. Firmware files are provided by sys-kernel/linux-firmware.
There are two main approaches to loading firmware:
Build AMDGPU as a module and simply have sys-kernel/linux-firmware installed (the firmware will be loaded at runtime),
Build AMDGPU and the required firmware into the kernel (the firmware will be loaded at build time).
The easiest approach is to do 1 first then, if you wish, figure out which firmware blobs you need and do 2.
|
eigentlich sollten die Sachen, die im wiki stehen, reichen. Was genau ist da denn das Problem?
hast du sys-kernel/linux-firmware installiert? hast du amdgpu als modul gebaut oder im kernel einkompiliert? |
|
Back to top |
|
|
demiurg Tux's lil' helper
Joined: 26 Jul 2005 Posts: 111
|
Posted: Fri Oct 25, 2024 3:46 pm Post subject: |
|
|
Hallo Christian99,
die Firmware für die RX 6800 ist fest in den Kernel eingebaut. Keine Module unterwegs.
Ganz normal bei Firmwareloader->Build named firmware blobs into the kernel binary: amdgpu/sienna_cichlid_ce.bin amdgpu/sienna_cichlid_dmcub.bin amdgpu/sienna_cichlid_me.bin usw.
Das Paket linux-firmware ist aktuell installiert.
Ich hatte vermutet, dass die zweite amd audiodevice bei lspci weiterhilft (sound über HDMI ist im kernel aktiviert), bei der Rembrandt als GPU auftaucht. Die Firmwaremodule für Rembrandt in der Kernel config ergänzt war jedenfalls für die Grafik kein Treffer.
Etwas mit Navi 11 wollte ich jetzt auch nicht probieren, ohne mal zu fragen, ob es jemand direkt weiß. In der Artikeln ist für die iGPU irgendwie auch von RDNA 3.5 die Rede, was jetzt nicht direkt für Navi 10 spricht.
Aber vllt. hilft auch ein Kernel mit genkernel bauen und hinterher schauen ob und wenn ja, welche Module geladen sind.
Gruß
demiurg _________________ Kernel 6.xx-gentoo
GCC 14.xx
default/linux/amd64/23.0/desktop/plasma/systemd (stable)
Ryzen 9950X
GA X670 AORUS ELITE AX BIOS FB3c
ATI RX6800 |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5320
|
Posted: Fri Oct 25, 2024 5:44 pm Post subject: |
|
|
demiurg wrote: | Hallo Christian99,
die Firmware für die RX 6800 ist fest in den Kernel eingebaut. Keine Module unterwegs.
Ganz normal bei Firmwareloader->Build named firmware blobs into the kernel binary: amdgpu/sienna_cichlid_ce.bin amdgpu/sienna_cichlid_dmcub.bin amdgpu/sienna_cichlid_me.bin usw.
Das Paket linux-firmware ist aktuell installiert.
Ich hatte vermutet, dass die zweite amd audiodevice bei lspci weiterhilft (sound über HDMI ist im kernel aktiviert), bei der Rembrandt als GPU auftaucht. Die Firmwaremodule für Rembrandt in der Kernel config ergänzt war jedenfalls für die Grafik kein Treffer.
Etwas mit Navi 11 wollte ich jetzt auch nicht probieren, ohne mal zu fragen, ob es jemand direkt weiß. In der Artikeln ist für die iGPU irgendwie auch von RDNA 3.5 die Rede, was jetzt nicht direkt für Navi 10 spricht.
Aber vllt. hilft auch ein Kernel mit genkernel bauen und hinterher schauen ob und wenn ja, welche Module geladen sind.
Gruß
demiurg |
Nein amdgpu ist schon richtig. Nur dadurch das du amdgpu fix im kernel hast müssen auch die firmware files fix im kernel sein.
Was zu probleme führt wenn ein sich mal die benötigten firmware files ändern sollten (z.b. weil ein bisher nicht unterstützter part jetzt supported wird oder aus gründen die namen geändert werden mussten).
Was dann zu einem black screen führen könnte, weil die amdgpu die GPU nicht initialisiert bekommt.
So ein fall hatte ich mal, wo durch einen kernel update zusätzliche/andere firmware files benötigt wurden und ich vor einem black screen saß.
Wenn du amdgpu mal als modul baust, dann hat der kernel vollen zugriff auf alle firmware files welcher sich unter /lib/firmware befinden. Und dadurch wird man weniger wahrscheinlich in die oben beschriebenen möglichen fallen laufen. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1713
|
Posted: Fri Oct 25, 2024 10:23 pm Post subject: |
|
|
wie firefly schreibt, wäre es wohl am einfachsten amdgpu als modul zu verwenden, da er dann die firmware bins aus dem dateisystem laden kann, wenn das modul geladen wird.
wenn du das nicht möchtest, solltest du, wie im wiki geschrieben, amdgpu zumindest vorläufig als modul bauen und dann beim laden im kernel log schauen, welche dateien geladen werden. Die kannst du dann nehmen um sie fest in den kernel einzubauen.
NB: waren früher nicht mal im kernellog meldungen in der Art "<dateiname> not found", wenn die firmware datei nicht gefunden wurde? Oder hab ich das falsch in Erinnerung? |
|
Back to top |
|
|
haegar87 Apprentice
Joined: 08 Jan 2006 Posts: 165
|
Posted: Sat Nov 23, 2024 4:28 pm Post subject: |
|
|
Wie meine beiden Vorredner schon sagten ist das der einfachste Weg.
amdgpu als Modul bauen und alle Firmware unter /lib/firmware/amdgpu installieren. Anschließend neustarten und im bootlog nachschauen, welche Firmware-Dateien der Kernel geladen hat.
Gibt dann eine schöne Auflistung was tatsächlich gebraucht wird:
Code: |
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/psp_13_0_0_sos.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/psp_13_0_0_ta.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/smu_13_0_0.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/dcn_3_2_0_dmcub.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_pfp.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_me.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_rlc.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_mec.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/vcn_4_0_0.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_mes_2.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_mes1.bin
Nov 23 10:54:36 kernel: [drm] Loading DMUB firmware via PSP: version=0x07002A00
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/gc_11_0_0_imu.bin
Nov 23 10:54:36 kernel: Loading firmware: amdgpu/sdma_6_0_0.bin
Nov 23 10:54:36 kernel: [drm] Found VCN firmware Version ENC: 1.22 DEC: 9 VEP: 0 Revision: 3
Nov 23 10:54:36 kernel: amdgpu 0000:0d:00.0: amdgpu: Will use PSP to load VCN firmware
|
(Beispiel einer RX 7900 XT)
Danach kann man überlegen, ob man diese fest in den Kernel einbaut oder das ganze als module laufen lässt. _________________ "Spielt man die Windows CD rückwärts ab, hört man satanistische Texte!" - "Das ist ja noch harmlos! Wenn man sie vorwärts abspielt, installiert sich das Teufelszeug!" |
|
Back to top |
|
|
demiurg Tux's lil' helper
Joined: 26 Jul 2005 Posts: 111
|
Posted: Sun Nov 24, 2024 8:07 pm Post subject: |
|
|
haegar87 wrote: | Wie meine beiden Vorredner schon sagten ist das der einfachste Weg.
amdgpu als Modul bauen und alle Firmware unter /lib/firmware/amdgpu installieren. Anschließend neustarten und im bootlog nachschauen, welche Firmware-Dateien der Kernel geladen hat.
|
Aus Zeitmangel habe ich mich erst jetzt weiter damit beschäftigt. AMDGPU als Modul bauen hat erstmal keine Veränderung gebracht. Die diskrete Radeon 6800 wurde initialisiert, aber die Fehlermeldung
Code: |
[drm] BIOS signature incorrect c7 b0
[ 4.376667] amdgpu 0000:16:00.0: ROM [??? 0x00000000 flags 0x20000000]: can't assign; bogus alignment
[ 4.377681] [drm] BIOS signature incorrect c7 b0
[ 4.377685] amdgpu 0000:16:00.0: amdgpu: Unable to locate a BIOS ROM
|
kommt da genauso. Ich habe mir mal das aktuelle Installationsmedium von Gentoo gegriffen, um zu schauen, was da passiert. Siehe da - die Grafik des Prozessors wird erkannt. Die erste Zeile ist die abschließende für die 6800 HW-Adresse 0000:03. Die 0000:16 ist dann die Grafik vom Prozessor.
dmesg |grep amdgpu liefert als Ausschnitt das nachfolgende. Es wird das ATOM BIOS 102-Raphael-008 gefunden (wie auch immer) und entsprechende Firmware geladen.
Code: |
[ 16.136562] amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 16.170953] amdgpu 0000:16:00.0: enabling device (0000 -> 0003)
[ 16.173357] amdgpu 0000:16:00.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment)
[ 16.175638] amdgpu 0000:16:00.0: amdgpu: Fetched VBIOS from platform
[ 16.175639] amdgpu: ATOM BIOS: 102-RAPHAEL-008
[ 16.175646] Loading firmware: amdgpu/psp_13_0_5_toc.bin
[ 16.178033] Loading firmware: amdgpu/psp_13_0_5_ta.bin
[ 16.180749] Loading firmware: amdgpu/dcn_3_1_5_dmcub.bin
[ 16.190701] Loading firmware: amdgpu/gc_10_3_6_pfp.bin
[ 16.193370] Loading firmware: amdgpu/gc_10_3_6_me.bin
[ 16.194637] Loading firmware: amdgpu/gc_10_3_6_ce.bin
[ 16.195502] Loading firmware: amdgpu/gc_10_3_6_rlc.bin
[ 16.198329] Loading firmware: amdgpu/gc_10_3_6_mec.bin
[ 16.199797] Loading firmware: amdgpu/gc_10_3_6_mec2.bin
[ 16.201346] Loading firmware: amdgpu/vcn_3_1_2.bin
[ 16.218893] amdgpu 0000:16:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (defaul
t)
[ 16.218959] amdgpu 0000:16:00.0: amdgpu: VRAM: 2048M 0x000000F400000000 - 0x000000F47FFFFFFF (2048M used)
[ 16.218960] amdgpu 0000:16:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[ 16.218962] amdgpu 0000:16:00.0: amdgpu: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
[ 16.219033] [drm] amdgpu: 2048M of VRAM memory ready
[ 16.219034] [drm] amdgpu: 63200M of GTT memory ready.
[ 16.219515] Loading firmware: amdgpu/sdma_5_2_6.bin
[ 16.221765] amdgpu 0000:16:00.0: amdgpu: Will use PSP to load VCN firmware
[ 16.310812] amdgpu 0000:16:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 16.316599] amdgpu 0000:16:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 16.316601] amdgpu 0000:16:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[ 16.318414] amdgpu 0000:16:00.0: amdgpu: SMU is initialized successfully!
[ 16.321134] snd_hda_intel 0000:16:00.1: bound 0000:16:00.0 (ops dm_ip_block [amdgpu])
[ 16.371945] amdgpu: HMM registered 2048MB device memory
[ 16.372742] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[ 16.372753] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[ 16.373393] amdgpu: Virtual CRAT table created for GPU
[ 16.373616] amdgpu: Topology: Add dGPU node [0x13c0:0x1002]
[ 16.373617] kfd kfd: amdgpu: added device 1002:13c0
[ 16.373625] amdgpu 0000:16:00.0: amdgpu: SE 1, SH per SE 1, CU per SH 2, active_cu_number 2
[ 16.374262] amdgpu 0000:16:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 16.374264] amdgpu 0000:16:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 16.374264] amdgpu 0000:16:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 16.374265] amdgpu 0000:16:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[ 16.374266] amdgpu 0000:16:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[ 16.374266] amdgpu 0000:16:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[ 16.374266] amdgpu 0000:16:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[ 16.374267] amdgpu 0000:16:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[ 16.374267] amdgpu 0000:16:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[ 16.374268] amdgpu 0000:16:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
[ 16.374268] amdgpu 0000:16:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[ 16.374268] amdgpu 0000:16:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
[ 16.374269] amdgpu 0000:16:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
[ 16.374269] amdgpu 0000:16:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
[ 16.374270] amdgpu 0000:16:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
[ 16.376810] [drm] Initialized amdgpu 3.54.0 20150101 for 0000:16:00.0 on minor 1
[ 16.881493] amdgpu 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io+mem
[ 16.881495] amdgpu 0000:16:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
|
Ich habe allerdings noch nicht versucht, alle Firmwaredateien aus dem Listing in den Kernel zu integrieren, weil mir noch unklar ist wo das Installationsmedium das ATOM-BIOS herholt. Fetched VBIOS from platform ??
LG
demiurg _________________ Kernel 6.xx-gentoo
GCC 14.xx
default/linux/amd64/23.0/desktop/plasma/systemd (stable)
Ryzen 9950X
GA X670 AORUS ELITE AX BIOS FB3c
ATI RX6800 |
|
Back to top |
|
|
|
|
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
|
|