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: |