14.2. Optimalizace systému X Window

X.Org je open source implementace X Window systému. Je vyvíjena "X.Org Foundatation", která je také odpovědná za vývoj nových technologií a standardů X Window systému.

Abyste maximálně využili možností svého hardwaru (myš, grafická karta, monitor, klávesnice), můžete nastavení ručně optimalizovat. Podrobnější informace o nastavení X Window systému najdete v souborech v adresáři /usr/share/doc/packages/Xorg a manuálových stránkách, ke kterým můžete přistupovat například příkazem man xorg.conf.

Program SaX2 umožňuje i náročné zásahy do konfigurace X Window, nicméně abyste naplno využili schopnosti vašeho hardwaru jako jsou myš, grafická karta, monitor nebo klávesnice, může být nutná ruční editace konfiguračního souboru. Některé aspekty tohoto procesu budou vysvětleny v následujícím textu. Podrobnější informace o konfiguraci systému X Window získáte v manuálových stránkách - viz příkaz man xorg.conf, k užitku vám mohou být i soubory v adresáři /usr/share/doc/packages/xf86.

[Warning]Varování

Při konfiguraci systému X Window buďte opatrní. Nikdy X Window nespouštějte před dokončením jeho řádné konfigurace, protože chybná konfigurace může způsobit neodstranitelné škody na vašem hardwaru (to se vztahuje zejména na monitory s pevnou frekvencí, které se však dnes už téměř nepoužívají). Autoři této knihy a společnost SUSE Linux AG není za takovéto škody odpovědná. Následující informace byly pečlivě ověřovány, to ovšem nezaručuje, že všechny zde popsané postupy jsou správné a nemohou poškodit váš hardware.

V následujících odstavcích je popsána struktura konfiguračního souboru /etc/X11/xorg.conf. Tento soubor je členěn na sekce uvedené klíčovým slovem Section <designation> a ukončené klíčovým slovem EndSection. Níže naleznete stručný přehled nejdůležitějších sekcí.

Ve výchozím nastavení vytváří programy SaX2 a xf86config konfigurační soubor xorg.conf v adresáři /etc/X11. To je hlavní konfigurační soubor systému X Window. Zde se nachází veškerá nastavení vaší grafické karty, myši a monitoru.

Každá sekce souboru xorg.conf popisuje určitou část konfigurace a má následující podobu:

Section název
  položka 1
  položka 2
  položka n
EndSection
 

Rozlišovány jsou následující typy sekcí:

Tabulka 14.1. Sekce /etc/X11/xorg.conf

Typ sekce

Popis

Files

Tato sekce obsahuje cesty použité pro vyhledávání fontů a tabulku RGB.

ServerFlags

Zde se zadávají obecné volby pro X server.

InputDevice

Zde se konfigurují vstupní zařízení jako klávesnice a speciální zařízení (touchpady, joysticky atd.). Důležitými položkami jsou: Driver a volby určující položky Protocol a Device.

Monitor

Popisuje použitý monitor: jméno, na které později odkazuje definice Screen, dále šířka pásma a obě mezní synchronizační frekvence (HorizSync a VertRefresh). Frekvence se zadávají v MHz, kHz, nebo Hz. Server obvykle odmítne jakékoli zobrazovací parametry, které neodpovídají specifikaci monitoru. Cílem je zabránit náhodnému nastavení monitoru na příliš vysokou řádkovou nebo snímkovou frekvenci.

Modes

Zde jsou uloženy zobrazovací parametry pro různá rozlišení obrazovky. Jejich hodnoty jsou obvykle vypočteny programemSaX2 na základě údajů zadaných uživatelem a obvykle je není třeba měnit. Ruční zásah může být nutný např. při použití monitoru s pevnými frekvencemi. Podrobnější popis jednotlivých parametrů by byl nad rámec této knihy, ale najdete ho např. v dokumentu HOWTO /usr/share/doc/howto/en/XFree86-Video-Timings-HOWTO.gz.

Device

