Kompilácia najnovšieho 2.6 jadra Linuxu

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.

8.6.2004 07:00 | Lukáš Veselovský | přečteno 11386×

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 aspon 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 velkosť jadra a tým zrýchlili jadro. Jednoducho v jadre nemúsia byť ovládače, ktoré nepotrebujete.

Tie ktoré používate zrietkavo, 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 odkial si môžete stiahnúť 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 hned vybrať akým spôsobom si zostavíte jadro pre kompiláciu.

Môžete stiahnúť priamo celé jadro (tar.gz, alebo bz2) súbor, alebo ak máte staršie jadro môžete si stiahnúť 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štandartné 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 vyzera 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ípadne 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 supstiť 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 nakopirovať 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 velkú pozornosť hlavne pri konfigurácií a trpezlisvosť pri kompilácií.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=165