Kompilácia najnovšieho 2.6 jadra Linuxu

11.12.2004 12:21 | Články | Lukáš Veselovský
Po nainštalovaní linuxu sa skôr či neskôr môžete dostať ku kompilovaniu jadra. Dôvodov môže byť viacero. Môže to byť podpora novších zariadení, ktoré váš starý kernel nepodporuje, alebo zrýchlenie systému.

Kompilácia nie je nič strašné treba mať ovšem trošku znalosti vášho hardvéru a taktiež vedieť čo sa od vás kedy chce. Preto by som vás chcel previesť touto tématikou a pomôcť vám aspoň trošku s kompiláciou.

Kompilácia jadra je nevyhnutná, ak máte novší hardvér, ktorý vaša distribúcia nepodporuje a vy viete, že nové či už stabilné alebo vývojové jadro má podporu tohto hardvéru.

Kompilovať samozrejme môžete aj preto, aby ste zmenšili veľkosť jadra a tým zrýchlili jadro. Jednoducho v jadre nemusia byť ovládače, ktoré nepotrebujete.

Tie ktoré používate zriedkavo, alebo je lepšie ak nie sú priamo v jadre, môžete skompilovať ako moduly, ktoré sa dajú za jazdy z jadra odoberať a pridávať príkazmi ako sú modprobe, či insmod.

V dnešnej dobe je najnovšia stabilná rada linuxáckych jadier s označením 2.6, ale bez problémov môžete použiť aj staršie odskúšané 2.4 kové jadra.

Jadro linuxu má aj vlastné internetové stránky z ktorých si ho môžete stiahnuť, alebo môžete ho nájsť aj na slovenských, či českých mirrorov. Tu je stránka odkiaľ si môžete stiahnuť jadro: http://www.kernel.org ...

Na ftp nájdete množstvo súborov a ak ste už rozhodnutý pre najnovšie jadro, môžete si hneď vybrať akým spôsobom si zostavíte jadro pre kompiláciu.

Môžete stiahnuť priamo celé jadro (tar.gz, alebo bz2) súbor, alebo ak máte staršie jadro môžete si stiahnuť patch a ten aplikovať na staršie jadro.

Rozbalenie jadra nie je nič zvláštne:

#tar xvzf linux-2.x.verzia.tar.gz

Ak máte staršiu verziu a chcete aplikovať patch:

#patch < patchfile

Samozrejme môžete aplikovať viacero patchov. Patche môžete aplikovať aj na najnovšie jadro ak chcete nadštandardné funkcie ako je automounting a iné ...

Ako prvý krok musíte jadro nakonfigurovať pred kompiláciou, kde určíte akým spôsobom budete konfigurovať jadro a moduly.

#make mrproper

Pre potvrdzovanie nových funkcií s ponechaním starých skúste:

#make oldconfig

Pre textové ménu:

#make menuconfig

Tu je ukážka ako asi vyzerá menuconfig:

Pre grafické XWindow ménu:

#make xconfig

A ak nemáte XWindow skúste

#make config

Po nakonfigurovaní jadra zadajte sériu príkazov

#make dep - tento príkaz upraví závislosti
#make clean - tento príkaz vyčistí prípadné staré jadro
#make zImage - samotná kompilácia,
#make -j zImage - zrýchlená kompilácia, ovšem zaberá celý procesorový čas.

Ak sa vám podarilo skompilovať jadro bez chybových hlásení, mal by sa vám v adresári arch/i386/boot vytvoriť súbor zImage, čo je vlastne skomprimované jadro.

Ak sa vám nepodarilo skompilovať jadro, tak to nevzdávajte! Skúste sa pozrieť aké chyby boli vypísané a znovu zapnúť napríklad menuconfig (xconfig) a opraviť závadu. A samozrejme spustiť kompiláciu odznovu.

Po skompilovaní jadra musíte ešte skompilovať a nainštalovať moduly. To docielite sériou týchto príkazov:

#make modules #make modules_install

Ak máte najnovšiu sériu jadier 2.6, tak nemusíte ručne skopírovať jadro do adresára boot, ale stačí previesť príkaz:

#make install

Tento príkaz ovšem spôsobí, okrem toho že sa jadro nakopiruje do adresára /boot, sa aj prevedú zmeny s vaším zavádzačom (lilo, alebo grub) ...

Samozrejme je tu ešte aj možnosť vytvoriť si štartovaciu disketu s novým jadrom čo odporučujem začiatočníkom a tým sa vyhnúť tomu, že vám systém nemusí naštartovať.

Ak máte staršie jadro nevyhnete sa tomu, že budete musieť ručne nakopírovať súbor zImage do adresára /boot a editovať súbor /etc/lilo.conf

Tu je príklad zapísaného nového jadra do lilo.conf:

image=/boot/newkernel
label=newkernel
root=/dev/hda7
read-only


image=/boot/vmlinuz
label=DebianLinux
root=/dev/hda7
read-only
other=/dev/hda1
label=Windows_XP
table=/dev/hda


Prvý riadok hovorí o tom, kam sa má uložiť botovací program, ak je tam napríklad len hda bez čísla, to značí, že sa zapíše do MBR. (Master Boot Record)

Další riadok je návestie (meno operačného systému).

Zápis lila sa prevedie príkazom:

#lilo

a môže vyzerať asi takto:

#Added *newkernel
#Added linux
#Added Windows_XP


Ak sa vám podarilo skompilovať jadro tak vám gratulujem, nie je to nič ťažké ale vyžaduje si to veľkú pozornosť hlavne pri konfigurácii a trpezlivosť pri kompilácii.
    • aj tak je to este zlozite 07.06.2005 | 13:24
      juro   Návštevník
      fnuk
    • kompilace jadra 26.09.2005 | 19:33
      Avatar SuSEr SuSE, Kubuntu  Používateľ
      mam takovy pocit, ze toto je dohromady splacana kompilace kernelu rady 2.4 a 2.6 a jeste zbytecne slozite napsane.
    • Komentar 11.02.2006 | 15:57
      andro   Návštevník
      Chcelo by to podrobnejsi popis. Ako sa da urobyt vlastny kernel. Nieco take ze krok za krokom a bez toho ze by to islo iba ne jednej verzii linuxu. :-)
      • Re: Komentar 01.04.2006 | 01:30
        Avatar m.rangerx fedora core V  Používateľ
        tiez si myslim, z tohto clanku mas sajnu o com sa asi tak hovori ked sa vravi o vytvarani vlastneho jadra ale ze by som z tohto vedel ako to spravit tak to ani nahodou