% Linux Installation and Getting Started    -*- TeX -*-
% xwindows.tex
% Copyright (c) 1992, 1993 by Matt Welsh <mdw@metalab.unc.edu>
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by the 
% copyright for the entire document, in the file "copyright.tex".
%
% Copyright (c) 1998 by Specialized Systems Consultants Inc. 
% <ligs@ssc.com>

\section{Strojne zahteve za sistem X Window}
\label{sec-xwindows-reqs}
\subsection{Grafična kartica}
\index{XFree86!strojne zahteve za}
\index{XFree86!nabori video čipov, podprti v}
\index{strojna podpora!video kartica}
%% As of XFree86 version 3.3, released in June, 1997, the following video
%% chip sets are supported. 
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.
     
%% The following video-card chip-set are supported:
%% 
%% \begin{itemize}
%% \item Ark Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT
%% \item Alliance AP6422, AT24
%% \item ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3,
%%             68800-6, 68800AX, 68800LX, 88800GX-C, 88800GX-D, 88800GX-E,
%%             88800GX-F, 88800CX, 264CT, 264ET, 264VT, 264VT2, 264GT (this list
%%             includes the Mach8, Mach32, Mach64, 3D Rage and 3D Rage II)
%% \item Avance Logic ALG2101, ALG2228, ALG2301, ALG2302, ALG2308, ALG2401
%% \item Chips \& Technologies
%%             65520, 65530, 65540, 65545, 65520, 65530, 65540, 65545, 65546,
%%             65548, 65550, 65554
%% \item Cirrus Logic
%%             CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429,
%%             CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446, CLGD5462,
%%             CLGD5464, CLGD5465, CLGD5480, CLGD6205, CLGD6215, CLGD6225,
%%             CLGD6235, CLGD6410, CLGD6412, CLGD6420, CLGD6440, CLGD7541,
%%             CLGD7543, CLGD7548, CLGD7555
%% \item Digital Equipment Corporation TGA
%% \item Compaq AVGA
%% \item Genoa GVGA
%% \item IBM 8514/A (and true clones), XGA-2
%% \item IIT AGX-014, AGX-015, AGX-016
%% \item Matrox MGA2064W (Millennium), MGA1064SG (Mystique)
%% \item MX MX68000, MX680010
%% \item NCR 77C22, 77C22E, 77C22E+
%% \item Number Nine I128 (series I and II)
%% \item NVidia/SGS Thomson NV1, STG2000
%% \item OAK OTI067, OTI077, OTI087
%% \item RealTek RTG3106
%% \item S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964,
%%             86C732, 86C764, 86C765, 86C775, 86C868, 86C968, 86C325, 86C375,
%%             86C385, 86C988, 86CM65
%% \item SiS 86C201, 86C202, 86C205
%% \item Tseng ET3000, ET4000AX, ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000
%% \item Trident
%%             TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i,
%%             TVGA9100B, TVGA9200CXR, TVGA9320, TVGA9400CXi, TVGA9420,
%%             TGUI9420DGi, TGUI9430DGi, TGUI9440AGi, TGUI9660XGi, TGUI9680, 
%%             ProVidia 9682, ProVidia 9685, ProVidia 9692, Cyber 9382, Cyber 9385
%% \item Video 7/Headland Technologies HT216-32
%% \item Weitek P9000
%% \item Western Digital/Paradise PVGA1
%% \item Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C24A, WD90C30, 
%%              WD90C31, WD90C33
%% \end{itemize}

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 \texttt{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.

%% Note however, that the Diamond SpeedStar 24 and possibly some SpeedStar+ board
%% are NOT supported, even though they use the ET4000 chipset. Also, there are
%% many of the newer chipsets are not supported yet due to lack of documentation
%% from the manufacturer and/or lack of programmer resources to dedicate to the
%% coding.

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 \texttt{comp.windows.x.i386unix} in
\texttt{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.

\subsection{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.

\section{Namestitev XFree86}
\index{XFree86!namestitev}

Binarno distribucijo XFree86 za Linux najdete na vseh distribucijah
Linuxa na CD-ROM-ih in tudi na številnih mestih za FTP.  Na
\texttt{metalab.unc.edu} jo najdete v imeniku
\texttt{/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.

% When you download XFree86 directly, be sure that you have the correct
% version. Recent releases of many of Linux distributions use the GNU
% version of the C libraries. There are now two versions of the XFree86
% distribution: one linked against the GNU C libraries and another
% version linked against the older, non-GNU version. There is no
% signficant difference functionally between the two versions.

V distribucijo XFree86-3.3.1 so vključene spodaj opisane datoteke.
Potreben je eden od naslednjih strežnikov:
\begin{center}
\small\begin{tabular}{lll} 
\hline
datoteka               & opis\\
\hline
\texttt{X338514.tgz}   & Strežnik za plošče z 8514.\\
\texttt{X33AGX.tgz}    & Strežnik za plošče z AGX.\\
\texttt{X33I128.tgz}   & Strežnik za plošče Imagine I128.\\
\texttt{X33Ma64.tgz}   & Strežnik za plošče z Mach64.\\
\texttt{X33Ma32.tgz}   & Strežnik za plošče z Mach32.\\
\texttt{X33Ma8.tgz}    & Strežnik za plošče z Mach8.\\
\texttt{X33Mono.tgz}   & Strežnik za monokromatske grafične načine.\\
\texttt{X33P9K.tgz}    & Strežnik za plošče z P9000.\\
\texttt{X33S3.tgz}     & Strežnik za plošče z S3.\\
\texttt{X33S3V.tgz}    & Strežnik za plošče z S3/Virge.\\
\texttt{X33SVGA.tgz}   & Strežnik za plošče z Super VGA.\\
\texttt{X33VGA16.tgz}  & Strežnik za plošče z VGA/EGA.\\
\texttt{X33W32.tgz}    & Strežnik za plošče z ET4000/W32.\\
\hline
\end{tabular}\normalsize\rm
\end{center}

Potrebne so tudi vse naslednje datoteke:
\begin{center}
\small\begin{tabular}{lll} 
\hline
datoteka               & opis\\
\hline
\texttt{preinst.sh}    & Prednamestitveni skript.\\
\texttt{postinst.sh}   & Ponamestitveni skript.\\
\texttt{X33bin.tgz}    & Odjemniki, izvajalne knjižnice in datoteke
  privzetih nastavitev aplikacij.\\
\texttt{X33doc.tgz}    & Dokumentacija.\\
\texttt{X33fnts.tgz}   & Pisave 75dpi, misc in PEX.\\
\texttt{X33lib.tgz}    & Datoteke s podatki, potrebnimi pri izvajanju.\\
\texttt{X33man.tgz}    & Strani priročnika.\\
\texttt{X33set.tgz}    & Pripomoček \texttt{XF86Setup}.\\
\texttt{X33VG16.tgz}   & 16-barvni strežnik VGA (\texttt{XF86Setup}
  potrebuje ta strežnik) \\
\hline
\end{tabular}\normalsize\rm
\end{center}

Naslednje je potrebno za nove namestitve in izbirno za obstoječe
namestitve:
\begin{center}
\small\begin{tabular}{lll} 
\hline
datoteka                & opis\\
\hline
\texttt{X33cfg.tgz}     & primer nastavitvenih datotek za
   \texttt{xinit}, \texttt{xdm}.\\
\hline
\end{tabular}\normalsize\rm
\end{center}

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

\blackdiamond
Rastrske pisave, distribuirane z izdajo 3.3.1, so zgoščene s programom
\texttt{gzip}, ne s \texttt{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 \texttt{gzip}-om, zato shranite kopijo starih
pisav, če želite uporabljati starejše strežnike.

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

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

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

Potem bi morali odpakirati datoteke iz \texttt{/var/tmp} v
\texttt{/usr/X11R6} z ukazom, kot je:
\begin{tscreen}
\# \emph{gzip -d $<$ /var/tmp/X33prog.tgz  $\mid$ tar vxf -}
\end{tscreen}

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

Ko ste odpakirali potrebne datoteke in vse izbirne datoteke, ki ste
jih določili, poženite ponamestitveni skript \texttt{postinst.sh}.
\begin{tscreen}
\# \emph{cd /usr/X11R6}\\
\# \emph{sh /var/tmp/postinst.sh}
\end{tscreen}

Zdaj povežite datoteko \texttt{/usr/X11R6/bin/X} na strežnik, ki
podpira vašo grafično kartico.  Če je to na primer barvna SVGA, mora
biti \texttt{/usr/X11R6/bin/X} povezan na
\texttt{/usr/X11R6/bin/XF86\_SVGA}.  Za uporabo monokromatskega
strežnika namesto tega prevežite \texttt{X} na \texttt{XF86\_MONO} z
ukazom
\begin{tscreen}
\# \emph{ln -sf /usr/X11R6/bin/XF86\_MONO\ \ /usr/X11R6/bin/X}
\end{tscreen}
Enako velja tudi za druge strežnike.

Zagotoviti morate tudi, da je imenik \texttt{/usr/X11R6/bin} v vaši
poti.  To lahko storite z urejanjem sistemskih privzetih vrednosti v
datoteki \texttt{/etc/profile} ali \texttt{/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 \texttt{/etc/.bashrc} ali
\texttt{/etc/.cshrc}.

Na koncu zagotovite, da izvajalni povezovalnik \texttt{ld.so} lahko
najde \texttt{/usr/X11R6/lib}.  Za to dodajte vrstico
\begin{tscreen}
/usr/X11R6/lib
\end{tscreen}
v datoteko \texttt{/etc/ld.so.conf} in kot \texttt{root}
poženite \texttt{/sbin/ldconfig}.

\section{Preizkušanje strojne sestave}

Če niste prepričani, kateri strežnik uporabiti, ali ne poznate nabora
čipov vaše video kartice, uporabite program \texttt{SuperProbe}, ki ga
najdete v \texttt{/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 \texttt{root} z ukazom:
\begin{tscreen}
\# \emph{SuperProbe}
\end{tscreen}

\blackdiamond
\texttt{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 \texttt{excl}, ki mu sledi seznam
naslovov, ki naj jih \texttt{SuperProbe} ne preiskuje.  Na primer:
\begin{tscreen}
\# \emph{SuperProbe -excl 0x200-0x230,0x240}
\end{tscreen}
Naslovi so podani kot šestnajstiške številke s predpono \texttt{0x}.

Za prikaz seznama video naprav, ki jih SuperProbe pozna, uporabite
ukaz
\begin{tscreen}
\# \emph{SuperProbe -info}
\end{tscreen}

\texttt{SuperProbe} lahko izpiše veliko informacij, če dodate
argument \texttt{-verbose}.  Izhod lahko preusmerite v datoteko:
\begin{tscreen}
\# \emph{SuperProbe -verbose $>$superprobe.out} 
\end{tscreen}

\blackdiamond
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.

\section{Samodejno generiranje datoteke \texttt{XF86Config}}

Ročno pripravljanje datoteke \texttt{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 \texttt{XF86Setup}, lahko
samodejno generira datoteko \texttt{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 \texttt{Xconfigurator} in
\texttt{xf86config}.  Slednji je starejša različica programa
\texttt{XF86Setup} in je vključen v starejše izdaje XFree86.
Če imate nameščena \texttt{xf86config} in \texttt{XF86Setup},
uporabite slednjega.

\section{Nastavitev XFree86}
\index{XFree86!nastavitev}
% Setting up XFree86 is not difficult. However, if you happen to be
% using hardware for which drivers are under development, or wish to
% obtain the best performance or resolution from an accelerated graphics
% card, configuring XFree86 can be somewhat time-consuming.

V tem razdelku opisujemo, kako ustvariti in urediti datoteko
\texttt{XF86Config}, ki nastavlja strežnik XFree86.  V veliko primerih
je najbolje začeti z nastavitvijo XFree86, ki uporablja nizko
ločljivost, kot je 640$\times$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:
\begin{itemize}
\item Dokumentacijo za XFree86 v \texttt{/usr/X11R6/lib/X11/doc} (iz
paketa \texttt{XFree86-3.1-doc}).  Posebej morate pogledati datoteko
\texttt{README.Config}, ki je učbenik za nastavljanje XFree86.
\item Mnogi nabori video čipov imajo posebne datoteke \texttt{README}
v zgornjem imeniku (kot \texttt{README.Cirrus} in \texttt{README.S3}).
Preberite datoteko, ki se nanaša na vašo grafično kartico.
\item Stran priročnika o \texttt{XFree86}.
\item Stran priročnika o \texttt{XF86Config}.
\item Stran priročnika o strežniku, ki ga uporabljate, kot
\texttt{XF86\_SVGA} ali \texttt{XF86\_S3}.
\end{itemize}

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

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

Opisali bomo vzorčno datoteko \texttt{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.

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

\blackdiamond
\textbf{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 \texttt{XF86Config}.
\textbf{Absolutno se prepričajte, da vaša datoteka \texttt{XF86Config}
ustreza vaši strojni opremi, preden jo uporabite.}

Vsak razdelek datoteke \texttt{XF86Config} obdaja par vrstic s skladnjo
\texttt{Section "\cparam{ime-razdelka}"}\ldots\texttt{EndSection}. 

Prvi razdelek datoteke \texttt{XF86Config} je razdelek o datotekah,
\texttt{Files}, ki je videti takole:
\begin{tscreen}
\begin{verbatim}
Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
\end{verbatim}
\end{tscreen}
Vrstica \texttt{RgbPath} nastavi pot do podatkovne baze barv v formatu
RGB za X11R6.  Vsaka vrstica \texttt{FontPath} nastavlja pot do
imenika, ki vsebuje pisave za X11.  Teh dveh vrstic vam ne bi bilo
treba spreminjati.  Preprosto zagotovite, da vnos \texttt{FontPath}
obstaja za vsako vrsto pisav, ki jo imate nameščeno; se pravi, za vsak
podimenik v imeniku \texttt{/usr/X11R6/lib/X11/fonts}.

Naslednji razdelek je \texttt{ServerFlags}, ki določa več globalnih
zastavic za strežnik.  V splošnem je ta razdelek prazen.
\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}
V tem razdelku \texttt{ServerFlags} so vse vrstice zakomentirane.

Naslednji razdelek je razdelek o tipkovnici, \texttt{Keyboard}.  Ta
primer prikazuje osnovne nastavitve, ki bi morale delovati na večini
sistemov.  Datoteka \texttt{XF86Config} opisuje, kako spremeniti
nastavitev.
\begin{tscreen}
\begin{verbatim}
Section "Keyboard"
    Protocol    "Standard"
    AutoRepeat  500 5
    ServerNumLock
EndSection
\end{verbatim}
\end{tscreen}

Sledi mu razdelek \texttt{Pointer}, ki določa parametre za miško ali
drugo kazalno napravo:
\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}
Trenutno sta edini izbiri, ki bi vas morali zanimati,
\texttt{Protocol} in \texttt{Device}.  \texttt{Protocol} določa
\emph{komunikacijski protokol} miške.  XFree86 pod Linuxom prepoznava
naslednje protokole za miške:
\begin{multicols}{2}
\begin{itemize}
\item \texttt{BusMouse} 
\item \texttt{Logitech}
\item \texttt{Microsoft}
\item \texttt{MMSeries}
\item \texttt{Mouseman}
\item \texttt{MouseSystems}
\item \texttt{PS/2}
\item \texttt{MMHitTab}
\end{itemize}
\end{multicols}
Ime komunikacijskega protokola se ne ujema nujno z imenom proizvajalca
miške.  Protokol \texttt{BusMouse} naj bi se uporabljal za miško Logitech,
priključeno na vodilo.  Starejše miške Logitech uporabljajo protokol
\texttt{Logitech}, novejše zaporedne miške Logitech pa protokol
\texttt{Microsoft} ali \texttt{Mouseman}.

\texttt{Device} določa datoteko naprave, s katero se dostopa
do miške.  Na večini sistemov Linux je to \texttt{/dev/mouse}, ki je
navadno povezava na ustrezna zaporedna vrata kot \texttt{/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 \texttt{Monitor}, ki določa karakteristike
vašega monitorja.  Kot pri drugih razdelkih v datoteki
\texttt{XF86Config}, je tudi tu lahko več kot en razdelek \texttt{Monitor}.
To je uporabno, če imate na sistem priključenih več monitorjev ali
uporabljate isto datoteko \texttt{XF86Config} za različne strojne
sestave.

\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}
\texttt{Identifier} je poljubno ime za vnos \texttt{Monitor}.
To je lahko poljuben niz in se uporablja za poznejše sklicevanje na
vnos \texttt{Monitor} v datoteki \texttt{XF86Config}.

\texttt{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:
\begin{tscreen}
\begin{verbatim}
    HorizSync    31.5, 35.2, 37.9, 35.5, 48.95
\end{verbatim}
\end{tscreen}
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.

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

\texttt{HorizSync} in \texttt{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 \texttt{ModeLine} se uporablja za določitev načinov ločljivosti
za vaš monitor.  Oblika je
\begin{tscreen}
ModeLine \cparam{ime} \cparam{frekvenca} \cparam{horiz-vrednosti} \cparam{vert-vrednosti}
\end{tscreen}
Tukaj je \textsl{ime} poljuben niz, ki ga boste uporabljali za
sklicevanje na način ločljivosti pozneje v datoteki,
\textsl{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 \textsl{horiz-vrednosti} in
\textsl{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. % VELIK VPRAŠAJ: (?)
% ... % (?)
%horiz-values and vert-values are four numbers each
%that specify when the electron gun of the monitor should fire, and
%when the horizontal and vertical sync pulses fire during a sweep.

Datoteka \texttt{VideoModes.doc}, vključena v distribucijo XFree86,
podrobno opisuje, kako ugotoviti vrednosti \texttt{ModeLine} za vsak
način ločljivosti, ki ga podpira vaš monitor.  Vrednost
\textsl{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 \texttt{XF86Config} določili te frekvence.

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

Začnite z vrednostmi \texttt{ModeLine} za standardne frekvence
monitorjev VESA, saj jih podpira večina monitorjev.
\texttt{ModeDB.txt} vključuje frekvence za standardne ločljivosti
VESA.  Na primer, ta vnos
\begin{tscreen}
\begin{verbatim}
# 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
\end{verbatim}
\end{tscreen}
določa standardne frekvence VESA za grafični način 640$\times$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
\texttt{XF86Config} uporabite vrstico
\begin{tscreen}
ModeLine "640x480" 25.175\ \ 640 664 760 800\ \ 480 491 493 525
\end{tscreen}
Argument \textsl{ime} v vrstici \texttt{ModeLine} (\verb+"640x480"+)
je poljuben niz.  Grafični načini se po dogovoru poimenujejo po
ločljivostih, vendar je \textsl{ime} lahko teoretično katerakoli
opisna oznaka.

Za vsako vrstico \texttt{ModeLine} strežnik preverja določitve načina
in zagotavlja, da spadajo v obseg vrednosti, določenih za vrednosti
\texttt{Bandwidth}, \texttt{HorizSync} in \texttt{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 \texttt{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 \texttt{modeDB.txt} in \texttt{Monitors}, ki vključujeta
posebne vrednosti grafičnih načinov za veliko tipov monitorjev.  Iz
teh vrednosti lahko ustvarite tudi vnose \texttt{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$\times$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
\texttt{ModeLine} za vaš monitor, sledite navodilom v datoteki
\texttt{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 \texttt{ModeLine}.  A to je dobro ogledno
mesto, če ne morete najti vrednosti, ki jih potrebujete.
\texttt{VideoModes.doc} tudi opisuje obliko ukaza \texttt{ModeLine} in
druge značilnosti strežnika XFree86 v krvave podrobnosti.

Končno, če dobite vrednosti \texttt{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 \texttt{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.

\blackdiamond
Ne uporabljajte frekvenc osveževanja monitorja ali vrednosti
\texttt{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 \texttt{XF86Config} je razdelek, imenovan
\texttt{Device} (naprava), ki določa parametre vaše video kartice.
Tukaj je primer.
\begin{tscreen}
\begin{verbatim}
Section "Device" 
      Identifier "#9 GXE 64"

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

EndSection
\end{verbatim}
\end{tscreen}

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

Sprva vam v razdelek \texttt{Device} ni treba vključiti ničesar, razen
polja \texttt{Identifier}.  Pozneje bomo uporabili sam strežnik X za
preizkus lastnosti video kartice in jih bomo nato vnesli v razdelek
\texttt{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~\ref{sec-video-card-info}.

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

\begin{tscreen}
\begin{verbatim}
 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
\end{verbatim}
\end{tscreen}

Vrstica \texttt{Driver} določa strežnik X, ki ga boste uporabljali.
Veljavne vrednosti za \texttt{Driver} (gonilnik) so:
\begin{itemize}
\item \texttt{Accel}: Za strežnike \texttt{XF86\_S3},
 \texttt{XF86\_Mach32}, \texttt{XF86\_Mach8},
 \texttt{XF86\_8514}, \texttt{XF86\_P9000}, \texttt{XF86\_AGX},
 in \texttt{XF86\_W32};
\item \texttt{SVGA}: Za strežnik \texttt{XF86\_SVGA};
\item \texttt{VGA16}: Za strežnik \texttt{XF86\_VGA16};
\item \texttt{VGA2}: Za strežnik \texttt{XF86\_Mono};
\item \texttt{Mono}: Za ne-VGA monokromatske gonilnike v strežnikih
 \texttt{XF86\_Mono} in \texttt{XF86\_VGA16}.
\end{itemize}
Prepričajte se, da je \texttt{/usr/X11R6/bin/X} simbolna povezava
na ta strežnik.

Vrstica \texttt{Device} določa identifikatorja (\texttt{Identifier})
razdelka naprave (\texttt{Device}), ki ustreza grafični kartici za
uporabo s tem strežnikom.  Zgoraj smo ustvarili razdelek
\texttt{Device} z vrstico
\begin{tscreen}
\begin{verbatim}
Identifier "#9 GXE 64"
\end{verbatim}
\end{tscreen}
Torej, tukaj uporabljamo \verb+"#9 GXE 64"+ v vrstici \texttt{Device}.

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

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

Izbire, ki jih morate poznati, so:
\begin{itemize}
\item \texttt{Depth} (globina).  Določa število barvnih ravnin;
se pravi število bitov na piko.  Navadno se vrednost \texttt{Depth}
nastavi na 16.  Za strežnik \texttt{VGA16} boste uporabili globino 4
in za monokromatski strežnik globino 1.  Če uporabljate pospešeno
grafično kartico z dovolj pomnilnika za podporo več bitom na piko,
lahko nastavite vrednost \texttt{Depth} na 24 ali 32.  Če imate težave
z globinami, večjimi od 16, nastavite nazaj na 16 in poskušajte
razhroščiti težavo pozneje.

\item \texttt{Modes} (načini).  To je seznam imen načinov, ki so
bili definirani z uporabo navodil \texttt{ModeLine} v razdelku
\texttt{Monitor}.  V zgornjem razdelku smo uporabili vrednosti
\texttt{ModeLine}, imenovane \verb+"1024x768"+, \verb+"800x600"+
in \verb+"640x480"+.  Torej uporabljamo takšno vrstico \texttt{Modes}:
\begin{tscreen}
\begin{verbatim}
       Modes    "1024x768" "800x600" "640x480"
\end{verbatim}
\end{tscreen}
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 \key{Ctrl}-\key{Alt}-\key{$+$} in
\key{Ctrl}-\key{Alt}-\key{$-$}, kjer sta \key{$+$} in \key{$-$} tipki na
numeričnem delu tipkovnice. 

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$\times$480, ki radi delujejo z večino sistemov.  Ko imate enkrat
delujočo osnovno sestavo, lahko spremenite \texttt{XF86Config} za
podporo višjim ločljivostim.

\item \texttt{Virtual} (navidezno).  Določi velikost navideznega
namizja (angl.\ virtual desktop size).  XFree86 lahko uporablja
dodaten pomnilnik na vaši grafični kartici za razširitev velikosti
namizja.  Ko premikate kazalec miške na rob zaslona, se namizje
premakne in prinese v pogled dodaten prostor.  Tudi če poganjate
strežnik z nižjimi ločljivosti, denimo 800$\times$600, lahko nastavite
\texttt{Virtual} na skupno ločljivost, ki jo lahko podpira vaša grafična
kartica.  Enomegabajtna grafična kartica lahko podpira 1024$\times$768
z barvno globino 8~bitov na piko; dvomegabajtna kartica
1280$\times$1024 z globino 8 ali 1024$\times$768 z globino 16.  Seveda
vse področje ne bo vidno hkrati, a se lahko še vedno uporablja.

Lastnost \texttt{Virtual} je precej omejena.  Če želite uporabljati
pravo navidezno namizje, vam \texttt{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
\texttt{fvwm} za več podrobnosti o tem.  Mnogi sistemi Linux
uporabljajo \texttt{fvwm} kot privzeti okenski upravljalnik.

\item \texttt{ViewPort} (ogledno okno).
Če uporabljate izbiro \texttt{Virtual}, ki je opisana zgoraj,
\texttt{ViewPort} določa koordinate zgornjega levega roba navideznega
namizja, ko se XFree86 zažene.  Pogosto se uporablja \texttt{ViewPort
0 0}.  Če to ni določeno, se namizje osredini na navideznem prikazu
namizja, kar vam morda ne bo po volji.

\end{itemize}

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

\section{Izpolnjevanje informacij o grafični kartici}
\label{sec-video-card-info}

Vaša datoteka \texttt{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 \texttt{XF86Config}.

Namesto da bi merili te informacije v strežniku X, so v datotekah
\texttt{modeDB.txt}, \texttt{AccelCards} in \texttt{Devices}
navedene vrednosti za veliko kartic, ki jih lahko uporabite v datoteki
\texttt{XF86Config}.  Vse te datoteke se najdejo v
\texttt{/usr/X11R6/lib/X11/doc}.  Dodatno, obstajajo različne datoteke
\texttt{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
\texttt{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
\texttt{XF86\_S3}.  Najprej ugotovite nabor grafičnih čipov
na kartici.  Poženite \texttt{SuperProbe} (najdete ga v
\texttt{/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
\begin{tscreen}
\# \emph{X -showconfig}
\end{tscreen}
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 \texttt{XF86\_S3} bi dobili:
\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}

Veljavni imeni naborov čipov za ta strežnik sta \texttt{mmio\_928} in
\texttt{s3\_generic}.  Stran priročnika za \texttt{XF86\_S3} opisuje
tadva nabora čipov in grafične kartice, ki ju uporabljajo.  V primeru
grafične kartice \#9 GXE 64 je ustrezni nabor \texttt{mmio\_928}.

Če ne veste, kateri nabor čipov se uporablja, ga lahko strežnik X
zazna namesto vas.  Za to poženite ukaz
\begin{tscreen}
\# \emph{X -probeonly > /tmp/x.out 2$>$\&1}
\end{tscreen}
če uporabljate \texttt{bash} za svojo ukazno lupino.
Če uporabljate \texttt{csh}, poskusite:
\begin{tscreen}
\# \emph{X -probeonly \&$>$ /tmp/x.out}
\end{tscreen}

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 \texttt{/tmp/x.out}, bi moral
vsebovati vrstice kot:
\begin{tscreen}
\verb!XFree86 Version 3.1 / X Window System !\\
\verb!(protocol Version 11, revision 0, vendor release 6000) !\\
\verb!Operating System: Linux  !\\
\verb!Configured drivers: !\\
\verb!  S3: accelerated server for S3 graphics adaptors (Patchlevel 0) !\\
\verb!      mmio_928, s3_generic !\\
\cparam{Več vrstic je pobrisanih \ldots} \\
\verb!(--) S3: card type: 386/486 localbus !\\
\verb!(--) S3: chipset:   864 rev. 0 !\\
\verb!(--) S3: chipset driver: mmio_928 !
\end{tscreen}
Tukaj vidimo, da sta dva veljavna nabora čipov za ta strežnik
(v tem primeru, \texttt{XF86\_S3}) \texttt{mmio\_928} in
\texttt{s3\_generic}.  Strežnik je poskušal zaznati in našel
grafično kartico z naborom čipov \texttt{mmio\_928}.

V razdelku \texttt{Device} datoteke \texttt{XF86Config} dodajte
vrstico \texttt{Chipset}, ki ima ime nabora čipov, kot je določeno
zgoraj.  Na primer
\begin{tscreen}
\begin{verbatim}
Section "Device"
        # Tukaj smo že imeli identifikator ...
        Identifier "#9 GXE 64"  
        # Dodajte tole vrstico:
        Chipset "mmio_928"
EndSection
\end{verbatim}
\end{tscreen}
Zdaj moramo ugotoviti gonilne točkovne frekvence (angl.\ driving clock
frequencies), % (Srs #918)
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 \texttt{modeDB.txt}, vidimo vnos za
grafično kartico Cardinal ET4000, ki je videti takole:
\begin{tscreen}
\begin{verbatim}
# čip   RAM   navidezno  točkovne frekvence      privzeti način  zastavice
ET4000  1024  1024 768   25 28 38 36 40 45 32 0  "1024x768"    
\end{verbatim}
\end{tscreen}
Točkovne frekvence (angl.\ dot clocks) za to kartico so 25, 28, 38,
36, 40, 45, 32 in 0 MHz.

V razdelku \texttt{Devices} datoteke \texttt{XF86Config} dodajte
vrstico \texttt{Clocks}, ki vsebuje seznam točkovnih frekvenc za vašo
kartico.  Na primer, za zgornje frekvence dodajte vrstico
\begin{tscreen}
\begin{verbatim}
      Clocks 25 28 38 36 40 45 32 0
\end{verbatim}
\end{tscreen}
v razdelek \texttt{Devices} te datoteke, po vrstici \texttt{Chipset}.

\blackdiamond
\textbf{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 \texttt{X -probeonly}, kot je opisano
zgoraj.  Izhod bi moral vsebovati vrstice, ki so videti kot tale:
\begin{tscreen}
\begin{verbatim}
(--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00
\end{verbatim}
\end{tscreen}
Potem dodamo vrstico \texttt{Clocks}, ki vsebuje vse te vrednosti, kot
so bile izpisane.  V datoteki \texttt{XF86Config} lahko uporabite tudi
več kot eno vrstico \texttt{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.

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

Nekatere video plošče uporabljajo programabilne oscilatorske čipe
(angl.\ programmable clock chips).  Glejte stran priročnika za vaš
strežnik X ali datoteko \texttt{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 \texttt{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:
\begin{tscreen}
(-{}-) SVGA: cldg5434: Specifying a Clocks line makes no sense for this driver
\end{tscreen}
Ta primer je vzet iz strežnika \texttt{XF86\_SVGA}, ki poganja kartico
Cirrus Logic PCI.

Za kartice, ki uporabljajo programabilne oscilatorske čipe, uporabite
vrstico \texttt{ClockChip} namesto vrstice \texttt{Clocks} v datoteki
\texttt{XF86Config}.  \texttt{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 \texttt{README.S3}
vidimo, da precej grafični kartic S3-864 uporablja oscilatorski čip
>>ICD2061A<<, in bi morali uporabiti vrstico
\begin{tscreen}
ClockChip "icd2061a"
\end{tscreen}
namesto vrstice \texttt{Clocks} v datoteki \texttt{XF86Config}.  Kot
pri \texttt{Clocks} gre tudi ta vrstica v razdelek \texttt{Devices},
takoj po polju \texttt{Chipset}.

Podobno nekatere grafične kartice zahtevajo, da določite tip
čipov RAMDAC v datoteki \texttt{XF86Config}.  To se naredi z vrstico
\texttt{Ramdac}.  Stran priročnika o \texttt{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 \texttt{Devices} datoteke \texttt{XF86Config}.  Te izbire so
opisane v strani priročnika za vaš strežnik kot tudi v različnih
datotekah, kot sta \texttt{README.cirrus} in
\texttt{README.S3}.
Te izbire so omogočene z uporabo vrstice \texttt{Option}.  Na primer,
kartica \#9 GXE 64 zahteva dve izbiri:
\begin{tscreen}
Option "number\_nine"\\
Option "dac\_8\_bit"
\end{tscreen}
Strežnik X lahko deluje tudi brez vrstic \texttt{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
\texttt{/usr/X11R6/lib/X11/doc} povedale, katere so te izbire.

Ko končate, bi se vaš razdelek \texttt{Devices} moral glasiti nekako
takole:
\begin{tscreen}
\begin{verbatim}
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
\end{verbatim}
\end{tscreen}
Obstajajo tudi druge izbire, ki bi jih morali vključiti v polje
\texttt{Devices}.  Stran priročnika o strežniku X priskrbi
podrobnosti za pogumne.

\section{Poganjanje XFree86}

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

Ukaz za zagon strežnika XFree86 je
\begin{tscreen}
\$ \emph{startx}
\end{tscreen}
To je vmesnik do programa \texttt{xinit}.  Zažene strežnik X
in izvede ukaze v datoteki \texttt{.xinitrc} v vašem domačem imeniku.
Datoteka \texttt{.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
\texttt{/usr/X11R6/lib/X11/xinit/xinitrc}.

Preprosta datoteka \texttt{.xinitrc} je videti takole:
\begin{tscreen}
\begin{verbatim}
#!/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 
\end{verbatim}
\end{tscreen}
Ta skript zažene dva odjemnika, \texttt{xterm} in \texttt{oclock}, in
postavi barvo korenskega okna (ozadja) na barvo \texttt{midnightblue}
(polnočno modro).  Zažene okenski upravljalnik \texttt{twm}.
Upravljalnik \texttt{twm} se izvede z lupinskim stavkom \texttt{exec}.
To povzroči, da se proces \texttt{xinit} nadomesti s \texttt{twm}.
Ko se proces \texttt{twm} konča, se strežnik X ustavi.  Izhod iz
\texttt{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 \texttt{Exit Twm}, izhod iz
\texttt{twm}.

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

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

Zgornji primer je le preprosta nastavitev namizja.
% Many wonderful
% programs and configurations are available with a bit of work on your
% \texttt{.xinitrc} file. For example, the \texttt{fvwm} window manager will
% provide a virtual desktop, and you can customize colors, fonts, 
% window sizes and positions, and so forth to your heart's content. 
% Although the X~Window System might appear to be simplistic at first,
% it is extremely powerful once you customize it for yourself.
Spet priporočamo, da preberete knjigo, kot je \emph{The X~Window
System: A User's Guide} (glejte dodatek~\ref{app-info}).  Možnih
variacij uporabe in nastavitve X je preveč, da bi jih tukaj opisovali.
Strani priročnika o ukazih \texttt{xterm}, \texttt{oclock} in
\texttt{twm} vam bodo priskrbele namige, kako začeti.

\section{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 \texttt{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
\texttt{Device} datoteke \texttt{XF86Config}.  Absolutno zagotovite,
da uporabljate pravi strežnik X in da je \texttt{/usr/X11R6/bin/X}
simbolna povezava nanj.

Če vse drugo odpove, poskusite pognati X >>gole<<; se pravi, z ukazom
kot:
\begin{tscreen}
\# \emph{X $>$ /tmp/x.out 2$>$\&1}
\end{tscreen}
Potem lahko pobijete strežnik X (z uporabo
\key{Ctrl}-\key{Alt}-\key{Backspace}) in pregledate vsebino
\texttt{/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 \texttt{VideoModes.doc}, ki je vključena v distribucijo
XFree86, vsebuje mnogo namigov za uravnavanje vrednosti v vaši
datoteki \texttt{XF86Config}.

Spomnite se, da lahko uporabljate \key{Ctrl}-\key{Alt}-\key{$+$} in
\key{Ctrl}-\key{Alt}-\key{$-$} za preklop med grafičnimi načini,
navedenimi v vrstici \texttt{Modes} razdelka \texttt{Screen} datoteke
\texttt{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 \texttt{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 \texttt{XF86Config}, ki so jih
prispevali uporabniki.  Nekatere od teh so dostopne v arhivu
\texttt{metalab.unc.edu} v imeniku \texttt{/pub/Linux/X11} in
tudi drugje.  Za vašo strojno opremo morda lahko najdete že napisano
nastavitveno datoteko.

\index{X~Window~System|)}
\index{okenski sistem X|)}
