Kako kompajlirati Linux kernel na CentOS 7


Pokretanje prilagođenog kompajliranog Linux kernela je uvijek korisno, posebno kada želite da omogućite ili onemogućite specifične karakteristike kernela, koje nisu dostupne u zadanim kernelima isporučenim u distribuciji.

U ovom članku ću objasniti kako kompajlirati i koristiti najnoviji Linux kernel iz izvora u CentOS 7 distribuciji (instrukcije date ovdje također rade na RHEL i Fedori ).

Ako ne želite proći kroz ova složena podešavanja, slijedite naš jednostavan članak koji objašnjava kako instalirati ili nadograditi kernel na CentOS 7 koristeći RPM spremište treće strane.

Instalirajte potrebne pakete za kompilaciju kernela

Prvo, obavezno ažurirajte repozitorije softverskih paketa, instalirajte razvojne alate potrebne za kompajliranje kernela i instalirajte biblioteku ncurses koristeći sljedeću yum komandu.

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 koristeći komandu wget u direktoriju /usr/src/ ili također možete preuzeti najnoviji kernel tako što ćete otići na kernel.org.

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

Izvucite arhivirane datoteke i promijenite direktorije koristeći sljedeće naredbe.

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 CentOS 7 okruženja.

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 kernela (.config) iz /boot direktorija u novi direktorij kernela linux-4.17.11.

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 konfigurirate Linux kernel. Nakon što izvršite naredbu ispod, pojavljuje se iskačući prozor sa svim menijima. Ovdje možete omogućiti ili onemogućiti određene karakteristike kernela. Ako niste upoznati sa ovim menijima, samo pritisnite taster ESC da izađete.

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

Nakon što su vaše konfiguracijske opcije kernela postavljene, kliknite na Sačuvaj da sačuvate konfiguracijski interfejs i izađete iz menija.

Prevedite kernel u CentOS 7

Prije nego što započnete kompilaciju kernela, uvjerite se da vaš sistem ima više od 25 GB slobodnog prostora na sistemu datoteka. Da biste potvrdili, možete provjeriti slobodan prostor u sistemu datoteka koristeći df komandu kao što je prikazano.

df -h

Sada kompajlirajte i instalirajte kernel i module koristeći sljedeće komande (može potrajati nekoliko sati). Proces kompilacije postavlja datoteke u /boot direktorij i također pravi novi unos kernela u vaš grub.conf fajl.

make bzImage
make modules
make
make install
make modules_install

Kada se kompilacija završi, ponovo pokrenite sistem i provjerite novoinstalirani Kernel.

uname -sr

To je to. Nadam se da će vam ovaj članak biti od velike pomoći svima. Ako se susrećete sa bilo kakvim problemima ili poteškoćama tokom kompajliranja ili instaliranja kernela, slobodno postavite ili postavite svoja pitanja koristeći naš obrazac za komentare ispod.