5.4. Az X11 beállítása

Írta: Christopher Shunway.

5.4.1. Mielőtt nekilátnánk

Az X11 beállítása előtt a célrendszer következő adataira lesz szükségünk:

Az X11 a monitor jellemzőiből állapítja meg, hogy milyen felbontásban és frissítési frekvenciával működtesse azt. Ezek általában a monitorhoz tartozó dokumentációból vagy a gyártó honlapjáról deríthetőek ki. Igazából két értékre van szükségünk: a függőleges és a vízszintes frissítési frekvenciára.

A videokártya chipkészlete határozza meg, hogy az X11 melyik meghajtóján keresztül kommunikál a grafikus hardverrel. Ez a legtöbb chipkészlet esetén magától megállapítható, de ennek ellenére mégis jó tisztában lenni ezzel arra az esetre, ha az automatikus felismerés mégsem működne.

A grafikus kártya memóriájának mérete határozza meg a rendszer által kihasználható felbontást és színmélységet. Ezt fontos tudunk ahhoz, hogy ismerjük a rendszerünk korlátait.

5.4.2. Az X11 beállítása

Az Xorg 7.3-as változatában gyakran mindenféle konfigurációs állomány használata nélkül egyszerűen csak adjuk ki a következő parancsot:

% startx

A Xorg 7.4 verziójától kezdődően a számítógépünkhöz csatlakoztatott egerek és billentyűzetek HAL segítségével automatikusan felismerhetőek. Ennek megfelelően a x11/xorg port függőségeként telepítődni fognak a sysutils/hal és devel/dbus portok, viszont az /etc/rc.conf állományban a következő sorok hozzáadásával külön engedélyeznünk kell még ezeket:

hald_enable="YES"
dbus_enable="YES"

Ezeket a szolgáltatásokat még az Xorg beállítása előtt el kell indítanunk (a parancssorból manuálisan vagy a rendszer újraindításával).

Bizonyos hardvereszközök esetén az automatikus felismerés még nem működik megbízhatóan vagy nem jól állítja be az értékeket. Ilyen esetekben kézzel kell megadnunk a szükséges beállításokat.

Megjegyzés: A különböző munkakörnyezetek, mint például a GNOME, a KDE vagy éppen az Xfce általában tartalmaznak olyan segédprogramokat, amelyekkel a felhasználó könnyedén be tudja állítani a megjelenítés paramétereit, többek közt a képernyő felbontását. Tehát ha az alapértelmezések nem megfelelőek, viszont használni akarunk majd valamilyen munkakörnyezetet is, akkor egyszerűen csak telepítsük az adott környezetet és a hozzá tartozó eszközön keresztül állítsuk be a megjelenítést.

Az X11 beállítása egy többlépcsős folyamat. Első lépésünk egy alap konfigurációs állomány összeállítása lesz. Rendszeradminisztrátorként adjuk ki az alábbi parancsot:

# Xorg -configure

Ennek segítségével az X11 xorg.conf.new néven létrehozza a konfigurációs állomány vázát a /root könyvtárban (akár a su(1) parancsot használjuk, akár közvetlenül így jelentkezünk be, az így örökölt rendszeradminisztrátori szerepkör maga után vonja a $HOME könyvtár átállítását is). Az X11 megpróbálja megkeresni a célrendszerben elérhető grafikus eszközöket, és létrehozni egy olyan konfigurációs állományt, amely az észlelt eszközökhöz tartozó meghajtókat tölti be.

A következő lépésünk legyen az imént létrehozott beállítás kipróbálása, amin keresztül ellenőrizhetjük, hogy az Xorg tényleg képes működni a célrendszer grafikus eszközén. Az Xorg 7.3 és azt megelőző változataiban ezt így tehetjük meg:

# Xorg -config xorg.conf.new

A Xorg 7.4 és későbbi változataiban a próba eredménye egy fekete képernyő lesz, amely meglehetősen megnehezítheti az X11 helyes működésének megállapítását. A -retro kapcsoló használatával azonban továbbra is elérhetjük a korábbi verziókban megszokott viselkedési módot:

# Xorg -config xorg.conf.new -retro

Ha ezután a képernyőn egy fekete-fehér rácsot látunk egy X alakú egérmutatóval a közepén, akkor jó a beállítás. A próbát úgy szakíthatjuk meg, ha először a Ctrl+Alt+Fn billentyűk együttes lenyomásával átváltunk valamelyik virtuális konzolra (például az F1 esetén az elsőre), majd megnyomjuk a Ctrl+C gombokat.

Megjegyzés: Az Xorg korábbi változataiban a 7.3 verzióig bezárólag a Ctrl+Alt+Backspace billentyűkombinációval tudjuk leállítani a működését. Amennyiben erre továbbra is szükségünk lenne, a 7.4 és későbbi változatokban ezt úgy tudjuk engedélyezni, ha a begépeljük a következő parancsot egy X terminálablakban:

% setxkbmap -option terminate:ctrl_alt_bksp

