Konfigurace jádra

Martin Hanzálek, xhanzal@fi.muni.cz


Obsah


Úvod

Co dělá jádro -- zprostředkovává spojení mezi softwarem (volání knihoven apod.) a hardwarem počítače. Obdoba různých ovladačů zařízení z MS-Win.

Proč upgradovat jádro? -- nová zařízení, lepší správa procesů, vyšší výkon... Podporovaná zařízení viz Hardware-HOWTO.


Zdrojové texty

Zdrojové texty jádra jsou na ftp.kernel.org v adresáři /pub/linux/kernel/vx.y/, kde x.y je verze jádra. Pokud verze končí lichým číslem, jdená se o testovací, vývojovou verzi (může být nestabilní). Verze se sudým číslem jsou považovány za stabilní.

Soubor se zdrojovými texty se obvykle jmenuje linux-x.y.z.tar.gz, kde x.y.z je číslo verze.

Pro download lze použít mirrory ftp.xx.kernel.org, kde xx je kód dané země (cz, us, uk apod.).

Zrojové texty rozbalíme tímto způsobem:


Konfigurace jádra před překladem

Na konfiguraci jádra máme několik možností:

Většina voleb má 2 možnosti y/n. Zařízení mají obvykle ještě volby m (zavést jako modul). Nová jádra mají též možnost ?, která vypíše krátkou nápovědu o tom, co daná záležitost znamená.

Při konfiguraci nastavujeme zejména:

Kernel math emulation
pokud nemáme koprocesor, musíme nastavit y, neboť Linux s koprocesorem počítá.
Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices)
pravděpodobně budeme potřebovat -- driver pro standardní PC HDD, nezahrnuje SCSI disky. Dále nám dá vybrat z old disk only a new IDE. Druhá volba zahrnuje i IDE/ATAPI CD-ROM, takže je lepší zvolit tuto volbu.
Networking support (General Setup)
Pokud používáme síť, musíme říct y.
System V IPC (General Setup)
Také nutné.
Processor family (Processor type and features)
Umožní poněkud optimalizovat kód pro daný procesor. Jádro pro i386, poběží na všem.
Network device support
Podpora pro síťové karty, SLIP, PPP, adaptér na paralelní port apod.
Filesystems
FS, které chceme podporovat. Užitečné jsou zejména:
Character devices
Ovladače pro myši, tiskárny,... U všeho, co potřebujeme, zadáme y.
Kernel hacking
Pokud zadáme y, jádro bude nejspíš větší, nebo pomalejší (nebo oboje). Používá se pro testování, u jádra pro rozumný provoz obvykle vypnuto.

Po tomto kroku se ještě podíváme do Makefile, kde můžeme nastavit například nové číslo verze jádra apod.


Překlad

Závislosti a cleaning

Pomocí make dep zkontrolujeme závislosti.

make clean odstraní některé nepotřebné soubory (vhodné po použití nějakého patche).

Překlad

Zkompilujeme pomocí make bzImage, které vytvoří komprimované jádro do souboru arch/i386/boot/bzImage. Starší jádra nevyžadovala kompresi (byla menší), vytvářela se jako make zImage.

Další volby make

make mrproper je kvalistnější cleaning. Mimo jiné smaže i soubor s konfigurací jádra, takže musíme rekofigurovat pomocí make ...config.


Moduly

Moduly jsou části jádra (ovladače), které se do paměti zavádějí až na požádání (když jsou potřeba). Po delší době nepoužití se z paměti opět odstraní. Šetří se tak paměť. Na druhou stranu u věcí, které jsou potřeba stále, je nesmysl použít modul a je třeba je zakompilovat rovnou do jádra (jsou pak rychlejší).

Utility pro práci s moduly lze stáhnout ze stejného místa jako jádro jako modutils-x.y.z.tar.gz. x.y.z volíme menší/rovno x.y.z našeho jádra. Rozbalíme pomocí ar zxvf modutils-x.y.z.tar.gz, přeložíme, make install.

S moduly pak pracujeme pomocí programů: insmod, rmmod, ksyms, lsmod, genksyms, modprobe, depmod v adresáři /sbin.

Moduly jsou distribuovány přímo s jádrem. Pokud chceme něco použít jako modul, v jádře nesmíme mít nastaveno y, ale m. Moduly přeložíme pomocí make modules. Přeložené moduly najdeme v /usr/src/linux/modules.

Moduly můžeme zavádět přímo z tohoto adresáře, nebo je mainstalovat do /lib/modules/x.y.z pomocí make modules_install.


Instalace jádra

Přejmenuje původní jádro (např. na /vmlinuz-old)

Nové jádro nakopírujeme do vhodného souboru (např. /vmlinuz).

V /etc/lilo.conf nakonfigurujeme Lilo pro nové jádro.

image = /vmlinuz
    label = nove
    root = /dev/hda1
    ...
image = /vmlinuz-old
    label = stare
    root = /dev/hda1
    ...

Znovu spustíme lilo, aby se nová konfigurace zapsala na potřebné místo (do boot sektoru disku).


Další informace

Kernel-HOWTO, Modules na http://www.linux.cz/linuxdoc/HOWTO/HOWTO-INDEX/os.html.


(c) Martin Hanzálek, xhanzal@fi.muni.cz.