Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
| navody:fc6jadro [2006/10/15 09:41] – macky | navody:fc6jadro [2022/11/14 11:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 3: | Řádek 3: | ||
| ===== Jádro ===== | ===== Jádro ===== | ||
| - | První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo patnáct let - jádro dospělo do verze 2.6 a skládá se z více než 4.5 miliónů řádků (je napsáno převážně v jazyce //C++// a část pak v assembleru). Ačkoliv se dnes pod pojmem //Linux// rozumí některá z distribucí, | + | První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo patnáct let - jádro dospělo do verze 2.6 a skládá se z více než 4.5 miliónů řádků (je napsáno převážně v jazyce //C// a část pak v assembleru). Ačkoliv se dnes pod pojmem //Linux// rozumí některá z distribucí, |
| Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. souborů zařízení, | Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. souborů zařízení, | ||
| - | Ačkoliv defaulní nastavení jádra je pro většinu uživatelů naprosto dostačující, | + | Ačkoliv defaulní nastavení jádra je pro většinu uživatelů naprosto dostačující, |
| ====Značení jádra==== | ====Značení jádra==== | ||
| Řádek 13: | Řádek 13: | ||
| Aktuální verze stabilního jádra v době psaní tohoto článku (říjen 2006) byla 2.6.18. Každé z částí čísleného označení jádra má svůj význam.\\ | Aktuální verze stabilního jádra v době psaní tohoto článku (říjen 2006) byla 2.6.18. Každé z částí čísleného označení jádra má svůj význam.\\ | ||
| Číslo 2 je tzv. hlavní verze jádra a mění opravdu vyjímečně - jádro 2.0 bylo vydáno v roce 1996.\\ | Číslo 2 je tzv. hlavní verze jádra a mění opravdu vyjímečně - jádro 2.0 bylo vydáno v roce 1996.\\ | ||
| - | Číslo 6 označuje tzv. vedlejší verzi jádra a mění se jednou za několik roků. Souběžně existují vždy tzv. stabilní jádro, které má sudé číslo verze (aktuálně 2.6), a tzv. vývojové jádro, které má číslo liché (aktuálně 2.7). Stabilní jádro je určeno běžným uživatelům a těm, pro které je spolehlivost jádra rozhodující ((Např. těm, kteří používají //Linux// jako server.)). V rámci vývojového jádra je pak testována implementace nových vlastností jádra. Jsou-li na vývojovém jádře odstraněny všechny nedostatky, je prohlášeno za stabilní a čísla obou verzí se zvýší o jedna.\\ | + | Číslo 6 označuje tzv. vedlejší verzi jádra a mění se jednou za několik roků. Souběžně existují vždy tzv. stabilní jádro, které má sudé číslo verze (aktuálně 2.6), a tzv. vývojové jádro, které má číslo liché (aktuálně 2.7). Stabilní jádro je určeno běžným uživatelům a těm, pro které je spolehlivost jádra rozhodující((Např. těm, kteří používají //Linux// jako server.)). V rámci vývojového jádra je pak testována implementace nových vlastností jádra. Jsou-li na vývojovém jádře odstraněny všechny nedostatky, je prohlášeno za stabilní a čísla obou verzí se zvýší o jedna.\\ |
| - | Číslo | + | Číslo |
| Jestliže na Vašem systému zadáte příkaz '' | Jestliže na Vašem systému zadáte příkaz '' | ||
| Řádek 30: | Řádek 30: | ||
| brw-r----- 1 root disk 3, 0 říj 9 18:28 /dev/hda | brw-r----- 1 root disk 3, 0 říj 9 18:28 /dev/hda | ||
| - | Písmeno '' | + | Písmeno '' |
| === Ovladač zařízení === | === Ovladač zařízení === | ||
| Řádek 39: | Řádek 39: | ||
| V této kapitole se budeme zabývat zavedením modulu ovladače do jádra. O přidání nových ovladačů do jádra pomocí tzv. patchů se můžete dočíst v této [[navody: | V této kapitole se budeme zabývat zavedením modulu ovladače do jádra. O přidání nových ovladačů do jádra pomocí tzv. patchů se můžete dočíst v této [[navody: | ||
| - | Nejvýhodnějším způsobem přidání ovladače do jádra je jeho zavedení ve formě tzv. modulu. Moduly distribuované společně s jádrem jsou uloženy adresáři ''/ | + | Nejvýhodnějším způsobem přidání ovladače do jádra je jeho zavedení ve formě tzv. modulu. Moduly distribuované společně s jádrem jsou uloženy adresáři ''/ |
| / | / | ||
| Řádek 51: | Řádek 51: | ||
| / | / | ||
| - | který vytvoří soubor ''/ | + | který vytvoří soubor ''/ |
| / | / | ||
| Řádek 61: | Řádek 61: | ||
| /sbin/rmmod ovladac | /sbin/rmmod ovladac | ||
| - | nebo restartem počítače. Pro permanentní zavedení modulů je třeba zapsat příslušný příkaz pro natažení ovladače do souborů typu '' | + | nebo restartem počítače. Pro permanentní zavedení modulů je třeba zapsat příslušný příkaz pro natažení ovladače do souborů typu '' |
| - | Výpis všech natažených modulů získáte pomocí | + | Výpis všech |
| /sbin/lsmod | /sbin/lsmod | ||
| Řádek 72: | Řádek 72: | ||
| * Přečtěte si kapitolu [[navody: | * Přečtěte si kapitolu [[navody: | ||
| - | **Poznámka: | + | **Poznámka: |
| Patch je aktualizací jádra, která může mimojiné obsahovat také nové ovladače. Instalaci patche lze provést pomocí příkazu | Patch je aktualizací jádra, která může mimojiné obsahovat také nové ovladače. Instalaci patche lze provést pomocí příkazu | ||
| Řádek 79: | Řádek 79: | ||
| spuštěného z adresáře obsahujícího zdrojové kódy jádra (standardně se jedná o adresář ''/ | spuštěného z adresáře obsahujícího zdrojové kódy jádra (standardně se jedná o adresář ''/ | ||
| - | Samotné jádro ovladače i jednotlivé patche naleznete na stránkách [[http:// | + | Samotné jádro ovladače i jednotlivé patche naleznete na stránkách [[http:// |
| gunzip -c cesta_k_patch_souboru/ | gunzip -c cesta_k_patch_souboru/ | ||
| Řádek 88: | Řádek 88: | ||
| * Přečtěte si kapitolu [[navody: | * Přečtěte si kapitolu [[navody: | ||
| - | Samotný překlad jádra vyžaduje poměrně hluboké znalosti nejen z oblasti //Linux//u ale také hardwaru. Jestliže Vám tedy pojmy jako //TCP/IP//, //PCI// nebo //x86// nic neříkají nebo nevíte jaký má Váš počítač //CPU// a zvukový čip, překlad jádra se Vám nejspíše napoprvé nepodaří. Nicméně následující postup je relativně bezpečný a není jím co zkazit. Úspěšné zkompilování jádra je tedy otázkou Vaší trpělivosti a času, který máte k dispozici.\\ | + | Samotný překlad jádra vyžaduje poměrně hluboké znalosti nejen z oblasti //Linux//u ale také hardwaru. Jestliže Vám pojmy jako //TCP/IP//, //PCI// nebo //x86// nic neříkají nebo nevíte, jaký má Váš počítač //CPU// a zvukový čip, překlad jádra se Vám nejspíše napoprvé nepodaří. Nicméně následující postup je relativně bezpečný a není jím co zkazit. Úspěšné zkompilování jádra je tedy otázkou Vaší trpělivosti a času, který máte k dispozici. |
| + | \\ | ||
| + | Pokud chcete provádět překlad jádra, musíte mít k dispozici zdrojové kódy jádra a nástroje potřebné pro samotný překlad((Vedle pojmu " | ||
| + | \\ | ||
| + | === Nástroje pro překlad jádra === | ||
| - | === Příprava === | + | Nástroje |
| - | Pokud chcete provádět překlad jádra, musíte mít k dispozici zdrojové kódy jádra a nástroje | + | |
| - | == Zdrojové kódy jádra | + | yum -y groupinstall " |
| - | Nejjednodušším způsobem, jak získat | + | |
| + | === Jádro ze src.rpm === | ||
| + | |||
| + | **Poznámka: | ||
| + | \\ | ||
| + | Pro překlad jádra můžete použít **zdrojové kódy připravené v rámci projektu //Fedora Core//**. Toto jádro je modifikované pro potřeby //Fedora Core// a obsahuje některé úpravy oproti tzv. vanila jádru. Překlad těchto zdrojových kódů je nesrovnatelně jednodušší než překlad vanila jádra. | ||
| + | \\ | ||
| + | Nejprve nainstalujte balíček '' | ||
| + | |||
| + | yum -y install rpm-build | ||
| + | |||
| + | Proveďte aktualizaci jádra Vašeho systému. | ||
| + | |||
| + | yum -y update kernel | ||
| + | |||
| + | Restartujte počítač, abyste " | ||
| + | |||
| + | mkdir / | ||
| + | cd / | ||
| + | |||
| + | Do adresáře ''/ | ||
| + | |||
| + | yum install yum-utils | ||
| + | yumdownloader --source kernel --enablerepo updates-source | ||
| + | |||
| + | Tento soubor nainstalujete pomocí | ||
| + | |||
| + | rpm -ivh kernel-verze_jadra.src.rpm | ||
| + | |||
| + | Nyní je možné přistoupit k samotnému překladu jádra. Před samotným překladem | ||
| + | |||
| + | gedit / | ||
| + | |||
| + | Samotnou kompilaci zdrojových kódů jádra pak spustíte | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | Výsledný //rpm// balíček pak naleznete v adresáři ''/ | ||
| + | |||
| + | ** Poznámka: ** Architekturu Vašeho počítače zjistíte pomocí příkazu '' | ||
| - | yum -y install | + | === Jádro z www.kernel.org (tzv. vanila jádro) === |
| - | Toto jádro | + | Druhou možností |
| + | \\ | ||
| + | Stáhněte příslušný soubor se zdrojovými kódy ze stránek [[http:// | ||
| - | Druhou možností je stáhnout zdrojové kódy vanila jádra ve formě | ||
| Přesuňte se do adresáře ''/ | Přesuňte se do adresáře ''/ | ||
| Řádek 107: | Řádek 151: | ||
| Nakopírujte do tohoto adresáře soubor se zdrojovými kódy vanila jádra pomocí příkazu | Nakopírujte do tohoto adresáře soubor se zdrojovými kódy vanila jádra pomocí příkazu | ||
| - | mv cesta_k_souboru_se_zdrojovými_kody/ | + | mv cesta_k_souboru_se_zdrojovými_kody/ |
| popř. | popř. | ||
| - | mv cesta_k_souboru_se_zdrojovými_kody/ | + | mv cesta_k_souboru_se_zdrojovými_kody/ |
| | | ||
| v závislosti na typu komprimovaného souboru. Soubor pak rozbalte pomocí příkazů | v závislosti na typu komprimovaného souboru. Soubor pak rozbalte pomocí příkazů | ||
| gunzip verze_jadra.tar.gz | gunzip verze_jadra.tar.gz | ||
| - | verze_jadra.tar.gz | ||
| popř. | popř. | ||
| bunzip2 verze_jadra.tar.bz2 | bunzip2 verze_jadra.tar.bz2 | ||
| - | verze_jadra.tar.gz | ||
| Původní soubor se zdrojovými kódy vanila jádra pak můžete smazat pomocí příkazu | Původní soubor se zdrojovými kódy vanila jádra pak můžete smazat pomocí příkazu | ||
| - | rm verze_jadra.tar | + | rm -f verze_jadra.tar.* |
| - | **Poznámka: | + | **Poznámka: |
| + | \\ | ||
| + | Nyní následuje samotný překlad jádra. Přesuňte se do adresáře ''/ | ||
| - | == Nástroje pro překlad jádra == | + | cd / |
| - | Nástroje potřebné pro kompilaci jádra jsou obsaženy v balíčku vývojových nástrojů. | + | Překlad spustíte pomocí příkazu |
| - | yum -y groupinstall " | + | |
| + | |||
| + | * | ||
| + | * Linux Kernel Configuration | ||
| + | * | ||
| + | * | ||
| + | * Code maturity level options | ||
| + | * | ||
| + | Prompt for development and/or incomplete code/ | ||
| + | |||
| + | Na jednotlivé otázky odpovídáte '' | ||
| + | Nastavení jádra pomocí '' | ||
| + | |||
| + | Výše zmiňovanou volbu '' | ||
| + | |||
| + | make menuconfig | ||
| + | |||
| + | {{ menuconfig.png }} | ||
| + | |||
| + | Chcete-li namísto '' | ||
| + | |||
| + | make gconfig | ||
| + | |||
| + | {{ gconfig.png }} | ||
| + | |||
| + | Pro konfiguraci jádra je třeba postupně procházet jednotlivé položky a u každé vybrat tu možnost, která nejlépe odpovídá Vašim požadavkům. Po té je třeba konfiguraci uložit a je možné přistoupit k samotnému překladu. Do příkazové řádky zadejte postupně následující příkazy | ||
| + | |||
| + | make dep | ||
| + | make clean | ||
| + | make bzImage | ||
| + | make modules | ||
| + | make modules_install | ||
| + | |||
| + | Zpracování těchto příkazů může trvat několik desítek minut až hodin v závislosti na konfiguraci Vašeho počítače.\\ | ||
| + | Zkopírujte soubor ''/ | ||
| + | |||
| + | cp / | ||
| + | cp / | ||
| + | |||
| + | Posledním krokem je úprava zavaděče //GRUB//, kam je zapotřebí přidat záznam pro Vaše nové jádro. Předpokládejme, | ||
| + | |||
| + | gedit / | ||
| + | |||
| + | a přidejte na jeho konec řádky | ||
| + | title Kernel verze_jadra | ||
| + | root (hd0,X) | ||
| + | kernel / | ||
| + | Po restartování počítače by se v nabídce zavaděče //GRUB// měl objevit řádek, který reprezentuje Vámi přeložené jádro. | ||
| ===== ===== | ===== ===== | ||
| [[navody: | [[navody: | ||