Nvidia i X (instalacija, mis, refresh rate, TV Out)

Podeli preko

Ovaj mini tutorial namenjen je linux newbie korisnicima koji jos uvek nisu pronikli u nacin instalacije drajvera, finog stelovanja X-windowsa i naravno dobijanja slike sa TV-outa kartice.
1. Instalacija

NVidia je poznata po izuzetno dobroj podrsci za linux, i za to zasluzuju sve pohvale. Nove verzije linux drajvera izbacuju se redovno, tek malo kasne za odgovarajucim windows pandanima, a sto je najlepse od svega brzi su od onih u winu za nekih 10%! Ko ne veruje, neka istestira uz pomoc Quakea 3.
No, vratimo se procesu instalacije. Jos jednom moram da pohvalim NVidiju, jer se njihovi drajveri izuzetno lako kaleme na sistem. U svakom slucaju, preporucljivo je otici na njihov sajt i skinuti SORSOVE drajvera (najbolje najnovije verzije) i NE KORISTITI nikakve *.rpm i sl. Zasto? Zato sto kompajliranje iz sorsa daje sigurno najbrze drajvere, jer ce gcc kompajler napraviti binarne fajlove koji su prilagodjeni procesoru koji se nalazi u vasoj masini. Ovo vazi ne samo za graficku karticu, vec i za sve ostale drajvere i programe.
Proces instalacije je sa zadnjim drajverima trivijalan, cak i smesan; potrebno je samo startovati *.bin fajl. Pojavljuje se setup, odgovori se na par pitanja i tu je instalaciji kraj.
Sve ovo treba raditi bez startovanog X-Wina, najbolje je prebaciti se u runlevel 3 i odatle zavrsiti instalaciju, pa zatim nazad u runlevel 5 da se vide rezultati.
To bi izgledalo otprilike ovako:
-ako je X startovan, otvori se konzola i logujte se kao root:

>su -l

(sad ide unos passworda)

-prebacite se u runlevel 3 (‘pure’ konzola, bez startovanog X windowsa):

# telinit 3

-ulogujte se ponovo kao root;
-startujte *.bin fajl drajvera:

# sh NVIDIA-Linux-x86-1.0-4363.run

-pojavljuje se setup meni, prodjite kroz njega, i posle nekog vremena instalacija je gotova.

Za one koji imaju sorsove starijih drajvera (NVIDIA_GLX i NVIDIA_kernel gzipped fajlovi), instalacija je malo komplikovanija ali i dalje dosta lagana:
-predjite u direktorijum gde su drajveri
-ulogujte se kao root
-raspakujte ih sa:

# tar xzf NVIDIA_kernel-1.0-4191.tar.gz
# tar xzf NVIDIA_GLX-1.0-4191.tar.gz

-prvo se instalira NVIDIA_kernel:

# cd NVIDIA_kernel-1.0-4191
# make

-zatim NVIDIA_GLX:

# cd NVIDIA_GLX-1.0-4191
# make

I to je to sto se tice same instalacije drajvera. Nakon ovoga, potrebno je uneti dve izmene u /etc/X11/XF86Config-4 fajl.
Prvo, u sekciji ‘Modules’ unosi se modul za OpenGL akceleraciju:

Section “Module”
Load “dbe”

# modul za 3d OpenGL akceleraciju, linija koju treba uneti
Load “glx”

SubSection “extmod”
EndSubSection
Load “type1”
Load “freetype”
EndSection

Drugo, u sekciji ‘Devices’ prepravite “nv” na “nvidia”:

Section “Device”
Identifier “Nvidia GeForce MX400”
VendorName “Microstar”
BoardName “MSI 8833 VIVO 32mb”

#ovde promeniti “nv” u “nvidia”
Driver “nvidia”

VideoRam 32768
Option “DPMS” “on”
EndSection

I sad nazad u X (ili ako ste vec u njemu jednostavno ga restartujte):

# telinit 3

ili

# startx

