GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kompilieren Sie den Linux-Kernel aus der Quelle, um einen benutzerdefinierten Kernel zu erstellen

Der Linux-Kernel ist die Lebenskraft aller Betriebssysteme der Linux-Familie, einschließlich Ubuntu, CentOS und Fedora.

Zum größten Teil müssen Sie den Kernel nicht kompilieren, da er standardmäßig installiert wird, wenn Sie das Betriebssystem installieren. Wenn der Kernel kritisch aktualisiert wird, können Sie yum oder apt-get verwenden, um den Kernel auf Ihrem Linux-System zu aktualisieren.

Es kann jedoch vorkommen, dass Sie in bestimmte Situationen geraten um den Kernel aus den Quellen zu kompilieren. Im Folgenden sind einige Situationen aufgeführt, in denen Sie möglicherweise den Kernel auf Ihrem Linux-System kompilieren müssen.

  • Um experimentelle Funktionen zu aktivieren, die nicht Teil des Standardkernels sind.
  • Um die Unterstützung für eine neue Hardware zu aktivieren, die derzeit nicht vom Standardkernel unterstützt wird.
  • Um den Kernel zu debuggen
  • Oder nur um zu erfahren, wie der Kernel funktioniert, möchten Sie vielleicht den Kernel-Quellcode erkunden und ihn selbst kompilieren.

In diesem Tutorial erklären wir, wie man den Linux-Kernel aus dem Quellcode kompiliert.

Beachten Sie auch, dass Sie den Kernel nicht kompilieren müssen, wenn Sie nur einen Treiber kompilieren möchten. Sie benötigen lediglich das Paket linux-headers des Kernels.

1. Laden Sie den neuesten stabilen Kernel herunter

Der erste Schritt besteht darin, den neuesten stabilen Kernel von kernel.org herunterzuladen.

# cd /usr/src/

# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz

2. Entpacken Sie die Kernel-Quelle

Der zweite Schritt besteht darin, die Kernel-Quelldatei zum Kompilieren zu entpacken.

# tar -xvJf linux-3.9.3.tar.xz

3. Konfigurieren Sie den Kernel

Der Kernel enthält fast 3000 Konfigurationsoptionen. Damit der Kernel von den meisten Menschen auf der meisten Hardware verwendet wird, wird die Linux-Distribution wie Ubuntu, Fedora, Debian, RedHat, CentOS usw. im Allgemeinen die gängigste Hardware unterstützen. Sie können eine beliebige Konfiguration aus der Distribution übernehmen und darüber hinaus Ihre eigene Konfiguration hinzufügen, oder Sie können den Kernel von Grund auf neu konfigurieren, oder Sie können die vom Kernel bereitgestellte Standardkonfiguration verwenden.

# cd linux-3.9.3

# make menuconfig

Das make menuconfig startet eine textbasierte Benutzeroberfläche mit Standardkonfigurationsoptionen, wie in der Abbildung gezeigt. Sie sollten die Pakete „libncurses und libncurses-devel“ installiert haben, damit dieser Befehl funktioniert.

Wir werden die vom Kernel bereitgestellte Standardkonfiguration verwenden. Wählen Sie also „Speichern“ und speichern Sie die Konfiguration unter dem Dateinamen „.config“.

Das Folgende ist ein Beispiel der „.config“-Datei:

CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y

4. Kompilieren Sie den Linux-Kernel

Kompilieren Sie den Hauptkernel:

# make

Kompilieren Sie die Kernel-Module:

# make modules

Installieren Sie die Kernel-Module:

# make modules_install

An diesem Punkt sollten Sie ein Verzeichnis namens /lib/modules/3.9.3/ in Ihrem System sehen.

5. Installieren Sie den neuen Kernel

Installieren Sie den neuen Kernel auf dem System:

# make install

Der Befehl make install erstellt die folgenden Dateien im /boot-Verzeichnis.

  • vmlinuz-3.9.3 – Der eigentliche Kernel
  • System.map-3.9.3 – Die vom Kernel exportierten Symbole
  • initrd.img-3.9.3 – initrd-Image ist temporäres Root-Dateisystem, das während des Startvorgangs verwendet wird
  • config-3.9.3 – Die Kernel-Konfigurationsdatei

Der Befehl „make install“ aktualisiert standardmäßig auch die grub.cfg. Daher müssen wir die Datei grub.cfg nicht manuell bearbeiten.

6. Booten Sie Linux mit dem neuen Kernel

Um den gerade kompilierten neuen Kernel zu verwenden, starten Sie das System neu.

# reboot

Da in grub.cfg der neue Kernel als Standardboot hinzugefügt wird, bootet das System vom neuen Kernel. Für den Fall, dass Sie Probleme mit dem neuen Kernel haben, können Sie während des Bootens den alten Kernel aus dem Grub-Menü auswählen und Ihr System wie gewohnt verwenden.

Sobald das System hochgefahren ist, verwenden Sie den Befehl uname, um zu überprüfen, ob die neue Version des Linux-Kernels installiert ist.

$ uname -r
3.9.3

Linux
  1. So kompilieren Sie Brotli aus der Quelle unter Ubuntu 18.04 LTS

  2. So kompilieren Sie Brotli aus der Quelle unter CentOS 7

  3. So installieren und konfigurieren Sie Nginx von der Quelle unter Linux

  4. Wie lade ich Linux-Kernel-Module aus C-Code?

  5. Wie erstelle ich ein minimales bootfähiges Linux (nur mit Terminal) aus dem Kernel-Quellcode?

So erstellen Sie Nginx aus dem Quellcode unter CentOS 7

So installieren Sie ein Programm von der Quelle unter Linux

Wie man Debian-Pakete aus den Quellen erstellt

So installieren Sie Software von der Quelle in Linux

So kompilieren Sie PHP7.0/PHP7.1 aus dem Quellcode unter Arch Linux

So erstellen Sie einen Linux-Kernel von Grund auf neu