Obsah referátu
- Odkud se jádro bere, způsob vývoje.
- Zjištění informací o HW (
lspci
,lsusb
, …). - Konfigurace (
make config/xconfig/menuconfig/oldconfig
), soubor.config
. - Principy fungování modulů, mapování modulů na PCI ID, USB ID a podobně.
- Instalace nového jádra,
initrd
a jeho generování (např.dracut
,genkernel
), souborSystem.map
. - Parametry jádra při startu.
Úkol
Cílem je vyrobit co nejmenší kernel přesně na míru svému počítači.
- Stáhněte si poslední verzi jádra z ftp.linux.cz/kernel.org
- zjistěte HW konfiguraci svého počítače, nakonfigurujte jádro na míru tomuto počítači (typ a počet procesorů, velikost paměti, architektura, atd.).
- Zaměřte se na to, aby v konfiguraci byly do jádra přímo zakompilovány ty části, které se na běžícím systému budou používat vždy, jako moduly byly zkonfigurovány ty ovladače a další části, které mohou být někdy na počítači použity, a vypnuty ty části jádra, které jistě s tímto počítačem nikdy nepoužijete (nekompatibilní/neexistující HW, exotické filesystémy, atd.).
- Výsledné jádro nainstalujte do systému a nabootujte. Pro snazší
kontrolu zapněte volbu
CONFIG_IKCONFIG_PROC=y
(konfigurace jádra je pak dostupná jako/proc/config.gz
). Toto jádro budete používat v semináři i nadále.
Doporučení: jedna možnost je vyjít z funkčního kernelu (např. distribučního) a ubírat co jde. Jen pozor, distribuční konfigurace jádra bývají opravdu rozsáhlé, čekejte doby kompilace v řádu mnoha hodin. Minimální jádro splňující zadání se kompiluje malé desítky minut.
Hodnocení
Základní část
- systém nabootuje vlastní jádro
- konfigurace je dostupná v
/proc/config.gz
Hodnocená část
- 3 body: správně nastavené všechny globální volby které mají významný vliv na efektivitu výsledného jádra (např. typ a počet procesorů, přístup k paměti, atd)
- 1 bod: správně zvolené ovladače použitých souborových systémů a návazné konfigurační volby (NLS, partitions)
- 3 body: vypnuté ovladače a subsystémy, které se na daném počítači nepoužijí
- 2 body: vše výše uvedené a navíc prázdný seznam načtených modulů po rebootu