• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Kernel für AMDGPU Cezanne - AMD Zen 3 (Ryzen)

Christina

Moderator
Teammitglied
Hi,
ich möchte auf einem AMD Ryzen 5 5600G openSUSE Leap 15.3 installieren.
Der aktuelle Distributionskernel 5.3.18-59.34-default ist doch ein LTS mit sehr vielen Backports.
Steckt dort auch schon ein aktueller AMDGPU aus dem Linux Kernel 5.11 drin?

Bei einem Standard-Kernel wird für Grafik Vega: Cezanne angegeben: kernel 5.11 recommended, full support since 5.13

lg Christina
 
A

Anonymous

Gast
Wenn ich das richtig im Kopf habe (ich kann das jetzt nicht mit Links unterlegen) hatten alle bekannten Distributionen ausser Manjaro Probleme damit.
Der Wissensstand beläuft sich bei mir aber nur über einen Zeitablauf bis Anfang November.
Danach habe ich keine Email/Nachrichten bewusst mehr dazu wahr genommen.
Deshalb kann ich diese Frage auch nur wenig hinreichend beantworten, nur so als Hinweis.
 
Ich schätze mal nicht, ist ein 5.9 kernel.

Es gibt aber das kernel:stable:backport Repo für Leap 15.3
https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/

Code:
zypper ar -f https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/ kernel-stable-backport
Code:
zypper dup --allow-vendor-change --from https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/
 
OP
Christina

Christina

Moderator
Teammitglied
Sauerland schrieb:
Ich schätze mal nicht, ist ein 5.9 kernel.
Ein Bild werde ich aber schon bekommen, wenn ich mit dem Installationsmedium Leap 15.3 starte und installiere?
Müssen dann anschließend alle Systempakete auf die Version in diesem Repo https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/ umgestellt werden oder nur der Kernel allein?

Wie steht's dann noch mit den Paketen kernel-firmware-amdgpu, ucode-amd, die in diesem Repo nicht enthalten sind?
Edit: sowie libdrm_amdgpu1
Muss ich dafür noch ein weiteres Repo einbinden?
 
A

Anonymous

Gast
Sauerland schrieb:
Es gibt aber das kernel:stable:backport Repo für Leap 15.3
https://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/

Darf ich dich rein Interessehalber mal fragen seit welchem Zeitpunkt der so unterstützt wird bei Suse ?
Müssen da noch andere Repos für eingebunden werden oder reicht das so auch für andere Sachen die im Suse Kernel eingebunden werden ?
Ein Repo und gut ist?

Bei deb ist das teilweise anders.
 
Früher reichte es, nur den Kernel und die Firmware zu installieren

Seit neuestem musst du komplett alle Pakete auf das Repo umstellen, da dort neuere Versionen der suse-module-tools, pesign-obs-integration usw. vorhanden sind und sonst der Kernel nicht startet.
Das machen die beiden obigen Befehle, der erste fügt das Repo hinzu, der zweite stellt alle installierten Pakete auf die Pakete aus dem Repo um.
Normal sollte es reichen, nur das Repo zu benutzen und alle Pakete darauf umzustellen, alle dort nicht vorhandenen Pakete können weiterhin aus Leap benutzt werden, so lange es keine kmps sind. (siehe weiter unten)


Darf ich dich rein Interessehalber mal fragen seit welchem Zeitpunkt der so unterstützt wird bei Suse ?
Müssen da noch andere Repos für eingebunden werden oder reicht das so auch für andere Sachen die im Suse Kernel eingebunden werden ?
Ein Repo und gut ist?
1. Wird seit Jahren gebaut, ist im Prinzip das factory für Tumbleweed und läuft hier seit Jahren ohne Probleme:
Code:
uname -a && lsb-release -id
Linux linux64 5.15.2-lp153.7.g0840e2e-default #1 SMP Wed Nov 17 05:26:53 UTC 2021 (0840e2e) x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: openSUSE
Description:    openSUSE Leap 15.3
2. Nein, falls du nur den Kernel benötigst. Es gibt sogar ein kernel:stable:backport:kmp Repo mit einigen vor-kompilierten kernel-module-packages (kmp) wie z.B. Virtualbox, da die kmps von Leap ja gegen den alten kernel gebaut sind und somit nicht mehr funktionieren.
Daraus folgt auch, das der Nvidia-, broadcom-wl- oder rtl8168-Treiber aus den Leap Repos nicht mehr funktionierern
3. Ein Repo und gut. Für Leap muss man aber das backport Repo nehmen, da die anderen Repos mit tools aus factory gebaut werden und dann eben nicht mehr starten.
 