X se budi, ovog puta sa 3d akceleracijom i NVidijinim drajverima, sposoban za Quake 3, UT, Doom itd itd itd.
Ako bude nekih problema, i X nece da se podigne, pogledajte log fajlove (var/log/XF86Config.log.0 i sl.) i naravno man stranicu sa sintaksom XF86Config-4 fajla ( ‘man XF86Config’). Kombinacija ove 2 stvari resava sigurno sve probleme 🙂

2. Skrol dugme misa

Ranije verzije Mandrake-a su ponekad u instalacionom procesu znale da zabrljaju prepoznavanje misa, i skrol nije radio. U MDK 9.x nisam primetio da se ovo desava, ali za one koji nisu imali srece evo kako treba da izgleda ‘InputDevice’ sekcija XF86Config-4 fajla:

Section “InputDevice”
Identifier “Mouse1”
Driver “mouse”
Option “Protocol” “IMPS/2”
Option “Device” “/dev/mouse”
Option “ZAxisMapping” “4 5”
Option “Buttons” “3”
EndSection

Restartujte X i vozite!

3. Frekvencija osvezavanja monitora

Ukoliko vam se cini da X server ne izvlaci iz monitora sve sto ovaj moze(citaj: osvezavanje
ekrana je neprijatno nisko), probajte da rucno izmenite vrednosti frekvencija za horizontalno i vertikalno osvezavanje ekrana u XF86Config. Vrednosti za vas monitor se nalazi u uputstvu koje ste dobili kada je monitor kupljen, a ako je upustvo baceno/zatureno/nije-dobijeno, potrazite ih na netu. Ok, znate vrednosti, sledece je njihovo unosenje u sekciju ‘Monitor’. Evo primera za moj Hansol 710DT:

Section “Monitor”
Identifier “mymonitor”
VendorName “Hansol”
ModelName “Hansol 710DT”

# HorizSync is in kHz unless units are specified.
# OVDE PROMENITE HORIZONTALNU FREQ
HorizSync 30-95

# VertRefresh is in Hz unless units are specified.
# OVDE IDE VERTIKALNA FREQ
VertRefresh 47-160

EndSection

Posle izmena, normalno restart X-a kako bi izmene imale dejstvo.
Sada ce X, na osnovu zadate rezolucije i ovih frekvencija automatski podesiti osvezavanje na najbolju mogucu vrednost. Medjutim, najbolja njemu mozda nije najbolja i vama 🙂 Ako se desi nesporazum, onda smanjujte/povecavajte vrednosti sve dok X ne uradi zeljenu stvar. Nekada davno ovakve operacije su bilo izuzetno rizicne, i nije bila nikakva retkost da ljudi preteraju sa ovim vrednostima i bukvalno uniste svoje monitore. Ali danas X nije nimalo destruktivan, najgore sto moze da se desi je da ne moze da se podigne ili se dize sa totalno izdeformisanom nesinhronizovanom slikom. Vracanjem frekvencija ( i naravno restartom) stvari se normalizuju.

4. Ukljucenje TwinView moda i aktiviranje TV Out-a

Izuzetno detaljno uputstvo o tome kako nastelovati TV izlaz (i uopste sve vezano za NVidia kartice u linuxu) nalazi se na NVidijinom sajtu, obavezno pogledati:

ftp://download.nvidia.com/XFree86/Linux-x86/1.0-4496/README.txt

U README-u nema sta nema, ljudi su napisali bukvalno SVE, pa cu ja samo da dam nekoliko kratkih napomena i primer XF86Config fajla u kome TV out podrska 100% radi (znaci, moj XF86Config-4 :)) )

Dakle, da bi TwinView radio, u ‘Screen’ sekciji XF86Config-4 fajla MORAJU OBAVEZNO da se specificiraju sledeci parametri i opcije:

Option “TwinView”
Option “SecondMonitorHorizSync” “hsync range(s)”
Option “SecondMonitorVertRefresh” “vrefresh range(s)”
Option “MetaModes” “list of metamodes”

Ono sto nije obavezno, ali moze da bude korisno su sledece opcije:

