Как установить opengl на linux mint

Обновлено: 02.07.2024

Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным

У меня система KDE Neon 5.21 - по большому счету - Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150

1. Устанавливаем драйвер

a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:

Если у вас система на GTK то с помощью это команды:

Хотя разницы принципиальной нет

b) Затем запускаем ее с правами root

Можно так же добавить ярлык для запуска в меню приложений

Инструкция для KDE

/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием

И файл software properties qt.sh в той же папке:

После перезагрузки ярлык появится в меню

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

c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server


d) После установки перезагружаем устройство

2. Настраиваем видеокарту

a) Загружаем следующую программу:

b) Переходим в PRIME Profiles Здесь мы видим три пункта:

NVIDIA (Performance Mode) - работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически

NVIDIA On-Demand - некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше

NVIDIA (Power Saving Mode) - отключение дискретной графики

Выбираем второй вариант - NVIDIA On-Demand , и перезагружаем систему


3. Запуск приложения с использованием дискретной графики

Это то, что сложнее всего гуглилось.

Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:

для Vulkan только:

Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:

Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или "изменить приложение. "), перейти во вкладку "приложение" и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein - Blade of Agony

Пример: ярлык игры Wolfenstein - Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

Заключение

Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)

Большинство дистрибутивов 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.

Если ваш процессор 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 драйвере, включая поддерживаемые расширения:

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.

Существует несколько IDE для GNU/Linux, такие как:

  • Code::Blocks
  • Anjuta
  • KDevelop
  • Eclipse CDT

Очень просто преспособить Мейкфайлы к этим системам.

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.

Этот miniHOWTO описывает способ, как установить драйвера OpenGL под Linux для видеокарты Nvidia. В дополнение к этому, документ объясняет, как установить XFree86, библиотеку OpenGL Utility (часть библиотеки Mesa), OpenGL Utility Toolkit (glut), полный набор страниц руководства по OpenGL, а также библиотеку Qt и ее расширения OpenGL, т.о. пользователи будут иметь основу для разработки OpenGL приложений под Linux.

Table of Contents 1. Введение 1.1. Новые версии этого документа 1.2. Copyright Information 1.3. Авторские права 1.4. Ответственность 2. Загрузка пакетов программ 3. Установка XFree86 4. Установка Mesa 5. Установка драйверов Nvidia OpenGL 6. Установка Qt 7. Установка GLUT 8. Заключительные комментарии

Этот miniHOWTO описывает способ, как установить драйвера OpenGL под Linux для видеокарты Nvidia. В дополнение к этому, документ объясняет, как установить XFree86, библиотеку OpenGL Utility (часть библиотеки Mesa), OpenGL Utility Toolkit (glut), полный набор страниц руководства по OpenGL, а также библиотеку Qt и ее расширения OpenGL, т.о. пользователи будут иметь основу для разработки OpenGL приложений под Linux.

1.1. Новые версии этого документа

Последнюю версию этого документа можно найти на странице:

1.2. Copyright Information

This document is copyrighted (c) 2000 Robert B. Easter and is distributed under the terms of the Linux Documentation Project (LDP) license, stated below.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

1.3. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.

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

1.4. Ответственность

Я не несу никакой ответственности за содержание этого документа. Используйте идей, примеры и другое содержимое документа на свой страх и риск.

Все авторские права принадлежат их владельцам, если нет специального уточнения.

Упоминание специфических продуктов или торговых марок, которое имеет место в этом документе, не должно расцениваться как их подтверждение их качества.

Прежде всего драйверы OpenGL для видеокарт Nvidia требуют систему с ядром 2.2.12 или выше. Если вы не имеете его, тогда обновите вашу систему, а это уже тема другого HOWTO! Но, первый шаг должен быть сделан - это загрузка нового ядра с сайта:

Также требуется XFree86 4.0 или выше, предпочтительнее 4.01. Его инсталляция будет описана позже.

XFree86 содержится в трех файлах:

Doctools используется для подготовки X документации.

Включает glX, интерфейс для OpenGL X. Каждая графическая оконная система (MS Windows, X и т.п.) предоставляет платформенно-определенный интерфейс между OpenGL и системой, чтобы обеспечивать отображение GL контекста в окнах.

XFree86 идет только со страницами руководства glX. Если вы хотите полностью установить страницы руководства OpenGL, вы должны получить их сами.

Эти страницы руководства представлены в формате, готовом для распаковки в каталог XFree86, см. ниже.

Обеспечивает libGLU (GL Utility). GLU - библиотека предоставляет высокоуровневые функции для приложений. libGL.so - непосредственно OpenGL, является низкоуровневой библиотекой. Большинство приложений используют высокоуровневые библиотеки, подобные GLU.

Если у вас уже есть XFree86 4, необходимо установить библиотеку Mesa. GLU - стандартная часть большинства установок OpenGL и, как ожидается, она будет присутствовать в большинстве программ.

Glut обеспечивает графическую систему независимым интерфейсом между OpenGL и любой поддерживаемой графической системой. Например, в X Window скрываются подробности использования функций glX, при создании окна. Программисты могут один раз написать код и скомпилировать его для работы в MS Windows или X и т.п., при условии, что библиотека GLUT доступна на данной платформе.

Подобно GLU, GLUT - стандартная часть большинства установок OpenGL. Большинство примеров программ и даже некоторые приложения, сделаны с использованием libglut. Например, Руководство по программированию OpenGL (red book) использует Glut для своих примеров.

Вам нужно установить GLU и GLUT, если вы хотите иметь возможность компилировать большинство программ, которые можно свободно загрузить (исходный код). Некоторым программам могут даже быть необходимы эти библиотеки, если они связаны с ними динамически.

qt-x11-2.1.0.tar.gz или более новая версия

Qt имеет расширение (qt/ententions/opengl) для OpenGL, которое обеспечивает создание OpenGL контекста в программах, написаных с помощью Qt. Она обеспечивает некоторую альтернативу GLUT и использует функции glX напрямую, плюс, добавляет полный доступ к qt элементам и кросс-платформенную переносимость.

Она полезна, если вы хотите компилировать или разрабатывать программы, основанные на Qt.

Ядро должно быть по адресу: /lib/modules/2.2.16/video/NVdriver, а файлы libGL.so и libGLcore.so в каталоге /usr/lib/ и библиотека Mesa должна находится там же. libGL.so - OpenGL. Эти файлы являются средствами nvidia для аппаратного ускорения OpenGL.

XFree86 4.0.1, кажется, содержит ядро Mesa 3.3, однако в нем отсутствуют некоторые файлы libGLU*, которые требуют многие программы.

Если у вас уже есть установленная версия XFree86, вы можете переместить ее или удалить:

Если это расположение неправильно для вашего дистрибутива Linux, вы должны их найти - попробуйте посмотреть в /var

Файл должен быть отредактирован, чтобы позволить установить эти страницы руководства с остальной частью дистрибутива:

Когда вы распакуете файлы man*.tar.Z (см. выше), будут добавлены два новых каталога: gl и glu.

Когда X установлен и выполняется (позже), попробуйте использовать программу xman, чтобы просмотреть руководства gl,glx,glu и glut из секции 3.

Определение "nvidia" для драйвера в XF86Config вступает в силу при каждом запуске startx. Но драйвер NVdriver должен загружаться при каждом запуске системы:

Вы можете разместить эту команду в одном из загрузочных файлов, например /etc/rc.d/rc.modules

Проверьте qt/configs/linux-g++-shared и убедитесь, что там нет ключей содержащих слово Mesa, например -lMesaGL -lMesaGLU должны быть -lGL -lGLU. Прочитайте файл INSTALL об установке переменных окружения.

Установка GLUT имеет некоторые хитрости. Я не очень знаком с программой imake, которая используется для управления файлами Makefile. И я не совсем понял, как установить GLUT, туда куда я хотел (/usr/lib). Во любом случае, это можно сделать вручную:

К данному моменту вы должны иметь полностью функциональную систему OpenGL для выполнения и разработки OpenGL приложений.

Поможите дамы и господа, ломает без цацек на LMDE . А поиграть не могу т.к. ругается Кроссовер что не включена у меня поддержка OpenGL для видеокарты! Вот такую картину дает команда /opt/cxoffice/bin/cxdiag --debug:

Дрова ставил по этой инструкции . В том числе и потому что при попытке установить драйвер скачанный с сайта AMD у меня тупо вешалась система. Интернет облазил . fglrx-glx-ia32 устанавливал, а потом сносил его: dpkg --add-architecture i386 ; apt-get update apt-get install libgl1-fglrx-glx:i386 и все равно не пашет . При том что: glxinfo | grep 'render'


система 32 или 64 ?

glxinfo на пастебин и встудию

драйвер с сайта амд нормально ставится только в слакваре и то давно не проверял.

в остальных дистрах его не просто так перепаковывают.

у Вас наверняка есть репозиторий с драйверами для AMD|ATI в дистрибутиве.

по-крайней мере в SuSe они идут отдельно

а репозиторий от сквиза в Минт как мне кажется зря.


OpenGL version string: 4.2.11762 Compatibility Profile Context

напрягает меня чтото.

в остальном 64-битное должно работать.

рекомендую проверить чем-либо типа xonotic

есть подозрение что 32-битные драйвера могут стоять не полностью/криво.


в других вариантах в худшем случае у меня совсем падала система, в лучших падали Иксы . Буквально пару часов как восстановил опять же по той же инструкции =\


Slackware_user

есть подозрение что 32-битные драйвера могут стоять не полностью/криво.

This likely means that the 32-bit openGL libraries for your ATI card haven't been installed - this is fairly common with 64-bit distros.

это ответ суппорта кроссовера . Вопрос тогда: как правильно поставить 32 битные библиотеки, ничего акромя fglrx-glx-ia32 я не нашел, а в нем описание:

для начала найди родной репозиторий и верни родное ядро

при этом по-идее с x11-drivers-ati должно заработать 64-битное 3д.

далее ищем где в Минт лежат эти самые дрова закрытые.

накрайняк при помощи блоба с сайта делаем пакеты руками.

по-идее libgl1-fglrx-glx:i386 должен давать 3д ускорение на 32-разрдных приложениях.

но как оно в реальности врядли кто скажет, т.к. в системе стоит часть пакетов от дебиана, притом достаточно старого

Slackware_user ★★★★★ ( 10.11.12 00:02:54 )
Последнее исправление: Slackware_user 10.11.12 00:03:09 (всего исправлений: 1)

нагуглил вот что.

рекомендую снести репозиторий дебиана и попробовать выполнить что в инструкции.

т.е. поставить родную версию.


Не, не стоит! Ядро у меня родное:

поэтому первый шаг я пропускал . И с репозитория squeeze-backports я тоже ни чего не ставил т.к. при попытке обратится туда система ругалась о том что у меня какие-то компоненты новее чем требуются по зависимостям. Поэтому я опускал адрес репозитория .


Все пакеты из инструкции у меня стоят =(


Если поставить 32-разрядную glxinfo (sudo apt-get install mesa-utils:i386) и запустить её вот так:


Сейчас роюсь по выявленным ошибкам - лог но вместе с установкой mesa-utils при этом снеслось куча приложений типа компиза

direct rendering то выключен,судя по логам. значит драйвер криво стоит.


Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.

Что такое меса.
А вообще, когда игрался в игрушки, wine категорически говорил, что не видит OpenGL на видюшке и ссылался на кривопоставленные драйвера. Проблема решается обычно вытягиванием с репозитория 32битных драйверов fglrx, за которыми вытягиваются либы.


Чуть выше я писал что в синаптику висит пустой fglrx-glx-ia32 с просьбой перейти на мультиарх . переходил - без толку

с родного репозя все делалось?



Ну а со свободным драйвером у вас тоже самое?

fglrxinfo что говорит?


2 RussianNeuroMancer C фришными система зависала, но полагаю я не корректно удалял проприетарные дрова . попробую.

amdcccle - запускается и под рутом адекватно работает.


На бесплатном драйвере вообще творится Содом и Гоморра . и direct rending`a по прежнему нет . Есть еще пара зацепок, буду пробовать .

значит драйвера стоят и проблема в чем-то другом.


и direct rending`a по прежнему нет .

В 32-разрядном glxinfo или в 64-разрядном glxinfo? 32-разрядная Mesa установлена?

если дрова закрытые то ставиться должны обе сразу


32 разрядную меса ставил отдельно, при этом лишился компиза и еще кучки свистопеделок . Самое лучшее чего добиваюсь это загрузки с acpi=off но при этом не работает клавиатура . Может здесь что? У меня ограммируемая a4 tech


если дрова закрытые то ставиться должны обе сразу

Мы про открытые сейчас.


32 разрядную меса ставил отдельно, при этом лишился компиза и еще кучки свистопеделок .

Вы сейчас про установку 32-разрядного пакета mesa-utils, или про установку 32-разрядных библиотек Mesa? То что у вас снеслось ранее обратно поставьте.


Это мелочи. Походу мозг взрывается . Попробовал ставить mint14 rc с проприетарнымии дровами та же хрень, как со стабильными так и бетой .

при этом на закрытых дровах к примеру ETQW или DOOM идет?


Если честно не пробовал, ставил какой то бильярд на OpenGL тест проходил . Пробовал в кроссовке запустить day of defeat зависает . И раз я мучаюсь с видео, есть такой глюк на минт 14 рк - при установке проприетарных дров из стандартных репозитариев, получаю забавный глюк когда курсор зависает на втором мониторе - т.е. Подвожу курсор к краю первого монитора, мыша перепрыгивает на второй монитор и потом уже на первый монитор не возвращается . Как починить?


Это мелочи. Походу мозг взрывается .

Вы бы хоть записывали, что ставите/удаляете, а то потом непонятно, от чего плясать. В общем вы, я так понимаю, 13-й Минт уже снесли?

Как двухмониторную конфигурацию настраивали?


У мея 13 минт и не стоял - стоял LMDE и я к нему еще хочу вернутся. Сейчас пишу из под Минт 14 RC. Мультимониторку натсраивал по разному - сначал пробывал на стандартных драйверах, но главное проблемой было то что почему-то по-умолчанию всегда выбирался самый маленький из мониторов. На проприетарных дровах использую amdcccle - положение монитора регулируется нормльно, но мышка . я боюсь левого края основного монитора =)))


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

Какой DE? Скриншот утилиты настройки мониторов можете показать? (При используемом свободном драйвере, а не проприетарном.)

Читайте также: