Portál AbcLinuxu, 23. dubna 2024 16:35

Na co se často ptáme 4: X Window System - II

28. 5. 2004 | Vlastimil Ott
Články - Na co se často ptáme 4: X Window System - II  

Druhý díl návodu na konfiguraci XFree. Dnes si posvítíme na monitory, grafické režimy a modelines.

V dnešním dílu se zaměříme na výstupní zařízení a jejich nastavení.

Device

Konfigurační soubor může obsahovat těchto sekcí několik. Přítomná musí být alespoň jedna. V této sekci konfigurujeme grafickou kartu. V případě vícehlavých karet je nutné vytvořit dva stejné záznamy; pokud se však každá hlava identifikuje jiným BusID číslem, pracujeme jakoby se dvěma oddělenými kartami.

Parametr Význam hodnoty
Identifier Představuje jedinečné jméno výstupního zařízení.
Driver Ovladač grafické karty.
BusID Specifikuje umístění grafické karty ve smyslu PCI:sběrnice:zařízení:funkce. Např. PCI:1:0:0 je ale AGP karta. Tuto hodnotu lze zjistit spuštěním X serveru s parametrem -scanpci, nebo příkazem lspci.
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY
[Radeon 7000/VE]
Screen Obvykle nemá význam v případě jedné karty. V případě více karet nebo vícehlavých karet určuje tento parametr, kterou obrazovku hlava/karta obsluhuje. Pojem "obrazovka" chápejme ve smyslu "stínítko", tedy plocha k zobrazení. Je úzce svázána se zařízením monitoru (sekce Monitor). Čísluje se od 0 do počet obrazovek-1.
Chipset Doporučuje se nenastavovat, pokud to není nezbytně nutné. Moduly jsou schopné samy přítomný čipset rozpoznat. Osvědčí se ale u starých karet, které mají podobné, ale přesto se mírně lišící, čipsety (např. S3).
RAMDAC Význam tohoto čipu objasní spíše elektrotechnik. Moduly opět samy poznají typ RAMDAC a chovají se podle toho.
Clocks Frekvence časovače v MHz. Dnes pro moderní karty nevyužitelné; snad jen pro ty staré.
VideoRAM Množství operační paměti karty v kilobajtech. Dnes již obvykle nevyužívané pro karty v pravém slova smyslu (zasunují se do sběrnice), naopak praktické pro integrované grafiky, např. SiS.

Existuje ještě několik parametrů, s jejichž pomocí je snad možné dosáhnout určitých výsledků. Neslyšel jsem ale o tom, že by se dal takto změnit (zvýšit) výkon karty.

Kromě toho má každý čipset své specifické volby, které jsou velmi důležité, protože výkon zásadně ovlivňují. Následující čipsety mají své manuálové stránky, kde lze konkrétní volby nalézt: chips, cirrus, cyrix, fbdev, glide, glint, i128, i740, i810, imstt, mga, neomagic, nv, radeon, r128, rendition, savage, s3virge, siliconmotion, sis, sunbw2, suncg14, suncg3, suncg6, sunffb, sunleo, suntcx, tdfx, tga, trident, tseng, v4l, vesa, vga.

Problémy s firemními ovladači mnozí z vás znají, proto znovu upozorňuji, že tyto manuálové stránky pojednávají o modulech XFree, nikoliv jednotlivých výrobců, kteří dodávají vlastní dokumentaci. Jako příklad uvádím konfiguraci obstarožního Radeonu 7000 (podrobnosti jsou jako obvykle v manuálové stránce).

Section "Device"
  Identifier "radeon0"
  Driver "ati"
  #Driver "radeon" # vyjde nastejno
  VendorName "ATI Radeon VE"
  Option "AGPMode" "4"
  Option "ForcePCIMode" "on"
  Option "AGPFastWrite" "on"
  #Option "EnablePageFlip" "on"
  #Option "composite_sync" "off"
  BusID "PCI:1:0:0"
  Screen 0
EndSection

VideoAdaptor

O této famózní sekci jsem se všude dočetl jediné: Nikdo neví, kdy a proč vznikla, jakou má funkci a proč vlastně existuje.

Monitor

V této sekci se definují monitory - fyzická zařízení, která budou později svázána s obrazovkou. Monitor je zobrazovací zařízení, které má za úkol zobrazit přijatý signál v co nejlepší kvalitě. Tím máme zejména na mysli:

  1. přijatelné rozlišení;
  2. bitovou hloubku;
  3. frekvenci.

Platí přitom pravidlo, že všechny podmínky musejí být splněny zaráz; teprve poté je cíle dosaženo.

