Kernel kompilieren Vorgang Debian: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ = Benötigte Pakete = * '''apt install fakeroot build-essential libncurses-dev xz-utils libssl-dev flex libelf-dev bison bc pahole''' = Vorbereitungen = *…“)
 
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Voraussetzungen=
  
= Benötigte Pakete =
+
;Plattenplatz
 +
Mit der unveränderten Debian-Konfiguration braucht der Bau rund '''50 GByte''' und mehrere Stunden. Der Grund sind die Debug-Informationen, die Debian für seine eigenen Pakete einschaltet. Werden sie abgeschaltet – siehe unten –, sinkt der Bedarf auf etwa '''3 GByte''' und die Bauzeit auf einen Bruchteil.
  
* '''apt install fakeroot build-essential libncurses-dev xz-utils libssl-dev flex libelf-dev bison bc pahole'''
+
;Rechenzeit
 +
Der Bau ist der einzige Vorgang im Kurs, der einen Rechner über längere Zeit voll auslastet. Je mehr Kerne die Maschine hat, desto kürzer dauert es.
  
= Vorbereitungen =
+
=Benötigte Pakete=
 +
*apt install build-essential fakeroot libncurses-dev libssl-dev libelf-dev flex bison bc xz-utils rsync cpio kmod zstd pahole
  
* '''sudo -i'''
+
Wozu die wichtigsten dienen:
* '''cd /usr/src'''
+
{| class="wikitable"
 +
! Paket !! Zweck
 +
|-
 +
| <code>build-essential</code> || Compiler, Binutils, make
 +
|-
 +
| <code>libncurses-dev</code> || Textoberfläche von <code>make menuconfig</code>
 +
|-
 +
| <code>libssl-dev</code> || Signieren der Module
 +
|-
 +
| <code>libelf-dev</code>, <code>pahole</code> || BTF-Informationen für eBPF
 +
|-
 +
| <code>flex</code>, <code>bison</code> || Parser des Konfigurationssystems
 +
|-
 +
| <code>rsync</code>, <code>cpio</code>, <code>kmod</code>, <code>zstd</code> || Installation von Headern, Modulen und Initramfs
 +
|}
  
== Quellcode herunterladen ==
+
Auf älteren Debian-Versionen heißt <code>pahole</code> noch <code>dwarves</code>.
  
* https://mirrors.edge.kernel.org/pub/linux/kernel/
+
=Vorbereitungen=
* '''wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.2.tar.gz'''
+
*sudo -i
* '''tar -xvzf linux-6*'''
+
*cd /usr/src
* '''cd linux-6*/'''
 
  
== Alte Konfiguration kopieren ==
+
==Quellcode herunterladen==
 +
Die gepflegten Versionen stehen auf https://www.kernel.org/ unter ''longterm''. Aktuell sind das die Reihen 6.18, 6.12, 6.6 und 6.1. Die Version 6.2 aus älteren Anleitungen wird seit 2023 nicht mehr gepflegt und sollte nicht mehr verwendet werden.
  
* '''cp /boot/config-$(uname -r) .config'''
+
Verzeichnisübersicht: https://mirrors.edge.kernel.org/pub/linux/kernel/
* '''yes &quot;&quot; | make oldconfig'''
 
  
= neuen Kernel konfigurieren =
+
*wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.18.38.tar.xz
  
* '''make menuconfig'''
+
Die Nummer nach dem zweiten Punkt ändert sich laufend – vorher auf kernel.org nachsehen, welche die aktuelle ist.
  
= Kernel und Module kompilieren =
+
*tar -xJf linux-6.18*.tar.xz
 +
*cd linux-6.18*/
  
* '''-j8''', um 8 Kerne für die Kompilierung zu verwenden (jobs)
+
Das Archiv im Format <code>.tar.xz</code> ist deutlich kleiner als <code>.tar.gz</code>; entpackt wird es mit <code>-J</code> statt <code>-z</code>.
* '''make -j8 bzImage modules'''
 
  
= Kernel und Module installieren =
+
==Alte Konfiguration übernehmen==
 +
Als Ausgangspunkt dient die Konfiguration des laufenden Debian-Kernels. So laufen alle Treiber weiter, die die Maschine bisher gebraucht hat.
  
* '''make modules_install install'''
+
*cp /boot/config-$(uname -r) .config
  
= GRUB aktualisieren =
+
Der neue Kernel kennt Optionen, die es im alten noch nicht gab. <code>olddefconfig</code> setzt diese auf ihren Vorgabewert, ohne für jede einzelne nachzufragen:
 +
*make olddefconfig
  
* '''update-grub'''
+
==Die Debian-Besonderheiten abschalten==
 +
Debians Konfiguration verweist auf Zertifikatsdateien, die nur im Debian-Paketbau existieren. Ohne diese Änderung bricht der Bau ab. Die Optionen werden auf einen '''leeren Wert''' gesetzt – Auskommentieren genügt nicht, weil dann der Vorgabewert greift.
  
= Troubleshooting =
+
*scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
 +
*scripts/config --set-str MODULE_SIG_KEY ""
  
;Fehler bei der Kompilierung:
+
Debug-Informationen abschalten. Das ist der Unterschied zwischen 50 und 3 GByte.
* '''vim .config'''
+
 
* CONFIG_SYSTEM_TRUSTED_KEY auskommentieren
+
Hier liegt eine Falle: <code>DEBUG_INFO</code> ist kein eigener Schalter, sondern wird von einer '''Auswahlgruppe''' gesetzt, in der genau ein Eintrag aktiv sein darf. <code>scripts/config</code> kennt diese Gruppen nicht und schaltet die Geschwister nicht ab – deshalb muss der bisher aktive Eintrag ausdrücklich mit deaktiviert werden. In Debians Konfiguration ist das <code>DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT</code>.
* CONFIG_MODULE_SIG_KEY auskommentieren
+
 
 +
*scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
 +
*scripts/config --enable DEBUG_INFO_NONE
 +
*make olddefconfig
 +
 
 +
<code>DEBUG_INFO_BTF</code> fällt dabei von selbst weg, weil es Debug-Informationen voraussetzt.
 +
 
 +
Kontrolle – es darf nur noch <code>CONFIG_DEBUG_INFO_NONE=y</code> übrig bleiben:
 +
*grep -E 'DEBUG_INFO' .config | grep -v '^#'
 +
 
 +
==Einen eigenen Namen vergeben==
 +
Ohne eigene Kennung heißt der neue Kernel fast genauso wie der alte und ist im GRUB-Menü kaum zu unterscheiden.
 +
*scripts/config --set-str LOCALVERSION "-xinux"
 +
 
 +
Aus <code>6.18.38</code> wird damit <code>6.18.38-xinux</code>.
 +
 
 +
=Kernel konfigurieren=
 +
*make menuconfig
 +
 
 +
Bedienung: Pfeiltasten zum Navigieren, <code>Leertaste</code> schaltet zwischen <code>*</code> (fest eingebaut), <code>M</code> (als Modul) und leer (nicht enthalten), <code>/</code> sucht nach einer Option, <code>?</code> zeigt die Hilfe zur markierten Zeile.
 +
 
 +
'''Achtung:''' <code>make menuconfig</code> kann die vorher gesetzten Optionen wieder verändern, wenn man an den betreffenden Stellen etwas umstellt. Nach dem Verlassen kontrollieren:
 +
*grep -E 'SYSTEM_TRUSTED_KEYS|MODULE_SIG_KEY|DEBUG_INFO_NONE' .config
 +
 
 +
Alternativ lässt sich die Debug-Information auch direkt in der Oberfläche einstellen: ''Kernel hacking → Compile-time checks and compiler options → Debug information → None''. Die Oberfläche kennt die Auswahlgruppe und räumt die übrigen Einträge selbst ab – das ist der zuverlässigere Weg.
 +
 
 +
=Kernel und Module übersetzen=
 +
<code>-j</code> gibt an, wie viele Übersetzungsvorgänge gleichzeitig laufen. <code>$(nproc)</code> setzt automatisch die Zahl der vorhandenen Kerne ein.
 +
 
 +
*make -j$(nproc)
 +
 
 +
<code>make</code> ohne Ziel baut den Kernel und alle Module. Welche weiteren Ziele es gibt, zeigt <code>make help</code>.
 +
 
 +
=Installieren=
 +
*make modules_install install
 +
 
 +
Was dabei geschieht:
 +
*Die Module landen unter <code>/lib/modules/6.18.38-xinux/</code>
 +
*Der Kernel wird als <code>/boot/vmlinuz-6.18.38-xinux</code> abgelegt
 +
*<code>update-initramfs</code> erzeugt die passende Initramfs
 +
*<code>update-grub</code> nimmt den Kernel ins Bootmenü auf
 +
 
 +
Die beiden letzten Schritte ruft <code>make install</code> auf Debian selbst auf – ein zusätzliches <code>update-grub</code> ist nicht nötig, schadet aber nicht.
 +
 
 +
Kontrolle:
 +
*ls -l /boot/
 +
*grep menuentry /boot/grub/grub.cfg
 +
 
 +
=Neu starten und prüfen=
 +
*reboot
 +
 
 +
Nach dem Start:
 +
*uname -r
 +
 
 +
6.18.38-xinux
 +
 
 +
Startet der neue Kernel nicht, wählt man im GRUB-Menü unter ''Advanced options for Debian'' den alten Eintrag aus. Der bisherige Kernel bleibt vollständig erhalten – deshalb ist der Vorgang gefahrlos.
 +
 
 +
=Wieder entfernen=
 +
<code>make install</code> legt Dateien am Paketmanagement vorbei ab; sie müssen von Hand entfernt werden.
 +
 
 +
*rm -rf /lib/modules/6.18.38-xinux
 +
*rm -f /boot/vmlinuz-6.18.38-xinux /boot/initrd.img-6.18.38-xinux /boot/System.map-6.18.38-xinux /boot/config-6.18.38-xinux
 +
*update-grub
 +
 
 +
'''Nur einen Kernel entfernen, unter dem man nicht gerade läuft''' – vorher mit <code>uname -r</code> prüfen.
 +
 
 +
=Troubleshooting=
 +
 
 +
;Fehler: No rule to make target 'debian/certs/debian-uefi-certs.pem'
 +
Die Zertifikatsoptionen wurden nicht geleert. Siehe oben:
 +
*scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
 +
*scripts/config --set-str MODULE_SIG_KEY ""
 +
 
 +
;Die Platte läuft voll
 +
Debug-Informationen sind noch eingeschaltet. Prüfen:
 +
*grep -E 'DEBUG_INFO' .config | grep -v '^#'
 +
 
 +
Steht dort <code>CONFIG_DEBUG_INFO=y</code>, ist noch ein anderer Eintrag der Auswahlgruppe aktiv – meist <code>DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT</code>. Er muss mit abgeschaltet werden:
 +
*scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
 +
*scripts/config --enable DEBUG_INFO_NONE
 +
*make olddefconfig
 +
 
 +
Bereits erzeugte Dateien aufräumen – <code>clean</code> behält die Konfiguration, <code>mrproper</code> löscht auch sie:
 +
*make clean
 +
 
 +
;Fehler: pahole version too old / BTF
 +
*scripts/config --disable DEBUG_INFO_BTF
 +
 
 +
;Der neue Kernel bootet nicht
 +
Im GRUB-Menü unter ''Advanced options'' den alten Kernel starten, dann die Konfiguration prüfen. Häufigste Ursache ist ein Treiber, der für die Systemplatte gebraucht wird und versehentlich als Modul statt fest eingebaut konfiguriert wurde.
 +
 
 +
=Aufgaben=
 +
 
 +
* Installieren Sie die für den Kernelbau benötigten Pakete.
 +
<!-- Lösung: apt install build-essential fakeroot libncurses-dev libssl-dev libelf-dev flex bison bc xz-utils rsync cpio kmod zstd pahole -->
 +
 
 +
* Laden Sie die aktuelle longterm-Version aus der Reihe 6.18 herunter und entpacken Sie sie unter /usr/src.
 +
