Kako kompajlirati Linux kernel na CentOS 7


Pokretanje prilagođeno kompilirane jezgre Linuxa uvijek je korisno, posebno kada želite omogućiti ili onemogućiti određene značajke jezgre, koje nisu dostupne u jezgrama zadane distribucije.

U ovom ću članku objasniti kako kompajlirati i koristiti najnoviju jezgru Linuxa iz izvora u distribuciji CentOS 7 (upute navedene ovdje također rade na RHEL i Fedora ).

Ako ne želite prolaziti kroz ova složena podešavanja, slijedite naš jednostavan članak koji objašnjava kako instalirati ili nadograditi kernel na CentOS 7 pomoću RPM repozitorija treće strane.

Instalirajte potrebne pakete za kompilaciju kernela

Najprije ažurirajte repozitorije svojih softverskih paketa, instalirajte razvojne alate potrebne za kompajliranje kernela i instalirajte biblioteku ncurses pomoću sljedeće naredbe yum.

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

Kompajlirajte i instalirajte kernel u CentOS 7

Preuzmite najnovije izvore kernela 4.17 pomoću naredbe wget u direktoriju /usr/src/ ili također možete preuzeti najnoviji kernel odlaskom na kernel.org.

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

Izdvojite arhivirane datoteke i promijenite direktorije pomoću sljedećih naredbi.

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

Konfigurirajte kernel u CentOS 7

Kernel mora biti ispravno konfiguriran sa sljedećim potrebnim opcijama konfiguracije unutar okruženja CentOS 7.

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

Preporučujem vam da kopirate pokrenutu konfiguraciju jezgre (.config) iz /boot direktorija u novi kernel linux-4.17.11 direktorij.

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

Sada pokrenite naredbu make menuconfig da biste konfigurirali Linux kernel. Nakon što izvršite naredbu u nastavku, pojavit će se skočni prozor sa svim izbornicima. Ovdje možete omogućiti ili onemogućiti određene značajke jezgre. Ako niste upoznati s ovim izbornicima, samo pritisnite tipku ESC za izlaz.

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

Nakon što postavite opcije konfiguracije kernela, kliknite na Spremi da biste spremili konfiguracijsko sučelje i izašli iz izbornika.

Kompajlirajte kernel u CentOS 7

Prije početka kompilacije kernela, provjerite ima li vaš sustav više od 25 GB slobodnog prostora u datotečnom sustavu. Za potvrdu možete provjeriti slobodan prostor u datotečnom sustavu pomoću naredbe df kao što je prikazano.

df -h

Sada kompajlirajte i instalirajte kernel i module pomoću sljedećih naredbi (može potrajati nekoliko sati). Proces kompilacije smješta datoteke u direktorij /boot i također pravi novi unos kernela u vašoj datoteci grub.conf.

make bzImage
make modules
make
make install
make modules_install

Nakon što kompilacija završi, ponovno pokrenite sustav i provjerite novo instaliranu jezgru.

uname -sr

To je to. Nadam se da će vam ovaj članak svima biti od velike pomoći. Ako se suočite s bilo kakvim problemima ili poteškoćama tijekom kompajliranja ili instaliranja kernela, slobodno postavite ili objavite svoja pitanja koristeći naš obrazac za komentare u nastavku.