Přijatelné pracovní rozlišení se pohybuje od hodnot 800*600 (dávná minulost), 1024*768 nebo 1152*864(nedávná minulost), 1280*1024 (současnost) až po 1200*1600 a vyšší (budoucnost). Mám pochopitelně na mysli moderní stroje, protože všechna rozlišení v tomto rozsahu jsou dnes podle okolností používaná.

Bitová hloubka čili schopnost zobrazit určitou paletu barev je zásadní pro dnešní mediální svět, a proto cokoliv pod 16bitů nemá smysl (vyšší už je pouze hloubka 32bitová, takže možností tolik není).

Frekvence je zase nejdůležitější pro zdraví. Člověk, který má špatně nastavený monitor, hazarduje se zdravím - a nejedná se jen o zrak. Byť není správcem svého počítače (v zaměstnání), měl by požadovat maximální hodnoty, které hardware umožňuje. Podle mého laického názoru lze takto aplikovat normy Bezpečnosti a ochrany zdraví při práci (BOZP), které jsou součástí/dodatkem Zákoníku práce.

Jak se pozná špatně nastavená frekvence monitoru? Necvičené oko to na první pohled nijak nepozná. Až se "ozve" krční páteř, hlava, záda a kříž, poznáte. Cvičené oko se zadívá těsně vedle monitoru a periferním viděním se snaží poznat, jestli se určitá místa obrazu tetelí a chvějí. Pokud ano, je nastavena frekvence kolem 60Hz (někdy i trochu méně!). Na moderních (mladších pěti let) monitorech stačí stisknout tlačítko OSD (On Screen Display), což je informační nabídka monitoru. Slouží k ovládání a kalibraci monitoru a obvykle obsahuje základní informace o rozlišení a frekvenci. Správnou frekvenci všask musíme nastavit softwarově.

Parametr Význam hodnoty
VendorName Výrobce monitoru. Jakýkoliv řetězec.
ModelName Model monitoru. Jakýkoliv řetězec.
HorizSync Horizontální obnovovací frekvence monitoru. Pokud máte manuál, bývá obvykle v tabulce kolem strany osm až dvanáct. Zadává se seznam hodnot oddělená čárkami, nebo rozmezí. Např. 40-120.
VertRefresh Vertikální obnovovací frekvence. Zadává se stejne jako HorizSync, pouze hodnoty jsou nominálně nižší, např. 40-80.
DisplaySize vyska sirka Rozměr fyzické plochy monitoru v milimetrech. Použito pro vypočítání rozlišení pro obrazovku. Opravdu je jediná možnost vzít pravítko a měřit.
Gamma Gamma korekce monitoru. Buď jediná hodnota, nebo tři složky RGB v rozmezí 0-1.
Mode Volba pro vytvoření nového režimu; vhodnější řešení je Modeline
Modeline "jmeno" definice V podstatě instrukce pro vytvoření nového režimu monitoru. Předem varuji, že hodnoty si nelze vymyslet a že jejich nesprávné užití může monitor poškodit. Taky je ale pravda, že moderní monitory se umí bránit a prostě zobrazí hlášení "Signal out of range" (Signál mimo rozmezí) nebo podobné. O modelines více níže.
DPMS Lze zapnout, nebo vypnout úsporný režim monitoru.
DDCmode Zakáže, nebo povolí příjem informací o monitoru, tj. o frekvenčním rozmezí, předdefinovaných režimech apod.

Moderní grafické karty jsou schopné signál vysílat na vysokých frekvencích, pro monitory má význam rozmezí (75)85 až 120 Hz. Pro LCD displeje je pojem "frekvence" irelevantní - zobrazovací mechanismus je odlišný od toho, na kterém pracuje monitor.

Pokud tedy zjistíte, že rozlišení, které vidíte, je realizováno na frekvenci 60 Hz, a přitom máte nastavený správný modul pro grafickou kartu, zkuste změnit (roztáhnout) frekvenční rozsah monitoru. Monitor by si měl najít "tu svou". Je také vhodné experimentovat (ne vždy je to přínos) s parametrem DDCmode. Téměř každý monitor má předdefinované režimy. Je na vás, abyste ho donutili je použít. Některý to udělá automaticky, jinému je nezbytné vnutit přesné frekvenční rozmezí (metodou pokus-omyl) za pomoci DDCmode.

Příklad z praxe. Starší digitální monitor Fujitsu ErgoPro x152 z bazaru (tehdy cca 1500 Kč) reaguje na téměř jakýkoliv požadavek tím, že zvolí nejvyšší frekvenci, tj. od 75 do 85 Hz. Oproti tomu nový Hyundai ImageQuest QV790, údajně nejmenší 17" monitor na světě ;-), místo aby zvýšil frekvenci, zvýší rozlišení i za cenu vyloženě nízké frekvence 60Hz. Stále jsem místo požadovaných 1280*1024*16bit*85+ dostával 1600*1200*16bit*60-. Sladění karty a monitoru trvalo několik hodin.

