CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

На Radость пингвинам

Сергей А. ЯРЕМЧУК grinder@ua.fm

Linux потихоньку пробивается на компьютеры пользователей, а среди них, как известно, находятся любители поиграть — для них важна поддержка 3D. Владельцам видеокарт на базе чипов nVidia легче — скачиваем драйверы с сайта компании http://www.nvidia.comпод вашу версию ядра Linux, а далее устанавливаем согласно инструкции. Но в последнее время стали пользоваться популярностью, и вполне заслужено, видеокарты на чипах конкурента — ATI. О настройке поддержки 3D в Radeon'ax и пойдет далее речь.

Самое интересное, что в большинство дистрибутивов такая поддержка включена изначально, и для ее активации не хватает всего лишь пары строк в конфигурационных файлах. Но сейчас понемногу растет популярность самосборных дистрибутивов — для их владельцев остановимся на этом вопросе детальнее.

В четвертой версии XFree86 (http://www.xfree86.org), как и в ядре серии 2.4.*, реализована технология DRI (Direct Rendering Infrastructure), позволяющая включить аппаратную поддержку 3D-графики. Это специальная программная архитектура для координации работы ядра Linux, системы X-Window (см. статью «Настройка X-Window», МК №26-27 (249-250)), аппаратной поддержки 3D-графики и OpenGL-движка. В отличие от nVidia, которая предоставляет уже откомпилированные версии своих драйверов, ATI всячески поддерживает DRI-проект, и драйвера для ее карт поставляются в исходных текстах, что позволяет встроить их в ядро. В настоящее время ядром 2.4.20 поддерживается DRI для следующих карт: 3dfx Banshee/Voodoo3+, ATI Rage 128, ATI Radeon, Intel I810, Intel 830M, Matrox g200/g400 и SiS, поэтому большинство нижесказанного касается и их, за исключением разве что опций конфигурирования X-Window. Но и это не все: при компиляции ядра с поддержкой DRI для соответствующей карты есть возможность вместо старых драйверов установить/подменить более свежую версию, и никто не догадается о подвохе. Но обо всем по порядку. Для всех действий понадобятся права root, и желательно, но для любителей острых ощущений необязательно, сделать бэкап всех упоминаемых в статье каталогов, чтобы в случае неудачи можно бы было спокойно вернуться к рабочей конфигурации.

Установка библиотек OpenGL.

Для начала необходимы библиотеки поддержки OpenGL (о DirectX, как вы понимаете, и речи быть не может). Марка OpenGL является зарегистрированным торговым знаком Silicon Graphics, Inc, в простонародье просто SGI. Естественно, за библиотеки такого уровня обычно требуют баксюки, причем иногда немалые, но нас это мало должно волновать, так имеется свободная версия библиотек, совместимых с API OpenGL от SGI —Mesa от Брайана Пауля (Brian Paul). Проект существует и развивается уже давно, с августа 1993 года, первая версия библиотек увидела свет в феврале 1995, после чего у Брайана появилось довольно много добровольных помощников. Эти библиотеки эмулируют API библиотек OpenGL и разрабатываются с разрешения Silicon Graphics, но автор предупреждает, что не имеет лицензии от этой компании, также упоминает о возможной несовместимости продукта. В ноябре 2002 вышла в свет пятая версия Mesa, которая эмулирует API OpenGL версии 1.4. Если в вашем дистрибутиве нет Mesa-библиотек (что очень легко проверить, убедившись в наличие файлов libGL и/или libMesa, которые обычно находятся в /usr/X11R6/lib), их, естественно, придется сначала установить. В различных дистрибутивах пакеты могут называться по-разному, например, в RedHat 9 это XFree86-Mesa-libGL-4.3.0-2.i386.rpm, в АLTLinux —Mesa-4.0.2-alt1.i586.rpm, так что придется немного поискать. Зато, собрав OpenGL-библиотеки из исходников, можно увеличить производительность 3D процентов этак на двадцать. А посему идем на сайт http://www.mesa3d.orgи скачиваем оттуда последнюю версию (1.58 Мб), для интереса можно скачать и демки (870 Кб) которые предлагаются на сайте, или трехмерный анализатор спектра в виде плагина к XMMS. Далее все просто:

Поздравляю, вы сделали это. Теперь проверяем результат:

Эта команда выдаст все, что она думает об установленном OpenGL. А чтобы воочию увидеть результат своей деятельности и заодно измерить fps, даем команду # glxgears.

Единственная неприятность может подстерегать при запуске приложений. Выглядит она примерно так:

Т.е. программа не может найти библиотеку libGL.so.1. Решается проблема в большинстве случаев очень просто — создается символическая ссылка с требуемым именем: # ln -s /usr/X11R6/lib/libGL.so.1.2 /usr/X11R6/lib/libGL.so.1 (или сразу в /usr/lib) и дается команда /sbin/ldconfig.

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

В секции Character Devices необходимо выбрать пункты /dev/agpgart(AGP Support), Direct Rendering Infrastructure и, наконец, определить используемую видеокарту — в нашем случае это ATI Radeon DRI 4.x driver. Все это должно компилироваться как модули. Дополнительно, для того чтобы указать процессору, что некоторые участки памяти (framebuffer и апертуры регистра видеокарточки) должны обрабатываться иначе — это ускоряет вывод 2D и рекомендуется для 3D, — во вкладке Processor type and features включаем MTRR (Memory Type Range Register). MTRR — это регистры, определяющие тип кэширования памяти для процессоров Intel Pentium Pro и выше (а также K6-2 и выше).

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

Конфигурирование системы X-Window

Открываем файл XF86Config/XF86Config-4 в любимом текстовом редакторе и правим. В секции Section "Module" добавляем следующие строки:

А в Section "Device" проследите, чтобы обязательно было написано:

Впрочем, я встречал в рекомендациях и Driver "radeon" — если не будет получаться, то попробуйте и этот вариант, хотя, как мне кажется, это ошибка. Для карт Matrox пропишите Driver "mga", 3dfx Voodoo —tdfx, Intel —i810. Все, сохраняемся и выходим. После чего убиваем Х-сервер при помощи Ctrl+Alt+Backspase и наслаждаемся результатом. Для этого снова запускаем glxgears. При этом в /var/log/XFree86.0.log должно появиться "dri enabled". Если что-то не получилось, пробуем загрузить модуль ядра вручную — теоретически, Х-сервер должен сам его разыскать и загрузить. Все имеющиеся на данный момент модули можно найти в /lib/modules/2.4.x/kernel/drivers/char/drm/. Модуль для Radeon имеет нехитрое название radeon.o. Драйвер же DRI для Radeon (и остальных карт, поддерживающих эту технологию) должен быть в /usr/X11R6/lib/modules/dri/ и называется он radeon_dri.so. Он будет автоматически при необходимости загружен libGL.so. Для информации — 2D-драйвер Radeon имеет путь /usr/X11R6/lib/modules/drivers/radeon_drv.o.

Проверяем при помощи /sbin/lsmod (или сat /proc/dri/0), загружен ли необходимый модуль. Если нет, загружаем:

Если все ОК, то добавляем (для RedHat и К) в файл /etc/modules.conf всего одну строку —radeon, после чего необходимый модуль будет загружаться автоматически при запуске системы. Поклонникам BSD-стиля (Slackware или CRUX) придется вписать строку полностью, т.е. /sbin/modprobe radeon, в файл rc.modules, который лежит либо в /etc либо в /etc/rc.d. После всех этих действий можно спокойно и, главное, без тормозов гонять либо пингвинов на пузе, либо монстров по кваке (а кто сказал, что в Linux не играют в Квейк? Брехня!)

Как правило, после выхода очередной моей статьи я обязательно получаю несколько писем от тех читателей, у кого «гранаты не той системы» (цитата из «Белого солнца пустыни» :-)). Это может быть связано с несколькими причинами: либо у них новая версия видеокарты, не поддерживаемая ядром (хоть вообще-то базовые функции все равно должны работать), либо отсутствует желание возиться с компиляцией ядра, либо — это уже серьезнее — драйвер предусматривает какие-то новые возможности, которые отсутствуют в свежей версии ядра. Выходом в данной ситуации будет установка правильных драйверов — незачем полностью скачивать (около 50 Мб) и затем пересобирать ядро, новые версии которого выходят не так уж и часто. Драйвера для ATI'шных карт можно откопать в Интернете аж в двух местах. Первое, что приходит в голову, — это официальный сайт ATI (http://www.ati.com/), на котором можно взять как закрытые драйвера, так и свободные их версии. Но я бы лучше пошел сразу на сайт проекта DRI (http://dri.sourceforge.net/home.phtml), где обычно лежат snapshots самых свежих версий драйверов. Качаем нужный (для Radeon'ов самый большой архив — 3.13 Мб), после чего распаковываем и запускаем скрипт install.sh (любители могут распихать по каталогам и вручную). Все. Свежак! Опции настройки для других видеокарт можно подсмотреть в DRI User Guide, который лежит тут же на сайте, в разделе 10. Hardware-Specific Information and Troubleshooting.

