Документация по ОС FreeBSD Воскресенье, 05.05.2024, 16:42
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

Сборка и настройка OpenGL для карт Intel и Nvidia под FreeBSD [2008]
Первое что необходимо сделать - получить исходные тексты драйвера.
Делаем это следующим образом:

          %git-clone git://anongit.freedesktop.org/git/mesa/mesa
   
(если нет утилиты git-clone - ставим порт devel/git)
 
После  этого  переходим  непосредственно  к  компиляции.  Переходим в каталог  и  выполняем  команду  make  с  аргументом,  который сообщает сборочным скриптам, о том что нам необходим драйвер под FreeBSD:

          %cd mesa; make realclean; make freebsd
 
Если во время компиляции произошла ошибка (она возникает при сборке на FreeBSD  7.0,  т.к.  в  нём  используется  компилятор  GCC  версии 4 и присуствует  два  заголовочныъ  файла  с  именем  math.h, подключается второй, а в нём отсутствует директива M_PI):

        cc -c -I../../include -O  -O2 -fPIC -D_POSIX_SOURCE
        -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DUSE_XSHM -DHZ=100
        -I/usr/local/include -ffast-math -pedantic -fno-strict-aliasing
        engine.c
        engine.c: In function 'PistonStrokePosition':
        engine.c:252: error: 'M_PI' undeclared (first use in this function)
        engine.c:252: error: (Each undeclared identifier is reported only once
        engine.c:252: error: for each function it appears in.)
        engine.c: In function 'ComputeConnectingRodPosition':
        engine.c:302: error: 'M_PI' undeclared (first use in this function)
        engine.c: In function 'DrawConnector':
        engine.c:406: error: 'M_PI' undeclared (first use in this function)
        engine.c: In function 'DrawPositionedConnectingRod':
        engine.c:527: error: 'M_PI' undeclared (first use in this function)
        engine.c: In function 'SquareWithHole':
        engine.c:551: error: 'M_PI' undeclared (first use in this function)
        gmake: *** [engine.o] Error 1
Error code 1

        Stop in /usr/home/tuser/mesa/progs.

То попробуйте применить вот этот патч (очень даже может быть что в ближайшее  время  он  потеряет  свою актуальность, т.к. я отправил его разработчикам):

           %cat intel2freebsd70_M_PI_error.diff | patch -p1

и продолжить компиляцию:

           %make

Если всё собралось благополучно, его можно установить:

           %sudo make install

Ну  а  далее  (настройка xorg.conf) всё зависит от вашего чипсета (см. описание)

Часть 2.

Расскажу   (вернее   продублирую   статью   с http://bsdportal.ru/  - faq:nvidia_video) про настройку OpenGL для видеокарт Nvidia (с ATI  обстоят дела очень плохо).

Установка из портов

сначала настраиваем иксы с стандартным драйвером nv  далее:

           cd /usr/ports/x11/nvidia-driver/
           make install clean

нужные опции:

           [ ] FREEBSD_AGP Use FreeBSD AGP GART driver
           [ ] VM86_INT10CALL Use VM86 interface for video BIOS calls
           [ ] ACPI Enable support for ACPI Power Management
           [X] LINUX Build with support for Linux compatibility

далее  пересобираем  ядро  предварительно  закоментировав  или  удалив строчку:

           device agp

теперь нужно отредактировать\проверить конфиги:

проверяем /boot/loader.conf чтобы в нем было:

           linux_load="YES"
           nvidia_load="YES"

проверяем чтобы в /etc/rc.conf **было**:

           linux_enable="YES"
   
в xorg.conf меняем
  
        Driver "nv"

на

        Driver "nvidia"
   
все..  перегружаемся,  заходим в иксы и проверяем работоспособность openGL например программой glxgears

Если  хочется включить прозрачность и тени вместе с GLX настраиваем xorg.conf:

           Section "Device"
           # Эти два параметра работают только с nvidia драйверами!
           ...
           Option "RenderAccel" "true"
           Option "AllowGLXWithComposite" "true"
           ...
           EndSection
           ...
           Section "Extensions"
           Option "Composite" "Enable"
           Option "RENDER" "Enable"
           EndSection

Убедиться что в xorg.conf отключен:

           Load "dri"

Копия патча intel2freebsd70_M_PI_error.diff

diff -ru mesa.orig/progs/demos/engine.c mesa/progs/demos/engine.c
--- mesa.orig/progs/demos/engine.c 2008-01-21 14:44:56.000000000 +0000
+++ mesa/progs/demos/engine.c 2008-01-21 14:44:04.000000000 +0000
@@ -15,6 +15,10 @@
#include "readtex.h"
#include "trackball.h"

+#if !M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
#define DEG_TO_RAD(DEG)  ((DEG) * M_PI / 180.0)

#define TEXTURE_FILE "../images/reflect.rgb"
diff -ru mesa.orig/progs/xdemos/corender.c mesa/progs/xdemos/corender.c
--- mesa.orig/progs/xdemos/corender.c 2008-01-21 14:44:56.000000000 +0000
+++ mesa/progs/xdemos/corender.c 2008-01-21 14:44:04.000000000 +0000
@@ -25,6 +25,10 @@
#include <unistd.h>
#include "ipc.h"

+#if !M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
static int MyID = 0;  /* 0 or 1 */
static int WindowID = 0;
static GLXContext Context = 0;


Источник: http://www.opennet.ru/base/sys/opengl_intel_freebsd.txt.html
Категория: Работа с железом | Добавил: oleg (16.02.2008) | Автор: Sokolov Alexey
Просмотров: 2426 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024