Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 5: Система X11

Оригинал: "Ubuntu Hacks: Chapter 5 - X11"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Совет # 52: Включаем 3-D видеоускорение

В только что установленной системе Ubuntu, подсистема X11 может быть сконфигурирована так, что она не позволит в полной мере воспользоваться возможностями вашей видеокарты. Узнайте, как использовать преимущества проприетарных драйверов и сконфигурировать вашу видеокарту для работы с максимальной скоростью.

Современные видеокарты фактически являются очень мощными маленькими компьютерами со своими собственными большими возможностями. Если их правильно настроить, то из них можно выжать максимально возможную производительность.

Измерение производительности

Чтобы увидеть, какова текущая производительность вашей системы, и получить исходную оценку, с которой можно будет сравнивать производительность, достигнутую после внесения изменений, можно для измерения производительности графических карт воспользоваться такими играми, как Unreal Tournament 2004 и Quake III, в которых есть режимы "timedemo", осуществляющие переход через определенные последовательности событий настолько быстро, насколько это возможно, и выдающие отчет о достигнутой средней скорости смены кадров. Либо можно воспользоваться утилитой glxgears (запустите glxgears -printfps), которая входит в пакет mesa-utils. Но это, в действительности, простое приложение, которое не сможет сколь-либо загрузить достаточно производительный 3-D аппаратный ускоритель, так что получаемыми в нем цифрами, указывающим частоту кадров, не следует в полной мере пользоваться в качестве эталона. Если вы в утилите glxgears получаете значение, меньше чем 2000 кадров в секунду, ваша видеокарта, вероятно, не настроена, либо, возможно, ее нужно просто заменить!

Идентификация вашей видеокарты

Чтобы ваша видеокарта работала на максимальной скорости, вы должны знать ее марку и модель для того, чтобы можно было выбрать наилучший драйвер. Как правило, устанавливаемые видеокарты являются картами PCI, PCI-X или AGP, либо они непосредственно встроены в материнскую плату. В действительности, все эти типы карт просто вариации базовой технологии PCI, и даже встроенные видеокарты являются, в основном, только устройствами PCI, которые просто сразу смонтированы на материнской плате. Поэтому вашу карту можно легко идентифицировать путем сканирования шины PCI с помощью утилиты lspci:

$ lspci -X

Флаг -X говорит утилите lspci выдавать идентификаторы устройств в формате, используемом в конфигурационных файлах X Windows, а не в своем собственном формате.

Вы также можете указать утилите lspci выдавать сообщения в "подробном" ("verbose") режиме:

$ lspci -v

Подробный режим даст вам несколько больше информации о каждом устройстве. К сожалению, флаги -X и -v нельзя объединять, так что вы должны использовать их отдельно.

Поищите в списке устройств запись, в которой указано "VGA compatible controller" ("VGA совместимый контроллер"). В строке, где указано устройство, будут также указаны изготовитель и модель. Наиболее распространенными марками высокопроизводительных 3-D карт являются карты nVidia, ATI и Matrox, хотя в некоторых встроенных видеокартах используются чипсеты от Intel и других изготовителей.

Драйверы

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

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

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

Приверженность Ubuntu поставлять только свободное программное обеспечение означает, что в базовом дистрибутиве отсутствуют двоичные драйверы, но если вы хотите добиться от 3-D карты максимальной производительности, вам нужно установить двоичные драйверы либо из репозитариев universe и multiverse, либо непосредственно с сайта изготовителя карты. Для того, чтобы получить доступ к репозитариям universe и multiverse, вам может потребоваться обратиться к разделу "Изменение списка репозитариев пакетов" [Совет # 60].

nVidia

Открытый драйвер для карт nVidia называется nv и поставляется как часть базовой установки Xorg в системе Dapper, но для обеспечения максимальной производительности установите двоичный драйвер nvidia, который является частью пакета linux-restricted-modules. Пакет linux-restricted-modules поставляется в нескольких различных вариантах, предназначенных для различных ядер, так что проверьте, с какой версией ядра вы работаете:

$ uname -r
2.6.15-17-686

Затем установите соответствующий пакет linux-restricted-modules:

$ sudo apt-get install linux-restricted-modules-2.6.15-17-686

Вам также в зависимости от конкретной модели карты необходим либо пакет nvidia-glx, либо пакет nvidia-glx-legacy. Если ваша карта старой модели, такая как TNT, TNT2, TNT Ultra, GeForce или GeForce2 - установите пакет nvidia-glx-legacy. Если речь идет о новой модели, такой как карты 4-й серии, 6-й серии, nForce, Quadro или серии FX, установите nvidia-glx:

$ sudo apt-get install nvidia-glx

Отредактируйте /etc/X11/xorg.conf - поищите строку, в которой написано что-то вроде:

Driver          "nv"

и укажите в ней проприетарный драйвер:

Driver          "nvidia"

Выйдите из сеанса GNOME. Затем, когда вы вернетесь в строку регистрации, нажмите клавиши Ctrl-Alt-Пробел для того, чтобы остановить Х-сервер, а затем снова его загрузить. Когда X перезагрузится, вы, вероятно, увидите на экране большую заставку логотипа nVidia, указывающую, что вместо используемого по умолчанию драйвера nv загружен двоичный драйвер nvidia. Вернитесь обратно в GNOME, запустите утилиту glxgears и посмотрите, увеличилась ли частота смены кадров.

ATI

Если у вас есть карта ATI, которая была автоматически сконфигурирована Ubuntu, она, вероятно, работает под управлением драйвера ati или radeon. Для обеспечения максимальной производительности карт серии "Radeon", 9-й серии, X-серии или карт ATI, имеющих телевизионный выход, можно установить драйвер fglrx, а если ваша карта модели 8500 или лучше, можно также установить проприетарный драйвер ATI.

Установить драйвер fglrx очень просто:

$ sudo apt-get install xorg-driver-fglrx

Затем отредактируйте файл /etc/X11/xorg.conf - поищите строку, в которой указан драйвер ati или radeon:

Driver          "ati"

и замените его на драйвер fglrx:

Driver          "fglrx"

Установка проприетарного драйвера ATI требует несколько больших усилий, но с самыми новыми картами можно добиться лучшей производительности. Сначала перейдите по ссылке http://support.ati.com и поищите драйвера для Linux. Скачайте инсталлятор драйвера ATI Installer, а не конкретно драйвера Xorg, поскольку он поставляется в виде RPM, а вам вместо него нужна сборка в формате .deb. Как только драйвер (очень большой!) будет загружен, установите несколько вспомогательных пакетов и сконфигурируйте драйвер. У вас всегда все будет в полном порядке, если вы для этого создадите отдельный поддиректорий:

$ sudo apt-get install fakeroot gcc-3.4 module-assistant \\ 
                    build-essential debhelper
$ mkdir ATI
$ mv ati-driver-installer-8.22.5-i386.run ATI/; cd ATI
$ chmod +x ati-driver-installer-8.22.5-i386.run
$ fakeroot ./ati-driver-installer-8.22.5-i386.run

Программа установки задаст вам несколько вопросов: ответьте "Generate distribution specific packages" ("Создать пакеты для конкретного дистрибутива"), затем - "Ubuntu ", а затем - "Dapper ". После того, как установка завершится, у вас будет замечательный маленький пакет Debian, который вы можете установить:

$ sudo dpkg -i *.deb
$ sudo module-assistant build,install fglrx-kernel

Для того, чтобы можно было использовать драйвер fglrx, отредактируйте файл /etc/X11/xorg.conf так, как это было описано выше, перезагрузите компьютер и все готово.

Matrox

Фирма Matrox также предоставляет проприетарный драйвер, который можно построить в виде модуля ядра Linux. Во-первых, установите заголовочные файлы ядра, которые будут использоваться при создании нового модуля:

$ sudo apt-get install linux header \Quname -r\Q 

Затем скачайте последнюю версию драйвера Matrox по ссылке http://www.matrox.com/mga/support/drivers/latest/.

Сборка драйвера должна выполняться с помощью компилятора GCC 3.4, так что установите его, задайте переменную окружения, которая должна указывать, что следует использовать именно эту версию компилятора, а не другие версии, и запустите программу установки:

$ sudo apt-get install gcc-3.4 gcc-3.4-base
$ export CC=gcc-3.4
$ sudo sh mtxdriver-x86_32-1.4.3.3.run

Сделайте резервную копию имеющейся у вас библиотеки ibGL, поскольку она не будет работать с драйвером mtx:

$ sudo mkdir /usr/lib/libGL.back
$ sudo mv /usr/lib/libGL.so* /usr/lib/libGL.back/

Затем отредактируйте файл /etc/X11/xorg.conf — найдите раздел Device для вашей видеокарты и измените строку Driver так, чтобы в ней был указан драйвер mtx:

Driver          "mtx"

Наконец, перезагрузите ваш компьютер для того, чтобы ядро могло загрузить новый модуль


Назад Оглавление Вперед