Содержание

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

Настройка Х-сервера и XDM/XDMCP (продолжение)

Раздел "Device" отвечает за настройку работы видеоадаптера в Х-Windows. После обязательного параметра Identifier следует не менее обязательный параметр Driver, который определяет соответствующий видеокарте драйвер. Список доступных вашей версии XFree86 драйверов можно просмотреть выполнив команду:

$ ls /usr/X11R6/lib/modules/drivers
apm_drv.o        dummy_drv.o     nsc_drv.o            sis_drv.o
ark_drv.o        fbdev_drv.o     nv_drv.o             tdfx_drv.o
ati_drv.o        glint_drv.o     r128_drv.o           tga_drv.o
atimisc_drv.o    i128_drv.o      radeon_drv.o         trident_drv.o
chips_drv.o      i740_drv.o      rendition_drv.o      tseng_drv.o
cirrus_alpine.o  i810_drv.o      s3_drv.o             vesa_drv.o
cirrus_drv.o     linux           s3virge_drv.o        vga_drv.o
cirrus_laguna.o  mga_drv.o       savage_drv.o
cyrix_drv.o      neomagic_drv.o  siliconmotion_drv.o

Название видеодрайвера следует писать без суффикса “_drv.o”, например:

Driver "radeon"

Универсальные драйверы vga и vesa, предназначены для работы соответственно в режимах VGA и VESA-совместимых. Их следует использовать лишь в случае крайней необходимости, если не получится запустить Х-сервер с родным драйвером видеоадаптера.

Параметр BusID отвечает за расположение видеокарты в определенном слоте расширения персонального компьютера. Для видеоадаптеров с интерфейсом PCI/AGP имеет формат PCI:номер шины:номер устройства:функция. Например, для AGP-карт он записывается в такой форме:

BusID "PCI:1:0:0"

В случае использования нескольких видеоадаптеров или видеоадаптеров с функцией multi-head применение параметра BusID обязательно. Также данный параметр может пригодиться при настройке систем со встроенной видео-картой. Часто в моей практике мне доводилось сталкиваться с компьютерами, которые имели интегрированное видео, которое не поддерживалось проектом XFree86 версии 4.х. Устанавливая внешнюю видео-карту необходимо правильно прописать параметр BusID для использования ее совместно с Х-сервером.

Параметр Screen отвечает за номер монитора для данной конфигурации видеоадаптера, и применяется лишь в том случае, когда ваша видео-карта может одновременно выводить разное изображение на два и больше мониторов и вы используете эту возможность. По умолчанию считается, что видео-карта работает с монитором, которому присвоен условный нулевой номер. При настройки системы X-Windows на работу с несколькими мониторами, для каждого их них следует создавать отдельный раздел "Device" c уникальным номером Screen.

Параметр VideoRam позволяет задать объем доступной видеопамяти в килобайтах. Применять данный параметр следует лишь в крайних случаях, так как большинство видео-карт автоматически, при помощи своего драйвера, определяют это значение.

ChipID и ChipRev позволяют пользователю принудительно установить номер и версию видеочипа, который установлен на видео-карте, и тем самым перекрыть значения, полученные автоопределением. Необходимость в применении этих параметров иногда возникает при работе с новыми устройствами, для которых еще не написаны соответствующие драйвера, а используя номер и версию видеочипа предыдущего поколения, иногда получается заставить их работать в X-Windows, конечно только в том случае, если для видеоадаптеров справедливо утверджение об обратной совместимости.

Для задания особых параметров работы видеокарты можно использовать опцию Option, которая может принимать как стандартные значения для любого драйвера Х-сервера, так и специфические, узнать о которых можно из документации, сопровождающей видеодрайвер. Список общедоступных значений параметра Option в ХFree86 версии 4.х достаточно большой, но в реальной работе пользователя заинтересуют лишь некоторые:

Option "NoAccel" – запрещает использование XAA (X Acceleration Architecture), то есть акселерацию выполнения 2-х мерных операций Х-сервером. Применять данный параметр рекомендуется лишь в крайнем случае некорректного поведения видеодрайвера, например, при появлении на экране артефактов (искажения изображения на мониторе). Данная команда эквивалентна запрещению использования таких составляющих архитектуры XAA, как:

XaaNoCPUToScreenColorExpandFill
XaaNoColor8x8PatternFillRect
XaaNoColor8x8PatternFillTrap
XaaNoDashedBresenhamLine
XaaNoDashedTwoPointLine
XaaNoImageWriteRect
XaaNoMono8x8PatternFillRect
XaaNoMono8x8PatternFillTrap
XaaNoOffscreenPixmaps
XaaNoPixmapCache
XaaNoScanlineCPUToScreenColorExpandFill
XaaNoScanlineImageWriteRect
XaaNoScreenToScreenColorExpandFill
XaaNoScreenToScreenCopy
XaaNoSolidBresenhamLine
XaaNoSolidFillRect
XaaNoSolidFillTrap
XaaNoSolidHorVertLine
XaaNoSolidTwoPointLine

Option "NoMTRR" – запрещает использование технологии MTRR (Memory Type Range Register), которая значительно увеличивает скорость отображения видеоинформации. Причина использования этой опции – некорректное поведение некоторого аппаратного обеспечения и ошибочная реализация поддержки MTRR определенными видеодрайверами системы XFree.

Раздел "Screen" предназначен для консолидации информации в разделах “Device” и “Monitor”. Для этого за уже обязательным параметром Identifier следует использовать параметры Device и Monitor, со ссылками на соответствующие разделы файла конфигурации.

Параметр DefaultDepth (синоним DefaultColorDepth) указывает на глубину цвета (в битах) по умолчанию, и может принимать значение 1, 4, 8, 15, 16, 24 и 32 (на практике, редко используются значения ниже 16). Если опустить данный параметр, то Х-сервером будет задействовано значение по умолчанию, которое присуще драйверу видеоадаптера.

Параметр DefaultFbBpp указывает на глубину цвета для фрейм-буфера.

Каждый раздел "Screen" должен содержать один или более подразделов "Display", которые отвечают за параметры работы монитора и видеокарты при различной глубине цвета. Данный подраздел может использовать такие парамеры:

Depth – определяет глубину цвета в битах для подраздела;

FbBpp – соответствует формату хранения изображения во фрейм-буфере;

Weight – применяется только для драйверов, которые поддерживают различные наборы распределения количества бит на RGB цвет. Характерен только для режима 16 бит;

Virtual – задает действительное разрешение экрана, которое будет использоваться. Например, если используется такой параметр:

Virtual 800 600

А пользователь попытался перевести монитор в режим 1024х768, то реальным останется режим 800х600, при этом на экране монитора будет отображаться рабочий стол значительно большего размера (1024х768), частично с прокруткой. Лучше проиллюстрировать данную ситуацию поможет рисунок 3.4:

Рис. 3.4. Применение параметра Virtual

ViewPort – помогает задать координаты верхнего левого угла экрана, когда реальное разрешение экрана не совпадает с виртуальным. Если данный параметр опущено, то изображение рабочего стола будет отцентрировано в виртуальном экране.

Modes – указывает все допустимые режимы для подраздела "Display". Если значений больше одного, то они перечисляются через пробел, например:

Modes "1024x768" "800x600" "640x480"

Имена режимов работы монитора могут быть как встроенными VESA, так и нестандартными из раздела “Monitor”. При инициализации Х-сервера будет выбран первый правильный режим параметра Modes из подраздела "Display", который отвечает глубине цвета установленной по умолчанию (параметр DefaultDepth).

Другие параметра раздела “Screen” и подраздела "Display" применяют редко, поэтому не будем на них останавливаться.

Последним разделом в нашем примере файла конфигурации Х-сервера идет “DRI”. Его параметры определяют особенности использования Direct Rendering Infrastructure, которая отвечает за 3-х мерные функции X Window System, а следовательно интересна только очень узкому кругу специалистов. Дополнительную информацию по поводу применения технологии DRI можно найти на сайте http://www.xfree86.org/current/DRI.html.

Надеюсь, что изложенных выше знаний вам хватит для внесения изменений в файл /etc/X11/XF86Config, но прежде чем приступить к его правке, я настоятельно рекомендую сделать резервную копию этого файла:

# cd /etc/X11/
# cp XF86Config XF86Config.BACKUP

За запуск графического Х-сервера сразу при старте операционной системы Linux отвечает файл /etc/inittab, а в частности такая его строка:

$ grep initd /etc/inittab
#   0 - halt (Do NOT set initdefault to this)
#   6 - reboot (Do NOT set initdefault to this)
id:5:initdefault:

В дистрибутивах операционной системы Linux основанных на RedHat графическим уровнем выполнения является пятый. Именно на нем происходит запуск Х-сервера в сценарии /etc/X11/prefdm. Если вы столкнулись с ситуацией, когда из текстового режима вам вручную нужно запустить Х-сервер, то вы всегда можете воспользоваться сценарием startx.

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

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