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