naprej navzgor nazaj vsebina index
Naprej: 6. Vmreževanje Navzgor: Namestitev in začetek dela Nazaj: 4. Sistemsko upravljanje

Podrazdelki



5. X Window System

Okenski sistem X Window System je grafični uporabniški vmesnik (angl. graphical user interface, GUI) in je bil prvotno razvit na Massachusetts Institute of Technology (MIT). Komercialni proizvajalci so od takrat napravili X za industrijsko standardni GUI za platforme Unix. Zdi se, da vsaka delovna postaja Unix na svetu zdaj poganja neko obliko sistema X.

Prenos MIT X Window System različice 11, izdaje 6 (X11R6) za sisteme Unix s procesorji 80386, 80486 in Pentium, je razvila programerska skupina, ki jo je prvotno vodil David Wexelblat. Ta izdaja, znana kot XFree865.1, je prosto dostopna za sisteme System V/386, 386BSD in druge izvedbe Unixa za procesorje Intel x86, vključno z Linuxom. Ponuja vse binarne datoteke, podporne datoteke, knjižnice in orodja, potrebna za namestitev.

Nekatere odlike, ki jih ponuja ta izdaja, so:

Za uporabo okenskega sistema X vam svetujemo, da preberete knjigo The X Window System: A User's Guide (glejte dodatek A). Tukaj korak za korakom opisujemo namestitev XFree86 pod Linuxom. Še vedno morate zapolniti nekatere podrobnosti z branjem dokumentacije za XFree86, o kateri razpravljamo spodaj. Še en dober vir informacij je spis XFree86 HOWTO.


5.1 Strojne zahteve za sistem X Window


5.1.1 Grafična kartica

Dokumentacija za vašo grafično kartico bi morala določati nabor čipov. Če v trgovini iščete novo grafično kartico ali kupujete stroj, ki je opremljen z grafično kartico, prosite prodajalca, da vam pove natančnega izdelovalca, model in nabor čipov na grafični kartici. Prodajalec bo morda moral poklicati proizvajalčev oddelek za tehnično podporo. Mnogo prodajalcev računalniške strojne opreme zagotavlja, da je njihova grafična kartica ,,standardna kartica SVGA``, ki ,,bi morala delovati`` z vašim sistemov. Pojasnite, da vaše programje (omenite Linux in XFree86!) ne podpira vseh grafičnih čipov in morate zato poznati točne podatke.

Čipje grafične kartice lahko določite tudi tako, da poženete program SuperProbe, ki je vključen v distribucijo XFree86. To je opisano v nadaljevanju.

Grafične kartice, ki uporabljajo navedene nabore čipov, so uporabne na vseh tipih vodil, vključno z VLB, PCI in AGP. Vsi našteti nabori čipov so podprti v 256-barvnem načinu. Poleg tega nekatere kartice podpirajo barvne načine, kot je enobarvni (torej: le črna ali le bela pika na zaslonu), 15-bitni, 16-bitni, 24-bitni in 32-bitni način. Za barvne globine, večje od 256 barv (8 bitov), morate imeti nameščeno potrebno količino grafičnega pomnilnika (angl. video dynamic RAM, DRAM). Navadna nastavitev je 16 bitov na piko (65536 barv).

Monokromatski strežnik podpira tudi splošne kartice VGA, monokromatsko kartico Hercules, Hyundai HGC1280, Sigma LaserView in monokromatske kartice Apollo.

Zapiski ob izdaji trenutne različice XFree86 bi morali vsebovati popoln seznam podprtih naborov videočipov. Distribucija XFree86 ima datoteke README, specifične za nabore čipov, ki ponujajo podrobne informacije o stanju podpore za vsak posamezni nabor čipov.

Pereč problem, s katerim se soočajo razvijalci XFree86, je, da nekateri proizvajalci uporabljajo nestandardne mehanizme za določanje točkovnih frekvenc, potrebnih za nastavljanje kartice. Nekateri od teh proizvajalcev ne izdajo specifikacij, kako naj program uporablja kartico, ali zahtevajo od razvijalcev, da podpišejo pogodbo, s katero se obvezujejo, da ne bodo izdali danih specifikacij. To bi očitno preprečevalo prosto razširjanje programja XFree86, s čimer se razvijalska skupina XFree86 noče sprijazniti. Zato so bili dolgo problemi z Diamondovimi grafičnimi karticami, v izdaji XFree86 3.1 pa je Diamond začel sodelovati z razvijalsko skupino za XFree86 in izdal proste gonilnike za svoje kartice.

Priporočamo tudi uporabo pospeševalnih kartic, kot so npr. kartice z naborom čipov S3. Pregledati bi morali dokumentacijo za XFree86 in preveriti, da je podprta vaša izbrana kartica, preden napravite odločilni korak in kupite drago strojno opremo. Primerjalni testi grafičnih kartic pod XFree86 se rutinsko objavljajo v novičarskih skupinah Useneta comp.windows.x.i386unix in comp.os.linux.misc.

Pomembno je upoštevati, da je povprečna pospeševalna grafična kartica znatno hitrejša od standardne grafične kartice večine delovnih postaj. Sistem z Linuxom na 66-MHz procesorju 80486DX2 z 20 megabajti RAM-a, opremljen z grafično kartico za vodilo VESA Local Bus (VLB) in naborom čipov S3-864, ki ima 2 megabajta DRAM-a, opremljen s strežnikom XFree86 3.1, bo pri primerjalnih testih za X dosledno okrog 7-krat hitrejši od delovne postaje Sun Sparc IPX. Različica z XFree86 3.3 je še hitrejša. V splošnem vam bo dal sistem Linux z grafičnim pospeševalnikom SVGA veliko večje zmogljivosti kot komercialne delovne postaje Unix, ki navadno uporabljajo preproste slikovne izravnalnike (angl. frame buffers) za grafiko.

5.1.2 Pomnilnik, procesor in diskovni prostor

Priporočena sestava za XFree86 pod Linuxom je stroj s procesorjem 80486 ali hitrejšim, z vsaj 16 megabajti RAM-a. Več kot je nameščenega fizičnega RAM-a, manj mora sistem izmenjevati pomnilnik z diskom, ko zmanjka pomnilnika. Ker je zamenjevanje vrojeno počasno (diski so zelo počasni glede na pomnilnik), je potrebno imeti 16 megabajtov ali več RAM-a za udobno delo z XFree86. Sistem s 4 MB fizičnega RAM-a lahko teče 10- do 100-krat počasneje od sistema s 16 MB ali več pomnilnika.

Običajna namestitev XFree86 ,,iz škatle`` zahteva minimalno 60-80 megabajtov diskovnega prostora. To vključuje prostor za strežnik(e), pisave, knjižnice in standardne pripomočke. Če nameravate dodajati aplikacije, lahko verjetno udobno poganjate XFree86 v 200 MB diskovnega prostora.


5.2 Namestitev XFree86

Binarno distribucijo XFree86 za Linux najdete na vseh distribucijah Linuxa na CD-ROM-ih in tudi na številnih mestih za FTP. Na metalab.unc.edu jo najdete v imeniku /pub/X11/XFree86. V času nastanka te knjige je trenutna različica 3.3.1. Novejše različice redno izhajajo. Če ste dobili XFree86 kot del distribucije Linuxa, lahko ta razdelek preskočite.

V distribucijo XFree86-3.3.1 so vključene spodaj opisane datoteke. Potreben je eden od naslednjih strežnikov:

datoteka opis
X338514.tgz Strežnik za plošče z 8514.
X33AGX.tgz Strežnik za plošče z AGX.
X33I128.tgz Strežnik za plošče Imagine I128.
X33Ma64.tgz Strežnik za plošče z Mach64.
X33Ma32.tgz Strežnik za plošče z Mach32.
X33Ma8.tgz Strežnik za plošče z Mach8.
X33Mono.tgz Strežnik za monokromatske grafične načine.
X33P9K.tgz Strežnik za plošče z P9000.
X33S3.tgz Strežnik za plošče z S3.
X33S3V.tgz Strežnik za plošče z S3/Virge.
X33SVGA.tgz Strežnik za plošče z Super VGA.
X33VGA16.tgz Strežnik za plošče z VGA/EGA.
X33W32.tgz Strežnik za plošče z ET4000/W32.

Potrebne so tudi vse naslednje datoteke:

datoteka opis
preinst.sh Prednamestitveni skript.
postinst.sh Ponamestitveni skript.
X33bin.tgz Odjemniki, izvajalne knjižnice in datoteke privzetih nastavitev aplikacij.
X33doc.tgz Dokumentacija.
X33fnts.tgz Pisave 75dpi, misc in PEX.
X33lib.tgz Datoteke s podatki, potrebnimi pri izvajanju.
X33man.tgz Strani priročnika.
X33set.tgz Pripomoček XF86Setup.
X33VG16.tgz 16-barvni strežnik VGA (XF86Setup potrebuje ta strežnik)

Naslednje je potrebno za nove namestitve in izbirno za obstoječe namestitve:

datoteka opis
X33cfg.tgz primer nastavitvenih datotek za xinit, xdm.

¤ Ne nameščajte X33cfg.tgz preko obstoječe namestitve XFree86, ne da bi najprej naredili rezervne kopije nastavitvenih datotek. Odpakiranje X33cfg.tgz prepiše te in druge datoteke. Če že imate prilagojene nastavitvene datoteke, ni potrebe, da bi namestili ta paket.

¤ Rastrske pisave, distribuirane z izdajo 3.3.1, so zgoščene s programom gzip, ne s compress. Verjetno boste želeli odstraniti stare pisave, ko boste naredili njihove varnostne kopije. Strežniki X in strežniki pisav v prejšnjih izdajah ne morejo brati pisav, zgoščenih z gzip-om, zato shranite kopijo starih pisav, če želite uporabljati starejše strežnike.

Naslednje datoteke so izbirne:

Datoteka Opis
X33f100.tgz Pisave 100dpi.
X33fcyr.tgz Cirilične pisave.
X33fnon.tgz Druge pisave (kitajske, japonske, korejske, hebrejske).
X33fscl.tgz Raztegljive pisave (Speedo in Type1).
X33fsrv.tgz Strežnik za pisave in nastavitvene datoteke.
X33prog.tgz Datoteke z glavami za X, nastavitvene datoteke in prevajalne knjižnice.
X33nest.tgz Gnezdeni strežnik X.
X33vfb.tgz Strežnik X z navideznim slikovnim izravnalnikom (angl. virtual framebuffer).
X33prt.tgz Tiskalniški strežnik X.
X33ps.tgz Različica dokumentacije v Postscriptu.
X33html.tgz Različica dokumentacije v HTML.
X33jdoc.tgz Dokumentacija v japonščini (za različico 3.2).
X33jhtm.tgz Različica japonske dokumentacije v HTML (3.2).
X33lkit.tgz LinkKit za strežnik X.

Imenik za XFree86 bi moral vsebovati datoteke README in namestitvena sporočila za trenutno različico.

Najprej kot root ustvarite imenik /usr/X11R6, če še ne obstaja. Nato poženite prednamestitveni skript preinst.sh. Skript in vse arhivne datoteke za vaš sistem morate prepisati v imenik /var/tmp, preden poženete preinst.sh. Ko poženete prednamestitveni skript in odpakirate arhive, mora biti /usr/X11R6 vaš trenutni imenik.

# cd /usr/X11R6
# sh /var/tmp/preinst.sh

Potem bi morali odpakirati datoteke iz /var/tmp v /usr/X11R6 z ukazom, kot je:

# gzip -d < /var/tmp/X33prog.tgz | tar vxf -

¤ Te datoteke za tar so pakirane relativno na /usr/X11R6. Datoteke morate odpakirati tam. Na nekaterih distribucijah Linuxa je namesto tega starševski imenik /var/X11R6.

Ko ste odpakirali potrebne datoteke in vse izbirne datoteke, ki ste jih določili, poženite ponamestitveni skript postinst.sh.

# cd /usr/X11R6
# sh /var/tmp/postinst.sh

Zdaj povežite datoteko /usr/X11R6/bin/X na strežnik, ki podpira vašo grafično kartico. Če je to na primer barvna SVGA, mora biti /usr/X11R6/bin/X povezan na /usr/X11R6/bin/XF86_SVGA. Za uporabo monokromatskega strežnika namesto tega prevežite X na XF86_MONO z ukazom

# ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X
Enako velja tudi za druge strežnike.

Zagotoviti morate tudi, da je imenik /usr/X11R6/bin v vaši poti. To lahko storite z urejanjem sistemskih privzetih vrednosti v datoteki /etc/profile ali /etc/csh.login (odvisno od lupine, ki jo uporabljate vi ali drugi uporabniki sistema). Lahko pa preprosto dodate imenik v vašo osebno pot, tako da, odvisno od vaše ukazne lupine, spremenite /etc/.bashrc ali /etc/.cshrc.

Na koncu zagotovite, da izvajalni povezovalnik ld.so lahko najde /usr/X11R6/lib. Za to dodajte vrstico

/usr/X11R6/lib
v datoteko /etc/ld.so.conf in kot root poženite /sbin/ldconfig.

5.3 Preizkušanje strojne sestave

Če niste prepričani, kateri strežnik uporabiti, ali ne poznate nabora čipov vaše video kartice, uporabite program SuperProbe, ki ga najdete v /usr/X11R6/bin. Ta lahko poskusi ugotoviti nabor video čipov in druge informacije. Zapišite njegov izhod za poznejšo rabo.

SuperProbe poženite kot root z ukazom:

# SuperProbe

¤ SuperProbe sistematično preiskuje V/I vrata, ki bi jih lahko uporabljale grafične kartice, kar lahko zmede naprave, ki v resnici uporabljajo ta vrata. Da preprečite programu SuperProbe preverjanje teh naslovov, uporabite argument excl, ki mu sledi seznam naslovov, ki naj jih SuperProbe ne preiskuje. Na primer:

# SuperProbe -excl 0x200-0x230,0x240
Naslovi so podani kot šestnajstiške številke s predpono 0x.

Za prikaz seznama video naprav, ki jih SuperProbe pozna, uporabite ukaz

# SuperProbe -info

SuperProbe lahko izpiše veliko informacij, če dodate argument -verbose. Izhod lahko preusmerite v datoteko:

# SuperProbe -verbose >superprobe.out

¤ Poganjanje SuperProbe lahko povzroči, da se sistem obesi. Prepričajte se, da ne tečejo pomembne aplikacije, ali vsaj, da imate vse svoje podatke varno shranjene na disku, in zagotovite, da so vsi uporabniki odjavljeni. Tudi preobremenjen sistem (ki tiska v ozadju, na primer), lahko zmede izhod programa SuperProbe ali strežnik X, ko poskušata izmeriti frekvenčne specifikacije grafične kartice.

5.4 Samodejno generiranje datoteke XF86Config

Ročno pripravljanje datoteke XF86Config je naporno opravilo, čeprav ne nemogoče. Pomaga vam lahko več pripomočkov iz XFree86 različice 3.3.1. Eden izmed njih, program XF86Setup, lahko samodejno generira datoteko XF86Config v pravilni obliki. Poznati morate natančne specifikacije svoje video plošče in vertikalne ter horizontalne osvežitvene frekvence monitorja. Večino informacij lahko najdete v uporabniških priročnikih.

Odvisno od distribucije Linuxa je dostopnih tudi več drugih nastavitvenih programov. Najpogostejša sta Xconfigurator in xf86config. Slednji je starejša različica programa XF86Setup in je vključen v starejše izdaje XFree86. Če imate nameščena xf86config in XF86Setup, uporabite slednjega.


5.5 Nastavitev XFree86

V tem razdelku opisujemo, kako ustvariti in urediti datoteko XF86Config, ki nastavlja strežnik XFree86. V veliko primerih je najbolje začeti z nastavitvijo XFree86, ki uporablja nizko ločljivost, kot je 640×480, in jo podpirajo domala vse grafične kartice in monitorji. Ko enkrat XFree86 deluje na nizki, standardni ločljivosti, lahko spreminjate nastavitev in raziskujete zmogljivosti vaše video strojne opreme. To zagotavlja, da XFree86 deluje na vašem sistemu in da je njegova namestitev v bistvu pravilna, preden poskušate včasih zapletena opravila nastavitve XFree86 za visoko zmogljivostno uporabo.

Poleg informacij, naštetih tukaj, bi morali prebrati naslednje spise:

Glavna nastavitvena datoteka za XFree86 je /usr/X11R6/lib/X11/XF86Config. Ta datoteka vsebuje informacije o vaši miški, parametrih grafične kartice in tako naprej. Datoteka XF86Config.eg je priložena distribuciji XFree86 kot primer. Prepišite to datoteko v XF86Config in jo uredite kot začetno izhodišče.

Stran priročnika o XF86Config razlaga format datoteke XF86Config. Preberite stran priročnika, če tega še niste naredili.

Opisali bomo vzorčno datoteko XF86Config, razdelek za razdelkom. Ta datoteka morda ne bo videti popolnoma tako kot vzorčna datoteka, vključena v distribucijo XFree86, a njena struktura je enaka.

