Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal
В своей работе я использую общедоступную версию Х-сервера для платформы Intel, которая называется XFree86 (официальный сайт проекта http://www.xfree86.org), поэтому о ней и пойдет речь далее в этой книге. Если читатель до этого был знаком только с графической подсистемой операционных систем от Microsoft, то настройка Х-сервера в XFree86 покажется ему неоправданно сложным занятием. Честно признаться, но поначалу я тоже был немало смущен кажущейся сложностью этого процесса. Сразу хочу обратить ваше внимание на главные отличия, которые сопутствуют настройки Х-сервера:
Практически все дистрибутивы Linux при установке операционной системы запускают утилиту настройки Х-сервера. Если вы не используете ультра-модную видеокарту или еще какой-нибудь эксклюзивный раритет, то в 90% случаев система сама успешно настроит Х-сервер и при первом же старте компьютер перейдет в графический режим. Но не всегда эта процедура проходит гладко, и нужно быть готовым к выполнению ручной настройки конфигурационного файла Х-сервера.
В версиях 4.х XFree86, главный конфигурационный файл Х-сервера находится в каталоге /etc/X11/ и носит название XF86Config (иногда XF86Config-4). Начиная с 4-й версии, конфигурационные файлы проекта ХFree86 претерпели значительных изменений, что не должно не радовать пользователей, так как теперь их структура стала значительно проще. Примерное содержание этого файла приведено ниже (данный файл взят с рабочего компьютера под управлением операционной системы ASPLinux 9.0, версия XFree86 4.3.0.):
# buildxconf *** delete this line to prevent buildxconf from modifying this file
#
# XF86Config auto-generated by buildxconf
#
# Copyright (c) 1999, Corel Corporation
# Robin Burgener, robinb@corel.com
#
# See 'man XF86Config' for info on the format of this file
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "DevInputMice" "AlwaysCore"
EndSection
Section "Module"
Load "GLcore"
Load "dbe"
Load "dri"
Load "extmod"
Load "fbdevhw"
Load "glx"
# Load "pex5"
Load "record"
# Load "xie"
# Load "v4l"
Load "type1"
Load "freetype"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "Protocol" "Standard"
Option "XkbModel" "pc105"
Option "XkbRules" "xfree86"
Option "XkbLayout" "us,ru,ua"
Option "XkbVariant" ",winkeys,winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
Section "InputDevice"
# If the normal CorePointer mouse is not a USB mouse then
# this input device can be used in AlwaysCore mode to let you
# also use USB mice at the same time.
Identifier "DevInputMice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "no"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.
#Option "Protocol" "Xqueue"
# Baudrate and SampleRate are only for some Logitech mice
# BaudRate 9600
# SampleRate 150
Option "ZAxisMapping" "4 5"
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)
Option "Emulate3Buttons" "off"
# ChordMiddle is an option for some 3-button Logitech mice
# ChordMiddle
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
EndSection
Section "ServerFlags"
AllowMouseOpenFail
EndSection
Section "Monitor"
Identifier "Monitor"
VendorName "HEI"
ModelName "Unknown"
HorizSync 37-68
VertRefresh 60-85
#800x600 @ 85.0 Hz, 55.8 kHz hsync
Modeline "800x600" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync
#640x480 @ 85.0 Hz, 43.3 kHz hsync
Modeline "640x480" 36 640 696 752 832 480 481 484 509 -HSync -VSync
EndSection
Section "Monitor"
#!Description "Super VGA 1024x768 @ 60Hz"
Identifier "Super-Duper VGA"
HorizSync 31.5-48.5
VertRefresh 50-90
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync
# 640x400 @ 70 Hz, 31.5 kHz hsync
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
EndSection
Section "Device"
BusID "PCI:1:0:0"
Driver "radeon"
Identifier "ATI|Radeon R200 QL [Radeon 8500 LE]"
BoardName "ATI Radeon 8500LE"
EndSection
Section "Screen"
Identifier "Screen0"
Device "ATI|Radeon R200 QL [Radeon 8500 LE]"
Monitor "Monitor"
DefaultColorDepth 16
SubSection "Display"
Depth 4
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
SubSection "Display"
Depth 8
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
SubSection "Display"
Depth 15
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
SubSection "Display"
Depth 16
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
SubSection "Display"
Depth 32
Modes "800x600" "640x480"
Virtual 800 600
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
Как видно из файла примера, структура его довольно проста и разбита на секции. Первой в файле /etc/X11/XF86Config расположена секция “ServerLayout”, в которой определяются используемые устройства ввода, а также параметры экрана Х-сервера. В разделе “ServerLayout” приведены только названия соответствующих разделов, в которых заключена более подробная информация. Следует отметить, что в системе X Windows должны существовать два ключевых устройства ввода: клавиатура и манипулятор “мышь”. В разделе “ServerLayout” они обозначаются как "CoreKeyboard" и "CorePointer". Для приведенного выше примера файла XF86Config, Х-сервер будет считать первичными клавиатуру с идентификатором “Keyboard0” и “мышку” с идентификатором “Mouse0”.