Zde je definována konkrétní grafická karta v systému, na kterou je prostřednictvím jejího názvu odkazováno v jiných sekcích konfiguračního souboru.

Screen

Zde je definován vztah mezi sekcemi Monitor a Device, jimiž je tvořena nezbytná konfigurace systému XFree. V podsekcích Display je určena barevná hloubka a škála rozlišení obrazovky použitelná pro danou hloubku.

ServerLayout

V této sekci je definována použitá kombinace vstupních zařízení ze sekce InputDevice a zobrazovacích zařízení (sekce Screen), ať už je v systému jedna grafická karta nebo se jedná o režim multihead (více karet provozovaných zároveň).

O sekcích Monitor, Device, a Screen se podrobněji dočtete dále. Informace o ostatních sekcích naleznete například v manuálových stránkáchXFree86 a xorg.conf.

Konfigurační soubor xorg.conf může obsahovat více různých sekcí Monitor a Device. V souboru může existovat i více sekcí typu Screen. V sekci ServerLayout, která po nich následuje, je pak určeno, které sekce budou skutečně použity.

14.2.1. Sekce Screen

Nyní se pozastavíme u sekce Screen, která je styčným místem sekce Monitor a sekce Device a určuje, jaké kombinace barevné hloubky a rozlišení obrazovky budou použity. Příklad sekce Screen:


Section "Screen"
  DefaultDepth  16
  SubSection "Display"
    Depth       16
    Modes       "1152x864" "1024x768" "800x600"
    Virtual     1152x864
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"
  Monitor       "Monitor[0]"
EndSection

V řádce Identifier (zde Screen[0]) je dán jednoznačný název této sekce, na nějž je odkazováno v následující sekci ServerLayout. Řádky Device a Monitor určují kombinaci grafické karty a monitoru, pro které je tato sekce Screen platná a ve skutečnosti jsou to jen odkazy na odpovídající sekce Device a Monitor konfiguračního souboru. Těm se budeme více věnovat později.

Řádkou DefaultDepth nastavíte barevnou hloubku, se kterou se spustí X server, pokud nebude explicitně stanoveno jinak. Každé barevné hloubce odpovídá jedna podsekce Display. Na řádce Depth je této podsekci přiřazena konkrétní barevná hloubka, jejíž hodnoty mohou být 8, 15, 16, 24 a 32. Všechny moduly X serveru však nepodporují všechny hodnoty. Pro některé grafické karty znamenají hodnoty 24 a 32 totéž, zatímco u jiných udává hodnota 24 tzv. packed-pixel 24 bpp mód a 32 tzv. padded-pixel 32 bpp. mód.

Nastavené barevné hloubce odpovídá seznam rozlišení obrazovky v sekci Modes. Tento seznam je zpracováván zleva doprava X serverem, který přiřadí danému rozlišení příslušný řádek Modeline se zobrazovacími parametry. Jejich hodnoty jsou závislé na schopnostech grafické karty a monitoru. Výsledný řádek je tedy předurčen obsahem sekce Monitor.

První nalezené platné rozlišení je tzv. Default mode a X server se s ním pustí. Během jeho provozu se pak dá kombinací kláves Ctrl + Alt + + (na numerické klávesnici) přepínat mezi hodnotami v seznamu směrem doprava, zatímco kombinací kláves Ctrl + Alt + procházíme seznam směrem vlevo. Tím se dá měnit rozlišení obrazovky i za běhu X serveru.

Poslední řádka podsekce Display s označením Depth 16 udává barevnou hloubku a přímo ovlivňuje maximální velikost virtuální obrazovky. Ta je dále závislá na velikosti videopaměti, nikoli na maximálním rozlišení monitoru. Moderní grafické karty mají jsou osazeny pamětí o dostatečné velikosti, lze tedy používat velké virtuální obrazovky. Pokud má grafická karta videopaměť např. o 16 MB, lze při barevné hloubce 32 bitů vytvořit virtuální obrazovku o velikosti až 2048x248 bodů. Zejména u moderních akcelerovaných karet však není doporučeno použít veškerou dostupnou paměť na virtuální obrazovku, neboť jejich paměť slouží také jako vyrovnávací paměť pro uložení fontů a grafických objektů.

