X.Orgin asetukset
Lähes jokaiselle Linux-käyttäjälle tulee joskus eteen tilanne, jossa X:n asetukset eivät ole kunnossa ja graafinen ympäristö ei toimi. Tällöin X:n asetustiedostoa on yleensä muokattava käsin, mikäli järjestelmään ei sisälly mitään tekstitilassa toimivaa asetusvelhoa, jolla voisi automaattisesti korjata asetukset.
Toimimattomuuden syynä on usein se, että asetustiedostossa on yritetty määrittää liikaa asioita, jolloin olosuhteiden muuttuessa X herkästi lakkaa toimimasta. Yleensä kannattaa antaa X:n itse automaattisesti määrittää mahdollisimman monet asetukset, jolloin riski väärien asetusten olemassaololle pienenee. Toisaalta tässä on haittana se, että esimerkiksi näytön asetukset saattavat tunnistua väärin, mikäli näyttö ei X:n käynnistyksen aikana ole päällä. Tähän on yleensä ratkaisuna X:n uudelleenkäynnistäminen, mikä graafisen kirjautumisohjelman käytössä ollessa kannattaa tehdä näppäinyhdistelmällä Ctrl+Alt+Backspace.
Näytönohjaimen vaihtuessa riittää asetusmuutokseksi usein pelkkä ajurimoduulin nimen vaihtaminen, mikäli näytönohjaimet ovat suunnilleen samantehoiset eikä sallittuihin resoluutioihin haluta muutoksia. 3d-toimintoja varten tarvitaan yleensä enemmän muutoksia.
X.org:in asetustiedosto sijaitsee lähes aina polussa /etc/X11/xorg.conf Käytettävää asetustiedostoa voi vaihtaa -config-valitsimella, esimerkiksi X -config /etc/X11/xorg.conf.bak
Asetustiedoston automaattinen luonti
Helpohko keino kaikkien perusasetusten tekemiseen on X.orgin mukana tuleva xorgconfig-ohjelma, joka kyselee tiedot mm. hiirestä, näppäimistöstä ja näytöstä ja luo niiden tietojen pohjalta xorg.conf-tiedoston. Ohjelman voi käynnistää konsolista komennolla xorgconfig. Xorgconfigin luoma tiedosto sisältää runsaasti kommentteja asetusten muokkauksen helpottamiseksi.
Myös komentoa X -configure voi käyttää uuden asetustiedoston luomiseen.
Nvidian kaupallisten binääriajureiden käyttäjille suositellaan komentoa nvidia-xconfig, joka luo yleensä täysin valmiin asetustiedoston.
xorg.conf
Rakenne
Asetustiedosto noudattaa seuraavanlaista rakennetta
Section "Osio" Option "Asetus" "Arvo" Option "Asetus" #Kommentti Foo "bar" EndSection
Tässä ohjeessa ei käydä läpi asetustiedoston kaikkia kohtia, joten tämän ohjeen perusteella ei voi kirjoittaa tyhjästä toimivaa tiedostoa. Tee siis muutokset valmiiseen tiedostoon (muista kuitenkin ottaa varmuuskopio aina ensin).
Moduulit
xorg.conf-tiedoston alussa on yleensä osio Section "Module" jossa ladataan erilaisia moduuleja komennolla Load "moduuli". Yleensä moduuleja on listattu useita, ja usein niiden merkitys on myös kerrottu kommenteilla.
Tätä osiota täytyy muuttaa yleensä silloin, kun asennetaan näytönohjaimen ajurit. Esimerkiksi NVIDIA:n näytönohjainta käytettäessä on ladattava moduuli glx mutta ei saa ladata moduulia dri.
Syöttölaitteet
Osioissa tyyppiä Section "InputDevice" määritellään syöttölaitteet, eli ainakin näppäimistö ja hiiri. Suomalaista näppäimistöä käytettäessä täytyy usein kertoa näppäimistönasettelusta omalla parametrilla. Rullahiiri vaatii myös omaa säätöä.
Esimerkki tavallisesta näppäimistöstä:
Section "InputDevice" Identifier "Keyboard1" #Kutsumanimi Driver "kbd" #Ajuri Option "AutoRepeat" "500 30" #Suomalaiset asetukset Option "XkbModel" "pc105" Option "XkbLayout" "fi" EndSection
Fi:n sijaan voi ongelmatilanteessa yrittää käyttää sen kanssa identtistä se-näppäinkarttaa.
Tavallinen kolmenappinen (kaksi nappia + rullan painamismahdollisuus) rullahiiri esitellään seuraavasti
Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "Auto" #Tunnistetaan protokolla automaattisesti Option "Device" "/dev/input/mice" #Hiiren laitetiedosto #Rullalla vierittäminen Option "ZAxisMapping" "4 5" #Kolmannen näppäimen emulointi kahta päänäppäintä painamalla #Suositeltava erityisesti hiirissä, joissa ei ole painettavaa rullaa Option "Emulate3Buttons" EndSection
Esitellyistä laitteista valitaan lopuksi vielä ServerLayout-osiossa käytettävät.
Näytönohjain
Osiossa Section "Device" määritellään käytettävä näytönohjain ja sen ajuri. Usein tässä osiossa on myös määriteltynä tiettyyn fyysiseen laitteeseen viittaava BusID-asetus. Tämä asetus on kuitenkin vikaherkkä ja myös tarpeeton, mikäli samanaikaisesti ei haluta käyttää useampaa eri näytönohjainta. 3d-kiihdytyksen käyttämiseksi on usein asennettava binääriajureita. Esimerkki kertoo enemmän kuin tuhat sanaa:
Section "Device" Identifier "GeForce" #Nimi (vapaavalintainen) Driver "nvidia" #Käytettävä ajuri (vaatii nvidia-nimisen ajurimoduulin) EndSection
Näyttö
Näytön asetuksia määriteltäessä on oltava tarkkana, sillä väärät asetukset saattavat jopa rikkoa näytön. Etenkin vaaka- ja pystytahdistusarvot ovat tässä suhteessa tärkeät. X.org osaa tosin yleensä automaattisestikin tunnistaa sopivat tahdistusarvot, joten niitä ei välttämättä kannata edes yrittää määrittää. Tällöin näytön asetukseksi riittää yleensä pelkkä tunniste.
Näytön tiedot määritellään osiossa Section "Monitor". Näytölle annetaan tunniste (Identifier) sekä mahdollisesti vaaka- ja pystytahdistusarvot (VertRefresh ja HorizSync). Oikeat tahdistusarvot löytyvät esimerkiksi näytön ohjekirjasta tai Internetistä valmistajan sivuilta.
Esimerkki Philips 107e kuvaputkinäytön esittelystä:
Section "Monitor" Identifier "Philips 107E" #Nimi HorizSync 30-70 #Vaakatahdistus VertRefresh 50-160 #Pystytahdistus EndSection
Laitteet käyttöön
Kun näytönohjain, näyttö yms. laitteet on nyt esitelty, täytyy vielä kertoa, mitä laitteita haluamme käyttää (kaikkia esiteltyjä ei tarvitse käyttää).
Ensinnäkin osiossa Section "Screen" kerrotaan käytettävä näytönohjain ja näyttö. Lisäksi määritellään resoluutiot. Myös screenille on annettava nimi, joka puolestaan annetaan myöhemmin ServerLayoutille.
Esimerkki Section "Screen" -osiosta:
Section "Screen" Identifier "Screen 1" #"Screenin" nimi Device "GeForce" #Käytettävä näytönohjain Monitor "Philips 107E" #Käytettävä näyttö DefaultDepth 24 #Oletusvärimäärä #Resoluutiot Subsection "Display" Depth 16 #16-bittiä Modes "1280x1024" "1024x768" "800x600" "640x480" #Sallitut resoluutiot ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 #24 bittiä Modes "1152x864" #Sallitut resoluutiot ViewPort 0 0 EndSubsection EndSection
Tiedoston lopussa valitaan sitten (jo edellä mainostetussa) ServerLayout-osiossa käytettävät asetukset tähän tapaan:
Section "ServerLayout" #Vaihteeksi tunniste Identifier "Simple Layout" Screen "Screen 1" #Käytettävä screeni InputDevice "Mouse1" "CorePointer" #Käytettävä hiiri (CorePointer) InputDevice "Keyboard1" "CoreKeyboard" #Käytettävä näppis (CoreKeyboard) EndSection
ServerLayouteja voi halutessaan määritellä useampia, jolloin käytettävä layout määritellään -layout-valitsimella X:n käynnistyksen yhteydessä.
Esimerkki toimivasta xorg.confista i810-piirisarjan näytönohjaimella, Compaqin P70-näytöllä, rullahiirellä sekä standardilla näppäimistöllä:
Section "Module" Load "dbe" Load "freetype" EndSection Section "Files" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/Type1" EndSection Section "InputDevice" Identifier "nappaimisto" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "fi" Option "AutoRepeat" "500 30" EndSection Section "InputDevice" Identifier "hiiri" Driver "mouse" Option "Protocol" "Auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" Option "Emulate3Buttons" EndSection Section "Monitor" Identifier "p70" EndSection Section "Device" Identifier "integroitu" Driver "i810" EndSection Section "Screen" Identifier "naytto" Device "integroitu" Monitor "p70" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1024x768" "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1024x768" "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1024x768" "800x600" ViewPort 0 0 EndSubSection EndSection Section "ServerLayout" Identifier "kokoonpano" Screen "naytto" InputDevice "hiiri" "CorePointer" InputDevice "nappaimisto" "CoreKeyboard" EndSection
Oletuksena tuleva minimaalinen xorg.conf X.org 1.3:a käyttävässä Fedora 7:ssä:
# Xorg configuration created by pyxf86config Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "fi" EndSection Section "Device" Identifier "Videocard0" Driver "i810" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" DefaultDepth 24 EndSection
Kaksi näyttöä
Kahta (tai useampaa) näyttöä voidaan käyttää X:n kanssa muutamalla eri tavalla. Nvidian korteilla voidaan käyttää Nvidian omaa TwinView-teknologiaa. Muissa tapauksissa, esimerkiksi käytettäessä useampaa erillistä näytönohjainta, voidaan käyttää Xineramaa. Xinerama on myös hyvä valinta jos käytössä on vaikkapa sekä Nvidian että ATIn näytönohjaimet.
Radeon (Xinerama) kahdella näytöllä
xorg.conf tiedostoon tarvitsee luoda kaksi laitetta joita aiotaan käyttää virtuaalinäytöissä. Tässä esimerkissä molemmat ulosotot löytyvät samasta kortista. Molemmille laiteille annetaan myös niiden ruutunumero "Screen".
Section "Device" Identifier "Videocard0" Driver "radeon" VendorName "Videocard vendor" BoardName "ATI Technologies Inc RV350 AP [Radeon 9600]" BusID "PCI:3:0:0" Screen 0 EndSection
Section "Device" Identifier "Videocard1" Driver "radeon" VendorName "Videocard Vendor" BoardName "ATI Technologies Inc RV350 AP [Radeon 9600]" BusID "PCI:3:0:0" Screen 1
Seuraavaksi määritellään tietokoneeseen kytketyt näytöt. Suositteltavaa on käyttää näiden hatusta vedettyjen virkistystaajuksien tilalla juuri sinun näytöillesi sopivia tietoja. Nämä tiedot löytyvät usein näytön ohjekirjasta, tai hakukoneella hakemalla.
Section "Monitor" Identifier "Main Monitor" Option "DPMS" HorizSync 28-51 VertRefresh 43-60 EndSection
Section "Monitor" Identifier "Second Monitor" Option "DPMS" HorizSync 28-51 VertRefresh 43-60 EndSection
Seuraavaksi määritellään myös Screen-osio. Screen-osioon tulee myös määritykset kahdelle Screenille.
Screen yksi.
Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Main monitor" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 16 Modes "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection
Ja Screen kaksi.
Section "Screen" Identifier "Screen1" Device "Videocard1" Monitor "Second Monitor" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection
Lopuksi lisää vielä ennen "ServerLayout" osaa seuraavat rivit. Itse "ServerLayout" kohdasta voit vaikkapa kommentoida (#-kommenttimerkki) pois Xinerama rivin.
Section "ServerFlags" Option "Xinerama" "on" EndSection
"ServerLayout"-rivit
Section "ServerLayout" Identifier "Multihead layout" Screen 0 "Screen0" Screen 1 "Screen1" RightOf "Screen0" InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" # Option "Xinerama" "on" # Option "Clone" "off" EndSection
Lopuksi käynnistä X-systeemi uudestaan. (Esim. reboot)
Xineraman avulla on mahdollista käyttää myös useampaa kuin kahta näyttöä. Ohjeet tähän löytyvät artikkelista Xinerama.
Nvidia (TwinView) kahdella näytöllä
Katso artikkelia TwinView.
NVidia
Nvidian asennuspaketin sisältämä nvidia-xconfig -komento osaa muokata xorg.conf:n käyttämään Nvidian ajuria. Nvidia-xconfig on mukana vasta ajuripaketin versiossa 1.0-8178 tai uudemmissa, joten käytä mieluiten aina uusinta ajuriversiota. Vanhemmatkin ajuripakettiversiot osasivat asettaa xorg.conf:in, mutta niiden toiminta oli selvästi kehittymättömämpää.
Vinkki: lisäämällä Device Sectioniin seuraavan rivin
Option "Coolbits" "1"
saa lisää näytönohjaimen asetuksien muokkausmahdollisuuksia nvclock-nimisen työkalun avulla.
Ongelmatilanteet
Mikäli järjestelmä Nvidian ajurien asennuksen jälkeen rupeaa kaatuilemaan X:n käynnistyksen yhteydessä, voi vika olla siinä, että ajurit on määritelty käyttämään käyttöjärjestelmän omia AGP-ajureita Nvidian AGP-ajureiden sijaan. Tällöin rivin
Option "NvAGP" "1"
lisääminen Device-osioon saattaa auttaa. Tosin Nvidian asennusohjelma lisää tämän itsekin Screen-osioon versiosta 1.0-8178 alkaen.
Ongelmat saattavat johtua myös viallisesta BIOS:sista. Esimerkkinä Asus A8V Deluxe biossin 1007-version päivittäminen 1017-versioon poistaa ongelmat AGPGART:n kanssa ja nvidian ajurit alkavat toimimaan myös asetuksella.
Option "NvAGP" "3"
Jonka jälkeen
cat /proc/driver/nvidia/agp/status
Antaa tuloksen
Status: Enabled Driver: AGPGART AGP Rate: 8x Fast Writes: Enabled SBA: Enabled
Ja ajureiden tehokkuus parantuu huomattavasti.