Материал из Wiki.X-news.org
Перейти к: навигация, поиск

Настройка XORG

Установка

X-сервер как и любое другое приложение можно установить как при помощи пакетов, так и из портов. X-сервер называется xorg и в системе портов находится в /usr/ports/x11/xorg. При сборке из портов в процессе конфигурирования следует обратить внимание на список видеодрайверов, которые будут собраны, и выбрать подходящий драйвер для своего видеоадаптера. Если этого не сделать и драйвер для вашего адаптера не будет собран, то драйвер можно будет собрать отдельно уже после установки xorg. Драйвера находятся в каталоге /usr/ports/x11-drivers/. Если используются пакеты, то нужно будет найти пакет для своего видеодрайвера и установить его.

Настройка

Xorg в работе использует конфигурационный файл с определенным синтаксисом. В этом файле описаны настройки для всех устройств с которыми будет взаимодействовать xorg. Для того чтобы создать этот файл автоматически следует войти в систему в качестве root и выполнить следующее:

# X -configure

Если все сделано правильно, то в ответ на экране появится сообщение:

X.Org X Server 1.6.1
Release Date: 2009-4-14
X Protocol Version 11, Revision 0
Build Operating System: FreeBSD 8.0-BETA2-p1 i386
Current Operating System: FreeBSD FBSD8T.WORKGROUP 8.0-BETA2-p1 FreeBSD 8.0-BETA2-p1 #2: Wed Aug  5 17:01:34 UTC 2009        alex@FBSD8T.WORKGROUP:/usr/src/sys/i386/compile/ALEX_TEST i386
Build Date: 17 August 2009  11:25:24AM
       Before reporting problems, check http://wiki.x.org
       to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
       (++) from command line, (!!) notice, (II) informational,
       (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Aug 17 13:40:27 2009
List of video drivers:
       ati
       radeon
       mach64
       nv
       r128
       radeonhd
       sis
       intel
       vesa
(++) Using config file: "/root/xorg.conf.new"


Xorg detected your mouse at device /dev/sysmouse.
Please check your config if the mouse is still not
operational, as by default Xorg tries to autodetect
the protocol.

Your xorg.conf file is /root/xorg.conf.new
To test the server, run 'X -config /root/xorg.conf.new'

В результате будет создан файл xorg.conf.new. После чего нам нужно скопировать получившийся файл в /etc/X11:

# cp ~/xorg.conf.new /etc/X11/xorg.conf
   После чего откроем его на редактирование:
# ee /etc/X11/xorg.conf

Рассмотрим формат файла. Файл представляет собой обычный текстовый файл где описаны секции начинающиеся с Section "НАЗВАНИЕ_СЕКЦИИ" и заканчивающиеся EndSection. В каждой секции прописаны параметры, разберем подробно каждую секцию:

Section "ServerLayout"
       Identifier    "X.org Configured"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"

EndSection

В данной секции описывается "модель", в этой секции указываются дисплей, устройства ввода. Т.е. названия соотв. секций. Нам нужно добавить в эту секцию строку Option "AllowEmptyInput" "off" для того чтобы задействовать опрос InputDevices из xorg.conf, так как по умолчанию клавиатура и мышь опрашивается через HAL. Данная опция позволит использовать классический вариант конфигурации InputDevices. Приводим секцию к виду:

Section "ServerLayout"
       Identifier    "X.org Configured"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option            "AllowEmptyInput" "off"
EndSection

Следующие секции содержит пути к модулям и шрифтам. На данном этапе мы ничего менять в них не будем.

Section "Files"
       ModulePath   "/usr/local/lib/xorg/modules"
       FontPath     "/usr/local/lib/X11/fonts/misc/"
       FontPath     "/usr/local/lib/X11/fonts/TTF/"
       FontPath     "/usr/local/lib/X11/fonts/OTF"
       FontPath     "/usr/local/lib/X11/fonts/Type1/"
       FontPath     "/usr/local/lib/X11/fonts/100dpi/"
       FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection
Section "Module"
       Load  "extmod"
       Load  "record"
       Load  "dbe"
       Load  "glx"
       Load  "dri"
       Load  "dri2"
EndSection

Затем следует секция описывающая устройство ввода - клавиатуру:

Section "InputDevice"
       Identifier  "Keyboard0"
       Driver      "kbd"
EndSection

Нам нужно, чтобы по нажатию на комбинацию клавиш происходило переключение с русской на латинскую раскладку и наоборот. Переключать раскладку будем по нажатию на клавиши ALT+SHIFT и в качестве индикатора раскладки будет выступать светодиод scroll lock. Для этого вносим в секцию следующие изменения:

Section "InputDevice"
       Identifier     "Keyboard0"
       Driver         "kbd"
       Option         "XkbLayout" "us,ru(winkeys)"
       Option         "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Далее идет секция описывающая мышь:

Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/sysmouse"
       Option      "ZAxisMapping" "4 5 6 7"
EndSection

В принципе если демон мыши moused работает, то с этими настройками все будет работать. Но при желании можно указать порт мыши напрямую без посредничества moused. Для этого нужно отключить moused во всех его проявлениях. Для этого пропишем в rc.conf запрет на запуск moused, т.е. впишем moused_nondefault_enable="NO" и moused_enable="NO", в первом случае отключится запуск moused для нестандартных мышей (все usb мыши) во втором случае для стандартных мышей (ps/2 мыши). После перезапуска системы параметры вступят в действие. Тоесть если moused использовать не планируем то исправляем секцию в случае с ps/2 мышью на psm0, в случае с usb мышью как правило ums0:

Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/psm0"
       Option      "ZAxisMapping" "4 5 6 7"
EndSection

Далее идет секция описывающая настройки монитора, нам нужно внести в нее изменения касаемо параметров разрешения и частоты. Для этого будем использовать строку Modeline и утилиту gtf.

Section "Monitor"
       Identifier   "Monitor0"
       VendorName   "Monitor Vendor"
       ModelName    "Monitor Model"
EndSection

Для того чтобы вычислить необходимый нашему монитору Modeline наберем в консоли команду gtf 1024 768 60 где 1024 768 60 это разрешение экрана и частота с которой мы хотим работать (в моем случае используется 15 дюймовый монитор BENQ FP51G).

# gtf 1024 768 60

Ответом на команду будет:

Modeline "1024x768_60.00"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync

Эту строку нам следует вписать в секцию (за одно впишем название монитора), в итоге секция будет выглядеть так:

Section "Monitor"
       Identifier   "Monitor0"
       VendorName   "BENQ"
       ModelName    "FP51G"
       Modeline "1024x768_60.00"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync
EndSection

Строки VendorName и ModelName ни на что особо не влияют, это информационные строки. Они нужны для того чтобы программы использующие X могли показывать правильную информацию о мониторе, не более того.

Следующей идет секция описывающая видеокарту. Она выглядит так:

Section "Device"
       ### Available Driver options are:-
       ### Values: : integer, <f>: float, <bool>: "True"/"False",
       ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
       ### [arg]: arg optional
       #Option     "NoAccel"                   # [<bool>]
       #Option     "SWcursor"                  # [<bool>]
       #Option     "ColorKey"                  # <i>
       #Option     "CacheLines"                # <i>
       #Option     "Dac6Bit"                   # [<bool>]
       #Option     "DRI"                       # [<bool>]
       #Option     "NoDDC"                     # [<bool>]
       #Option     "ShowCache"                 # [<bool>]
       #Option     "XvMCSurfaces"              # <i>
       #Option     "PageFlip"                  # [<bool>]
       Identifier  "Card0"
       Driver      "intel"
       VendorName  "Intel Corporation"
       BoardName   "82945G/GZ Integrated Graphics Controller"
       BusID       "PCI:0:2:0"
EndSection

Строки которые закоментированы (знак #) мы удалим, так же закоментируем строку BusID, она указывает в каком слоте находится видеокарта (как правило этот параметр указывать не обязательно, прекрасно работает и без него, но он может понадобиться при разрешении проблем). Когда мы выполняли X -configure, то автоматически была определена видеокарта в системе. После внесения изменений секция будет выглядеть так:

Section "Device"
       Identifier  "Card0"
       Driver      "intel"
       VendorName  "Intel Corporation"
       BoardName   "82945G/GZ Integrated Graphics Controller"
       #BusID       "PCI:0:2:0"
EndSection

Соответсвенно, если xorg.conf переносится на другую систему где видеокарта другая, то достаточно будет исправить параметры монитора и вписать в опцию Driver название драйвера видеокарты и конфиг будет работоспособен.

Затем идет последняя опция описывающая совокупность параметров монитора и видеокарты, выглядит она так:

Section "Screen"
       Identifier "Screen0"
       Device     "Card0"
       Monitor    "Monitor0"
       SubSection "Display"
               Viewport   0 0
               Depth     1
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     4
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     8
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     15
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     16
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     24
       EndSubSection
EndSection

В ней описаны все варианты глубины цвета, что излишне. Мы будем использовать максимальную глубину (24) и принудительно установим Modeline. После изменений секция будет выглядеть так:

Section "Screen"
       Identifier "Screen0"
       Device     "Card0"
       Monitor    "Monitor0"
       DefaultDepth    24
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Modes      "1024x768_60.00"
       EndSubSection
EndSection

Параметр DefaultDepth означает что "по умолчанию" будет использована глубина цвета 24, параметр Modes указывает на Modeline который мы вычисляли при помощи утилиты gtf.

В итоге xorg.conf будет выглядеть следующим образом:

Section "ServerLayout"
       Identifier    "X.org Configured"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option            "AllowEmptyInput" "off"
EndSection

Section "Files"
       ModulePath   "/usr/local/lib/xorg/modules"
       FontPath     "/usr/local/lib/X11/fonts/misc/"
       FontPath     "/usr/local/lib/X11/fonts/TTF/"
       FontPath     "/usr/local/lib/X11/fonts/OTF"
       FontPath     "/usr/local/lib/X11/fonts/Type1/"
       FontPath     "/usr/local/lib/X11/fonts/100dpi/"
       FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
       Load  "extmod"
       Load  "record"
       Load  "dbe"
       Load  "glx"
       Load  "dri"
       Load  "dri2"
EndSection 

Section "InputDevice"
       Identifier     "Keyboard0"
       Driver         "kbd"
       Option         "XkbLayout" "us,ru(winkeys)"
       Option         "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/psm0"
       Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
       Identifier   "Monitor0"
       VendorName   "BENQ"
       ModelName    "FP51G"
       Modeline "1024x768_60.00"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync
EndSection

Section "Device"
       Identifier  "Card0"
       Driver      "intel"
       VendorName  "Intel Corporation"
       BoardName   "82945G/GZ Integrated Graphics Controller"
       #BusID       "PCI:0:2:0"
EndSection 

Section "Screen"
       Identifier "Screen0"
       Device     "Card0"
       Monitor    "Monitor0"
       DefaultDepth    24
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Modes      "1024x768_60.00"
       EndSubSection
EndSection

Сохраняем файл (/etc/X11/xorg.conf), логинимся в качестве пользователя и набираем команду startx. Если все сделано правильно, то на экране мы увидим запуск графического интерфейса:

Xorg small.png

На экране появится несколько вирутальных терминалов xterm, для выхода следует набрать exit в левом терминале. В данном случае при запуске X-сервера командой startx отрабатывает общесистемный скрипт который запускает менеджер окон twm и несколько терминалов. Установку и настройку менеджера окон мы рассмотрим в следующих заметках.

P.S. помните, работать в системе следует только в качестве пользователя, переключаться в суперпользователя root следует только для выполнения административных действий. Работать в X в качестве суперпрользователя КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ!