De ce ai compila kernelul? Simplu, pentru ca in acest fel poti include facilitati care nu erau incluse in kernelul default, poti optimiza kernelul, si nu numai.
Obtinerea surselor
Sursele se pot obtine de pe www.kernel.org. În loc sa le downloadati manual puteti folosi urmatoarea comanda:
wget http://kernel.org/pub/linux/kernel/v4.6/linux-VERSIUNE.tar.bz2
in loc de VERSIUNE puneti versiunea kernelului pe care vreti sa il downloadati. Sa zicem 4.6.19.
Dupa downloadarea surselor se extrage arhiva si sunteti gata sa incepeti.
Pentru a extrage arhiva folositi comanda:
tar -jxf
Configurarea surselor inainte de compilare
Aceasta etapa configureaza componentele kernelului ce urmeaza a fi compilate.
Pentru aceasta etapa se va folosi una dintre urmatoarele comenzi:
make menuconfig (interfata bazata pe ncurses) make gconfig (interfata bazata pe GTK+) make xconfig (interfata bazata pe QT)
Dupa executarea comenzii, vi se va pune la dispozitie o interfata cu ajutorul caruia veti configura kernelul. Aici puteti debifa componentele kernelului care nu sunt conforme configuratiei computerului dumneavoastra.
Compilarea kernelului
Pentru a compila kernelul linux se vor executa urmatoarele comenzi:
make dep (se foloseste doar pentru kernel 2.4.x, si creaza dependintele) make clean (curata sursele) make bzImage (creaza imaginea kernlului) make modules (compileaza modulele) make modules_install (instaleaza modulele)
Instalarea kernelului
Pentru a instala kernelul se vor executa urmatoarele comenzi:
cp arch/i386/boot/bzImage /boot/bzImage-VERSIUNE cp System.map /boot/System.map-VERSIUNE ln -sf /boot/System.map-VERSIUNE /boot/System.map
Va trebui sa inlocuiti VERSIUNE cu versiunea kernelului pe care l-ati compilat.
Adaugarea kernelului in configuratia bootloader-ului
Pentru a putea boota cu noul kernel, acesta va trebui adaugat la configuratia bootloader-ului pe care il folositi.
Pentru LILO
Adaugati urmatoarele in /etc/lilo.conf
image=/boot/bzImage-VERSIUNE label=CeNumeVreti root=partitia (sub forma /dev/hda2 ) read-only
iar apoi rulati din consola /sbin/lilo
Pentru GRUB
Adaugati urmatoarele in /boot/grub/menu.lst
title CeNumeVreti root partitie (sub forma: (hd0,1) ) kernel /boot/bzImage-VESIUNE ro root=LABEL=/ boot
Final
Dupa ce ati executat toate procedurile de mai sus, puteti reboota computerul si selecta noul kernel din menuiul bootloader-ului dumneavoastra.
Un script care automatizeaza etapele de mai sus, se poate gasi la adresa: http://code.google.com/p/buildkernel/