Глава 15. Настройка видео и X Window

15.1. Введение

Проблема

X Window System является основой графического интерфейса Windows. Все оконные менеджеры и графические среды — XFce, Enlightenment, KDE, Gnome и т. д. — работают на базе X.

X Window System — воистину удивительная система. Вы можете работать в графической среде, одновременно открывать текстовые консоли и легко переключаться между ними. Функции X Window System не ограничиваются графическим выводом; система также является сетевым протоколом. Через неё даже можно подключаться к удалённым системам (см. главу 17).

Хотя X Window System всегда считалась стандартом графики Linux, в последнее время растёт число сторонников новой оконной системы X.org. Это ответвление проекта XFree86™, которое внезапно завоевало популярность, когда в XFree86 версии 4.4 были приняты лицензионные изменения, потенциально несовместимые с GPL. Fedora и Mandrake первыми перешли на X.org. Возможно, к моменту, когда вы будете читать эту книгу, все остальные последуют их примеру. А может быть, в этой области будет царить неразбериха, и появится ещё одно различие между дистрибутивами на беду неосведомлённым. Чтобы узнать номер версии XFree86 для вашей системы, введите команду:

$ XFree86 -version

То же самое для X.org:

$ X.org -version

Система X.org в настоящее время очень близка по функциональности к XFree86; различаются в основном имена и местонахождение конфигурационных файлов. Вероятно, со временем появятся и более существенные различия.

С X Window System связано немало запутанных терминов и неудобных сокращений. Приведу несколько определений:

Чтобы не усложнять себе жизнь, будем просто называть её «X».

Оборудование

Любой видеоадаптер работает в Linux; даже самая экзотическая карта сможет работать в универсальном режиме VGA (640x480, 16 цветов). В большинстве основных дистрибутивов Linux имеются хорошие средства конфигурации видеосистемы, которые идентифицируют оборудование и автоматически находят драйверы. Крайне маловероятно, что вам когда-либо придётся редактировать X86Config (разве что для включения аппаратного ускорения или для настройки многоэкранного вывода).

Многие видеоадаптеры комплектуются драйверами для Linux и обеспечивают хорошую скорость выполнения 2D-операций. Таким образом, для повседневных задач (электронная почта, веб, электронные таблицы, набор текстов и т. д.) подойдёт практически любой адаптер. С аппаратными 3D-ускорителями потребуется чуть больше усилий, но для компьютерных игр, систем автоматизированного проектирования или трёхмерного моделирования аппаратное ускорение абсолютно необходимо.

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

Производительность видеокарты ограничивается типом слота, в который она вставляется. Карты PCI работают медленнее всего. Разъём AGP работает гораздо быстрее и присутствует на всех современных платах. Существует несколько разновидностей AGP:

Стандарты AGP обладают прямой и обратной совместимостью; новые карты можно устанавливать на старых материнских платах, и наоборот. Тем не менее установка новой, высокопроизводительной карты на старой плате означает, что вы не получите всего быстродействия, за которое заплатили.

Драйверы

Для обеспечения аппаратного ускорения графики в Linux можно воспользоваться DRI (Direct Rendering Infrastructure) и видеокартой, поддерживаемой в Linux. В XFree86 имеется встроенная поддержка DRI. В настоящее время поддержка XFree86/DRI имеется для следующих чипсетов: 3dfx, Gamma, Intel i8x0, Matrox, ATI Rage, ATI Radeon, Mach64 и Sis300. Обновлённую информацию о поддерживаемых чипсетах можно найти на сайтах http://xfree.org и http://dri.sourceforge.net.

Другой способ основан на использовании драйверов, предоставленных производителем. Например, nVidia поставляет собственные драйверы и модули ядра, распространяемые только в двоичном виде; в настоящее время это единственный способ обеспечения аппаратного ускорения для адаптеров nVidia. Для работы в 2D-режиме без ускорения можно воспользоваться драйвером nv с открытыми текстами.

Некоторые карты ATI и Matrox полностью поддерживаются драйверами с открытыми текстами, в других случаях для полноценной работы карты требуются двоичные драйверы. Как обычно, информацию стоит поискать перед покупкой.