4.1. Настройка видеокарты и монитора
4.1.1. Что такое X.Оrg
4.1.1.1. Немного истории
В первых версиях Linux не было графического интерфейса.
В апреле 1992 года для Linux была создана система X Window - графическая подсистема Linux.
X Window (полное название X Window System) - это не графический интерфейс пользователя, это система, предоставляющая инструменты и протоколы для построения графических интерфейсов пользователя. Это позволяет в рамках X Window разрабатывать различные оконные менеджеры и графические среды. Получается, что подсистема одна - X Window, а интерфейс пользователя может быть разным. Как уже было отмечено, наиболее популярными графическими средами для Linux стали KDE и GNOME.
X Window предоставляет базовые функции графической среды, а именно прорисовку и перемещение окон на экране, обеспечение работы с клавиатурой и мышью. А вот детали графического интерфейса, т.е. как именно будет выглядеть окно и различные элементы GUI (Graphic User Interface) определяют оконные менеджеры. С одной стороны, данное решение довольно креативное: пользователь может выбрать и настроить графический менеджер так, что его графический интерфейс будет уникальным. С другой стороны, такая "разношерстность" не способствует быстрому обучению работы с Linux. Но в те времена, когда создавалась Linux, никто не думал о простых пользователях, ведь Linux была операционной системой для пользователей-профессионалов, которые с легкостью осваивались в любом графическом интерфейсе. Сегодня обычным пользователям удивится намного больше внимания. Ради справедливости нужно отметить, что современные графические среды KDE и GNOME, особенно в паре с трехмерным рабочим столом, удобнее и привлекательнее даже самого современного интерфейса Windows - Aero (используется в Windows Vista).
X Window - это сетевая система, т.е. если операционная система не поддерживает сеть, то и X Window работать не будет. Ни это не недостаток, а преимущество X Window, ведь в этой системе приложения могут выполняться на одной машине, а их интерфейс отображаться на другой. Другими словами, используя X Window, очень легко создать X-терминал - гак называемый "тонкий клиент", когда пользователь видит только результат (окно программы), а все вычисления выполняет сервер, обсуживающий терминалы. Благодаря такому решению можно использовать старые и никому не нужные компьютеры.
Сама система X Window более "древняя", чем вы можете себе представить. Первая версия X Window была разработана для UNIX в 1984 году в Массачусетсском технологическом институте (МIТ). На Linux перенос этой системы стал возможен, когда Linux стала поддерживать сеть, а это произошло в 1992 году. Протокол X11 который используется системой X Window до настоящего времени, появился в 1987 году.
Проект Х возглавляет фонд X.Org Foundation. Сейчас бесплатно распространяемая реализация системы X11 называется именно X.Org. Хотя название сути не меняет - возможности системы те же, как и конфигурационные файлы.
B книге мы будем называть графическую подсистему X.Org или X Window - знайте, что имеется в виду одно и то же. Также X Window System часто называют X11, или просто X. Основные этапы развития X Window представлены в табл. 4.1.
Некоторые бывшие пользователи никак не могут отвыкнуть от Windows и неправильно называют X Window System X Windows. Не нужно употреблять это название!
Таблица 4.1. Основные этапы развития X Window
Дата | Версия | Событие/Описание |
---|---|---|
июнь 1984 | X1 | Вышла первая версия X Window, впервые используется обозначение "X" |
Январь 1985 | X6 | Первая версия, лицензированная внешними компаниями |
Сентябрь1985 | X9 | Поддержка цвета (первые версии были черно-белыми) |
Февраль 1986 | X10R3 | Первый выпуск системы в свет. т.е. за пределы MIT. Оконным менеджером по умолчанию становится uwm |
15 сентября 1987 | X11 | Первая версия текущего протокола - X11 |
25 октября 1988 | X11R3 | Создан XDM (X Display Manager) |
22 декабря 1989 | X11R4 | Используется стандартный менеджер twm (рис. 4.1), появились новые шрифты, улучшения в приложениях |
5 сентября 1991 | X11R5 | Расширенное управление цветом Xcms, появился сервер шрифтов, сервер X386 (сервер X для IBM PC-совместимых компьютеров) |
Апрель 1992 | X11R5 | Система X Window импортирована на Linux |
16 мая 1994 | X11R6 | Много новых расширений: Inter-Client Exchange; X Session Management; X Synchronization; X Image; XTEST; X input; X Big Requests; XC-MISC |
23 декабря 1996 | X11R6.3 | Последний выпуск под руководством X Consortium |
1999 | X11R6.5 | Внутренний выпуск X.Org (для внутpенного пользования), недоступен широким массам |
6 апреля 2004 | X11R6.7.0 | Первый официальный выпуск от X.Org Foundation |
8 сентября 2004 | X11R6.8.0 | Появилась прозрачность окон и много других дополнительных расширений |
10 февраля 2005 | X11R6.8.2 | То же, что и R6.8.0, но добавлена поддержка новых драйверов и устранены ошибки и уязвимости 8-й версии |
21 декабря 2005 | X11R7.0 | Версия 7.0 |
15 февраля 2007 | X11R7.2 | Текущая версия |
Рис. 4.1. Оконный менеджер twm
4.1.1.2. Основные принципы построения системы X
Еще в далеком 1984 году разработчиками X Window были определены основные принципы построения этой Системы.
• Новая возможность должна добавляться в систему только в том случае, если без неё нельзя создать какое-нибудь реальное приложение.
• Не нужно пытаться удовлетворить все мыслимые потребности, но нужно сделать систему расширяемой, чтобы она могла удовлетворять новые потребности.
• Если до конца не ясна суть проблемы, то лучше вообще отказаться от решения такой проблемы.
• Нужно использовать более простые решения, не усложнять систему. Можно решить 90% проблемы, затратив 10% сил, или решить все 100%, но затратив при этом все 100% сил. 6 этом случае нужно выбрать первый вариант (90/10).
• Нужно "изолировать" сложные места.
• Политика интерфейса пользователя должна быть "в руках" клиентов, т.е. оконных менеджеров.
С тех пор проект X придерживается этих принципов. Может быть, поэтому трехмерный рабочий стол в Linux нормально работает при 512 Мбайт операторной памяти и не требует сверхмощную видеокарту? Для сравнения: чтобы только запустить Windows Aero, нужно как минимум 1 Гбайт оперативной памяти…
4.1.1.3. Системы Х.Org и ХFrее86
Довольно часто встречается наименование XFree86. Проект XFree86 возник в 1992 году из проекта сервера Х286 (это сервер X для IВМ PC-совместимых компьютеров), Х386 разработан Томасом Роэллом и Марком Снитили. Его "пожертвовала" Консорциуму X компания Snitily Graphics Consulting Services (SGCS). С тех пор XFree86 превратился в самую популярную реализацию системы для архитектуры х86.
В мае 1999 года группа The Open Group основала проект X.Org, который должен был контролировать выпуск версий X11R6.5.1 и выше. Если вы посмотрите на табл. 14.1, то заметите, что в это время разработка X практически остановилась. Все технические инновации происходили в рамках проекта XFree86. Но в 1999 году команда XFree86 вошла в состав X.Org, чему способствовали различные компании-производители аппаратного обеспечения, которое были заинтересованы в использовании ХFrее86 вместе с Linux.
До 2003 года команда Х.Org практически бездействовала, но за это время популярность Linux (как и X) выросли. Проекты X.Org и XFree86 (последний окончательно не слился с X.Org, а вошел в организацию X.Org на правах почетного члена) стали обсуждать дальнейшее развитие X. Но XFree86 в феврале 2004 года выпустил версию 4.4. Все бы ничего, но данная версия была выпущена под ограниченной лицензией. Многие проекты, например, FSF и Debian, посчитали этот пункт несовместимым с условиями GNU GPL. Другие заявили, что такая лицензия противоречит духу Х. Одним словом, XFree86 стал более закрытым, чем он был до этого…
4.1.2. Конфигурирование Х.Оrg
Сначала ми рассмотрим настройку X.Org вручную - с помощью конфигурационного файла, а потом с помощью программы-конфигуратора.
4.1.2.1. Основной конфигурационный файл
Основной конфигурационный файл /etc/X11/xorg.conf состоит из следующих секций.
• Files - пути к файлам, которые используются графической подсистемой, обычно тут указываются пути к шрифтам. Данная секция может отсутствовать, если используются только стандартные шрифты.
• Server Flags - различные флаги (параметры) сервера, обычно данная секция отсутствует.
• Module - используется для подключения разных модулей, если модули не подключаются, то секция может отсутствовать.
• InputDevice - секция описывает параметры устройств ввода, т.е. клавиатуры и мыши.
• Monitor - секция описывает параметры монитора.
• Device - используется для задания параметров видеокарты,
• Sсreen - описывает экран. Здесь описывается, какую видеокарту и какой монитор нужно использовать. В конфигурационном файле может быть описано несколько мониторов и несколько видеокарт, но в Screen нужно обязательно указать, какие из них нужно использовать.
• ServerLayout - описывает экран и устройства ввода (точнее описывает секции, где описаны экран и устройства ввода).
В листинге 4.1 приведен типичный пример конфигурационного файла xorg.conf. Как видно из листинга, секция Server-Layout ссылается на секции Screen0 и Keyboard0. В свою очередь секция Screen0 ссылается на секции устройств - Monitor0 (описывается монитор) и Videocard0 (описывается видеокарта). В секции Screen описаны различные режимы работы монитора/видеокарты (разрешение, глубина цвета).
Листинг 4.1. Пример конфигурационного файла xorg.conf
# XOrg Configuration created by system-config-display
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSectIon
Section "Files"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Section "Module"
Load "glx"
EndSection
Section "ServetFlags"
Option "AIGLX" "on"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pcl05"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll
EndSection
Section "Monitor"
Identifier "Monitor0"
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Busid "PCI:1:0:0"
Option "AddARGBVisuals" "True"
Option "AddARGBGLXVisuals" "True"
Option "NoLogo" "True"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
Defaultdepth 24
SubSection "Display"
Depth 1
Modes "1260x1024" "1024x769" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 4
Modes "1024x786" "800х600" "640x480"
EndSubSection
SubSection "Display"
Depth 3
Modes "1024x768" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
EndSubSection
Subsection "Display"
Depth 16
Modes "1024x786" "800x600" "640x460"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubsection
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
В главе 5 мы поговорим о более тонкой настройкe X.Org
4.1.2.2. Конфигуратор system-config-display
Для настройки графической подсистемы используется конфигуратор system-config-display. С его помощью вы можете изменить монитор, видеокарту, разрешение монитора, а также настроить совместную работу двух мониторов. Мы рассмотрим все, кроме настройки двух мониторов - это довольно частный случай.
Запустите system-conflg-display (команда меню Система→Администрирование→Дисплей). На вкладке Параметры раскрывшегося окна Параметры дисплея можно установить разрешение и глубину цвета (рис. 4.2).
На вкладке Оборудование можно выбрать монитор и видеокарту (рис. 4.3).
Данный конфигуратор может работать в консоли, если графический интерфейс недоступен вследствие неправильного выбора видеокарты/монитора. Если вы хотите установить новый монитор, то рекомендую понизить разрешение по 800×600, затем выключить компьютер, подключить новый монитор и установить нужное разрешение.
Рис. 4.2. Выбор разрешения и глубины цвета
Рис. 4.3 Выбор видеокарты