Zoeken op website

Hoe Linux Kernel te compileren op CentOS 7


Het uitvoeren van een op maat gecompileerde Linux-kernel is altijd handig, vooral als u specifieke kernelfuncties wilt in- of uitschakelen, die niet beschikbaar zijn in standaard door de distributie geleverde kernels.

In dit artikel zal ik uitleggen hoe je de nieuwste Linux-kernel kunt compileren en gebruiken vanuit de bronnen in de CentOS 7-distributie (de hier gegeven instructies werken ook op RHEL en Fedora ).

Als u deze complexe installatie niet wilt doorlopen, volg dan ons eenvoudige artikel waarin wordt uitgelegd hoe u Kernel op CentOS 7 kunt installeren of upgraden met behulp van een RPM-repository van derden.

Installeer de vereiste pakketten voor kernelcompilatie

Zorg er eerst voor dat u de repository's van uw softwarepakketten bijwerkt, de ontwikkeltools installeert die nodig zijn voor het compileren van een kernel, en installeer de ncurses bibliotheek met behulp van de volgende yum-opdracht.

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

Compileer en installeer Kernel in CentOS 7

Download de nieuwste Kernel 4.17 bronnen met de opdracht wget in de map /usr/src/, of je kunt ook de nieuwste kernel downloaden door naar kernel.org te gaan.

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

Pak de gearchiveerde bestanden uit en wijzig de mappen met behulp van de volgende opdrachten.

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

Configureer de kernel in CentOS 7

De kernel moet correct worden geconfigureerd met de volgende vereiste configuratie-opties binnen de CentOS 7-omgeving.

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

Ik raad u sterk aan om de actieve kernelconfiguratie (.config) van de map /boot naar de nieuwe kernelmap linux-4.17.11 te kopiëren.

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

Voer nu de opdracht make menuconfig uit om de Linux-kernel te configureren. Zodra u de onderstaande opdracht uitvoert, verschijnt er een pop-upvenster met alle menu's. Hier kunt u bepaalde kernelfuncties in- of uitschakelen. Als u niet bekend bent met deze menu's, drukt u gewoon op de ESC-toets om af te sluiten.

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

Zodra uw kernelconfiguratieopties zijn ingesteld, klikt u op Opslaan om de configuratie-interface op te slaan en het menu te verlaten.

Compileer de kernel in CentOS 7

Voordat u de kernelcompilatie start, moet u ervoor zorgen dat uw systeem meer dan 25 GB vrije ruimte op het bestandssysteem heeft. Ter bevestiging kunt u de vrije ruimte van het bestandssysteem controleren met de opdracht df, zoals weergegeven.

df -h

Compileer en installeer nu de kernel en modules met behulp van de volgende opdrachten (het kan enkele uren duren). Het compilatieproces plaatst bestanden onder de map /boot en maakt ook een nieuwe kernelinvoer in uw grub.conf bestand.

make bzImage
make modules
make
make install
make modules_install

Zodra de compilatie is voltooid, start u het systeem opnieuw op en controleert u de nieuw geïnstalleerde Kernel.

uname -sr

Dat is het. Ik hoop dat dit artikel voor jullie allemaal veel nuttig zal zijn. Als u problemen of moeilijkheden ondervindt bij het compileren of installeren van de kernel, kunt u uw vragen stellen of posten via ons commentaarformulier hieronder.