<!-- Lösung: cd /usr/src; wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.18.xx.tar.xz; tar -xJf linux-6.18*.tar.xz -->
 +
 
 +
* Übernehmen Sie die Konfiguration des laufenden Kernels und bringen Sie sie auf den neuen Stand.
 +
<!-- Lösung: cp /boot/config-$(uname -r) .config; make olddefconfig -->
 +
 
 +
* Leeren Sie die beiden Zertifikatsoptionen. Warum genügt Auskommentieren nicht?
 +
<!-- Lösung: scripts/config --set-str SYSTEM_TRUSTED_KEYS ""; scripts/config --set-str MODULE_SIG_KEY "" -- auskommentiert greift der Vorgabewert, der wieder auf die Debian-Dateien zeigt -->
 +
 
 +
* Schalten Sie die Debug-Informationen ab und begründen Sie, warum.
 +
<!-- Lösung: scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT; scripts/config --enable DEBUG_INFO_NONE; make olddefconfig -- reduziert den Platzbedarf von rund 50 auf rund 3 GByte und verkürzt die Bauzeit erheblich -->
 +
 
 +
* Kontrollieren Sie das Ergebnis. Warum genügt es nicht, DEBUG_INFO einfach zu deaktivieren?
 +
<!-- Lösung: grep -E 'DEBUG_INFO' .config | grep -v '^#' -- DEBUG_INFO wird von einer Auswahlgruppe gesetzt; solange ein anderer Eintrag der Gruppe aktiv ist, stellt make olddefconfig den Wert wieder her -->
 +
 
 +
* Geben Sie dem Kernel eine eigene Kennung.
 +
<!-- Lösung: scripts/config --set-str LOCALVERSION "-xinux" -->
 +
 
 +
* Sehen Sie sich die Konfiguration in der Textoberfläche an und suchen Sie die Option für das ext4-Dateisystem.
 +
<!-- Lösung: make menuconfig, dann / und "EXT4" eingeben -->
 +
 
 +
* Übersetzen Sie Kernel und Module mit allen verfügbaren Kernen.
 +
<!-- Lösung: make -j$(nproc) -->
 +
 
 +
* Installieren Sie das Ergebnis und kontrollieren Sie, was in /boot gelandet ist.
 +
<!-- Lösung: make modules_install install; ls -l /boot/ -->
 +
 
 +
* Starten Sie neu und prüfen Sie, welcher Kernel läuft.
 +
<!-- Lösung: reboot; uname -r -->
 +
 
 +
* Wie kommen Sie zurück auf den alten Kernel, falls der neue nicht startet?
 +
<!-- Lösung: im GRUB-Menü unter "Advanced options for Debian" den alten Eintrag wählen -->
 +
 
 +
[[Kategorie:Systemanpassung]]

Aktuelle Version vom 24. August 2026, 17:14 Uhr

Voraussetzungen

Plattenplatz

Mit der unveränderten Debian-Konfiguration braucht der Bau rund 50 GByte und mehrere Stunden. Der Grund sind die Debug-Informationen, die Debian für seine eigenen Pakete einschaltet. Werden sie abgeschaltet – siehe unten –, sinkt der Bedarf auf etwa 3 GByte und die Bauzeit auf einen Bruchteil.

Rechenzeit

Der Bau ist der einzige Vorgang im Kurs, der einen Rechner über längere Zeit voll auslastet. Je mehr Kerne die Maschine hat, desto kürzer dauert es.

Benötigte Pakete

  • apt install build-essential fakeroot libncurses-dev libssl-dev libelf-dev flex bison bc xz-utils rsync cpio kmod zstd pahole

Wozu die wichtigsten dienen:

Paket Zweck
build-essential Compiler, Binutils, make
libncurses-dev Textoberfläche von make menuconfig
libssl-dev Signieren der Module
libelf-dev, pahole BTF-Informationen für eBPF
flex, bison Parser des Konfigurationssystems
rsync, cpio, kmod, zstd Installation von Headern, Modulen und Initramfs

Auf älteren Debian-Versionen heißt pahole noch dwarves.

Vorbereitungen

  • sudo -i
  • cd /usr/src

Quellcode herunterladen

Die gepflegten Versionen stehen auf https://www.kernel.org/ unter longterm. Aktuell sind das die Reihen 6.18, 6.12, 6.6 und 6.1. Die Version 6.2 aus älteren Anleitungen wird seit 2023 nicht mehr gepflegt und sollte nicht mehr verwendet werden.

Verzeichnisübersicht: https://mirrors.edge.kernel.org/pub/linux/kernel/

Die Nummer nach dem zweiten Punkt ändert sich laufend – vorher auf kernel.org nachsehen, welche die aktuelle ist.

  • tar -xJf linux-6.18*.tar.xz
  • cd linux-6.18*/

Das Archiv im Format .tar.xz ist deutlich kleiner als .tar.gz; entpackt wird es mit -J statt -z.

Alte Konfiguration übernehmen

Als Ausgangspunkt dient die Konfiguration des laufenden Debian-Kernels. So laufen alle Treiber weiter, die die Maschine bisher gebraucht hat.

  • cp /boot/config-$(uname -r) .config

Der neue Kernel kennt Optionen, die es im alten noch nicht gab. olddefconfig setzt diese auf ihren Vorgabewert, ohne für jede einzelne nachzufragen:

  • make olddefconfig

Die Debian-Besonderheiten abschalten

Debians Konfiguration verweist auf Zertifikatsdateien, die nur im Debian-Paketbau existieren. Ohne diese Änderung bricht der Bau ab. Die Optionen werden auf einen leeren Wert gesetzt – Auskommentieren genügt nicht, weil dann der Vorgabewert greift.

  • scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
  • scripts/config --set-str MODULE_SIG_KEY ""

Debug-Informationen abschalten. Das ist der Unterschied zwischen 50 und 3 GByte.

Hier liegt eine Falle: DEBUG_INFO ist kein eigener Schalter, sondern wird von einer Auswahlgruppe gesetzt, in der genau ein Eintrag aktiv sein darf. scripts/config kennt diese Gruppen nicht und schaltet die Geschwister nicht ab – deshalb muss der bisher aktive Eintrag ausdrücklich mit deaktiviert werden. In Debians Konfiguration ist das DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT.

  • scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
  • scripts/config --enable DEBUG_INFO_NONE
  • make olddefconfig

DEBUG_INFO_BTF fällt dabei von selbst weg, weil es Debug-Informationen voraussetzt.

Kontrolle – es darf nur noch CONFIG_DEBUG_INFO_NONE=y übrig bleiben:

  • grep -E 'DEBUG_INFO' .config | grep -v '^#'

Einen eigenen Namen vergeben

Ohne eigene Kennung heißt der neue Kernel fast genauso wie der alte und ist im GRUB-Menü kaum zu unterscheiden.

  • scripts/config --set-str LOCALVERSION "-xinux"

Aus 6.18.38 wird damit 6.18.38-xinux.

Kernel konfigurieren

  • make menuconfig

Bedienung: Pfeiltasten zum Navigieren, Leertaste schaltet zwischen * (fest eingebaut), M (als Modul) und leer (nicht enthalten), / sucht nach einer Option, ? zeigt die Hilfe zur markierten Zeile.

Achtung: make menuconfig kann die vorher gesetzten Optionen wieder verändern, wenn man an den betreffenden Stellen etwas umstellt. Nach dem Verlassen kontrollieren:

  • grep -E 'SYSTEM_TRUSTED_KEYS|MODULE_SIG_KEY|DEBUG_INFO_NONE' .config

Alternativ lässt sich die Debug-Information auch direkt in der Oberfläche einstellen: Kernel hacking → Compile-time checks and compiler options → Debug information → None. Die Oberfläche kennt die Auswahlgruppe und räumt die übrigen Einträge selbst ab – das ist der zuverlässigere Weg.

Kernel und Module übersetzen

-j gibt an, wie viele Übersetzungsvorgänge gleichzeitig laufen. $(nproc) setzt automatisch die Zahl der vorhandenen Kerne ein.

  • make -j$(nproc)

make ohne Ziel baut den Kernel und alle Module. Welche weiteren Ziele es gibt, zeigt make help.

Installieren

  • make modules_install install

Was dabei geschieht:

  • Die Module landen unter /lib/modules/6.18.38-xinux/
  • Der Kernel wird als /boot/vmlinuz-6.18.38-xinux abgelegt
  • update-initramfs erzeugt die passende Initramfs
  • update-grub nimmt den Kernel ins Bootmenü auf

Die beiden letzten Schritte ruft make install auf Debian selbst auf – ein zusätzliches update-grub ist nicht nötig, schadet aber nicht.

Kontrolle:

  • ls -l /boot/
  • grep menuentry /boot/grub/grub.cfg

Neu starten und prüfen

  • reboot

Nach dem Start:

  • uname -r
6.18.38-xinux

Startet der neue Kernel nicht, wählt man im GRUB-Menü unter Advanced options for Debian den alten Eintrag aus. Der bisherige Kernel bleibt vollständig erhalten – deshalb ist der Vorgang gefahrlos.

Wieder entfernen

make install legt Dateien am Paketmanagement vorbei ab; sie müssen von Hand entfernt werden.

  • rm -rf /lib/modules/6.18.38-xinux
  • rm -f /boot/vmlinuz-6.18.38-xinux /boot/initrd.img-6.18.38-xinux /boot/System.map-6.18.38-xinux /boot/config-6.18.38-xinux
  • update-grub

Nur einen Kernel entfernen, unter dem man nicht gerade läuft – vorher mit uname -r prüfen.

Troubleshooting

Fehler
No rule to make target 'debian/certs/debian-uefi-certs.pem'

Die Zertifikatsoptionen wurden nicht geleert. Siehe oben:

  • scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
  • scripts/config --set-str MODULE_SIG_KEY ""
Die Platte läuft voll

Debug-Informationen sind noch eingeschaltet. Prüfen:

  • grep -E 'DEBUG_INFO' .config | grep -v '^#'

Steht dort CONFIG_DEBUG_INFO=y, ist noch ein anderer Eintrag der Auswahlgruppe aktiv – meist DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT. Er muss mit abgeschaltet werden:

  • scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
  • scripts/config --enable DEBUG_INFO_NONE
  • make olddefconfig

Bereits erzeugte Dateien aufräumen – clean behält die Konfiguration, mrproper löscht auch sie:

  • make clean
Fehler
pahole version too old / BTF
  • scripts/config --disable DEBUG_INFO_BTF
Der neue Kernel bootet nicht

Im GRUB-Menü unter Advanced options den alten Kernel starten, dann die Konfiguration prüfen. Häufigste Ursache ist ein Treiber, der für die Systemplatte gebraucht wird und versehentlich als Modul statt fest eingebaut konfiguriert wurde.

Aufgaben

  • Installieren Sie die für den Kernelbau benötigten Pakete.
  • Laden Sie die aktuelle longterm-Version aus der Reihe 6.18 herunter und entpacken Sie sie unter /usr/src.
  • Übernehmen Sie die Konfiguration des laufenden Kernels und bringen Sie sie auf den neuen Stand.
  • Leeren Sie die beiden Zertifikatsoptionen. Warum genügt Auskommentieren nicht?
  • Schalten Sie die Debug-Informationen ab und begründen Sie, warum.
  • Kontrollieren Sie das Ergebnis. Warum genügt es nicht, DEBUG_INFO einfach zu deaktivieren?
  • Geben Sie dem Kernel eine eigene Kennung.
  • Sehen Sie sich die Konfiguration in der Textoberfläche an und suchen Sie die Option für das ext4-Dateisystem.
  • Übersetzen Sie Kernel und Module mit allen verfügbaren Kernen.
  • Installieren Sie das Ergebnis und kontrollieren Sie, was in /boot gelandet ist.
  • Starten Sie neu und prüfen Sie, welcher Kernel läuft.
  • Wie kommen Sie zurück auf den alten Kernel, falls der neue nicht startet?