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 Kernel-Funktionen aktivieren oder deaktivieren möchten, die in den von der Standarddistribution bereitgestellten Kernels nicht verfügbar sind.
In diesem Artikel werde ich erklären, wie Sie den neuesten Linux-Kernel aus den Quellen in der CentOS 7-Distribution kompilieren und verwenden (die hier bereitgestellten Anweisungen sind auch Arbeiten auf RHEL und Fedora).
Wenn Sie diese komplexe Einrichtung nicht durchlaufen möchten, folgen Sie unserem einfachen Artikel, in dem erklärt wird, wie Sie den Kernel unter CentOS 7 mithilfe eines RPM-Repositorys eines Drittanbieters installieren oder aktualisieren.
Installieren der erforderlichen Pakete für die Kernel-Kompilierung
Stellen Sie zunächst sicher, dass Sie Ihre Softwarepaket-Repositories aktualisieren, die Entwicklungswerkzeuge installieren, die zum Kompilieren eines Kernels benötigt werden, 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 des Kernels in CentOS 7
Laden Sie die neuesten Kernel 4.17-Quellen mit dem Befehl wget im Verzeichnis /usr/src/ herunter oder Sie können den neuesten Kernel auch herunterladen, indem Sie zu kernel.org gehen.
# 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 wechseln Sie das Verzeichnis mit den folgenden Befehlen.
# tar -xvf linux-4.17.11.tar.xz
cd linux-4.17.11/
Konfigurieren des Kernels in CentOS 7
Der Kernel muss mit den folgenden erforderlichen Konfigurationsoptionen in 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 /boot-Verzeichnis 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 ausgeführt haben, 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 einfach die ESC-Taste, um den Vorgang zu beenden.
# cd /usr/src/linux-4.17.11/
make menuconfig
Sobald Ihre Kernel-Konfigurationsoptionen eingestellt 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 auf dem Dateisystem verfügt. Zur Bestätigung können Sie den freien Speicherplatz des Dateisystems mit dem Befehl df überprüfen, wie gezeigt.
# df -h
Kompilieren und installieren Sie nun den Kernel und die Module mit den folgenden Befehlen (es kann mehrere Stunden dauern). Der Kompilierungsprozess legt die Dateien im Verzeichnis /boot ab und erstellt auch einen neuen Kernel-Eintrag in Ihrer grub.conf-Datei.
# 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 wars. Ich hoffe, dass dieser Artikel für Sie alle sehr hilfreich sein wird. Wenn Sie auf Probleme oder Schwierigkeiten beim Kompilieren oder Installieren des Kernels stoßen, können Sie Ihre Fragen gerne über unser Kommentarformular unten stellen oder posten.