Christina schrieb:
Der AMDGPU-Installer bringt alles mit, soweit ich das hier sehen kann, oder doch nicht?
https://amdgpu-install.readthedocs.io/en/21.40/install-overview.html
Ich habe damit keinerlei Erfahrung.

Früher soll es schon einmal Linux-Grafiktreiber von ATi/AMD gegeben haben, die wurden aber vor ein paar Jahren einstellt.
Früher (vor 5 Jahren: https://www.sebastian-siebert.de/ ) hat ATI/AMD proprietäre Treiber gebaut, danach hat sich AMD/ATI aktiv mit der Treiberentwicklung unter Linux ohne proprietären Codec verschrieben, sodaß die von ATI/AMD Treiber jetzt schon im Kernel vorhanden sind.

Neuere Karten werden dabei natürlich nur von einem neueren Kernel unterstützt.

Ich würde die Aktivierung das kernel:stable:backport Repos und die Installation der Pakete aus diesem vorschlagen und nicht das rpm von AMD.

Aber das bleibt ganz allein Dir überlassen, kann dir keiner bei helfen.
 
OP
Christina

Christina

Moderator
Teammitglied
Sauerland schrieb:
Ich würde die Aktivierung das kernel:stable:backport Repos und die Installation der Pakete aus diesem vorschlagen und nicht das rpm von AMD.
Ja, natürlich. Das war nur eine Frage von mir aus Interesse.
Für die Ryzen X 4000G/5000G-APUs gibt es ja keine "Radeon™ Software for Linux®".

Danke erst mal!
Ich melde mich wieder, sobald die Installation fertig ist.
Board & CPU werden Asus TUF Gaming B550-Plus (ohne WiFi) & AMD Ryzen 5 5600G.
LG
Christina
 
A

Anonymous

Gast
Danke sauerland

Damit werden einige meiner grundsätzlichen Fragen beantwortet.

Auch bezüglich hiervon wobei ich mir auch schon etwas angesehen hatte.
https://linux-club.de/forum/viewtopic.php?p=797380#p797380

Da läuft doch manches anders unter Suse. :???:
Nicht schlechter nur anders...
 
openSUSE Kernel sind von openSUSE gepatchte kernel.
Wenn man sich das src.rpm herunterlädt, kann man diese einsehen.

Kernel:stable ist der gerade aktive kernel, kernel:head ist der gerade in der Entwicklung befindliche und noch nicht freigegebene kernel.

Aber davon ab, viele Distributionen patchen den kernel nach ihren "Bedürfnissen"
 
A

Anonymous

Gast
Nochmals Danke

Der Hut hat/hatte ja schon seine Besonderheiten, im Vergleich zu gewohnten deb, an denen ich bei meinem Hobby zu kämpfen hatte aber Suse auch.. :/
 
OP
Christina

Christina

Moderator
Teammitglied
Hi,
der neue PC mit Asus TUF Gaming B550-Plus (ohne WiFi) & AMD Ryzen 5 5600G läuft so super, dass ich jetzt schon den Zweiten (Bauvorschlag c't-Magazin) für eine andere Freundin zusammengebaut habe! Schwer ist das nicht, Arbeit halt.
(Ich persönlich behalte meinen alten PC mit AMD Llano aber noch. So schlecht läuft der nicht.)

Um die Zeit fürs Installieren zu sparen habe ich die root-Partition per fsarchiver auf den 2. PC übertragen, dann in der /etc/fstab die UUID aller Partitionen angepasst und per System-Rescue-CD "Leap 15.3" gebootet (findroot) und mit
Code:
ls -1 /boot
…
dracut --force --kver 5.15.11-lp153.3.g730a488-default
die Initrd für den 5.15er Kernel neu erstellt.

Vorher blieb Linux beim Start an dieser Stelle hängen:
[ OK ] Found device      Samsung SSD 980 1TB Linux_root
[ OK ] Reached Target      Initrd Root Device
Im Emergency-Mode gibt es das Kommando dracut nicht.

https://www.system-rescue.org/
 

josef-wien

Ultimate Guru
Für die Nachwelt: Nachdem wir gerade https://linux-club.de/forum/viewtopic.php?t=123681 hatten, vermute ich, daß der neue PC auch eine NVMe-SSD enthält und der kopierte Kernel darauf nicht zugreifen konnte.
 
OP
Christina

Christina

Moderator
Teammitglied
Ja, es sind beides NVMe-SSDs.
Eine Samsung SSD 980 1TB, (M.2 NVMe) kostet zur Zeit sogar etwas weniger als eine Samsung SSD 870 EVO 1TB (SATA).

Und ja: Eine Initrd war nach dem Klonen zwar vorhanden, aber der kopierte Kernel konnte nicht darauf zugreifen.
Keine Ahnung warum. Jedenfalls war die Option dracut --force nötig.

Oben hatte ich noch vergessen: Grub2 muss nach dem Klonen auch neu installiert werden.
Per System-Rescue-CD "Leap 15.3" gebootet (findroot), dann per YaST2 - Bootloader [ OK ].

Wenn beim Start vor dem Grub-Menü das blaue Fenster mit mok kommt:
eine Taste drücken
enroll mok
continue
yes
Password (hatte ich beim 1.PC bei mokutil --import /etc/uefi/certs/xxxxxxxx.crt schon angelegt)
reboot

Das richtige Kommando für die Shell, um Grub2 auf der geklonten SSD zu installieren, habe ich im www so direkt nicht gefunden und dann Yast genommen. Ich war mir nicht sicher, ob "grub2-install" oder "grub2-mkconfig" richtig ist.

Weiß es hier vielleicht jemand? Wäre echt nett.
LG Christina
 

susejunky

Moderator
Teammitglied
Hallo Christina,


Christina schrieb:
... Und ja: Eine Initrd war nach dem Klonen zwar vorhanden, aber der kopierte Kernel konnte nicht darauf zugreifen.
Keine Ahnung warum. Jedenfalls war die Option dracut --force nötig.
Auf die initrd (=> RAM-Disk) kann der Kernel schon zugreifen.

Der Systemstart läuft (vereinfacht dargestellt) wie folgt ab:

  1. Beim Systemstart lädt das UEFI den Bootloader (GRUB2) und startet dessen Ausführung.
  2. Der Bootloader lädt den Kernel und die initrd und startet die Ausführung des Kernels.
  3. Der Kernel nutzt zuerst das Root-Verzeichnis der initrd (=> RAM-Disk) will aber im weiteren Verlauf des Systemstarts auf das "eigentliche" Root-Dateisystem (das während des Systembetriebs genutzt wird) zugreifen. Befindet sich dieses auf einer NVMe-SSD, so benötigt der Kernel entsprechende Treiber (nvme-core.ko.zst, nvme.ko.zst). Sind diese Treiber nicht auf der initrd vorhanden, so kann der Kernel nicht auf auf sein Root-Dateisystem auf der NVMe-SSD zugreifen und damit scheitert der Systemstart.
In Deinem Fall wurde die initrd wahrscheinlich von einem Root-Dateisystem kopiert, welches sich auf einem SATA-Gerät (HDD oder SATA-SSD) befand, womit sie mit hoher Wahrscheinlichkeit auch nur die Treiber für diese Geräte enthielt. Wird diese initrd auf ein NVMe- oder USB-Gerät übertragen, so scheitert ein Systemstart von diesen Geräten, da dem Kernel die erforderlichen Treiber fehlen.

Auf meinen Systemen "erzwinge" ich die Aufnahme der NVMe- und USB-Treiber in die initrd und kann damit meine Systeme problemlos zwischen NVMe-SSDs, SATA-SSDs/HDDs hin- und her kopieren und kann diese auch ggf. in ein externes USB-Gehäuse einbauen.


Christina schrieb:
... Das richtige Kommando für die Shell, um Grub2 auf der geklonten SSD zu installieren, habe ich im www so direkt nicht gefunden und dann Yast genommen. Ich war mir nicht sicher, ob "grub2-install" oder "grub2-mkconfig" richtig ist.
Beide.

Der erste Befehl installiert den Bootloader der zweite erstellt ein aktuelles GRUB-Startmenü (je nach Situation benötigen beide Befehle ggf. noch Parameter).

Viele Grüße

susejunky
 
OP
Christina

Christina

Moderator
Teammitglied
Hi susejunky,
susejunky schrieb:
In Deinem Fall wurde die initrd wahrscheinlich von einem Root-Dateisystem kopiert, welches sich auf einem SATA-Gerät (HDD oder SATA-SSD) befand, (…)
Beide PCs sind identisch (Bauvorschlag c't Magazin 24/2021). Ich habe erst den einen mit einer Freundin zusammen aufgebaut und WinXI / Leap 15.3 installiert, dann hat das eine andere Freundin gesehen und wollte auch genau diesen Eigenbau-PC mit WinXI / Leap 15.3.
Beim 2. PC habe ich nach dem WinXI die Partitionen für Linux per gparted erstellt (System-Rescue-CD), dann nur die 20 GiB große root-Partition vom 1. PC per fsarchiver geklont und in der /etc/fstab die UUID aller Partitionen angepasst.

Weißt du vielleicht genau, welches Kommando dann nötig ist, um nun den Grub2 auf dem identischen 2. PC zu installieren?
Code:
/boot/efi/EFI/opensuse
Ich habe es halt mit YaST gemacht, weil ich den Befehl nicht genau kenne. Das Booten von Leap 15.3 klappt bis dahin nur per System-Rescue-CD (findroot) und mit dessen Linux-Kernel 5.10.87.

Nach dem Reboot war das Grub2-Menü da, Linux hing aber beim Punkt
[ OK ] Found device      Samsung SSD 980 1TB Linux_root
[ OK ] Reached Target      Initrd Root Device
fest und ich musste noch per dracut --force --kver 5.15.11-lp153.3.g730a488-default die initrd neu erstellen.
Vielleicht hat "Yast2 - Bootloader" beim Installieren von Grub2 die ursprüngliche initrd überschrieben. Es lief ja der Linux-Kernel 5.10.87 von System-Rescue-CD unter openSUSE Leap 15.3.

LG Christina
 

susejunky

Moderator
Teammitglied
Hallo Christina,


Christina schrieb:
... Beim 2. PC habe ich nach dem WinXI die Partitionen für Linux per gparted erstellt (System-Rescue-CD), dann nur die 20 GiB große root-Partition vom 1. PC per fsarchiver geklont und in der /etc/fstab die UUID aller Partitionen angepasst.

Weißt du vielleicht genau, welches Kommando dann nötig ist, um nun den Grub2 auf dem identischen 2. PC zu installieren?
um Dir Deine Frage einigermaßen fundiert beantworten zu können, fehlen mir noch einige Informationen zu Deinen beiden PCs (PC1 und PC2):

Fangen wir mit PC1 an:
  • Welcher Boot-Modus wird verwendet (UEFI oder CSM)?
  • Werden Techniken wie RAID und/oder LVM verwendet?
  • Auf welcher Art von Datenträger befindet sich das (Root) "/"-Dateisystem (SATA-HDD/SSD oder NVMe-SSD oder USB-Datenträger oder ...)?
  • Welche Datenträger gibt es insgesamt im System und wofür werden sie genutzt?
  • Welche Partitionen werden insgesamt verwendet (ESP, SWAP, /, /boot, /home, /var, ...)?
  • Welches Dateisystem wird für "/" verwendet (btrfs, ext4, ...)?
  • Sind Datenträger und/oder Partitionen verschlüsselt?

Wenn Du RAID und/oder LVM und/oder btrfs einsetzt kann ich Dir wahrscheinlich nur sehr eingeschränkt weiterhelfen.

Viele Grüße

susejunky
 
Oben