Hvordan kompilere Linux-kjerne på CentOS 7


Å kjøre en tilpasset kompilert Linux-kjerne er alltid nyttig, spesielt når du ønsker å aktivere eller deaktivere spesifikke kjernefunksjoner, som ikke er tilgjengelige i standard distribusjonsleverte kjerner.

I denne artikkelen vil jeg forklare hvordan du kompilerer og bruker den nyeste Linux-kjernen fra kildene i CentOS 7-distribusjonen (instruksjoner gitt her er også fungerer på RHEL og Fedora).

Hvis du ikke vil gå gjennom disse komplekse oppsettene, følg vår enkle artikkel som forklarer hvordan du installerer eller oppgraderer til kjerne på CentOS 7 ved å bruke tredjeparts RPM-depot.

Installer nødvendige pakker for kjernekompilering

Først, sørg for å oppdatere programvarepakkene dine, installer utviklingsverktøyene som trengs for å kompilere en kjerne, og installer ncurses-biblioteket ved å bruke følgende yum-kommando.

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

Kompiler og installer kjerne i CentOS 7

Last ned de nyeste Kernel 4.17-kildene ved å bruke kernel.org.

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

Pakk ut de arkiverte filene og endre kataloger ved å bruke følgende kommandoer.

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

Konfigurer kjernen i CentOS 7

Kjernen må være riktig konfigurert med følgende nødvendige konfigurasjonsalternativer i CentOS 7-miljøet.

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

Jeg anbefaler på det sterkeste at du kopierer den kjørende kjernekonfigurasjonen (.config) fra /boot-katalogen til den nye kernel linux-4.17.11-katalogen.

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

Kjør nå kommandoen make menuconfig for å konfigurere Linux-kjernen. Når du utfører kommandoen nedenfor, vises et popup-vindu med alle menyene. Her kan du aktivere eller deaktivere visse kjernefunksjoner. Hvis du ikke er kjent med disse menyene, trykk bare ESC-tasten for å avslutte.

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

Når kjernekonfigurasjonsalternativene er angitt, klikker du på Lagre for å lagre konfigurasjonsgrensesnittet og gå ut av menyen.

Kompiler kjernen i CentOS 7

Før du starter kjernekompilering, sørg for at systemet ditt har mer enn 25 GB ledig plass på filsystemet. For å bekrefte kan du sjekke filsystemets ledige plass ved å bruke df-kommandoen som vist.

# df -h

Nå kompiler og installer kjernen og modulene ved å bruke følgende kommandoer (det kan ta flere timer). Kompileringsprosessen plasserer filer under /boot-katalogen og gjør også en ny kjerneoppføring i grub.conf-filen.

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

Når kompileringen er fullført, start systemet på nytt og verifiser nyinstallert kjerne.

# uname -sr

Det er det. Jeg håper denne artikkelen vil være mye nyttig for dere alle. Hvis du har problemer eller problemer mens du kompilerer eller installerer kjernen, kan du gjerne stille eller legge inn spørsmål ved å bruke kommentarskjemaet nedenfor.