от Никола Антонов(15-12-2002)

рейтинг (30)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Поради зачестилите въпроси, свързани с настройката на графичната среда под Linux, реших да се заема с едно кратко описание на конфигурационния файл, от който зависи всичко. Невинаги успяваме да се справим с конзолните инструменти като 'xf86config' (ужасно досадна е, сякаш е направена за мазохисти), 'xf86cfg', XFdrake в Mandrake или удобните им графични аналози в другите дистрибуции. Целта на този текст не е да даде някакво изчерпателно описание от инструкции за конфигуриране на XFree86, а по-скоро да хвърли малко светлина върху принципите, тъй като те никак не са сложни.

Най-важното е да знаем, че каквото и да се провали, винаги можем да редактираме наръка и да отстраним проблемите само с внимателния преглед на системния дневник '/var/log/XFree86.0.log' и променянето на настройките във вездесъщия файл '/etc/X11/XF86Config'. За по-новите версии на XFree86 правилният конфигурационен файл е означен като '/etc/X11/XF86Config-4', според версията на сървъра. Ако сте съвсем начинаещ, можете да редактирате въпросния файл чрез mc (Midnight Commander), като го отворите с натискане на 'F4'. От текстовите редактори за конзола аз най-предпочитам joe и го ползвам доста често.

И така, да надникнем в този енигматичен файл '/etc/X11/XF86Config-4' и да видим какво ни казва.

Файлът се състои от няколко раздела. Ще ги разгледаме поотделно.

1. Първият раздел се нарича "Files". В него има примерно:

Section "Files"
FontPath "unix/:7110" # local font server
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
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. Забележката под първите два реда е много мъдра: ако фонт-сървърите на работят, Х-сървърът намира шрифтовете сам, следвайки посочените пътеки по-долу, но се лишавате от по-добрата поддръжка на TTF и изглаждане на ръбове.

2. Следващият раздел е "Modules"

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
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-шината на самия драйвер, а не на ядрото. За да стане това възможно обаче, трябва да изключим поддръжката на agpgart от самото ядро. У някои ядра тя е вградена и ще се наложи да прекомпилираме. При други е външен модул и прекомпилацията ще ни се размине.

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' ще получите веднага работещ Х, без да е необходимо отново да го конфигурирате с поредния спартански инструмент.


<< Как да накареме конзолата да щади очите ни. | Неподозираните възможности на Debian >>