Neue Hardware - Ubuntu friert ein (amdgpu failed with error -22)

Hallo liebe Community,

wir testen aktuell folgende Hardware:

Lenovo ThinkCentre M75q 57th Gen (u.a. 8500GE AMD Ryzen, AMD Radeon 740 M).

Bisher haben wir ein Image mit Windows 10 und Ubuntu, das auf unseren bisherigen Geräten zuverlässig läuft.

Wir haben das Image nun auf das Testgerät verteilt. Ohne, dass Anpassungen notwendig sind, läuft Windows (erstaunlich) problemlos. Mit Ubuntu haben wir Probleme mit dem Grafikchip.

Ohne zusätzliche Kernel-Paramter friert Ubuntu nach dem Neustart ein (Bildschirm schwarz, auch kein Zugriff auf das Terminal möglich). Bevor der GDM versucht zu starten, erscheint folgende Fehlermeldung:

amdgpu 0000:03:00.0: probe with driver amdgpu failed with error -22

Mit dem Kernelparamter

nomodeset

bekommen wir die Geräte in Ubuntu gestartet (die Grafik ist aber schlecht - klar).

Die o.g. Fehlermeldung liefert einige Ergebnisse bei der Suchmaschine nach Wahl.

Beispielsweise wird hier genannt, folgende Paramter zu verwenden:

radeon.si_support=0 amdgpu.si_support=1 amdgpu.dc=1 intel_iommu=off amdgpu.dpm=0

Haben wir als Kernel-Parameter angegeben - ändert aber nichts.

Hat jemand ähnliche Probleme bzw. hat jemand Lösungsvorschläge, damit wir Ubuntu sauber zum Laufen bekommen?

Vielen Dank.

Viele Grüße Manuel

Hallo Manuel,

verwendet ihr in eurer start.conf.GRUPPE den Parameter nowarmstart?

Wenn nicht, dann schafft es das moderne Linux beim warmstart nicht die zuvor durch linbo initialisierte Grafikkarte zufriedenstellend zu initialisieren.

Das wird durch den nowarmstart behoben: den ich bei allen meinen Installationen verwende.

start.conf Eintrag sieht bei mir so aus:

KernelOptions = quiet splash dhcpretry=10 nowarmstart nomodeset

LG
Holger

Hallo Holger,

Danke für die rasche Rückmeldung.

Bewirkt, dass die Clients starten, aber die Auflösung sehr niedrig ist (und nicht angepasst werden kann; das bewirkt nomodeset, oder?).

Lassen wir nomodeset am Ende weg, dann ist das Verhalten wie zuvor: Geräte “frieren” ein.

LG Manuel

Hallo Manuel,

nomodeset bewirkt, dass AMD GPU Clients eine linbooberfläche anzeigen :slight_smile:

nowarmstart bewirkt, dass der Cleiint durch linbo vor dem Start des Betriebsystems, neugestartet wird.

Du brauchst beides.

LG
Holger

Hi Holger,

aja, verstanden, Danke für die Nachhilfe :slight_smile:

Also die Clients starten mit den beiden Optionen wie beschrieben. Allerdings wird der Grafiktreiber nicht geladen bzw. die Grafik sieht schlecht aus und ich kann z.B. auch die Auflösung nicht händisch anpassen.

Ich habe mich - als der Client in Linbo stand - via linbo-ssh eingeloggt und

dmesg | grep -i firmware

durchgeführt.

Folgendes kommt heraus:

amdgpu 0000:03:00.0: Direct firmware load for amdgpu/psp_13_0_11_toc.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/dcn_3_1_4_dmcub.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/gc_11_0_4_pfp.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/sdma_6_0_1.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/vcn_4_0_2.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/gc_11_0_4_mes_2.bin failed with error -2
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/gc_11_0_4_mes.bin failed with error -2

Ich habe dann - wie hier unter Netzwerkkarten Treiber ersetzen beschrieben die Datei firmware angepasst bzw. erstellt und

update-linbofs

sowie

linuxmuster-import-devices

durchgeführt.

Rechner nochmal gestartet, im LINBO stehen lassen, wieder

dmesg | grep -i firmware

Ergebnis:

mdgpu 0000:03:00.0: Direct firmware load for amdgpu/gc_11_0_4_imu.bin failed with error -2
amdgpu 0000:03:00.0: amdgpu: gfx11: Failed to load firmware „gc_11_0_4_imu.bin“
[drm:gfx_v11_0_early_init [amdgpu]] ERROR Failed to init imu firmware!
amdgpu 0000:03:00.0: Direct firmware load for amdgpu/vcn_4_0_2.bin failed with error -2

Jetzt wird amdgpu/gc_11_0_4_imu.bin verlangt - das wurde zuvor nicht verlangt.

Also nochmals Datei firmware angepasst und jetzt habe ich dort einfach

amdgpu

eingetragen statt einzelne Dateien.

update-linbofs

