OS Linux - 4. část: Konfigurace jádra Linuxu a Xserveru
Dobře naladěné jádro
Na další stranuNávrat na titulní stranuVyhledávání informacíNa další stranu

V minulém díle jsme se zabývali konfigurací Red Hat Linuxu pomocí nástroje Control panel. V případě, že se vám nedaří donutit Linux rozpoznat některou z periferií, nebo vám dokonce nefunguje systém X Window, můžete zkusit změnit konfiguraci jádra systému a Xserveru.

XFree86

Jádro operačního systému (kernel) má za úkol přidělovat systémové prostředky aplikacím, spravovat paměť, přidělovat čas procesoru jednotlivým procesům, umožnit jednotným způsobem přístup k různým periferiím apod. Aplikace se nemusí starat o to, zda hledaný soubor leží na SCSI disku, nebo jaký systém souborů je použit atd. Jádro také hlídá aplikace, aby si nemohly navzájem ubližovat. Nesmí připustit, aby jedna aplikace zasahovala do adresního prostoru jiné, a naopak musí podporovat vzájemnou komunikaci aplikací.

Jádro Linuxu se obvykle jmenuje vmlinuz a je umístěno v kořenovém adresáři (plná cesta je /vmlinuz). U Red Hat 4.2 je jádro v adresáři /boot a /vmlinuz je jen symbolický link na soubor /boot/vmlinuz.

Vzhledem k vykonávaným funkcím musí jádro zůstávat stále v paměti, a proto je důležité, aby zabíralo co nejméně místa. Toho se dosáhne tím, že se do něj zahrnou jen opravdu nezbytně nutné funkce. Linux jde ještě dál a funkce, které se nepoužívají tak často (např. ovladače PCMCIA karet, potřebné teprve po zasunutí karty), je možné realizovat pomocí tzv. Kernel Loadable Module. Tyto moduly, obvykle umístěné v adresáři /lib/modules, se v případě potřeby nahrají do paměti ručně příkazem insmod nebo automaticky programem kerneld (při startu systému se, pokud existuje, vykonává soubor /etc/rc.d/rc.modules). Pohodlná správa modulů je možná z prostředí Control Panelu pomocí volby Kernel Daemon Configuration.

V případě, že se rozhodnete ke kompilaci jádra, je dobré vědět, co znamená číslo verze jádra, skládající se ze tří čísel oddělených tečkami. Standardní jádro Red Hat Linuxu 4.2 je 2.0.30. První (major) číslo označuje hlavní verzi, tedy takovou, která je významnou změnou proti předchozím verzím. Druhé číslo kromě pořadí verze také prozrazuje, o jaké jádro jde. Sudá čísla jsou vyhrazena stabilním verzím a lichá označují vývojářská jádra. V současné době jsou nejnovější stabilní jádra 2.0 a na jádrech 2.1 probíhá vývoj.

Proč kompilovat
Důvodů, proč kompilovat jádro Linuxu, je několik:

  • Potřebujete nové jádro, protože obsahuje ovladače, které staré jádro nemělo.
  • Chcete zvýšit výkon systému tím, že vypustíte z jádra nepotřebné věci. Kompilace je pak součástí celkového ladění systému.
  • Nová verze jádra je rychlejší.
  • Chcete mít nejnovější jádro, protože je nejnovější (častý důvod). Pokud se rozhodnete kompilovat, potřebujete k tomu:
  • Nainstalovaný a běžící Linux (ne nutně, ale je to asi nejlepší).
  • Kompilátor gcc ve verzi 2.6.3 a vyšší.
  • Program make.
  • Zdrojový kód jádra (obvykle v /usr/src/linux. Existují i rpm s různými verzemi systému: kernel-source a kernel-headers ve složce Base/Kernel).
  • Asi 40 MB místa na disku (na zdrojové soubory + mezivýsledky kompilace).

Konfigurace
Nejdůležitější část výroby jádra je konfigurace, která rozhoduje o tom, jaký hardware bude jádro schopné ovládat. Příkaz make je nutné spouštět z hlavního adresáře (např. /usr/src/linux). Existují tři způsoby konfigurace. Pokud vám funguje Xserver, můžete příkazem make xconfig spustit program v prostředí X Window. Příkaz make menuconfig umožňuje konfigurovat pomocí nabídek v textovém režimu, a konečně make config spustí sérii otázek a není možné se vracet zpět. Posledně jmenovaný způsob je nejjistější a měl by - na rozdíl od zbylých dvou - fungovat vždy.

Xconfig
Hlavní menu konfigurace jádra.

Všechny tři metody vedou ke stejnému cíli - vytvořit konfiguraci jádra před jeho kompilací. Na otázky kladené během konfigurace se dá odpovědět y, n a m. Význam prvních dvou je zřejmý, m znamená module (nebo také možná - možná to budu potřebovat). Většina otázek má k sobě i nápovědu s doporučením, co zvolit v případě pochybností (v make config se vyvolává klávesou ?). Podrobný popis možností obsahuje soubor Kernel-HOWTO, takže se zmíním jen o tom nejdůležitějším.

General Setup
Kernel math emulation. Emulace matematického koprocesoru.

Network support. Některé programy jej mohou vyžadovat, i když nejste připojeni k síti.

Limit memory. Většinou není nutné.

Kernel support. Podporovány mohou být dva formáty spustitelných souborů, a.out a ELF. ELF je novější a užívá se častěji. Je možné používat obojí (jen se trochu zvětší jádro).

Processor type. Užívá se pro optimalizaci kódu, kód pro 386 by měl fungovat všude. To je důležité zejména pro klony (Cyrix, AMD), protože některé procesory prostě nejsou úplně kompatibilní s Pentiem.

Networking Options. Pokud se příliš nevyznáte v TCP/IP, asi bude nejlepší nechat nastavení tak, jak je, nebo se řídit nápovědou. Bude-li váš Linux pracovat společně se servery Novell, zvolte volbu IPX support. Máte v síti Maca? Pak určitě zaškrtněte podporu Appletalk.

SCSI Support. Podpora SCSI zařízení. Takzvané high level ovladače slouží k řízení jednotlivých tříd zařízení (disk, páska, CD-ROM). Potom je třeba zvolit low level ovladač pro váš konkrétní SCSI řadič. Pozor! SCSI podpora je nutná i pro paralelní ZIP drive.

Network device support. Kromě konkrétních síťových zařízení lze zvolit i způsob připojení po sériové lince. Pokud plánujete připojení modemem, určitě zatrhněte podporu PPP nebo SLIP (nevíte-li, který protokol budete používat, zvolte oba).

Filesystems proc Každé jádro by určitě mělo obsahovat proc filesystem. Je to totiž způsob, kterým jádro informuje různé programy o své konfiguraci, o připojených zařízeních apod.

e2fs Standardním linuxovým systémem souborů je second extended fs.

FAT Musí váš Linux sdílet disk s MS-DOS, Windows? Pak je nutné zvolit i DOS FAT, MSDOS fs, případně i VFAT.

NFS NFS a SMB (MS WINDOWS) slouží ke sdílení disků po síti.

Systémy souborů, které jsou právě připojeny, zjistíte výpisem obsahu souboru /proc/filesystems.

Sound. Položky této nabídky je nejlépe vyplňovat s manuálem ke zvukové kartě v ruce.

Po skončení konfigurace se jádro připraví příkazy make dep a make clean na kompilaci. Make dep zajistí, že všechny požadované soubory jsou na místě, a make clean odstraní případné zbytky po předchozí kompilaci. Samotná kompilace se spouští příkazem make zImage nebo make zdisk. Make zImage uloží výsledné jádro do souboru arch/i386/boot/zImage, make zdisk uloží jádro na disketu v mechanice a:. Z na začátku znamená, že kód jádra je na disku komprimovaný a rozbalí se automaticky při startu systému.

Jádro na disketě se hodí k testování jeho funkce. Pokud je něco špatně, stačí vysunout disketu z mechaniky. Naopak lze disketu s fungujícím jádrem použít k zavedení systému v případě "nehody" jádra na disku.

Fungující jádro je třeba správně nainstalovat. Doporučoval bych schovat si starší jádro pro případ nehody. Soubor zImage se přesune na své místo (cp arch/i386/boot/zImage /vmlinuz). Upraví se soubor /etc/lilo.conf, konkrétně řádek "image = /cesta k jádru" musí ukazovat na správný soubor. Potom se spustí příkaz lilo a je to. Stačí znovu zavést systém (příkaz reboot nebo klávesy Ctrl-Alt-Del) a dívat se, jak to nové jádro hezky běží.

Neběží? Pak je nutné zavést systém z diskety (zajisté jste si ji připravili, že?), vrátit původní jádro a zkusit znovu nakonfigurovat a zkompilovat jádro. Čištění pomocí make clean může za sebou nechat ještě nějakou chybu, která způsobuje špatnou funkci jádra. Pak je možné použít make mrproper k důkladnému vyčištění zdrojových adresářů. Moduly se kompilují a instalují příkazy make modules a make modules_install.

Konfigurace X Window Systemu
X Window System (ve zkratce jednoduše "X") vznikl v polovině osmdesátých let na univerzitě MIT v USA. Díky několika vlastnostem, které mu byly dány do vínku, se prosadil ve světě minipočítačů a pracovních stanic, pracujících pod různými operačními systémy (Unix, VMS, NextStep). Těmi hlavními vlastnostmi, které jej odlišují od ostatních okenních systémů, jsou: cena; zdrojové texty v jazyce C jsou k dispozici zdarma; snadná přenositelnost systému na různé platformy; platformní nezávislost z hlediska programátora aplikací i uživatele; síťová transparentnost založená na modelu klient/server.

Některá z těchto hesel si žádají bližší vysvětlení. Nulová cena platí pro původní zdrojové texty od MIT a pro několik dalších implementací (nejznámější je asi XFree86). Jiní producenti totiž do svých implementací zanesli mnohá vylepšení a rozšíření, za která si nechají zaplatit (Motif Toolkit, OpenGL, Display PostScript). Snadná přenositelnost je založena na přístupu ke zdrojovým textům v C, dané platformě se totiž musí přizpůsobit pouze malá část systému. Programátoři pak mají na všech platformách shodné API (Application Programming Interface) a jejich zdrojové texty jsou tedy přenositelné opravdu velmi snadno. Z toho plyne, že stejná aplikace se i z hlediska uživatele bude chovat všude stejně. Síťová transparentnost znamená, že pro uživatele není síť překážkou a může své aplikace spouštět na jiném počítači, než u kterého právě sedí a provádí interakci (lokální počítač). Přenos grafické informace se provádí mezi dvěma vzdálenými systémy stejně snadno jako lokálně v rámci jednoho počítače, o což se stará komunikační vrstva mezi jádrem systému a aplikací.

Jádro je součástí programu, který se nazývá Xserver a běží na lokálním počítači s grafickou obrazovkou jako výstupem a klávesnicí s myší jako vstupem. Aplikace je program, kterému se v tomto kontextu říká Xclient a který může běžet kdekoliv na síti, ale i na stejném počítači, kde běží Xserver. Protože je komunikace založena na protokolu TCP/IP, lze jako komunikační médium použít nejen vaši LAN, ale celý internet.

X Window však nijak nedefinuje, jak má vypadat ovládání a vzhled toho, co vidíme na obrazovce. To, co jindy je součástí jádra okenního systému, tj. vzhled dekorací okének, způsob ovládání myší, umisťování a vzhled ikon, menu na základní ploše apod., zajišťuje speciální aplikace, window manager. Tato třída aplikací je tak rozmanitá, že mnohdy při porovnání dvou z nich není na první pohled zřejmý společný základ v X. Nepříjemným důsledkem toho je poněkud zmatený uživatel, který má pracovat na dvou či více systémech od různých výrobců. V poslední době však i zde dochází k určité integrační snaze (Common Desktop Environment - CDE). Podobná schizofrenie vládne i v ovládání aplikací. Pro vývoj uživatelského rozhraní programátoři používají knihovny s ovládacími prvky, tzv. toolkity. Každá z knihoven má jinou filozofii pro tvorbu UI a také jiné ovládání. Nejznámější z toolkitů jsou Athena, OpenLook a Motif. Standardem se stává Motif, což souvisí i s prosazováním CDE. Bohužel licence na knihovnu Motif stojí asi sto dolarů.

Linux X
Implementace X Window v Linuxu se jmenuje XFree86, je zdarma a je určená pro platformu Intel. Stále se vyvíjí a rozšiřuje o nové vlastnosti, které jsou u komerčních systémů X Window již známé, např. akcelerační funkce pro 2D i 3D, podpora národních prostředí či různých vstupních zařízení atd. Poslední oficiální verze je nyní XFree86 v.3.3.

Aby byl Xserver schopen běhu, musí být správně nakonfigurován, což znamená několik věcí. Jednak je nutné zvolit správnou verzi Xserveru podle užívané grafické karty. Volba se provede přejmenováním dané verze Xserveru z původního jména, např. XF86_VGA16 na X (vhodnější je ale vytvořit symbolický link). Součástí balíku XFree86 je totiž sada serverů, lišících se škálou grafických karet, které dokážou ovládat. Rozlišuje se podle grafického čipu, který karta obsahuje (VGA, SVGA, S3, Mach32/64, MDA apod.). Dalším krokem je vytvoření souboru (/etc/X11/86Config), který si server čte při spouštění a ve kterém je napsáno, kde najde fonty, jaký typ myši a klávesnice (tabletu) má očekávat, jaké frekvence a rozlišení zvládne monitor, kolik má grafická karta paměti atd.

Tyto dva kroky lze provést ručně, což vyžaduje určitou zkušenost, nebo poloautomaticky za pomoci programu. Tím může být například dnes už historický xf86config, který v textovém režimu formou nabídek pomůže sestavit konfigurační soubor. Lepší variantou je použití programu XF86Setup, který pracuje v grafickém režimu a je mnohem lépe ovladatelný. Aby se však tento program vůbec rozběhl, musí vaše grafická karta "umět" standardní VGA režim (640 x 480, 16 barev). Program umožňuje konfiguraci myši, klávesnice, grafické karty, monitoru a některé speciality. I když nemáte myš zatím funkční, je možné jej poměrně snadno ovládat z klávesnice. Nicméně lze doporučit konfiguraci myši jako první krok, aby ji bylo možné dále používat.

XF86Config
Konfigurace grafické karty.

U myši musíte udat její typ, na který port je připojena (/dev/cua0 = COM1, cua1 = COM2 atd.), komunikační rychlost (1200 by mělo fungovat vždy). Pokud používáte dvojtlačítkovou myš, doporučuji zapnout emulaci třetího tlačítka. To je důležité, protože mnohé programy počítají s třítlačítkovou myší, která je u pracovních stanic standardem. Třetí tlačítko pak nahrazuje současný stisk obou tlačítek.

U klávesnice se opět volí typ (101, 102, 104 kláves), který se vzápětí zobrazí na obrázku, a rozmístění znaků (americké, německé, české). Dále lze zvolit způsob přepínání mezi rozmístěním znaků a také umístit tlačítko CTRL (pod/nad levý shift).

Volba karty a monitoru je možná dvojím způsobem. Buď si vyberete ze seznamu karet a monitorů, které program nabídne, nebo můžete specifikovat vlastnosti karty a monitoru ručně. Těmito vlastnostmi jsou: grafický čip na kartě, RAMDAC (převodník na videosignaly RGB), časovač, množství paměti a další vlastnosti (např. powersaving), intervaly frekvencí.

Konfigurace monitoru
Konfigurace monitoru.

Poslední dialog vám dovoluje zakázat nebo povolit některé speciální kombinace kláves, které umožňují "shodit" Xserver (CTRL+ALT+BACKSPACE), nebo přepínat grafické rozlišení (CTRL+ALT+šedé PLUS či šedé MINUS). Kromě toho lze v Linuxu přepínat mezi textovou a grafickou konzolí klávesami CTRL+ALT+Fn (Xserver většinou najdete na CTRL+ALT+F7). Po dokončení konfigurace je pokusně spuštěn Xserver.

Pok ud je vše podle vašich představ, lze novou konfiguraci uložit pro další použití. Vzhledem k tomu, že konfigurační soubor je textový, můžete v něm dodatečně provádět úpravy libovolným textovým editorem. Syntaxi souboru lze získat z manuálových stránek pro heslo XF86Config.

Tím jsme dokončili konfiguraci. Otázka teď zní, jakým způsobem si grafické prostředí spustit? Možnosti jsou dvě, a volit můžete podle toho, zda budete spíše pracovat v grafickém, či textovém prostředí Linuxu. Pro první variantu je k dispozici zvláštní režim práce operačního systému (tzv. runlevel), který automaticky spouští po startu systému dialog pro přihlášení uživatele v grafickém režimu. Tuto úlohu má program xdm, který spouští Xserver, autorizaci uživatele a potom window manager. Po odhlášení uživatele se xdm opět postará o nové spuštění Xserveru a vyvolá dialog pro přihlášení nového uživatele. Tímto režimem operačního systému bývá většinou runlevel číslo 5, který lze vyvolat příkazem init 5 nebo úpravou souboru /etc/inittab.

Pokud patříte mezi uživatele, kteří si grafické prostředí chtějí spouštět jen tehdy, pokud to opravdu potřebují, budete používat runlevel 2 nebo 3 (opět init 2 nebo 3 či úprava /etc/inittab). Přihlašování uživatelů pak probíhá v textovém režimu a Xserver lze spustit příkazem startx.

Další tématem, které souvisí se systémem X, je volba window manageru a jeho konfigurace. O tom však zase někdy příště.

Martin Brachtl, Lukáš Mikšíček


Na další stranuNávrat na titulní stranuVyhledávání informacíNa další stranu
Copyright Vogel Publishing s.r.o. 1998
reprinted and translated with
the author's permission
CHIP
Listopad 1997 str.186