Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

Настройка Х-сервера и XDM/XDMCP

В своей работе я использую общедоступную версию Х-сервера для платформы Intel, которая называется XFree86 (официальный сайт проекта http://www.xfree86.org), поэтому о ней и пойдет речь далее в этой книге. Если читатель до этого был знаком только с графической подсистемой операционных систем от Microsoft, то настройка Х-сервера в XFree86 покажется ему неоправданно сложным занятием. Честно признаться, но поначалу я тоже был немало смущен кажущейся сложностью этого процесса. Сразу хочу обратить ваше внимание на главные отличия, которые сопутствуют настройки Х-сервера:

  1. Отсутствие единой программы конфигурации, а также несовершенство имеющихся утилит автоконфигурирования;
  2. Все параметры работы Х-сервера хранятся в одном текстовом файле;
  3. Так как Х-сервер не является частью ядра операционной системы, то он запускается как обычная программа (можно настроить запуск в скрипте инициализации);
  4. Модульная, распределенная структура Х-сервера, подразумевает использование также сопутствующих клиентских приложений: менеджера дисплея и оконного менеджера;
  5. Не часто можно встретить драйвер устройства для Х-сервера, который раскрывает весь потенциал его аппаратных возможностей. Но зато практически все видеокарты можно запустить в VESA-совместимом режиме;
  6. При использовании специальных настроечных утилит от вас как от пользователя могут потребоваться дополнительные знания устройства компьютера, в частности параметров видеокарты, монитора, клавиатуры и манипулятора “мышь”.

Практически все дистрибутивы 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”.

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006