¤ Upoštevajte, da se lahko format datoteke XF86Config spreminja z vsako različico XFree86. Glejte sporočila ob izdaji vaše distribucije za popravke.

¤ Ne kopirajte tukaj navedene nastavitvene datoteke na vaš sistem in je ne poskušajte uporabljati. Nastavitvena datoteka, ki ne ustreza vaši strojni opremi, lahko poganja monitor na frekvenci, ki je zanj previsoka. Bilo je že veliko poročil o poškodbi monitorjev, posebej monitorjev s fiksnimi frekvencami, ki so jih povzročile nepravilno nastavljene datoteke XF86Config. Absolutno se prepričajte, da vaša datoteka XF86Config ustreza vaši strojni opremi, preden jo uporabite.

Vsak razdelek datoteke XF86Config obdaja par vrstic s skladnjo Section "ime-razdelka"...EndSection.

Prvi razdelek datoteke XF86Config je razdelek o datotekah, Files, ki je videti takole:

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
Vrstica RgbPath nastavi pot do podatkovne baze barv v formatu RGB za X11R6. Vsaka vrstica FontPath nastavlja pot do imenika, ki vsebuje pisave za X11. Teh dveh vrstic vam ne bi bilo treba spreminjati. Preprosto zagotovite, da vnos FontPath obstaja za vsako vrsto pisav, ki jo imate nameščeno; se pravi, za vsak podimenik v imeniku /usr/X11R6/lib/X11/fonts.

Naslednji razdelek je ServerFlags, ki določa več globalnih zastavic za strežnik. V splošnem je ta razdelek prazen.

Section "ServerFlags"
# Odkomentirajte to, če želite povzročiti izpis posmrtnih ostankov
# procesa takoj ob prejetju ustreznega signala. To lahko pusti
# konzolo v neuporabnem stanju, a ponuja boljše sledenje sklada
# v posmrtnem ostanku in vam pomaga pri razhroščevanju.
#    NoTrapSignals

# Odkomentirajte to, če želite onemogočiti ukinitev strežnika
# s kombinacijo <Ctrl><Alt><BS>:
#    DontZap
EndSection
V tem razdelku ServerFlags so vse vrstice zakomentirane.

Naslednji razdelek je razdelek o tipkovnici, Keyboard. Ta primer prikazuje osnovne nastavitve, ki bi morale delovati na večini sistemov. Datoteka XF86Config opisuje, kako spremeniti nastavitev.

Section "Keyboard"
    Protocol    "Standard"
    AutoRepeat  500 5
    ServerNumLock
EndSection

Sledi mu razdelek Pointer, ki določa parametre za miško ali drugo kazalno napravo:

Section "Pointer"

    Protocol    "MouseSystems"
    Device      "/dev/mouse"

# Vnosa Baudrate in SampleRate sta le za nekatere miške znamke
# Logitech.
#    BaudRate   9600
#    SampleRate	150

# Emulate3Buttons (emulacija treh gumbov) je izbira za miške znamke
# Microsoft, ki imajo samo dva gumba.
#    Emulate3Buttons

# ChordMiddle je izbira za nekatere miške Logitech s tremi gumbi.
#    ChordMiddle

EndSection
Trenutno sta edini izbiri, ki bi vas morali zanimati, Protocol in Device. Protocol določa komunikacijski protokol miške. XFree86 pod Linuxom prepoznava naslednje protokole za miške: Ime komunikacijskega protokola se ne ujema nujno z imenom proizvajalca miške. Protokol BusMouse naj bi se uporabljal za miško Logitech, priključeno na vodilo. Starejše miške Logitech uporabljajo protokol Logitech, novejše zaporedne miške Logitech pa protokol Microsoft ali Mouseman.

Device določa datoteko naprave, s katero se dostopa do miške. Na večini sistemov Linux je to /dev/mouse, ki je navadno povezava na ustrezna zaporedna vrata kot /dev/cua0 za zaporedne miške in ustrezno napravo miške na vodilu za miške na vodilu. V vsakem primeru se prepričajte, da ta datoteka naprave obstaja.

Naslednji razdelek je Monitor, ki določa karakteristike vašega monitorja. Kot pri drugih razdelkih v datoteki XF86Config, je tudi tu lahko več kot en razdelek Monitor. To je uporabno, če imate na sistem priključenih več monitorjev ali uporabljate isto datoteko XF86Config za različne strojne sestave.

Section "Monitor"

    Identifier  "CTX 5468 NI"

    # Te vrednosti so le za model CTX 5468NI! Ne poskušajte jih
    # uporabljati z vašim monitorjem (če nimate ravno tega modela).

    Bandwidth    60
    HorizSync    30-38,47-50
    VertRefresh  50-90

    # Načini: ime   točkovna frekvenca    horiz.         vert.

    ModeLine "640x480"  25       640 664 760 800      480 491 493 525
    ModeLine "800x600"  36       800 824 896 1024     600 601 603 625
    ModeLine "1024x768" 65       1024 1088 1200 1328  768 783 789 818

EndSection
Identifier je poljubno ime za vnos Monitor. To je lahko poljuben niz in se uporablja za poznejše sklicevanje na vnos Monitor v datoteki XF86Config.

HorizSync določa veljavne frekvence horizontalne sinhronizacije vašega monitorja v kHz. Pasovno-frekvenčni (angl. multisync) monitorji imajo lahko interval vrednosti ali nekaj z vejico ločenih intervalov. Monitorji s fiksnimi frekvencami potrebujejo seznam diskretnih vrednosti, na primer:

    HorizSync    31.5, 35.2, 37.9, 35.5, 48.95
Priročnik za monitor bi moral navajati te vrednosti v razdelku o tehničnih specifikacijah. Če jih ne, vprašajte proizvajalca ali dobavitelja, od katerega ste dobili svoj monitor.

VertRefresh določa veljavne frekvence vertikalnega osveževanja v Hz (ali frekvence vertikalne sinhronizacije) za vaš monitor. Kot HorizSync, je tudi to lahko seznam diskretnih vrednosti. Priročnik za vaš monitor bi jih moral navajati.

HorizSync in VertRefresh se uporabljata le za dodatno preverjanje, da so ločljivosti vašega monitorja v pravilnem območju. To zmanjšuje možnost, da bi svoj monitor poškodovali z vsiljevanjem frekvence, za katero ni bil načrtovan.

Ukaz ModeLine se uporablja za določitev načinov ločljivosti za vaš monitor. Oblika je

ModeLine ime frekvenca horiz-vrednosti vert-vrednosti
Tukaj je ime poljuben niz, ki ga boste uporabljali za sklicevanje na način ločljivosti pozneje v datoteki, frekvenca je točkovna frekvenca (angl. dot clock), povezana z načinom ločljivosti. Ta vrednost je določena v MHz. Je hitrost, s katero mora grafična kartica pri dani ločljivosti pošiljati pike na monitor. Vrednosti horiz-vrednosti in vert-vrednosti so dvakrat po štiri števila, ki določajo, kdaj naj elektronski top monitorja izstreli snop ter kdaj naj se vklopita horizontalni in vertikalni sinhronizacijski pulz.

Datoteka VideoModes.doc, vključena v distribucijo XFree86, podrobno opisuje, kako ugotoviti vrednosti ModeLine za vsak način ločljivosti, ki ga podpira vaš monitor. Vrednost frekvenca mora ustrezati eni ali več točkovnim frekvencam (angl. dot clock values), ki jih podpira vaša grafična kartica. Pozneje boste v datoteki XF86Config določili te frekvence.

Dve datoteki, modeDB.txt in Monitors, lahko vsebujeta informacije o vrednosti ModeLine za vaš monitor. Nahajata se v /usr/X11R6/lib/X11/doc.

Začnite z vrednostmi ModeLine za standardne frekvence monitorjev VESA, saj jih podpira večina monitorjev. ModeDB.txt vključuje frekvence za standardne ločljivosti VESA. Na primer, ta vnos

# 640x480@60Hz, neprepleteni način
# horizontalna sinhronizacija = 31,5 kHz
# Časi: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# ime       frekvenca  horizontalni časa     vertikalni čas     zastavice
 "640x480"     25.175  640  664  760  800    480  491  493  525
določa standardne frekvence VESA za grafični način 640×480. Ima točkovno frekvenco 25,175, ki jo mora podpirati vaša grafična kartica. To je opisano spodaj. Za vključitev te postavke v datoteko XF86Config uporabite vrstico
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Argument ime v vrstici ModeLine ("640x480") je poljuben niz. Grafični načini se po dogovoru poimenujejo po ločljivostih, vendar je ime lahko teoretično katerakoli opisna oznaka.

Za vsako vrstico ModeLine strežnik preverja določitve načina in zagotavlja, da spadajo v obseg vrednosti, določenih za vrednosti Bandwidth, HorizSync in VertRefresh. Če ne, se strežnik pritoži, ko poskušate pognati X. Ena stvar je že ta, da točkovna frekvenca (angl. dot clock), ki jo uporablja ta grafični način, ne sme biti višja od vrednosti, ki se uporabljajo za pasovno širino Bandwidth. Vendar pa je v veliko primerih še vedno varno uporabljati način, ki ima rahlo višjo pasovno širino (angl. bandwidth) od tiste, ki jo podpira vaš monitor.

Če standardne frekvence osveževanja po standardu VESA ne delujejo (to boste vedeli šele potem, ko jih boste poskušali uporabljati), poglejte v datoteki modeDB.txt in Monitors, ki vključujeta posebne vrednosti grafičnih načinov za veliko tipov monitorjev. Iz teh vrednosti lahko ustvarite tudi vnose ModeLine. Prepričajte se, da boste uporabljali le vrednosti za vaš določeni monitor. Veliko 14 in 15-palčnih monitorjev ne podpira načinov višjih ločljivosti in pogosto ločljivost 1024×768 le pri nizkih točkovnih frekvencah. Če v teh datotekah ne morete najti načina visoke ločljivosti za vaš monitor, potem jih vaš monitor verjetno ne podpira.

Če ste popolnoma izgubljeni in ne morete najti vrednosti ModeLine za vaš monitor, sledite navodilom v datoteki VideoModes.doc, ki je vključena v distribucijo XFree86, in generirajte vrednosti iz specifikacij v priročniku za vaš monitor. Vsekakor se bodo vaše izkušnje razlikovale, ko boste poskušali na roko generirati vrednosti za ModeLine. A to je dobro ogledno mesto, če ne morete najti vrednosti, ki jih potrebujete. VideoModes.doc tudi opisuje obliko ukaza ModeLine in druge značilnosti strežnika XFree86 v krvave podrobnosti.

Končno, če dobite vrednosti ModeLine, ki so skoraj, a ne popolnoma, pravilne, boste morda sposobni malce spremeniti vrednosti in dobiti zaželeni rezultat. Na primer, če je slika na zaslonu XFree86 rahlo premaknjena ali se zdi, da se slika ,,vrti``, sledite navodilom v datoteki VideoModes.doc in popravite vrednosti. Prepričajte se, da boste preverili krmilnike na samem monitorju. V veliko primerih morate spremeniti horizontalno ali vertikalno velikost zaslona, ko se XFree86 požene, da osredinite sliko in jo spravite na pravo velikost.

¤ Ne uporabljajte frekvenc osveževanja monitorja ali vrednosti ModeLine za monitorje, različne od vašega modela. Če skušate poganjati monitor na frekvenci, za katero ni bil zasnovan, ga lahko poškodujete ali celo uničite.

Naslednji razdelek datoteke XF86Config je razdelek, imenovan Device (naprava), ki določa parametre vaše video kartice. Tukaj je primer.

Section "Device" 
      Identifier "#9 GXE 64"

      # Še nič; te vrednosti bomo izpolnili pozneje.

EndSection

Ta razdelek definira lastnosti določene video kartice. Polje Identifier je poljuben opisni niz. Ta niz boste pozneje uporabili za sklicevanje na kartico.

Sprva vam v razdelek Device ni treba vključiti ničesar, razen polja Identifier. Pozneje bomo uporabili sam strežnik X za preizkus lastnosti video kartice in jih bomo nato vnesli v razdelek Device. Strežnik XFree86 je zmožen zaznavati nabore video čipov, RAMDAC in količine video RAM-a na plošči. To je opisano v razdelku 5.6.

Preden naredimo to, pa moramo končati s pisanjem datoteke XF86Config. Naslednji razdelek je Screen, ki določa kombinacijo monitorja/grafične kartice za uporabo z določenim strežnikom.

 Section "Screen"
     Driver     "Accel"
     Device     "#9 GXE 64"
     Monitor    "CTX 5468 NI"
     Subsection "Display"
         Depth      16
         Modes      "1024x768" "800x600" "640x480"
         ViewPort   0 0
         Virtual    1024 768
     EndSubsection
 EndSection

Vrstica Driver določa strežnik X, ki ga boste uporabljali. Veljavne vrednosti za Driver (gonilnik) so:

Prepričajte se, da je /usr/X11R6/bin/X simbolna povezava na ta strežnik.

Vrstica Device določa identifikatorja (Identifier) razdelka naprave (Device), ki ustreza grafični kartici za uporabo s tem strežnikom. Zgoraj smo ustvarili razdelek Device z vrstico

Identifier "#9 GXE 64"
Torej, tukaj uporabljamo "#9 GXE 64" v vrstici Device.

Podobno, vrstica Monitor določa ime razdelka Monitor, ki naj se uporablja s tem strežnikom. Tukaj je "CTX 5468 NI" identifikator (Identifier), ki smo ga uporabili v zgoraj opisanem razdelku Monitor.

Podrazdelek o zaslonu, Subsection "Display", definira različne lastnosti strežnika XFree86 glede na vašo kombinacijo monitorja/video kartice. Datoteka XF86Config podrobno opisuje vse izbire. Večina jih ni nujno potrebnih za usposobitev sistema.

Izbire, ki jih morate poznati, so:

Obstaja še veliko drugih izbir za ta razdelek; glejte stran priročnika o XF86Config za popoln opis. V praksi te izbire niso nujno potrebne za začetno usposobitev delovanja XFree86.


5.6 Izpolnjevanje informacij o grafični kartici

Vaša datoteka XF86Config je zdaj, z izjemo popolnih informacij o grafični kartici, pripravljena. Za merjenje le-teh bomo uporabili strežnik X in jih dodali v XF86Config.

Namesto da bi merili te informacije v strežniku X, so v datotekah modeDB.txt, AccelCards in Devices navedene vrednosti za veliko kartic, ki jih lahko uporabite v datoteki XF86Config. Vse te datoteke se najdejo v /usr/X11R6/lib/X11/doc. Dodatno, obstajajo različne datoteke README za določene nabore čipov. Te datoteke bi morali pregledati za informacije o vaši grafični kartici in jih uporabiti (vrednosti o frekvencah (angl. clock values), tipu nabora čipov (angl. chip set type) in drugih izbirah) v datoteki XF86Config. Če kakšna informacija manjka, jo lahko poskušate izmeriti.

V večini teh primerov demonstriramo nastavitev grafične kartice #9 GXE 64, ki uporablja nabor čipov S3 in torej strežnik XF86_S3. Najprej ugotovite nabor grafičnih čipov na kartici. Poženite SuperProbe (najdete ga v /usr/X11R6/bin) in program vam bo povedal te podatke, a morate poznati ime nabora čipov, kot je znano strežniku X.

Zato poženite ukaz

# X -showconfig
To izpiše imena naborov čipov, znanih strežniku X. (Navaja jih tudi stran priročnika za vsak strežnik X.) Na primer, pri pospeševalnem strežniku XF86_S3 bi dobili:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux 
Configured drivers:
  S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
      mmio_928, s3_generic

Veljavni imeni naborov čipov za ta strežnik sta mmio_928 in s3_generic. Stran priročnika za XF86_S3 opisuje tadva nabora čipov in grafične kartice, ki ju uporabljajo. V primeru grafične kartice #9 GXE 64 je ustrezni nabor mmio_928.

Če ne veste, kateri nabor čipov se uporablja, ga lahko strežnik X zazna namesto vas. Za to poženite ukaz

# X -probeonly > /tmp/x.out 2>&1
če uporabljate bash za svojo ukazno lupino. Če uporabljate csh, poskusite:
# X -probeonly &> /tmp/x.out

Ta ukaz bi morali pognati, ko sistem ni obremenjen; se pravi, ko se na vašem sistemu ne dogaja nobena druga aktivnost. Ta ukaz tudi poskuša prepoznati točkovne frekvence vaše grafične kartice (angl. video card dot clocks), kot vidite spodaj, in obremenitev sistema lahko pokvari izračun.

Izhod zgornjega ukaza, v datoteki /tmp/x.out, bi moral vsebovati vrstice kot:

XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
      mmio_928, s3_generic
Več vrstic je pobrisanih ...
(--) S3: card type: 386/486 localbus
(--) S3: chipset:   864 rev. 0
(--) S3: chipset driver: mmio_928 
Tukaj vidimo, da sta dva veljavna nabora čipov za ta strežnik (v tem primeru, XF86_S3) mmio_928 in s3_generic. Strežnik je poskušal zaznati in našel grafično kartico z naborom čipov mmio_928.

V razdelku Device datoteke XF86Config dodajte vrstico Chipset, ki ima ime nabora čipov, kot je določeno zgoraj. Na primer

Section "Device"
        # Tukaj smo že imeli identifikator ...
        Identifier "#9 GXE 64"  
        # Dodajte tole vrstico:
        Chipset "mmio_928"
EndSection
Zdaj moramo ugotoviti gonilne točkovne frekvence (angl. driving clock frequencies), ki jih uporablja grafična kartica. Gonilna točkovna frekvenca ali točkovna frekvenca (angl. dot clock) je preprosto hitrost, s katero lahko grafična kartica pošilja pike na monitor. Kot je opisano zgoraj, vsaki ločljivosti monitorja ustreza pridružena točkovna frekvenca. Ugotoviti moramo, katere točkovne frekvence so dostopne na grafični kartici.

Najprej bi morali pogledati v zgoraj omenjeno dokumentacijo in pogledati, če so tam navedene frekvence kartice. Točkovne frekvence so navadno seznam 8 ali 16 vrednosti, od katerih so vse v MHz. Na primer, ko iščemo v datoteki modeDB.txt, vidimo vnos za grafično kartico Cardinal ET4000, ki je videti takole:

# čip   RAM   navidezno  točkovne frekvence      privzeti način  zastavice
ET4000  1024  1024 768   25 28 38 36 40 45 32 0  "1024x768"
Točkovne frekvence (angl. dot clocks) za to kartico so 25, 28, 38, 36, 40, 45, 32 in 0 MHz.

V razdelku Devices datoteke XF86Config dodajte vrstico Clocks, ki vsebuje seznam točkovnih frekvenc za vašo kartico. Na primer, za zgornje frekvence dodajte vrstico

      Clocks 25 28 38 36 40 45 32 0
v razdelek Devices te datoteke, po vrstici Chipset.

¤ Vrstni red točkovnih frekvenc je pomemben! Ne preurejajte seznama in ne odstranjujte podvojenih vrednosti.

Če ne morete najti frekvenc vaše kartice, jih lahko strežnik X poskuša samodejno zaznati. Uporabite X -probeonly, kot je opisano zgoraj. Izhod bi moral vsebovati vrstice, ki so videti kot tale:

(--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00
Potem dodamo vrstico Clocks, ki vsebuje vse te vrednosti, kot so bile izpisane. V datoteki XF86Config lahko uporabite tudi več kot eno vrstico Clocks, če vse vrednosti (včasih se izpiše več kot 8 točkovnih frekvenc) ne gredo v eno vrstico. Spet se prepričajte, da boste obdržali enak vrstni red frekvenc, kot se izpiše.

¤ Pred uporabo X -probeonly se prepričajte, da v razdelku Devices ni vrstice Clocks (ali da je zakomentirana). Če obstaja vrstica Clocks, strežnik ne bo preizkušal različnih frekvenc - uporabil bo vrednosti, podane v XF86Config.

Nekatere video plošče uporabljajo programabilne oscilatorske čipe (angl. programmable clock chips). Glejte stran priročnika za vaš strežnik X ali datoteko README, ki opisuje vašo grafično kartico. Čip v bistvu dovoljuje strežniku X, da pove kartici, katere točkovne frekvence naj uporablja. Za grafične kartice, ki imajo oscilatorske čipe, morda ne boste našli seznama točkovnih frekvenc kartice v nobeni od zgornjih datotek. Ali pa bo seznam frekvenc, ki se izpišejo ob uporabi X -probeonly vseboval le eno ali dve diskretni frekvenčni vrednosti, ostale bodo dvojniki ali ničle. Ali pa strežnik X lahko javi izrecno opozorilo, da ima grafična kartica programabilni oscilatorski čip, kot:

(-) SVGA: cldg5434: Specifying a Clocks line makes no sense for this driver
Ta primer je vzet iz strežnika XF86_SVGA, ki poganja kartico Cirrus Logic PCI.

Za kartice, ki uporabljajo programabilne oscilatorske čipe, uporabite vrstico ClockChip namesto vrstice Clocks v datoteki XF86Config. ClockChip je ime oscilatorskega čipa, kot ga uporablja grafična kartica; opisani so v priročniku za posamezni tip strežnika X. Na primer, v datoteki README.S3 vidimo, da precej grafični kartic S3-864 uporablja oscilatorski čip ,,ICD2061A``, in bi morali uporabiti vrstico

ClockChip "icd2061a"
namesto vrstice Clocks v datoteki XF86Config. Kot pri Clocks gre tudi ta vrstica v razdelek Devices, takoj po polju Chipset.

Podobno nekatere grafične kartice zahtevajo, da določite tip čipov RAMDAC v datoteki XF86Config. To se naredi z vrstico Ramdac. Stran priročnika o XF86_Accel opisuje to izbiro. Pogosto bo strežnik X pravilno zaznal tip RAMDAC.

Nekateri tipi grafični kartic zahtevajo, da določite več izbir v razdelku Devices datoteke XF86Config. Te izbire so opisane v strani priročnika za vaš strežnik kot tudi v različnih datotekah, kot sta README.cirrus in README.S3. Te izbire so omogočene z uporabo vrstice Option. Na primer, kartica #9 GXE 64 zahteva dve izbiri:

Option "number_nine"
Option "dac_8_bit"
Strežnik X lahko deluje tudi brez vrstic Option, vendar so te potrebne za izkoriščenje največje zmogljivosti kartice. Obstaja preveč izbir, da bi jih tukaj vse našteli. Različne so za vsako kartico. Če morate uporabiti eno od njih, vam bodo strani priročnika o strežniku X in različne datoteke v imeniku /usr/X11R6/lib/X11/doc povedale, katere so te izbire.

Ko končate, bi se vaš razdelek Devices moral glasiti nekako takole:

Section "Device"
# Razdelek ,Device` je le za #9 GXE 64
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option "number_nine"
Option "dac_8_bit"
EndSection
Obstajajo tudi druge izbire, ki bi jih morali vključiti v polje Devices. Stran priročnika o strežniku X priskrbi podrobnosti za pogumne.

5.7 Poganjanje XFree86

Z vašo nastavljeno datoteko XF86Config, lahko zaženete strežnik X in ga preizkusite. Spet se prepričajte, da je imenik /usr/X11R6/bin na vaši poti.

Ukaz za zagon strežnika XFree86 je

$ startx
To je vmesnik do programa xinit. Zažene strežnik X in izvede ukaze v datoteki .xinitrc v vašem domačem imeniku. Datoteka .xinitrc je lupinski skript, ki vsebuje ukazne vrstice odjemnikov X, ki naj jih požene ob zagonu strežnika X. Če ta datoteka ne obstaja, se uporablja privzeti sistemski skript /usr/X11R6/lib/X11/xinit/xinitrc.

Preprosta datoteka .xinitrc je videti takole:

#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec twm
Ta skript zažene dva odjemnika, xterm in oclock, in postavi barvo korenskega okna (ozadja) na barvo midnightblue (polnočno modro). Zažene okenski upravljalnik twm. Upravljalnik twm se izvede z lupinskim stavkom exec. To povzroči, da se proces xinit nadomesti s twm. Ko se proces twm konča, se strežnik X ustavi. Izhod iz twm lahko dosežete z uporabo korenskega menuja. Pritisnite in spustite prvi gumb miške na ozadju namizja. To prikaže dvižni menu, ki vam dovoljuje izbiro Exit Twm, izhod iz twm.

Prepričajte se, da se zadnji ukaz v .xinitrc začne z exec in da proces ni postavljen v ozadje (ni znaka ,,in``, ,,&``, na koncu vrstice). Sicer se bo strežnik X ustavil takoj, ko bo zagnal odjemnike v datoteki .xinitrc.

Alternativno lahko zapustite X s pritiskom kombinacije Ctrl-Alt-Backspace. To neposredno pobije strežnik X in zapusti okenski sistem.

Zgornji primer je le preprosta nastavitev namizja. Spet priporočamo, da preberete knjigo, kot je The X Window System: A User's Guide (glejte dodatek A). Možnih variacij uporabe in nastavitve X je preveč, da bi jih tukaj opisovali. Strani priročnika o ukazih xterm, oclock in twm vam bodo priskrbele namige, kako začeti.

5.8 Ko zaidete v težave

Pogosto kaj ne bo povsem prav, ko boste prvič zagnali strežnik X. Vzrok je skoraj vedno v vaši datoteki XF86Config. Navadno so napačno nastavljene osvežitvene frekvence monitorja (angl. monitor timing values) ali točkovne frekvence grafične kartice (angl. video card dot clocks). Če je videti, da se zaslon vrti ali so robovi nejasni, to kaže, da gre za napačne frekvenčne vrednosti monitorja ali kartice. Prepričajte se tudi, da ste pravilno določili nabor čipov grafične kartice (angl. video card chip set) in izbire v razdelku Device datoteke XF86Config. Absolutno zagotovite, da uporabljate pravi strežnik X in da je /usr/X11R6/bin/X simbolna povezava nanj.

Če vse drugo odpove, poskusite pognati X ,,gole``; se pravi, z ukazom kot:

# X > /tmp/x.out 2>&1
Potem lahko pobijete strežnik X (z uporabo Ctrl-Alt-Backspace) in pregledate vsebino /tmp/x.out. Strežnik X poroča o vsakršnih opozorilih in napakah - na primer, če vaša grafična kartica nima točkovne frekvence, ki bi ustrezala načinu, ki ga podpira vaš monitor.

Datoteka VideoModes.doc, ki je vključena v distribucijo XFree86, vsebuje mnogo namigov za uravnavanje vrednosti v vaši datoteki XF86Config.

Spomnite se, da lahko uporabljate Ctrl-Alt-+ in Ctrl-Alt-- za preklop med grafičnimi načini, navedenimi v vrstici Modes razdelka Screen datoteke XF86Config. Če način najvišje ločljivosti ni videti v redu, poskusite preklopiti na nižjo ločljivost. To vam pove vsaj to, da tisti deli vaše nastavitve X delujejo pravilno.

Naravnajte vertikalno in horizontalno velikost ter osredinjenje z gumbi na vašem monitorju. V veliko primerih je potrebno nastaviti te gumbe, ko zaganjate X. Na primer, če se vam zdi, da je zaslon rahlo premaknjen na eno stran, lahko navadno to popravite z uporabo krmilnih gumbov ali drsnikov na monitorju.

Novičarska skupina Useneta comp.windows.x.i386unix je posvečena razpravam o XFree86. Morda bo koristno branje novičarskih skupin za sporočila, povezana z video nastavitvami. Lahko naletite na koga z enako težavo.

Obstajajo tudi vzorčne datoteke XF86Config, ki so jih prispevali uporabniki. Nekatere od teh so dostopne v arhivu metalab.unc.edu v imeniku /pub/Linux/X11 in tudi drugje. Za vašo strojno opremo morda lahko najdete že napisano nastavitveno datoteko.


naprej navzgor nazaj vsebina index
Naprej: 6. Vmreževanje Navzgor: Namestitev in začetek dela Nazaj: 4. Sistemsko upravljanje
Roman Maurer
1999-03-22