14.2.2. Sekce Device

Tato sekce popisuje konkrétní grafickou kartu. Soubor xorg.conf může obsahovat více těchto sekcí, které jsou odlišeny hodnotou řádku Identifier. Máte-li více grafických karet, sekce jsou očíslovány tak, že první karta bude Device[0], druhá karta Device[1] atd. Následující výpis je příklad konfigurace sekce Device u počítače s jednou kartou Matrox Millennium PCI:

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"
  Driver        "mga"
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

Při konfiguraci pomocí SaX2 bude vaše sekce Device vypadat podobně. Položky Driver a se liší podle hardwaru ve vašem počítači a BusID jsou zjištěny programem SaX2 automaticky. Hodnota BusID představuje pozici na sběrnici PCI nebo AGP, ve které je instalována grafická karta. Odpovídá hodnotě zjištěné příkazem lspci (nenechte se nicméně zmást tím, že X server zde používá dekadické hodnoty a program lspci hodnoty hexadecimální.

V sekci Driver přiřadíte grafické kartě ovladač. Máte-li např. kartu Matrox Millennium, nazývá se modul ovladače mga. X server pak hledá daný modul v podadresáři s ovladači uvedeném v položce ModulePath v sekci Files. Ve výchozím stavu po instalaci to je adresář /usr/X11R6/lib/modules/drivers. Pokud ke jméně modulu přidáte _drv.o, získáte jméno souboru s ovladačem, v případě modulu mga bude tedy zaveden soubor mga_drv.o.

Chování X server nebo ovladačů lze ovlivnit dalšími volbami. Příkladem je například volba sw_cursor ze sekce Device, která zakáže hardwarový kurzor myši a simuluje ho hardwarově. Různé ovladače mohou mít implementovány různé volby. Popis voleb dostupných u konkrétního ovladače najdete v adresáři /usr/X11R6/lib/X11/doc (máte-li nainstalován balík XFree-doc. Popis obecně platných voleb obsahují také manuálové stránky (man xorg.conf a man XFree86).

14.2.3. Sekce Monitor a Modes

Podobně jako každá sekce Device popisuje jednu grafickou kartu, popisují sekce Monitor a Modes jeden monitor. Konfigurační soubor může obsahovat libovolné množství těchto sekcí (lišících se minimálně v jejich symbolických jménech). V sekci SystemLayout je pak určeno, která ze sekcí Monitor je platná.

Nastavení monitoru by měli provádět pouze zkušení uživatelé. Nejdůležitějšími položkami sekcí Monitor jsou horizontální a vertikální frekvence monitoru pro dané rozlišení.

[Warning]Varování

Pokud nerozumíte principům spolupráce monitoru a grafické karty, hodnoty frekvencí neměňte, neboť to zejména u starších monitorů může vést až k jejich zničení.

Pokud si troufáte ručně měnit navrženou konfiguraci monitoru, měli byste věnovat pozornost dokumentaci /usr/X11/lib/X11/doc. Velký význam má zejména část popisující režimy monitoru, manipulaci s horizontální a vertikální frekvencí a funkci grafických komponent systému.

V dnešní době se s ručním nastavením frekvencí monitoru prakticky nesetkáte. Při použití moderního monitoru schopného přizpůsobit obraz libovolné frekvenci generované grafickou kartou v určitém rozsahu (dnes v tomto režimu pracuje naprostá většina monitorů), dokáže X server zpravidla zjistit rozsah frekvencí a optimální rozlišení pomocí DDC přímo od monitoru. Této možnosti využívá i konfigurační program SaX2. Pokud se to nepodaří, můžeze využít i X serverem nabízené módy VESA, jenž fungují prakticky pro jakékoli kombinace monitorů a grafických karet.