navody:f7jadro

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
navody:f7jadro [2007/05/20 10:05] mackynavody:f7jadro [2022/11/14 12:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 [[navody:f7obsah|Hlavní stránka]] [[navody:f7obsah|Hlavní stránka]]
 +
  
 ===== Jádro ===== ===== Jádro =====
  
-První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo šestná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í, správně bychom tímto pojmem měli označovat právě jádro, které je základním kamenem každé distribuce.\\+{{:navody:48x48:categories:applications-system.png }}První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo šestná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í, správně bychom tímto pojmem měli označovat právě jádro, které je základním kamenem každé distribuce.\\
  
 Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. soubory zařízení, do/ze kterých zapisují/načítají data. Komunikaci mezi soubory zařízení a hardwarem pak obstarávají tzv. ovladače zařízení.\\ Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. soubory zařízení, do/ze kterých zapisují/načítají data. Komunikaci mezi soubory zařízení a hardwarem pak obstarávají tzv. ovladače zařízení.\\
  
-Ačkoliv defaulní nastavení jádra je pro většinu uživatelů naprosto dostačující, je možné jádro upravit podle Vašich představ. To je možné provést jednak překompilováním jádra, jednak editací souborů v adresáři ''/proc''. Druhá možnost tak představuje jakási zadní vrátka do systému((Po restartu počítače však bude obnoveno původní nastavení. Trvalé změny je nutné zapsat do souboru ''/etc/sysctl.cong'' popř. nastavit pomocí příkazu ''sysctl''.)). Úpravy jádra vyžadují poměrně hluboké znalosti týkající se nejen samotného //Linux//u ale také hardwaru.+Ačkoliv defaultní nastavení jádra je pro většinu uživatelů naprosto dostačující, je možné jádro upravit podle Vašich představ. To je možné provést jednak překompilováním jádra, jednak editací souborů v adresáři ''/proc''. Druhá možnost tak představuje jakási zadní vrátka do systému((Po restartu počítače však bude obnoveno původní nastavení. Trvalé změny je nutné zapsat do souboru ''/etc/sysctl.cong'' popř. nastavit pomocí příkazu ''sysctl''.)). Úpravy jádra vyžadují poměrně hluboké znalosti týkající se nejen samotného //Linux//u ale také hardwaru.
  
 ====Značení jádra==== ====Značení jádra====
  
-Aktuální verze stabilního jádra v době psaní tohoto článku (říjen 2006) byla 2.6.18. Každá z částí číselného označení jádra má svůj význam.\\+Aktuální verze stabilního jádra v době psaní tohoto článku (ří 2007) byla 2.6.22.5. Každá z částí číselné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í. 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 18 označuje tzv. patch level. Pomocí patche, které jsou vydávány v řádu měsíců, lze provádět opravy/úpravy stávajícího jádra včetně přidání nových ovladačů. Aplikací patche tak lze provést aktualizaci jádra.\\ +Číslo 22.5 označuje tzv. patch level. Pomocí patche, které jsou vydávány v řádu měsíců, lze provádět opravy/úpravy stávajícího jádra včetně přidání nových ovladačů. Aplikací patche tak lze provést aktualizaci jádra.\\ 
-Jestliže na Vašem systému zadáte příkaz ''uname -r'' získáte výstup ve tvaru ''2.6.17-1.2187_FC5''. "Číslíček" je tedy poněkud více. Vedle patch levelu, vedlejší a hlavní verze jádra figuruje ve výpisu také číslo 1.2187. To značí verzi patch levelu pro potřeby projektu //Fedora//. Označení ''FC5'' pak znamená, že se jedná o jádro určené pro //Fedora Core 5//.\\+Jestliže na Vašem systému zadáte příkaz ''uname -r'' získáte výstup ve tvaru ''2.6.22.5-76.fc7''. "Číslíček" je tedy poněkud více. Vedle patch levelu, vedlejší a hlavní verze jádra figuruje ve výpisu také číslo 76. To značí verzi patch levelu pro potřeby projektu //Fedora//. Označení ''fc7'' pak znamená, že se jedná o jádro určené pro //Fedora 7//.\\
  
 ==== Přidání ovladače ==== ==== Přidání ovladače ====
Řádek 30: Řádek 31:
   brw-r----- 1 root disk 3, 0 říj  9 18:28 /dev/sda   brw-r----- 1 root disk 3, 0 říj  9 18:28 /dev/sda
  
-Písmeno ''b'' značí, že disk ''sda'' je blokovým zařízením((Znakové soubory zařízení jsou označeny písmenem ''c''.)).+Písmeno ''b'' značí, že disk ''sda'' je blokovým zařízenímZnakové soubory zařízení jsou pak označeny písmenem ''c''.
  
 === Ovladač zařízení === === Ovladač zařízení ===
Řádek 37: Řádek 38:
   * zavedením modulu ovladače   * zavedením modulu ovladače
  
-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:f7jadro#Patchování jádra| kapitole]].\\+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 samostatné [[navody:f7jadro#Patchování jádra| kapitole]].\\
  
-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 ''/lib/modules/cislo_verze_jadra''((Aktuální verzi jádra lze zjistit pomocí ''uname -r''.)). Příslušný ovladač lze velice snadno zavést pomocí+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 ''/lib/modules/cislo_verze_jadra''((Aktuální verzi jádra lze zjistit pomocí ''uname -r''.)). Příslušný ovladač lze velice snadno zavést pomocí
  
   /sbin/insmod /lib/modules/verze_jadra/kernel/drivers/typ_zarizeni/ovladac.ko   /sbin/insmod /lib/modules/verze_jadra/kernel/drivers/typ_zarizeni/ovladac.ko
Řádek 72: Řádek 73:
   * Přečtěte si kapitolu [[navody:f7obsah#Obecné poznámky]].   * Přečtěte si kapitolu [[navody:f7obsah#Obecné poznámky]].
  
-**Poznámka:** Výše popsaný postup je aplikovatelný na tzv. vanila jádro. //Fedora// však používá jádro modifikované - proto by aplikace patchů níže popsaným způsobem pravděpodobně měla za následek nefunkčnost systému. Jednodušší (a v drtivé většině případů naprosto dostačující) je provést aktualizaci jádra pomocí příkazu ''yum -y update kernel''((Příkaz musí být spouštěn z účtu superuživatele.)). Nicméně Vám nic nebrání si stáhnout stáhnout vanila jádro z [[http://www.kernel.org]], na něj aplikovat patche a následně jádro přeložit (viz. dále).\\ +**Poznámka:** Níže popsaný postup je aplikovatelný na tzv. vanila jádro. //Fedora// však používá jádro modifikované - proto by aplikace patchů níže popsaným způsobem pravděpodobně měla za následek nefunkčnost systému. Jednodušší (a v drtivé většině případů naprosto dostačující) je provést aktualizaci jádra pomocí příkazu ''yum -y update kernel''((Příkaz musí být spouštěn z účtu superuživatele.)). Nicméně Vám nic nebrání si stáhnout stáhnout vanila jádro z [[http://www.kernel.org]], na něj aplikovat patche a následně jádro přeložit (viz. dále).\\ 
  
 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 80:
  
 spuštěného z adresáře obsahujícího zdrojové kódy jádra (standardně se jedná o adresář ''/usr/src/kernels/cislo_verze_kernelu'').\\ spuštěného z adresáře obsahujícího zdrojové kódy jádra (standardně se jedná o adresář ''/usr/src/kernels/cislo_verze_kernelu'').\\
-Samotné jádro, ovladače i jednotlivé patche naleznete na stránkách [[http://www.kernel.org]] (např. jádro 2.6 včetně patchů naleznete [[http://www.kernel.org/pub/linux/kernel/v2.6/| zde]]). Jestliže máte např. jádro 2.6.14((Verzi aktuálního jádra zjistíte pomocí ''uname -r''.)) a chtěli byste provést jeho aktualizaci na verzi 2.6.17, musíte stáhnout patche 2.6.15, 2.6.16 a 2.6.17 a tyto pak postupně nainstalovat. Jestliže nebude pořadí instalace patchů dodrženo nebo bude některý patch aplikován vícekrát, skončí tato operace nezdarem.+Samotné jádro, ovladače i jednotlivé patche naleznete na stránkách [[http://www.kernel.org]]. Jestliže máte např. jádro 2.6.14((Verzi aktuálního jádra zjistíte pomocí ''uname -r''.)) a chtěli byste provést jeho aktualizaci na verzi 2.6.17, musíte stáhnout patche 2.6.15, 2.6.16 a 2.6.17 a tyto pak postupně nainstalovat. Jestliže nebude pořadí instalace patchů dodrženo nebo bude některý patch aplikován vícekrát, skončí tato operace nezdarem.
  
   gunzip -c cesta_k_patch_souboru/patch-2.6.15.gz | patch -p1   gunzip -c cesta_k_patch_souboru/patch-2.6.15.gz | patch -p1
Řádek 100: Řádek 101:
 === Jádro ze src.rpm === === Jádro ze src.rpm ===
  
-**Poznámka:** Níže uvedený postup byl převzat z [[http://www.mjmwired.net/resources/mjm-fedora-f7.html#kernelsrc |www.mjmwired.net]]. +**Poznámka:** Níže uvedený postup byl převzat z [[http://www.mjmwired.net/resources/mjm-fedora-f7.html#kernelsrc |www.mjmwired.net]].\\ 
-\\+
 Pro překlad jádra můžete použít **zdrojové kódy připravené v rámci projektu //Fedora//**. Toto jádro je modifikované pro potřeby //Fedory// a obsahuje některé úpravy oproti tzv. vanila jádru.\\ Pro překlad jádra můžete použít **zdrojové kódy připravené v rámci projektu //Fedora//**. Toto jádro je modifikované pro potřeby //Fedory// a obsahuje některé úpravy oproti tzv. vanila jádru.\\
 Nejprve nainstalujte balíček ''rpm-build''. Tento balíček obsahuje skripty a programy, které se používají pro tvorbu balíčků. Nejprve nainstalujte balíček ''rpm-build''. Tento balíček obsahuje skripty a programy, které se používají pro tvorbu balíčků.
Řádek 125: Řádek 126:
   rpm -ivh kernel-verze_jadra.src.rpm   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 je možné provést ruční editaci konfiguračního souboru ''kernel-verze_jadra-architektura.config''. Konfigurační soubor bohužel neobsahuje nápovědu pro jednotlivé položky, což činí případnou modifikaci souboru ''kernel-verze_jadra-architektura.config'' poněkud problematickou.+Nyní je možné přistoupit k překladu jádra. Před samotným překladem je možné provést ruční editaci konfiguračního souboru ''kernel-verze_jadra-architektura.config''. Konfigurační soubor bohužel neobsahuje nápovědu pro jednotlivé položky, což činí případnou modifikaci souboru ''kernel-verze_jadra-architektura.config'' poněkud problematickou.
  
    gedit /usr/src/redhat/SOURCES/kernel-verze_jadra-architektura.config    gedit /usr/src/redhat/SOURCES/kernel-verze_jadra-architektura.config
Řádek 140: Řádek 141:
 === Jádro z www.kernel.org (tzv. vanila jádro) === === Jádro z www.kernel.org (tzv. vanila jádro) ===
  
-Druhou možností je stáhnout **zdrojové kódy vanila jádra** ve formě  '.gz' popř. '.bz2' souborů přímo na stránkách [[http://www.kernel.org]]. Tyto komprimované soubory mají velikost 40 - 50 //MB// v závislosti na použitém komprimačním formátu a verzi jádra. +Druhou možností je stáhnout **zdrojové kódy vanila jádra** ve formě  '.gz' popř. '.bz2' souborů přímo na stránkách [[http://www.kernel.org]]. Tyto komprimované soubory mají velikost 40 - 50 //MB// v závislosti na použitém komprimačním formátu a verzi jádra.\\ 
-\\+
 Stáhněte příslušný soubor se zdrojovými kódy ze stránek [[http://www.kernel.org]]. Stáhněte příslušný soubor se zdrojovými kódy ze stránek [[http://www.kernel.org]].
  
Řádek 168: Řádek 169:
   rm -f verze_jadra.tar.*   rm -f verze_jadra.tar.*
  
-**Poznámka:** Pokud budete chtít použít patche, aplikujte je pouze na vanila jádro. Jestliže používáte jádro upravené pro potřeby //Fedory//((Jedná se o jádra obsažená v distribuci nebo o jádra stažená z repozitářů.)), mohla by aplikace patchů vést k problémům. Obecně platí, že je jednodušší stáhnout nejakutálnější verzi jádra, která již obsahuje případné patche. +**Poznámka:** Pokud budete chtít použít patche, aplikujte je pouze na vanila jádro. Jestliže používáte jádro upravené pro potřeby //Fedory//((Jedná se o jádra obsažená v distribuci nebo o jádra stažená z repozitářů.)), mohla by aplikace patchů vést k problémům. Obecně platí, že je jednodušší stáhnout nejakutálnější verzi jádra, která již obsahuje případné patche.\\ 
-\\+
 Nyní následuje samotný překlad jádra. Přesuňte se do adresáře ''/usr/src/kernels/verze_jadra'', který obsahuje zdrojové kódy jádra. Nyní následuje samotný překlad jádra. Přesuňte se do adresáře ''/usr/src/kernels/verze_jadra'', který obsahuje zdrojové kódy jádra.
  
  • Poslední úprava: 2022/11/14 11:10
  • (upraveno mimo DokuWiki)