Option “TwinViewOrientation” “relationship of head 1 to head 0”
Option “ConnectedMonitor” “list of connected display devices”

Ove opcije su specificne za TV Out, i ako se kao drugi monitor kaci TV, moraju da budu definisane:

Option “TVOutFormat” “tv out format”
Option “TVStandard” “standard of TV device”

Kada se radi o tv outu, moraju se definisati frekvencije drugog uredjaja (u ovom slucaju TV-a) :

Option “SecondMonitorHorizSync” “30-50” #vrednosti za PAL standard
Option “SecondMonitorVertRefresh” “60”

Ako zelite da na TV-u imate ‘virtuelni ekran’, tj da kretanjem misa slika na TVu skroluje gore-dole i levo-desno,
morate da definisete takozvani “Panning Domain” u metamodovima:

Option “MetaModes” “1152×864,800×600 @1152×864; 1024×768,800×600 @1024×768”

U metamodovima se prva rezolucija odnosi na primarni displej a druga na sekundarni (u ovom slucaju TV), druga na TV-out.
Ja imam 2 metamoda, i sa ctrl + alt + NUMPAD+ i ctrl + alt + NUMPAD- direktno iz X-a menjam rezoluciju na monitoru sa 1152×864 na 1024×768 i nazad, a na TVu je zakucano uvek 800×600. Naravno vi mozete dodati koliko god hocete metamodova

I konacno evo sad kompletne ‘Screen’ sekcije, provereno funkcionalne:

Section “Device”
Identifier “Nvidia GeForce MX400”
VendorName “Microstar”
BoardName “MSI 8833 VIVO 32mb”
Driver “nvidia”
VideoRam 32768

#ovde pocinje deo koji se tice TV Outa
# TwinView za NVidia kartice, PAL rezim
Option “TwinView”

# Hor i Ver sinhronizacija za TV – PAL
Option “SecondMonitorHorizSync” “30-50”
Option “SecondMonitorVertRefresh”
“60”

#orijentacija (Clone, RightOf, LeftOf, Above, Below)
Option “TwinViewOrientation” “Clone”

#metamodovi
Option “MetaModes” “1152×864,800×600 @1152×864; 1024×768,800×600 @1024×768”

#redosled povezanih uredjaja, prvi je CRT – monitor, drugi je TV
Option “ConnectedMonitor” “crt,TV”

#TV standard i format za video out (COMPOSITE ili SVIDEO, i PAL-B,NTSC-M,PAL-G itd itd)
Option “TVOutFormat” “COMPOSITE”
Option “TVStandard” “PAL-B”
#kraj

Option “DPMS” “on”

EndSection

Restartujte X, i uzivajte u TV Outu.

Za sam kraj evo kompletnog XF86Config-4 fajla, koji je generisao XFDrake, a ja ispravio u skladu sa tutorialom.

# File generated by XFdrake.

# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************

Section “Files”

RgbPath “/usr/X11R6/lib/X11/rgb”

# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Mandrake 6.0 and later now use a font server independent of
# the X server to render fonts.

FontPath “unix/:-1”

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section “ServerFlags”

# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
#NoTrapSignals

# Uncomment this to disable the server abort sequence
# This allows clients to receive this key event.
#DontZap

# Uncomment this to disable the / mode switching
# sequences. This allows clients to receive these key events.
#DontZoom

# This allows the server to start up even if the
# mouse device can’t be opened/initialised.
AllowMouseOpenFail

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Keyboard section
# **********************************************************************

Section “InputDevice”

Identifier “Keyboard1”
Driver “Keyboard”
Option “AutoRepeat” “250 30”

Option “XkbRules” “xfree86”
Option “XkbModel” “pc105”
Option “XkbLayout” “us”

EndSection

# **********************************************************************
# Pointer section
# **********************************************************************

Section “InputDevice”

Identifier “Mouse1”
Driver “mouse”
Option “Protocol” “IMPS/2”
Option “Device” “/dev/mouse”
Option “ZAxisMapping” “4 5”
Option “Buttons” “3”
# ChordMiddle is an option for some 3-button Logitech mice

# Option “ChordMiddle”

EndSection

Section “Module”

# This loads the DBE extension module.

Load “dbe”

# modul za 3d OpenGL akceleraciju
Load “glx”

# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.

SubSection “extmod”
#Option “omit xfree86-dga”
EndSubSection

# This loads the Type1 and FreeType font modules

Load “type1”
Load “freetype”
EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section “Monitor”
Identifier “mymonitor”
VendorName “Hansol”
ModelName “Hansol 710DT”

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR’S
# USER MANUAL FOR THE CORRECT NUMBERS.
HorizSync 30-95

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR’S
# USER MANUAL FOR THE CORRECT NUMBERS.
VertRefresh 47-160

# This is a set of extended mode timings typically used for laptop,
# TV fullscreen mode or DVD fullscreen output.
# These are available along with standard mode timings.

# Sony Vaio C1(X,XS,VE,VN)?
# 1024×480 @ 85.6 Hz, 48 kHz hsync
ModeLine “1024×480” 65.00 1024 1032 1176 1344 480 488 494 563 -hsync -vsync

# 768×576 @ 79 Hz, 50 kHz hsync
ModeLine “768×576” 50.00 768 832 846 1000 576 590 595 630
# 768×576 @ 100 Hz, 61.6 kHz hsync
ModeLine “768×576” 63.07 768 800 960 1024 576 578 590 616

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

Section “Device”
Identifier “Generic VGA”
Driver “vga”
EndSection

Section “Device”
Identifier “Nvidia GeForce MX400”
VendorName “Microstar”
BoardName “MSI 8833 VIVO 32mb”
Driver “nvidia”
VideoRam 32768
# Clock lines

Option “TwinView”

Option “SecondMonitorHorizSync” “30-50”
Option “SecondMonitorVertRefresh” “60”
Option “TwinViewOrientation” “Clone”
Option “MetaModes” “1152×864, 800×600 @1152×864; 1024×768, 800×600 @1024×768; 800×600, 800×600 @800×600”
Option “ConnectedMonitor” “crt,TV”
Option “TVOutFormat” “COMPOSITE”
Option “TVStandard” “PAL-B”

# Uncomment following option if you see a big white block
# instead of the cursor!
# Option “sw_cursor”

Option “DPMS” “on”
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

Section “Screen”
Identifier “screen1”
Device “Nvidia GeForce MX400”
Monitor “mymonitor”
DefaultColorDepth 24
Subsection “Display”
Depth 8
Modes “1152×864” “1024×768” “800×600” “640×480”
ViewPort 0 0
EndSubsection
Subsection “Display”
Depth 15
Modes “1152×864” “1024×768” “800×600” “640×480”
ViewPort 0 0
EndSubsection
Subsection “Display”
Depth 16
Modes “1152×864” “1024×768” “800×600” “640×480”
ViewPort 0 0
EndSubsection
Subsection “Display”
Depth 24
Modes “1152×864” “1024×768” “800×600” “640×480”
ViewPort 0 0
EndSubsection
Subsection “Display”
Depth 32
Modes “1152×864” “1024×768” “800×600” “640×480”
ViewPort 0 0
EndSubsection
EndSection

Section “ServerLayout”
Identifier “layout1”
Screen “screen1”

InputDevice “Mouse1” “CorePointer”

InputDevice “Keyboard1” “CoreKeyboard”
EndSection

########end of config file

To bi bilo sve, nadam se da nece biti nikakvih problema.

ps. BTW, ovo nikako nije sve sto se tice X Servera i njegovih podesavanja. Da li vas nerviraju
ruznjikavi fontovi koje prikazuje X Font Server? Cemu X Font Server kad sam X lepo renderuje
fontove? Kako se dozvoljava
i ogranicava pristup X Serveru? Razmisljajte, kopajte po netu,
experimentisite

Poz

Salac
[email protected]
August 2003