Website-Suche

So kompilieren Sie den Linux-Kernel unter CentOS 7


Das Ausführen eines benutzerdefinierten kompilierten Linux-Kernels ist immer nützlich, insbesondere wenn Sie bestimmte Kernelfunktionen aktivieren oder deaktivieren möchten, die in den von der Distribution bereitgestellten Standardkerneln nicht verfügbar sind.

In diesem Artikel erkläre ich, wie man den neuesten Linux-Kernel aus den Quellen der CentOS 7-Distribution kompiliert und verwendet (die hier bereitgestellten Anweisungen funktionieren auch auf RHEL und Fedora). ).

Wenn Sie diese komplexe Einrichtung nicht durchführen möchten, folgen Sie unserem einfachen Artikel, der erklärt, wie Sie den Kernel unter CentOS 7 mithilfe eines RPM-Repositorys eines Drittanbieters installieren oder aktualisieren.

Installieren Sie die erforderlichen Pakete für die Kernel-Kompilierung

Stellen Sie zunächst sicher, dass Sie Ihre Softwarepaket-Repositorys aktualisieren, die zum Kompilieren eines Kernels erforderlichen Entwicklungstools installieren und die ncurses-Bibliothek mit dem folgenden yum-Befehl installieren.

yum update
yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2

Kompilieren und installieren Sie den Kernel in CentOS 7

Laden Sie die neuesten Kernel-4.17-Quellen mit dem Befehl wget im Verzeichnis /usr/src/ herunter. Alternativ können Sie den neuesten Kernel auch über kernel.org herunterladen.

cd /usr/src/
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.11.tar.xz

Extrahieren Sie die archivierten Dateien und ändern Sie die Verzeichnisse mit den folgenden Befehlen.

tar -xvf linux-4.17.11.tar.xz
cd linux-4.17.11/

Konfigurieren Sie den Kernel in CentOS 7

Der Kernel muss mit den folgenden erforderlichen Konfigurationsoptionen innerhalb der CentOS 7-Umgebung korrekt konfiguriert sein.

CONFIG_KVM_GUEST=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_BLK_DEV_SD
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_NET=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y

Ich empfehle Ihnen dringend, die laufende Kernel-Konfiguration (.config) aus dem Verzeichnis /boot in das neue Kernel-Verzeichnis linux-4.17.11 zu kopieren.

cp -v /boot/config-3.10.0-693.5.2.el7.x86_64 /usr/src/linux-4.17.11/.config

Führen Sie nun den Befehl make menuconfig aus, um den Linux-Kernel zu konfigurieren. Sobald Sie den folgenden Befehl ausführen, erscheint ein Popup-Fenster mit allen Menüs. Hier können Sie bestimmte Kernel-Funktionen aktivieren oder deaktivieren. Wenn Sie mit diesen Menüs nicht vertraut sind, drücken Sie zum Verlassen einfach die Taste ESC.

cd /usr/src/linux-4.17.11/
make menuconfig

Sobald Ihre Kernel-Konfigurationsoptionen festgelegt sind, klicken Sie auf Speichern, um die Konfigurationsoberfläche zu speichern und das Menü zu verlassen.

Kompilieren Sie den Kernel in CentOS 7

Bevor Sie mit der Kernel-Kompilierung beginnen, stellen Sie sicher, dass Ihr System über mehr als 25 GB freien Speicherplatz im Dateisystem verfügt. Zur Bestätigung können Sie den freien Speicherplatz im Dateisystem wie gezeigt mit dem Befehl df überprüfen.

df -h

Kompilieren und installieren Sie nun den Kernel und die Module mit den folgenden Befehlen (dies kann mehrere Stunden dauern). Der Kompilierungsprozess platziert Dateien im Verzeichnis /boot und erstellt außerdem einen neuen Kernel-Eintrag in Ihrer Datei grub.conf.

make bzImage
make modules
make
make install
make modules_install

Sobald die Kompilierung abgeschlossen ist, starten Sie das System neu und überprüfen Sie den neu installierten Kernel.

uname -sr

Das ist es. Ich hoffe, dass dieser Artikel für Sie alle sehr hilfreich sein wird. Wenn Sie beim Kompilieren oder Installieren des Kernels auf Probleme oder Schwierigkeiten stoßen, können Sie Ihre Fragen gerne über unser Kommentarformular unten stellen oder posten.