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.
Č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.
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.
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/XEnako 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/libv datoteko /etc/ld.so.conf in kot root poženite /sbin/ldconfig.
Č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,0x240Naslovi 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.
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.
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:
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.Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection
Naslednji razdelek je ServerFlags, ki določa več globalnih zastavic za strežnik. V splošnem je ta razdelek prazen.
V tem razdelku ServerFlags so vse vrstice zakomentirane.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
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:
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: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
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.
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.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
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:
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.HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
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-vrednostiTukaj 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
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# 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
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525Argument 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:
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
Torej, tukaj uporabljamoIdentifier "#9 GXE 64"
"#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:
"1024x768"
, "800x600"
in "640x480"
. Torej uporabljamo takšno vrstico Modes:
Prvi način, naveden v tej vrstici, je privzeti način, ko se XFree86 zažene. Ko XFree86 teče, lahko preklapljate med načini, naštetimi tukaj, z uporabo tipk Ctrl-Alt-+ in Ctrl-Alt--, kjer sta + in - tipki na numeričnem delu tipkovnice.Modes "1024x768" "800x600" "640x480"
Ko na začetku nastavite XFree86, je morda najbolje, da jih nastavite tako, da uporabite grafične načine nižjih ločljivosti, denimo 640×480, ki radi delujejo z večino sistemov. Ko imate enkrat delujočo osnovno sestavo, lahko spremenite XF86Config za podporo višjim ločljivostim.
Lastnost Virtual je precej omejena. Če želite uporabljati pravo navidezno namizje, vam fvwm in podobni okenski upravljalniki dovoljujejo, da imate velika navidezna namizja s skrivanjem oken in uporabo drugih tehnik namesto s shranjevanjem celotnega namizja v grafični pomnilnik. Glejte strani priročnika za fvwm za več podrobnosti o tem. Mnogi sistemi Linux uporabljajo fvwm kot privzeti okenski upravljalnik.
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.
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 -showconfigTo 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:
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.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_genericVeč vrstic je pobrisanih ...(--) S3: card type: 386/486 localbus (--) S3: chipset: 864 rev. 0 (--) S3: chipset driver: mmio_928
V razdelku Device datoteke XF86Config dodajte vrstico Chipset, ki ima ime nabora čipov, kot je določeno zgoraj. Na primer
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.Section "Device" # Tukaj smo že imeli identifikator ... Identifier "#9 GXE 64" # Dodajte tole vrstico: Chipset "mmio_928" EndSection
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:
Točkovne frekvence (angl. dot clocks) za to kartico so 25, 28, 38, 36, 40, 45, 32 in 0 MHz.# čip RAM navidezno točkovne frekvence privzeti način zastavice ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
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
v razdelek Devices te datoteke, po vrstici Chipset.Clocks 25 28 38 36 40 45 32 0
¤ 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:
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.(--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
¤ 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 driverTa 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"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.
Option "dac_8_bit"
Ko končate, bi se vaš razdelek Devices moral glasiti nekako takole:
Obstajajo tudi druge izbire, ki bi jih morali vključiti v polje Devices. Stran priročnika o strežniku X priskrbi podrobnosti za pogumne.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
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
$ startxTo 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:
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.#!/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
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.
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>&1Potem 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.