Egy másik lehetséges megoldás, ha a billenytűzet beállításához létrehozunk a /usr/local/etc/hal/fdi/policy könyvtárban egy konfigurációs állományt x11-input.fdi néven a hald számára. Ebben az állományban a következőknek kell szerepelnie:

<?xml version="1.0" encoding="iso-8859-2"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	<merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
    </match>
</deviceinfo>

A hald a számítógép újraindításával fogja majd beolvasni ezt az állományt.

Ilyenkor az xorg.conf.new állomány ServerLayout vagy ServerFlags szekciójához vegyük még hozzá az alábbi sort:

Option  "DontZap"      "off"

Ha az egér még nem működne, mindenképpen be kell állítanunk a továbblépés előtt. Ezzel kapcsolatban a FreeBSD telepítéséről szóló fejezetben levő 2.10.10 Szakaszt ajánljuk elolvasásra. Fontos megemlíteni, hogy az Xorg 7.4 változatától kezdődően az xorg.conf InputDevice szekcióit az eszközök automatikusan észlelt beállításai felülbírálják. A régebbi változatok viselkedését úgy tudjuk visszanyerni, ha a ServerLayout és ServerFlags szekciók valamelyikéhez hozzáadjuk az alábbi sort:

Option "AutoAddDevices" "false"

Ezt követően a beviteli eszközök a lehetséges beállítási opciók (például a billentyűzet-kiosztás váltása) mentén a korábbiakban megszokott módon konfigurálhatóak.

Megjegyzés: Ahogy arról korábban szó esett, a 7.4 verziótól kezdődően a hald magától érzékelni fogja a számítógépre csatlakoztatott billentyűzetet. Előfordulhat, hogy a billentyűzet típusa vagy éppen kiosztása nem lesz megfelelő. Ennek beállítására többnyire a népszerűbb munkakörnyezetek, mint például a GNOME, KDE vagy Xfce tartalmaznak külön segédprogramot. A setxkbmap(1) vagy a hald konfigurációs szabályával azonban akár közvetlenül is meg tudjuk változtatni a billentyűzethez társított tulajdonságokat.

Például ha egy 102 gombos billentyűzetet szeretnénk használni francia kiosztással, akkor ehhez a /usr/local/etc/hal/fdi/policy könyvtárban kell létrehoznunk egy x11-input.fdi nevű állományt a hald részére. Ebben az állományban szerepeljenek az alábbi sorok:

<?xml version="1.0" encoding="iso-8859-2"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
	<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
    </match>
  </device>
</deviceinfo>

Ha létezik már ilyen állományunk, akkor a billentyűzet megfelelő beállításához egyszerűen csak másoljuk ki a fenti sorokat és adjuk hozzá.

Indítsuk újra a számítógépet, hogy a hald beolvassa az állományt.

Ugyanezt egy X terminálból is kényelmesen el tudjuk végezni:

% setxkbmap -model pc102 -layout fr

A paraméterként megadható billentyűzettípusokat és -kiosztásokat a /usr/local/share/X11/xkb/rules/base.lst állományban találhatjuk meg.

Ezután az ízlésünknek megfelelően hangoljuk be az xorg.conf.new állományt, nyissuk meg egy szövegszerkesztőben, például az emacs(1)-ben vagy az ee(1)-ben. Elsőként adjuk meg a célrendszerhez csatlakoztatott monitor frekvenciájára vonatkozó adatokat. Ezek általában a függőleges és a vízszintes frissítés értékei, melyeket az xorg.conf.new állomány "Monitor" szakaszában (Section) kell feltüntetni:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "A monitor gyártója"
        ModelName    "A monitor típusa"
        HorizSync    30-107
        VertRefresh  48-120
EndSection

A konfigurációs állományból valószínűleg csak a HorizSync és VertRefresh kulcsszavak fognak hiányozni. Amennyiben ez tényleg így lenne, a megfelelő vízszintes frissítés értékét a HorizSync kulcsszó után, a hozzá tartozó függőleges frissítés értékét pedig a VertRefresh kulcsszó után kell hozzátennünk a szakaszhoz. Az iménti példában már megadtuk a célrendszer monitorának frissítési értékeit.

Az X megengedi, hogy DPMS (Energy Star) energiagazdálkodási szabványt ismerő monitorok lehetőséget is kihasználjuk. A xset(1) program vezérli a monitorok ki- és bekapcsolását, és segítségével készenléti vagy energiatakarékos üzemmódba tudjuk helyezni azokat. Ha engedélyezni kívánjuk a monitorunk DPMS lehetőségeit, egyszerűen csak tegyük hozzá az alábbi sort a monitorunkat leíró szakaszhoz:


        Option       "DPMS"

Ha már a xorg.conf.new konfigurációs állomány szerkesztésével vagyunk elfoglalva, válasszuk ki számunkra kedvező alapértelmezett felbontást és színmélységet is. Ezt a "Screen" (Képernyő) nevű szakaszban tehetjük meg:

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

