Kompilieren des Linux-Kernels 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 von der Standarddistribution bereitgestellten Kerneln nicht verfügbar sind.

In diesem Artikel werde ich erklären, wie der neueste Linux-Kernel aus den Quellen in kompiliert und verwendet wird CentOS 7 Verteilung (Anweisungen hier sind auch Arbeiten an RHEL und Fedora).

Wenn Sie diese komplexen Einstellungen nicht durchführen möchten, lesen Sie unseren einfachen Artikel, in dem die Installation oder Aktualisierung auf den Kernel unter CentOS 7 mithilfe des RPM-Repositorys eines Drittanbieters erläutert wird.

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 das installieren Flüche Bibliothek mit dem folgenden Befehl yum.

# 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 den neuesten Kernel herunter 4.17 Quellen mit dem Befehl wget unter / usr / src / Verzeichnis oder Sie können auch den neuesten Kernel herunterladen, indem Sie zu gehen kernel.org.

# 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 korrekt konfiguriert sein CentOS 7 Umgebung.

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 zu kopieren (.config) von dem / boot Verzeichnis zum neuen Kernel Linux-4.17.11 Verzeichnis.

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

Führen Sie nun die aus make menuconfig Befehl zum Konfigurieren des Linux-Kernels. Sobald Sie den folgenden Befehl ausführen, wird ein Popup-Fenster mit allen Menüs angezeigt. Hier können Sie bestimmte Kernelfunktionen aktivieren oder deaktivieren. Wenn Sie mit diesen Menüs nicht vertraut sind, drücken Sie einfach ESC Schlüssel zum Beenden.

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

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

Machen Sie Menuconfig
Machen Sie Menuconfig
Speichern Sie die Kernel-Konfiguration
Speichern Sie die Kernel-Konfiguration

Kompilieren Sie den Kernel in CentOS 7

Stellen Sie vor dem Starten der Kernel-Kompilierung sicher, dass Ihr System über mehr als verfügt 25 GB von freiem Speicherplatz im Dateisystem. Zur Bestätigung können Sie den freien Speicherplatz des Dateisystems mit dem Befehl df wie gezeigt überprüfen.

# df -h

Kompilieren und installieren Sie nun den Kernel und die Module mit den folgenden Befehlen (Es kann mehrere Stunden dauern). Der Kompilierungsprozess legt Dateien unter ab / boot Verzeichnis und machen Sie auch einen neuen Kernel-Eintrag in Ihrem grub.conf Datei.

# make bzImage
# make modules
# make
# make install
# make modules_install

Starten Sie nach Abschluss der Kompilierung das System neu und überprüfen Sie den neu installierten Kernel.

# uname -sr
Überprüfen Sie die Kernel-Version
Überprüfen Sie die Kernel-Version

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

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *