Меню Рубрики

Установка opengl библиотеки ubuntu

Linux.yaroslavl.ru

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.

Читайте также:  Установка плагина java для яндекса

В принципе, можно теперь приступать к конфигурированию собственно 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 .

Читайте также:  Установка бензонасоса хонда дио

Теперь следующая проблема. Большинство производителей оснащают видеокарты с чипами 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.

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

источник

OpenGL программирование/Установка/Linux

Содержание

Установка OpenGL на Linux [ править ]

Большинство дистрибутивов Linux опираются на Mesa3D проект что бы обеспечить реализацию OpenGL. Они регулярно поставляют OpenGL библиотеки, а так же OpenGL ES 1.x и 2.0.

Точные имена пакетов необходимых для установки сильно зависят от дистрибутива. Ссылаясь на пакеты вашего дистрибутива, вы можете спасти себя от траты времени и головной боли в установке. Используйте ваш любимый менеджер пакетов и поиск по названию пакета. Вам, возможно, потребуется установить пакеты, с DEV суффиксом, это пакеты разработки (обычно файлы заголовков). Также смотрите в пакетах с lib-префиксом, которые относятся к библиотекам.

Установите GCC C/C++ компиляторы и связанные с ними инструменты, такие как make.

Читайте также:  Установка датчика руля на мерседес спринтер

В общем, установите следущее:

Библиотеки [ править ]

В этом Викиучебнике, мы будем использовать GLEW, FreeGLUT и GLM, убедитесь, что вы установите библиотеки разработчика (примечание переводчика dev библиотеки):

Если GLM не доступен в вашем репозитории, у вас есть возможность установить его вручную. Убедитесь, что заголовки размещены в каталоге /usr/include/glm . Так как это только заголовки библиотеки, вам не нужно компилировать .so библиотеки — просто скопируйте код.

Драйверы [ править ]

OpenGL является основным API 3D-графики в GNU/Linux-based системах. Если ваше устройство поддерживает 3D ускорение на GNU/Linux, оно, вероятно, включает в себя OpenGL.

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

Фирменные варианты [ править ]

Компания Nvidia обеспечивает в целом хороший, но не свободный драйвер nvidia. fglrx драйвер для многих современных устройств AMD; он также имеет закрытый исходный код и доступен на сайте AMD.

Свободные/Open-Source варианты. [ править ]

Если ваш процессор Intel с встроенной графикой, то необходимые драйверы с открытым исходным кодом поставляются в качестве стандартной части ядра Linux.

Если у вас установлен один из новейших чипов, вам возможно придётся использовать посредственный fglrx драйвер. Однако AMD выпустила спецификации для своих чипов, ‘Radeon’ с открытым исходным кодом сделал свой путь, для того чтобы стать полнофункциональным 2D и 3D драйвером.

По состоянию на июнь 2013 года, большинство чипов AMD хорошо работают с исходным драйвером «Radeon». 3D производительность с драйвером AMD Catalyst на современных картах еще лучше, но это может измениться в будущем. Можете проверить таблицу характеристик.

Nouveau драйвер с открытым исходным кодом поддерживает чипсеты NVIDIA, но в момент написания не так полон, как драйвера с закрытым исходным кодом от NVIDIA, поддержка 3D может быть не удовлетворительна.

Драйвер OpenGL на Linux-системах состоит из двух файлов:

А так же многие OpenGL приложения требуют libGLU.so; Операции GLU не могут быть аппаратно ускоренны, поэтому реализация Mesa является отличным вариантом.

Проверьте ваши сведения о OpenGL [ править ]

Введите это в терминале, чтобы получить больше информации о вашем OpenGL драйвере, включая поддерживаемые расширения:

IDEs [ править ]

The tutorials will mostly rely on simple Makefile s to build the code, and let you edit the source with your favorite text editor, such as Emacs, vim, gedit, kwrite, etc.

Several IDEs exist for GNU/Linux, such as:

It is very simple to adapt the Makefiles to these environments.

Installing your own OpenGL headers [ править ]

In the unlikely event that your distribution does not supply packages for Mesa3D, you can build it from source with the usual

installation procedure; however, be careful of conflicting opengl libraries.

Mesa’s software implementation may override your distribution’s libraries or libraries manually installed, such as the nvidia or fglrx OpenGL binaries. When this happens, search all directories listed with

for libGL.so. The following command should output all the different OpenGL libraries available on your system:

It is usually OK if you have one the mesa library plus the proprietary library. On 64-bits systems, you may also have the lib32 library. Additional copies of libGL.so found in the ld search path (specified in /etc/lf.so.conf by default), if not referring to the same file, usually indicates a conflict. Remove all but the copy you want executed.

The headers will be installed to $PREFIX/include/GL (usually /usr/include/GL when installed from a packaged, or /usr/local/include/GL when installed manually from source).

«Official» OpenGL headers are available from SGI, however, they are hopelessly out of date.

источник

Добавить комментарий

Adblock
detector