Работа с VIVO

Теперь следующая проблема. Большинство производителей оснащают видеокарты с чипами Radeon видеовходом/выходом — грех было бы не воспользоваться возможностью посмотреть фильм на телевизоре или захватить пару интересных кадров. Есть проектец, который помогает решить и эти проблемы —GATOS (http://gatos.sourceforge.net), предусматривающий поддержку большинства распространенных чипов. По этому адресу можно найти усовершенствованный драйвер ati.2, позволяющий воспользоваться этой возможностью, при этом поддерживаются на настоящий момент карты от Mach64 до Radeon 9700. Единственное — надо быть внимательным и скачивать драйвер именно под свою версию Х-Window, например, для 4.3.0 это будет ATI-4.3.0-9.i386.tar.gz. Установка заключается в распаковке архива и копировании образовавшегося каталога X11R6 в /usr, после чего все необходимые файлы в /usr/X11R6/lib/modules будут заменены новыми. Единственным дистрибутивом из попадавшихся мне в последнее время, в котором засветились gatos-драйвера, был ALTLinux. Для просмотра видео и ТВ здесь же на сайте лежит программа Avview, требующая наличия Tcl/Tk-библиотек; в большинстве дистрибутивов они уже имеются, а если нет — вперед, на http://tcl.sf.net/. Кстати, входящая в состав большинства дистрибутивов Xawtv (http://www.strusel007.de/linux/xawtv) тоже работает. При этом для захвата видео понадобится «very fast video and audio» конвертер FFmpeg (http://sourceforge.net/projects/ffmpeg) и ALSA-драйвера (http://www.alsa-project.org), а также модули ядра km (http://gatos.sourceforge.net/km.php). После стандартных #./configure && make && make install можно попробовать захватить изображение с ТВ-входа. В простейшем случае это выглядит так (в более сложном придется повозится):

Можно при помощи данной программы и собрать, например, все .jpg-изображения в один видеофайл, при этом задаются шаблоны в стиле С:

Таким образом можно даже анимированные gif'ы создавать. Программа поддерживает большинство видео- и аудиокодеков. Имеется еще одна возможность, о которой стоит упомянуть, — трансляция захваченного видео в поток, который можно транслировать в Интернет. Для этого запускается программа ffserver.

Теперь смотрим.

Здесь же на сайте дополнительно можно найти GATOS-версию DRM-модулей ядра для Radeon. Так что выбирать есть из чего.

Для управления TV-out для карт Radeon предназначена еще одна утилита командной строки —atitvout, которую можно найти http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout. Но самое интересное, что 3D можно наслаждаться не только под X-Window, есть также проект для framebuffer-консоли —-FBDRI (http://fbdri.sourceforge.net), необходимые драйвера можно скачать с (http://prdownloads.sourceforge.net/fbdri/fbdri.031202.tar.bz2). Скорость работы приложений в консоли, естественно, выше, так что пользователи более слабых компьютеров смогут наслаждаться 3D.

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

Linux forever!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov