И така, да надникнем в този енигматичен файл '/etc/X11/XF86Config-4' и да видим какво ни казва.
Файлът се състои от няколко раздела. Ще ги разгледаме поотделно.
1. "Files"
Section "Files"
FontPath "unix/:7110" #{} local font server
FontPath "/usr/lib/X11/fonts/misc"
...
EndSection
Досещате се, че в този раздел са описани пътищата до директориите с шрифтове, без които не можем да заредим Х. Интересни са първите два реда и забележката под тях. Съвременните дистрибуции използват специални приложения - шрифтови-сървъри, които се грижат за изчертаването на буквите и така желания от всеки antialiasing (изглаждането на ръбове). Ако си инсталирате xfs (X Font Server) или неговия събрат xfs-xtt, който се занимава специално с TTF-шрифтовете, първият ред казва на Х-сървъра да се обръща към шрифтовете не директно, а през въпросните шрифтови-сървъри. Тези сървъри отговарят на съответните портове 7100 за xfs и 7110 за xfs-xtt. За да е всичко наред, трябва да опишете пътищата към директориите с шрифтове в конфигурационните файлове на тези сървъри: '/etc/X11/Xftconfig' за xfs и '/etc/X11/fs-xtt/config' за xfs-xtt.
2. "Modules"
Section "Module"
Load "extmod"
Load "freetype"
Load "glx"
...
EndSection
В този раздел казваме на Х-сървъра какви модули да зареди да допълнителна функционалност. Бъдете минималисти. Ако използвате драйверите на NVIDIA например, ще трябва да добавите зареждането на модула "glx" и да махнете подразбиращия са "GLcore". Иначе не е много разумно да се рови тук. Ако някой модул създава проблеми и пречи на Х-а да се зареди, просто го коментирайте с един знак #{} отпред и вижте дали няма разрешите проблема. Затова трябва да се четат логовете на XFree86 системата във '/var/log'.
3. InputDevice"
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/ttyS0"
Option "Protocol" "Microsoft"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Тук имаме описани една клавиатура и два варианта мишки: първата е обикновена серийна, а втората е с колелце. Х няма да зареди и двете, разбира се. Коя да използва му се казва най-накрая. Ако мишката ви е с колелце, използвайте втората конфигурация.
4. "Device"
Section "Device"
Identifier "Generic Video Card"
Driver "nvidia"
Option "NvAGP" "1"
EndSection
Най-важно е да посочим правилния драйвер, който в случая е "nvidia". Допълнителните опции се добавят както тук. В случая посочваме на Х-а да използва вградената поддръжка на AGP-шината на самия драйвер, а не на ядрото.
5. "Monitor"
Section "Monitor"
Identifier "Generic Monitor"
HorizSync 40-70
VertRefresh 60-120
Option "DPMS"
EndSection
Ако конфигурационната програма, която използвате, има в базата си вашия модел, тя всъщност редактира тези два реда, в които се посочват границите на опреснителната честота. Можете да намалявате или увеличавате границите, като качвате и сваляте стойностите в давта реда. Така лесно ще настроите монитора според вкусовете си и разбира се за облекчаване на зрението. Високите честоти се отразяват добре на очите, но внимавайте да не изгорите монитора. В случая виждате настройка на стандартен 15'' монитор, който работи при режим "1024x768" при 16-битов цвят.
6. "Screen"
Section "Screen"
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
DefaultDepth 16
SubSection "Display"
Depth 1
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600" "640x480"
EndSubSection
EndSection
Подред са описани режимите, които се поддържат от тази система. Редът Depth показва дълбочината на цветовете в битове. DefaultDepth показва подразбиращия се режим, който ще се зареди при изпълнение на командата 'startx'. В случая, аз искам 16-битов цвят и затова Х-сървът ще се насочи към предпоследния Display. В реда Modes са описани вече резолюциите, които могат да се използват. Х-сървърът взима първата. При мен по подразбиране беше "800х600", но аз я смених с "1024х768".
7. "ServerLayout"
Това е разделът, в който посочваме глобално точно кои описани конфигурации да се използват от сървъра последователно за работния режим, монитора и входно/изходните устройства (тук казваме точно коя мишка искаме от всички, конфигурирани във файла).
Най-важното е винаги, когато нещо се провали, да четем внимателно '/var/log/XFree86.0.log'. Там си пише всичко: точно откъде идва проблемът, дали някой модул създава проблеми или нещо друго. Често срещаната грешка, особено след яростно изтезаване на Red Hat и Mandrake, че Х-сървърът не може да намери подразбиращия се шрифт с фиксирана ширина, се отстранява именно с допълнително описание на пътищата към директориите с шрифтове и е причинена от срив или проблем при конфигурирането на xfs. Ако видите грешка от типа "No screen found", значи няма описана работеща конфигурация в раздела "Screen". Често пъти става и обратното - намира screen, но не намира device, което ще рече, че видеоплатката не е описана в раздела "Device" и не е посочен правилният драйвер.
По този начин, чрез внимателно дешифриране на системния дневник на XFree86 сървъра можем да диагностицираме всеки проблем и да го отстраним само с редакция на '/etc/X11/XF86Config' или '/etc/X11/XF86Config-4', ако сървърът е версия 4. Пазете си тези файлове. Дори и да смените дистрибуцията, ако не промените видеоплатката и монитора, само с копирането им в '/etc/X11' ще получите веднага работещ Х, без да е необходимо отново да го конфигурирате с поредния спартански инструмент.