Josef Kufner

Linux Kernel

Kompilace jádra (2.6.9+)

Nebudu se zde rozepisovat nijak podrobně o kompilování jádra. O tom už bylo napsáno více než dost. Takže jen stručný postup kompilování Vanilla kernelu.

  1. Download jádra z kernel.org v horším případě nainstalování vhodného balíčku. Horší proto, protože jádra z distribucí bývají patchovaná a pro nezasvěcené se může stát správná konfigurace noční můrou.
  2. Ověření podpisu archivu s jádrem (není nutné). Návod na kernel.org (en).
  3. Rozbalení jádra (nejrychlejší je v mc sekvence kláves F2, x). Jinak "man tar" a kouknout se na příklady. Doporučuju použít adresář "/usr/src". Později při instalaci nějakých ovladačů (např. hostap nebo nvidia) jsou potřeba zdrojové kódy jádra a kdo to pak má hledat.
  4. make menuconfig – spustí se celkem příjemné rozhraní na konfigurování jádra. Jsou potřeba devel knihovny ncurses. Narozdíl od svých grafických bratříčků nepotřebuje ke svému běhu Xka, což občas není vůbec od věci.
  5. Nezapomeneme nastavit svojí extra verzi kernelu, protože by se nám jinak přepsaly moduly aktuálního jádra shodné verze. Doporučuji pomlčku, pár písmenek na označení stroje a pořadové číslo kernelu.
    General setup  --->
        () Local version - append to kernel release
    
  6. Spustit script compile z adresáře s jádrem nebo ručně make modules modules_install bzImage. V případě ruční kompilace je výsledné jadro v "arch/i386/boot/bzImage". Script compile jej odtamtud zkopíruje i s konfigurací do "/boot/verze-jádra" a hezky přejmenuje.
  7. Nakonec dopsat nové jádro do "/etc/lilo.conf" popřípadě "/boot/grub/menu.lst" a reboot.

Script compile

Jedná se o skript v Bashi, který spustí kompilaci kernelu a poté hotový kernel nakopíruje do určených adresářů. Napsán byl pro jeden z dřívějších kernelů řady 2.6 a bez problémů ho používám s jádry od verze 2.6.9. Se staršími nebude fungovat, protože se změnil způsob uchovávání informace poslední složce označení verze. Na konci scriptu je zakomentovaná kraťoučká melodie. To že je zakomentovaná má svůj důvud – kdo odkomentuje, pozná ;)

Generátor menu pro Grub – gen-menu.sh

Protože se mi na disku postupem času nahromadilo povícero verzí jádra a udržování menu pro grub už mne opravdu nebavilo, napsal jsem takový skript v Bashi, který je volán při každém bootu a shutdownu. Jeho úkolem je projít adresář /boot, kde jsou uložena jádra a vygenerovat tomu odpovídající menu pr Grub. Každé jádro má vlastní adresář, ve kterém je image s jádrem a jeho config, tak jak to vytváří script configure

Download