Pojďme k modelines. O překlad se ani nesnažím, snad "definice režimu". Jedná se o řádek, ve kterém zadáme fyzické hodnoty pro nový režim. Počet režimů je u každého monitoru jinak omezený (i když by měly platit standardy) a záleží na monitoru, zda je schopen hodnoty použít. Existují tři způsoby jak řádek s Modeline získat.

  1. V souboru /var/log/XFree.0.log se zobrazují řádky Modeline, které jsou k dispozici, ale nebyly použity.
    (II) RADEON(0): Not using mode "1152x864" (width too large \\
       for virtual size)
    (II) RADEON(0): Not using default mode "1152x768" (width too \\
       large for virtual size)
    (--) RADEON(0): Virtual size is 1024x768 (pitch 1024)
    (**) RADEON(0): *Mode "1024x768": 94.5 MHz, 68.7 kHz, 85.0 Hz
    (II) RADEON(0): Modeline "1024x768"   94.50  1024 1072 1168 \\
       1376  768 769 772 808 +hsync +vsync
    (**) RADEON(0):  Default mode "832x624": 57.3 MHz, 49.7 kHz, \\
       74.6 Hz
    
    Stačí vyseknout požadovanou část a umístit ji do sekce Monitor v konfiguračním souboru.
  2. Online generátory. Ne vždy fungují na 100 %, ale obvykle dostačují. Např. XTiming, Colas XFree Modeline Generator nebo Modeline Tool.
  3. Ruční vytvoření za pomoci programu xvidtune nebo videogen. Vhodné pouze pro adrenalinové sportovce; já jsem si vždycky pomocí xvidtune spolehlivě přizabil systém.

Ukázka sekce Monitor.

Section "Monitor"
  Identifier "Monitor0"
  VendorName "Monitor Vendor"
  ModelName "Monitor Model"
  HorizSync 40-100
  VertRefresh 60-130
  Option "DDCmode" "off"
  Option "dpms" "off"
Modeline "1600x1200" 202.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
Modeline "1400x1050" 155.80 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync
Modeline "1280x1024" 157.50 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
Modeline "1280x1024" 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
Modeline "1152x864" 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
Modeline "1024x768" 94.50 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
Modeline "1280x960" 148.50 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
Modeline "1280x960" 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync
EndSection

Modes

Grafické režimy zde lze definovat i nezávisle na zobrazovacím zařízení. Nemám s tím zkušenosti.

Screen

Soubor může opět obsahovat více těchto sekcí. V každé z nich se spojuje zařízení grafické karty (sekce Device) se zobrazovacím zařízením (sekce Monitor), čímž vznikne obrazovka (screen). Každé originální spojení má své číslo. (V případě více karet je již uvedeno v sekci Device).

Section "Screen"
  Identifier "Screen0"
  Device "radeon0"
  Monitor "Monitor0"
  DefaultDepth 16
  Subsection "Display"
    Depth 16
    #Modes "1280x1024" "1152x864"
    Modes "1024x768"
  EndSubsection
EndSection

Každá sekce Screen musí obsahovat podsekci Display. V ní určujeme buď standardní, nebo dříve - pomocí Modeline - vytvořené režimy. Myslím, že ukázka říká vše a je dostatečně srozumitelná. Existuje také množství velmi specializovaných parametrů, které povolují, či zakazují, různá rozšíření X serveru. Nikdy jsem je nepotřeboval a ani neznám jejich účel.

DRI

Nastavení Direct Rendering Interface, což je rozhraní pro hry, není témeř žádné. Je vlastně pouze nutné stanovit práva pro zařízení tak, aby ho mohli využívat všichni uživatelé. Podmínkou je samozřejmě načtený odpovídající modul a podpora v jádře, ale to je jiná kapitola.

Section "DRI"
  Mode 0666
EndSection

Příště se zaměřím na konkrétní dotazy z diskuzí.

Seriál Na co se často ptáme (dílů: 11)

První díl: Na co se často ptáme 1: LILO, poslední díl: Na co se často ptáme: Balíčkovací systémy.
Předchozí díl: Na co se často ptáme 4: X Window System - I
Následující díl: Na co se často ptáme 4: X Window System - III

Související články

Na co se často ptáme 4: X Window System - I
Na co se často ptáme 4: X Window System - III
Seriál Na co se často ptáme
Multimediální a jinak vylepšené klávesnice
Vylepšete si KDE
Jak řešit problémy
Instalace TrueType fontů do Mozilly
KDE: tipy a triky

Odkazy a zdroje

XTiming
Colas XFree Modeline Generator
Modeline Tool

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.