Friday, February 1, 2008

Male X.Org čarolije

Iako je instalacija drajvera na Debian-u uglavnom trivijalan posao, nekada se desi da stvari pođu nizbrdo, i da cenjeni korisnik ovog sistema, željan 3D akceleracije, igara i compiz-fusion-a, naleti na vatreno otrežnjenje tipa:

Fatal server error:
no screens found
XIO:
fatal IO error 104, bla, bla, truć...


Ljudi skloni Windows-u već razmišljaju o system recovery ili reinstall opcijama, iako se radi "samo" o padanju X servera. Razlozi za pad X servera su razni: čačkanje po xorg.conf fajlu zbog compiz-fusion-a, nekorektno instalirani drajveri, greške NVIDIA instalera itd. Dakle, nije došlo do pada sistema, već X.Org grafičkog okruženja. Tada na scenu stupa programčić (ili fancy rečeno "utillity") koji će, u najgorem slučaju, vratiti stvari na staro, tj. na stanje pre instalacije drajvera. Taj program se pokreće komandom dpkg-reconfigure xserver-xorg. Iako je ispitni rok u toku, nisam se dao pokolebati, pa sam napravio još malo screenshot-ova Debian-a sa virtuelne mašine...

Prvo je potrebno postati root (su - ili su root ). Zatim sledi magična komanda:





Program pita da li da autodetektuje optimalni X server i modul za grafičku karticu. Pošto mi je sistem "negrafičkim okruženjem" (tj. komandnim interpreterom) pokazao da nema pojma o grafičkoj, pogodnom x serveru i modulu biram "No".





Sledi izbor drajvera za X server. Najbolje rešenje je vesa drajver...





Umesto Generic Video Card treba upisati ime i model grafičke karte (NVIDIA GeForce 8500 napr.).





Potrebno je naznačiti i BusID grafičke karte (adresa slota u kojoj se nalazi grafička karta), ukoliko postoji više grafičkih karata. U slučaju jedne karte, uglavnom je ponuđena vrednost tačna. Ko nije siguran u tačnost ovog podatka, može da otkuca u terminalu:
$
lspci -x | grep -i "vga\|display", i dobiće podatke o grafičkoj karti.
Najčešće je potrebno pritisnuti "Enter".

Detaljnije o ovom pitanju su se bavili autori teksta sa:
http://wiki.serios.net/wiki/Determining_the_video_card%27s_bus_identifier





Sledi dodeljivanje količine memorije koju će grafička da koristi. Ako karta nije integrisana, krš (starija od TNT Riva-e) ili neka "egzotična", nije potrebno ništa upisivati...





Da li koristiti kernel framebuffer drajver, za indirektnu komunikaciju X server-a sa hardverom? Pošto se nadam da će sledeći reinstall drajvera dati rezultate biram "No".
Da bi bilo jasnije, nasao sam definiciju framebuffer-a na sajtu
http://www.faqs.org/docs/Linux-HOWTO/Framebuffer-HOWTO.html#s3.
Za one koji ne vole da skroluju po stranici:
A framebuffer device is an abstraction for the graphic hardware. It represents the frame buffer of some video hardware, and allows application software to access the graphic hardware through a well-defined interface, so that the software doesn't need to know anything about the low-level interface stuff [Taken from Geert Uytterhoeven's framebuffer.txt in the linux kernel sources].




Odbijam autodetekciju tastature, jer smatram da je prilikom instalacije lepo konfigurisana. Svejedno, mogao sam da odaberem i autodetekciju...





Sledi podešavanje rasporeda karaktera (keyboard layout) na tastaturi. Pošto tastatura nije problem ostavljam na ponuđenom us layout-u...





Izbor XKB rule parametara za korišćenje tastature od strane X servera. Hmm, pošto je X server X.Org ostavljam ponuđeni odgovor i pritiskam "Enter"...





Definisanje modela tastature. Ostavio sam na pc104. Mislim da to važi za većinu tastatura u Srbiji...





O ne! Još parametara tastature! Ostavljam prazno polje jer koristim US English tastaturu. Za neke lokalne varijante treba uneti odgovarajuće parametre. Ovde najbolje pomaže Google... :)





Sledi "teranje maka na konac". Sad treba definisati šta će Win taster ili Caps Lock da rade u grafičkom okruženju. Ostavljam prazno...





Posle smaranja sa parametrima tastature sledi podešavanje miša. Pošto imam PS/2 miša biram prvu opciju (/dev/input/mice). Za druge tipove miša slede druge opcije...





Treba izabrati protokol kojim X server komunicira sa mišem. Protokola ima mnogo, a nešto više o ovoj materiji se može naći na http://linux.die.net/man/4/mouse-driver. U konkretnom slučaju, na raspolaganju su samo dva protokola. Kod mene radi prva opcija (ImPS/2), tako da drugu nisam ni isprobavao...





Ponosni vlasnici miševa sa tri tastera bi trebalo da omoguće emulaciju trećeg dugmeta na mišu...:)






Dati je spisak podrazumevanih (default) drajvera X servera,a neki su već odabrani od. Pošto je potrebno podići X server bez 3D akceleracije (tj. samo da "radi"), najbolje je prihvatiti ponuđene opcije. Pri izboru ne treba izostaviti dri drajvere!





Ova sekcija u xorg.conf fajlu govori X serveru gde da nađe module, fontove i slično. Najbolje je reći "Yes"...





Kod autodetekcije monitora biram "No", zato što prostom metodom posmatranja mogu da utvrdim koji monitor imam. Takođe, podaci o monitoru se nalaze na kutiji od istog kao i na garantnom listu... :)





Umesto Generic Monitor upisujem proizvođača i model monitora...





Kao i prilikom instalacije sistema, treba odrediti rezolucije monitora, zavisno od širine dijagonale, odnosa dužina stranica i podržanih rezolucija grafičke karte...





Za određivanje karakteristika monitora koristim opciju Medium, jer me smara da upisujem najsitnije detalje o istom. Za stručnjake i mazohiste najbolja opcija je Advanced...





Sledeće što treba uraditi je odabir optimalne rezolucije i osvežavanja monitora. Najbolje je odabrati vrednost koja piše u specifikaciji monitora...





Treba odabrati autodetekciju opsega frekvencija i rezolucija monitora, jer ako je pri instalaciji X server bio podignut, najverovatnije su ove vrednosti već upisane u xorg.conf. Ako autodetekcija ne upali, treba odabrati "No". Ruku na srce, meni se to još nije desilo...





Poslednje što treba uraditi je definisanje broja bitova koji opisuju boju jednog piksela na monitoru. Ja biram 24 bit-a za "dubinu boja", što većina grafičkih karata posle 2000. godine podržava...



Posle ove manje-više zamorne procedure, potrebno je podići X server. Pošto je u pitanju Linux restart računara nije potreban. Kao i prilikom instalacije drajvera, X server treba pokrenuti komandom:

# /etc/init.d/kdm start (gdm je za GNOME, xdm za XFCE)

Nadam se da je uspelo... :)

No comments: