8.4. Kompilace nového jádra

Proč byste si chtěli sestavit nové jádro? Obvykle nejde o nutnost, poněvadž jádro dodávané s Debianem funguje ve většině počítačů. Nové jádro může být užitečné v následujících situacích:

8.4.1. Správa jader

Nebojte se kompilace jádra, je to zábava a budete z ní mít užitek.

Doporučený způsob kompilace jádra v Debianu vyžaduje tyto balíky: kernel-package, kernel-source-2.4.26 (aktuální verze v době vzniku dokumentu), fakeroot a další, které již máte patrně nainstalované (úplný seznam je v souboru /usr/share/doc/kernel-package/README.gz).

Tato metoda vytvoří ze zdrojových textů jádra .deb balíček, a jestliže používáte nestandardní moduly, taktéž z nich vyrobí aktuální balíčky. Při instalaci balíčku se do adresáře /boot uloží pěkně pohromadě jádro, mapa symbolů System.map a aktuální konfigurace.

Jádro nemusíte připravovat touto cestou, ale domníváme se, že s využitím balíčkovacího softwaru se proces zjednoduší a je také bezpečnější. Místo balíku kernel-source-2.4.26 si klidně můžete stáhnout poslední zdrojové texty jádra přímo od Linuse.

Popis balíku kernel-package se nachází v adresáři /usr/share/doc/kernel-package. V následujících odstavcích najdete jen stručný úvod k jeho použití.

Jestliže kompilujete jádro pro UltraSPARC, ujistěte se, že máte nainstalovaný balíček egcs64, což je preferovaný překladač pro 64bitová SPARC jádra. Standardní gcc sice 64bitové jádro zkompiluje také, ale ne tak stabilně. Také pokud zpozorujete nějaké problémy s jádrem a požádáte někoho o radu, bude vám řečeno, že máte nejdříve vyzkoušet kompilaci s egcs64, jestli problém sám nezmizí. Po instalaci egcs64 nezapomeňte spustit jako root příkaz update-alternatives --config sparc64-linux-gcc a nastavit jako preferovaný překladač egcs64.

V dalším budeme předpokládat, že zdrojové texty jádra verze 2.4.26 uložíte do /usr/local/src. Jako uživatel root vytvořte adresář /usr/local/src a změňte jeho vlastníka na váš normální účet. Přihlaste se na svůj účet a přejděte do adresáře, kde chcete mít zdrojové texty jádra (cd /usr/local/src), rozbalte archív (tar xjf /usr/src/kernel-source-2.4.26.tar.bz2) a vejděte do vzniklého adresáře (cd kernel-source-2.4.26/).

V prostředí X11 nakonfigurujte jádro příkazem make xconfig, nebo v terminálu příkazem make menuconfig (musíte mít nainstalovaný balíček ncurses-dev). Pročtěte si nápovědu a pozorně vybírejte z nabízených možností. Pokud si v některém bodu nebudete vědět rady, je většinou lepší zařízení do jádra vložit. Volby, kterým nerozumíte a které se nevztahují k hardwaru, raději nechte na přednastavených hodnotách. Nezapomeňte do jádra zahrnout ,,Kernel module loader'' (tj. automatické vkládání modulů) v sekci ,,Loadable module support'' , které přednastavené nebývá, avšak Debian tuto službu předpokládá.

Příkazem make-kpkg clean pročistíte strom zdrojových textů a vynulujete předchozí nastavení balíku kernel-package.

Kompilaci jádra provedete příkazem fakeroot make-kpkg --revision=jadro.1.0 kernel_image. Číslo verze si můžete zvolit podle vlastní úvahy, slouží pouze k vaší orientaci v připravených balících. Kompilace zabere chvíli času, záleží na výpočetním výkonu vašeho počítače.

Až kompilace skončí, jádro nainstalujete jako každý jiný balík. Jako root napište dpkg -i ../kernel-image-2.4.26-podarchitektura_jadro.1.0_sparc.deb. podarchitektura je volitelné upřesnění architektury, které jste zadali při konfiguraci jádra. dpkg -i kernel-image... nainstaluje jádro spolu s doprovodnými soubory. Jedná se třeba o soubory System.map, který je užitečný při dohledávání problémů v jádře, a /boot/config-2.4.26 obsahující konfigurační soubor jádra. Balík s jádrem je dostatečně chytrý, aby během instalace spustil zavaděč (příslušný k vaší platformě) a obnovil zaváděcí záznamu na disku. Pokud jste vytvořili balík s moduly (třeba PCMCIA nebo lm-sensors), je nanejvýš vhodné ho také nainstalovat.

Nyní je čas spustit systém s novým jádrem. Projděte si chybové hlášky, které se mohly při instalaci jádra vyskytnout, a pokud vše vypadá dobře, restartujte příkazem shutdown -r now.

Popis balíku kernel-package najdete v adresáři /usr/share/doc/kernel-package.