root@server:/etc/linuxmuster/linbo# update-linbofs
Hashing linbo password … Success!
Creating new linbo filesystem …
Using stable kernel version 6.12.33 …
Extracting modules …
Generating modules.dep and map files …
Copying firmware …
rtl_nic
rtlwifi/rtl8821aefw.bin
iwlwifi-cc-a0-77.ucode
amdgpu
Creating xz archive (may take a while) …
100 % 52,6 MiB / 261,7 MiB = 0,201 19 MiB/s 0:14
Copying stable kernel version 6.12.33 …
Ok!
0+0 records in
0+0 records out
0 bytes copied, 9,7322e-05 s, 0,0 kB/s
mkfs.fat 4.2 (2021-01-31)
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev ‚stdio:/srv/linbo/linbo.iso‘
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 558g free
Added to ISO image: directory ‚/‘=‚/var/cache/linuxmuster/linbo/iso‘
xorriso : UPDATE : 989 files added in 1 seconds
xorriso : UPDATE : 989 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 432 bytes from file ‚/usr/lib/ISOLINUX/isohdpfx.bin‘
xorriso : WARNING : Boot image load size exceeds 65535 blocks of 512 bytes. Will record 0 in El Torito to extend ESP to end-of-medium.
libisofs: NOTE : Aligned image size to cylinder size by 234 blocks
xorriso : UPDATE : 17.18% done
xorriso : UPDATE : Thank you for being patient. Working since 1 seconds.
ISO image produced: 218624 sectors
Written to medium : 218624 sectors at LBA 0
Writing to ‚stdio:/srv/linbo/linbo.iso‘ completed successfully.

Anschließend linuxmuster-import-devices und Client nochmal neu gestartet.

Client im Linbo stehen lassen - eingeloggt via SSH - die Fehler, die zuvor via DMESG ersichtlich waren, sind nun weg.

Linbo sieht nun auch “hübscher” aus.

Allerdings: Ubuntu startet nicht, Bild “friert ein”. Und das trotz der beiden Optionen nomodeset und nowarmstart.

Zuvor startete Ubuntu zumindest (mit schlechter Grafik) - jetzt leider nicht mehr :frowning:

Habe dann mal beide Optionen weggelassen. Gleiches Ergebnis - nach dem Sync von Ubuntu schwarzer Bildschirm…

So sieht die start.conf aus:

LINBO]
Server = 10.0.0.1
Group = ubuntu2404_win10_efi_nvme_lenovo
Cache = /dev/nvme0n1p4
RootTimeout = 600
AutoPartition = no
AutoFormat = no
AutoInitCache = no
DownloadType = rsync
GuiDisabled = no
UseMinimalLayout = no
Locale = de-DE
SystemType = efi64
KernelOptions = quiet splash dhcpretry=9 forcegrub grubbythecat

[Partition]
Dev = /dev/nvme0n1p1
Label = efi
Size = 200M
Id = ef
FSType = vfat
Bootable = yes

[Partition]
Dev = /dev/nvme0n1p2
Label = windows
Size = 100G
Id = 7
FSType = ntfs
Bootable = no

[Partition]
Dev = /dev/nvme0n1p3
Label = ubuntu
Size = 50G
Id = 83
FSType = ext4
Bootable = no

[Partition]
Dev = /dev/nvme0n1p4
Label = cache
Size = 60G
Id = 83
FSType = ext4
Bootable = no

[Partition]
Bootable = no
FSType = swap
Id = 82
Size = 8G
Label =
Dev = /dev/nvme0n1p5

[OS]
Name = Windows 10
Version =
Description = Windows 10 1903
IconName = win10.svg

BaseImage = win10-22H2-education-ni-generic.qcow2
Boot = /dev/nvme0n1p2
Root = /dev/nvme0n1p2
Kernel = auto
Initrd =
Append =
StartEnabled = yes
SyncEnabled = no
NewEnabled = yes
Autostart = no
AutostartTimeout = 5
DefaultAction = new
Hidden = yes

[OS]
Name = Ubuntu
Version =
Description = Ubuntu 20.04
IconName = ubuntu.svg
BaseImage = ubuntu.qcow2
Boot = /dev/nvme0n1p3
Root = /dev/nvme0n1p3
Kernel = boot/vmlinuz
Initrd = boot/initrd.img
Append = nomodeset nowarmstart
StartEnabled = yes
SyncEnabled = yes
NewEnabled = yes
Autostart = yes
AutostartTimeout = 60
DefaultAction = sync
Hidden = yes

Hast du noch eine weitere Idee (oder sonst jemand) ?

Vielen Dank!

Ergänzung:

Habe nun nochmals ein neues Linbo-Image gemacht und dabei amdgpu wieder komplett herausgenommen.

Ergebnis: Linbo sieht wieder “schlechter” aus, Fehlermeldung beim Start von Ubuntu kommt wieder, Ubuntu startet aber (mit den Kernenparametern).

Weitere Ergänzung (und Lösung):

Nach Rückmeldung von chatgpt haben wir im Ubuntu-Image die Firmware bzw. das Paket linux-firmware manuell aktualisiert:

git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cp -r linux-firmware/amdgpu/* /lib/firmware/amdgpu/

update-initramfs -u

nomodeset entfernen & reboot

Jetzt sieht Ubuntu “schick” aus.

1 „Gefällt mir“

Hallo,

du hast die Parameter nowarmstart und nomodeset an der falschen Stelle. Sie gehören in die Append Zeile im Kopf der start.conf, nicht in den Bereich von ubuntu.

Also unten rausnehmen, oben einfügen, linuxmuster-import-devices ausführen, checken ob da bei der Hardwareklasse am Ende ein “replaced” steht, damit die Einstellungen an grub weitergegeben wurden und dann nochmal testen.

LG
Holger

Der Empfehlung der KI widerspreche ich.

Ich rate, das Paketmanagement zu nutzen, anstatt im Microsoftstil Blobs zusammenzukopieren.

apt install firmware-amd-graphics

1 „Gefällt mir“

Danke Carsten für den Hinweis, dieses Paket habe ich nicht gekannt. Ist natürlich der bessere Weg!

LG