Jádro systému

Václav Šlajs xslajs@informatics.muni.cz


Obsah


Kde vzít zdrojový kód

První věcí při kompilování vlastního jádra linuxu je stažení zdrojoveho kódu. Základní kernel zvaný vanilla najdeme na adrese kernel.org a samozřejmě také na jejich zrcadlech(např. na ftp.linux.cz). Jde o oficiální verzi bez neschválených patchů, kterou vydává správce aktuální řady jádra. Dále existují různé upravené verze, které obsahují patche a jsou vydávány jinými lidmi. Skoro každá distribuce má dnes takové jádro, na kterém pracují její vývojáři a přidávají do ní všelijaké více méně potřebné patche.
Dále se musíme rozhodnout, kterou řadu jádra použít, jestli stabilní nebo vývojovou. Verze jádra má tři části. U posledního stabilního jádra 2.6.3 jsou to 2, což je hlavní verze, která se mění jen při velkých změnách, další číslo tedy 6 značí, jde-li o stabilní verzi(sudá čísla) či vývojovou(čísla lichá). Zdrojový kód tohoto jádra se tedy nachází v souboru linux-2.6.3.tar.bz2(gz). Ke každému jádru existuje dále ChangeLog, což je seznam změn, které byly provedeny od předchozí verze, a soubor patch, který obsahuje pouze změněný zdrojový kód od předchozí verze. V případě, že máme již zdrojový kód předchozí verze, není tedy nutné stahovat celou novou verzi, ale pouze tento patch a aplikovat ho na původní zdrojový kód.
Dále bychom měli zkontrolovat jestli máme všechny potřebné nástroje pro kompilaci v jejich doporučených verzích, což najdeme v souboru Documentation/Changes.

Obsah

Konfigurace jádra

Před vlastní kompilací jádra je nutné ho nakonfigurovat, což znaméná zvolit si, které vlastnosti bude nový kernel obsahovat. Před tímto krokem by jsme si měli zjistit na jakém hardwaru jádro poběží abychom byli schopni ho pro něj co nejlépe optimalizovat. Není například nutné kompilovat ovladače pro všechny podporované sítové karty, pokud víme, že v systému bude jen jedna a měnit se nebude.
U většiny vlastností máme možnost je buď zakompilovat do jádra, zkompilovat je jako modul nebo je vůbec nekompilovat. Pokud je zakompilujeme přímo do jádra, nemusíme se už o ně vůbec starat, protože budou stále v paměti, což ale zvyšuje pamět'ovou náročnost jádra. Proto máme možnost zkompilovat nějaké vlastnosti jako moduly, které se nahrajou až v případě, že se potřebují, a poté se mohou zase odstranit z paměti.
Před kompilací je dobré odstranit soubory, které případně zbyly z předchozí kompilace příkazem make mrproper. Dále máme možnost vybrat si z 5 možností configurace jádra:

Ve stabilní řadě 2.4 bylo poté ještě nutne spustit přikaz make dep, který nastavil potřebné závislosti mezi moduly. Tento příkaz již není nutne v jádrech řady 2.6 používat.

Obsah

Kompilace jádra

Kompilaci spustíme příkazem make bzImage, což nám vytvoří komprimovaný obraz jádra. Pokud chceme vytvořit bootovací disketu použijeme příkaz make bzDisk a vložíme disketu do mechaniky /dev/fd0.
Pokud proběhne kompilace v pořádku, spustíme příkaz make modules, který nám zkompiluje všechny vybrané moduly. Ty pak nainstaluje příkazem make modules_install, který nám vytvoří adresář /lib/modules/verze-jadra, kam nahraje všechny přeložené moduly do podadresářů podle příslušných kategorií.

Obsah

Instalace jádra

Pokud máme nainstalovaný zavaděč systému Lilo, můžeme spustit příkaz make install, který nám nahraje vytvořené jádro do adresáře /boot, upraví soubor /etc/lilo.conf a spustí lilo pro nastavení zavaděče. V opačném případě musíme nastavit zavaděč sami.
A nyní již stačí jen restartovat počítač a doufat, že se vše povedlo, tak jak jsme chtěli :)

Obsah