Сообщение обновлено, новый вопрос теперь находится на моем "собственном" ответе здесь.

Я думаю о том, чтобы играть в Team Fortress 2 на Kali Linux (стабильный дистрибутив Debian Wheezy с настроенным ядром Debian Sid) уже давно, но не смог из-за следующих графических глюков:

  • Плохие темные текстуры
  • Очень низкий FPS
  • Низкая яркость
  • Зеленая текстура на обучающем видео

После многих исследований было решено скомпилировать более новую версию Mesa более 8.0.5. Как и сегодня, я нашел очень многообещающее руководство, которое было запланировано для Fedora, но кто-то смог сделать это в Debian:

http://dri.freedesktop.org/wiki/Building/ -> Официальное руководство

https://lists.debian.org/debian-x/2013/03/msg00014.html -> Wheezy way

Но сейчас я застрял в процессе сборки, потому что nouveau.h не было найдено в системе. Итак, вопрос:

Кому-нибудь удалось преодолеть эту проблему с отсутствующим файлом в nouveau.h, а затем завершить полный процесс сборки или установки?

У меня та же проблема, что и: https://stackoverflow.com/questions/20827233/install-mesa-10-on-debian, но, поскольку я использую Mesa 9.0.3, я сталкиваюсь с этой проблемой вместо проблемы libdrm-intel.

Я пытался:

  • Проверка отсутствующего файла с помощью updatedb + locate
  • Проверка наличия файла в каких-либо зависимостях или пакетах в хранилище
  • Компилировать с Mesa 10.2.8, 10.1.6, 10.0.5, 9.2.5, 9.1.7 и 9.0.3

PS: было бы намного лучше иметь последнюю версию Mesa 10.2.8, но я действительно не хочу компилировать какой-либо другой драйвер intel, radeon или nouveau, чтобы он работал. Если есть способ сделать это, я бы немедленно переключился на 10.2.8, зная, что он поддерживает OpenGL 3.3! : D

Вот мой компьютер:

  • Core I5 с HD 3000 и GT 540M
  • Кали Linux 1.0.9 обновлен
  • Ядро 3.14 i686-pae с модулями ядра nvidia 331.67
  • шмель-nvidia, установленный через репозиторий wheezy-backports

Мои шаги:

> # export CFLAGS="-m32"
> # export CXXFLAGS="-m32"
> # ./autogen.sh --enable-driglx-direct --enable-gles-overlay --enable-gles1 --enable-gles2 --enable-glx-tls --with-driver=dri --with-dri-driverdir=/usr/lib/dri --with-egl-platforms='drm x11' --with-state-trackers=egl,glx,dri,vega --with-dri-drivers=i965 --enable-32-bit --disable-64-bit --enable-gallium-llvm=disabled --enable-gallium-gbm=disabled --enable-gallium-egl=disabled --with-gallium-drivers= --build=i686-pc-linux-gnu
> # ./configure --prefix=/usr
> # make

И отчет об ошибке make:

Making all in nouveau
make[6]: Entering directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri/nouveau'
  CC     nouveau_screen.lo
In file included from nouveau_screen.c:27:0:
nouveau_driver.h:41:28: fatal error: libdrm/nouveau.h: No such file or directory
compilation terminated.
make[6]: *** [nouveau_screen.lo] Error 1
make[6]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri/nouveau'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/Data/Mesa-9.0.3/src'
make: *** [all-recursive] Error 1

Я перестал использовать реализацию libdrm в Debian, поскольку она ведет себя не так, как официальные источники. Поэтому я все еще предпочитаю использовать предыдущий способ для Mesa 10.0.5 или новее, так как мне не нужно будет компилировать более новую libdrm и сохранять более гарантированную стабильность.

Сейчас я сталкиваюсь с новой проблемой: Mesa 10.0.5, которую мне удалось скомпилировать - с libdrm 2.4.58-, кажется, не используется при запуске glxheads, поскольку она показывает мне:

GL_VERSION:  1.4 (2.1 Mesa 8.0.5)

Который является стабильной собственной Mesa Debian. Я также узнал, что некоторые люди также застряли на этой проблеме: http://forums.linuxmint.com/viewtopic.php?f=190&p=696973

Вопрос: как правильно скомпилировать libdrm и Mesa из исходников с правильными флагами, экспортировать и устанавливать / удалять пакеты?

Было бы действительно полезно, если бы связанный сопровождающий Debian мог ответить.

Вот мои шаги:

Общие установленные пакеты и их подразумеваемые зависимости с помощью Synaptic:

checkinstall
automake
bison
flex
libdrm-dev
libx11-xcb-dev
libxcb-glx0-dev
libxcb-xfixes0-dev
llvm
x11proto-dri2-dev
x11proto-gl-dev
xutils-dev
pkg-config
libltdl-dev
libxdamage-dev
libexpat1-dev
libpciaccess-dev
gettext

Общие, установленные вручную пакеты:

https://packages.debian.org/jessie/x11proto-dri3-dev

https://packages.debian.org/jessie/x11proto-present-dev

Для libdrm из этого пакета: http://dri.freedesktop.org/libdrm/libdrm-2.4.58.tar.gz:

# ./configure
# make
# checkinstall

Для Mesa из этого пакета: ftp://ftp.freedesktop.org/pub/mesa/older-versions/10.x/10.0.5/MesaLib-10.0.5.zip:

# ./autogen.sh
# make
# checkinstall

# aptitude install mesa-utils
then as standard user:
$ export LD_PRELOAD=/usr/local/lib/libGL.so.1
$ export LIBGL_DRIVERS_PATH=/lib/dri
$ glxheads

Вот два следующих руководства:

http://dri.freedesktop.org/wiki/Building/

http://verahill.blogspot.fr/2012/11/mesa-901-64-bit-on-debian-wheezy.html


На этот раз мне удалось пройти дальше, и я почти использовал для хорошей Mesa 10.0.5.

Теперь мои шаги для источников Mesa 10.0.5:

# autoreconf -vfi
# ./configure --prefix=/usr --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-glx-tls --with-dri-driverdir=/usr/lib/dri --with-egl-platforms='drm x11' --with-dri-drivers=i965
# make
# checkinstall
# export LIBGL_DRIVERS_PATH=/usr/lib/dri
# export LD_LIBRARY_PATH=/usr/lib
# export EGL_DRIVERS_PATH=/usr/lib

Но проблема в том, что когда я использую glxheads, это показывает, что я использую Mesa 10.0.5, но я использую только OpenGL 2.1 вместо OpenGL 3.3. Кроме того, он все еще очень медленный в Team Fortress 2, и у каждой текстуры есть эффект уродливого зерна, но больше нет зеленой текстуры в обучающем видео.

Вопрос заключается в следующем: как правильно сделать OpenGL 3.3 доступным для Mesa 10.0.5 и избежать проблемы с текстурами безобразия?

До:

GL_VERSION:  3.0 Mesa 8.0.5
GL_VENDOR:   Tungsten Graphics, Inc
GL_RENDERER: Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2

Сейчас:

GL_VERSION:  2.1 Mesa 10.0.5
GL_VENDOR:   VMware, Inc.
GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.0, 128 bits)

Несмотря на то, что GL_VENDOR показывает, что это VMware, я делаю все на пустом месте, а не на виртуальной машине.

Обратите внимание, что на этот раз я все еще наивно скомпилировал libdrm-2.4.58, как сказано в файле README. А затем скомпилировал Mesa 10.0.5 без x11proto-dri3-dev, x11-proto-present-dev и inxi.

Вот руководство, которое я использовал для того, чтобы скомпилировать Mesa, и пока что самое лучшее:http://x.debian.net/howto/build-mesa.html

0