A DefaultDepth kulcsszó után adjuk meg a rendszer alapértelmezett színmélységét. Ezt később az Xorg(1) -depth paraméterével bírálhatjuk felül a parancssorból. A Modes kulcsszó után jelennek meg azok a felbontások, amelyekben az adott színmélység elérhető. Itt csak olyan VESA szabványú módok jelenhetnek meg, amelyet a célrendszer grafikus eszköze is támogat. A fenti példában az alapértelmezett színmélység képpontonként huszonnégy bit, és ebben a színmélységben az elfogadott felbontás 1024-szer 768 pixel.

Végezetül mentsük el a szerkesztett konfigurációs állományt és próbáljuk ki a korábban leírt módszer szerint.

Megjegyzés: A hibakeresés során maguk az X11 naplóállományai is hasznos eszköznek bizonyulhatnak, mivel ezek minden olyan eszközről tartalmaznak információt, amelyekhez az X11 szervernek sikerült csatlakoznia. Az Xorg naplóit a /var/log/Xorg.0.log elnevezést követő állományokban találjuk meg. A konkrét naplók nevei Xorg.0.log-tól Xorg.8.log-ig és így tovább terjedhetnek.

Ha minden a legnagyobb rendben haladt eddig, a konfigurációs állományt el kell tennünk egy olyan központi helyre, ahol az Xorg(1) képes lesz majd megtalálni. Ez a hely általában az /etc/X11/xorg.conf vagy a /usr/local/etc/X11/xorg.conf.

# cp xorg.conf.new /etc/X11/xorg.conf

Az X11 beállítását ezzel befejeztük. Az Xorg innentől elindítható a startx(1) segédprogram vagy az xdm(1) használatával.

5.4.3. Témák idősebbeknek és haladóknak

5.4.3.1. Az i810 grafikus chipkészlet beállítása

Az Intel® i810 integrált chipkészletének meghajtásához szükségünk lesz az agpart nevű AGP programozási felületre az X11-ben. Erről az agp(4) meghajtó man oldalán olvashatuk többet.

Ennek segítségével ezt a hardvert is a többi grafikus kártyához hasonlóan állíthatjuk be. Vegyük figyelembe azonban, hogy az agp(4) meghajtót beépítve nem tartalmazó rendszermaggal futó rendszerekben a kldload(8) paranccsal utólag már nem tudjuk betölteni! Ezt a meghajtót már a rendszerindítás során be kell tudnunk tölteni: vagy a rendszermagba fordítjuk, vagy pedig a /boot/loader.conf állományban hivatkozunk rá.

5.4.3.2. Widescreen Flat Panel monitorok használata

Ebben a részben feltételezünk némi tapasztalatot a beállítások terén. Amennyiben a szabványos konfigurációs eszközök csődöt mondtak a beállítás során, magukból a naplóállományokból is kinyerhetünk elegendő információt ahhoz, hogy működésre bírjuk rendszerünket. Ehhez mindenképpen legyen kéznél egy szövegszerkesztő!

A jelenlegi szélesvásznú (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ és társai) formátumok a 16:10-es és 10:9-es képarányokat ismerik, amik néha gondot okozhatnak. Például a 16:10-es képarány felbontásai:

  • 2560x1600

  • 1920x1200

  • 1680x1050

  • 1440x900

  • 1280x800

Bizonyos szempontból egyszerűen csak a fenti felbontások valamelyikét kell felvenni a "Screen" szakasz Mode sorába, valahogy így:

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
	Viewport  0 0
	Depth     24
	Modes     "1680x1050"
EndSubSection
EndSection

Az Xorg elég intelligens ahhoz, hogy a szélesvásznú megjelenítéssel kapcsolatos információkat lekérje a monitor I2C/DDC adatai közül, ezért meg tudja állapítani, hogy az eszköz milyen frissítési frekvenciákat és felbontásokat bír el.

Ha az alábbi ModeLine értékek nem szerepelnének a meghajtókban, akkor velük kapcsolatban egy kicsit súgnunk kell az Xorg-nak. A /var/log/Xorg.0.log átrágásával elegendő információt tudunk gyűjteni ahhoz, hogy manuálisan vegyünk fel használható ModeLine értékeket. Nem kell mást tennünk, mint ehhez hasonló sorokat keresnünk:

(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

Ezeket nevezik EDID-adatoknak (Extended display identification data, vagyis “bővített megjelenítési azonosító adatoknak”). Belőlük a megfelelő ModeLine sor létrehozása csupán annyiból áll, hogy a számértékeket a megfelelő sorrendbe tesszük:

ModeLine <name> <clock> <4 horiz. timings> <4 vert.  timings>

Ezáltal a példában látott "Monitor" szakasz ModeLine sora így fog kinézni:

Section "Monitor"
Identifier      "Monitor1"
VendorName      "Bigname"
ModelName       "BestModel"
ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option          "DPMS"
EndSection

Miután végrehajtottuk ezeket az egyszerű beállítási lépéseket, az X most már valószínűleg el fog indulni az új szélesvásznú monitorunkon.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.