| ||||||||||
Ключевые слова: freebsd, opengl, intel, driver, video, (найти похожие документы)
From: Sokolov Alexey <sokolov@truebsd.org.> Newsgroups: email Date: Mon, 4 Feb 2008 14:31:37 +0000 (UTC) Subject: Сборка и настройка OpenGL для карт Intel и Nvidia под FreeBSD Оригинал: http://truebsd.org/forum/read.php?12,770 Статья расказывающая про сборку драйвера от Intel под FreeBSD, затрагивающая проблемы компиляции в FreeBSD 7. Первое что необходимо сделать - получить исходные тексты драйвера. Делаем это следующим образом: %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 1Error 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;
| ||||||||||
|
|
|