1

Post updated, the new question is now on my "own" answer down here.

I think about playing Team Fortress 2 on Kali Linux (a Debian Wheezy stable distribution with customized Debian Sid kernel) since a long time now, but couldn't because of the following graphical glitches:

  • Bad dark textures
  • Very low FPS
  • Low brightness
  • Green texture on training video

The solution after a lot of research was to compile a newer version of Mesa over 8.0.5. As today I found a very promising guide that was planned for Fedora, but someone managed to make it so in Debian:

http://dri.freedesktop.org/wiki/Building/ -> Official Guide

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

But I'm now stuck at the make process, because no nouveau.h could be found on the system. So the question is:

Did anyone managed to overcome this nouveau.h missing file problem, then complete the full building or installation process ?

I have the same problem than: https://stackoverflow.com/questions/20827233/installing-mesa-10-on-debian, but since I use Mesa 9.0.3, I meet that problem instead of the libdrm-intel's one.

I have tried:

  • Checking the missing file with updatedb + locate
  • Checking if the file exists in any dependencies or packages in the repository
  • Compile with Mesa 10.2.8, 10.1.6, 10.0.5, 9.2.5, 9.1.7 and 9.0.3

PS: It would be much better to have the latest Mesa 10.2.8, but I really don't want to compile any other intel, radeon or nouveau driver to make it work. If there is a way to make it so, I would switch to 10.2.8 immediately, knowing that it supports OpenGL 3.3 ! :D

Here's my computer:

  • Core I5 with HD 3000 and GT 540M
  • Kali Linux 1.0.9 updated
  • Kernel 3.14 i686-pae with nvidia 331.67 kernel modules
  • bumblebee-nvidia installed through wheezy-backports repository

My steps:

> # 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

And the make bug report:

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

I gave up using Debian's libdrm implementation since it behaves differently than the official one's sources. Hence I still prefer using the previous way for Mesa 10.0.5 or newer since I won't have to compile a newer libdrm and keep more guaranteed stability.

I am facing now a new problem, the Mesa 10.0.5 I managed to compile -with libdrm 2.4.58- seems to not be in use while running glxheads since the it shows me:

GL_VERSION:  1.4 (2.1 Mesa 8.0.5)

Which is the Debian's stable own Mesa. I also found out that some people are also stuck on this problem: http://forums.linuxmint.com/viewtopic.php?f=190&p=696973

The question is: how to correctly compile libdrm and Mesa from the sources with the correct flags, exports and packages installation/uninstallation ?

It would really help if a related Debian maintainer could answer.

Here's my steps:

Common, installed packages and their implied dependencies by using 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

Common, manually installed packages:

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

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

For libdrm, from this package: http://dri.freedesktop.org/libdrm/libdrm-2.4.58.tar.gz:

# ./configure
# make
# checkinstall

For Mesa, from this package: 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

Here's the two followed guides:

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

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


I managed to go further this time, and almost using for good Mesa 10.0.5.

Now my steps for the Mesa 10.0.5 sources are:

# 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

But the problem is that when I am using glxheads, it shows me that I am using Mesa 10.0.5, but that I only use OpenGL 2.1 instead of OpenGL 3.3. Furthermore, it's still very slow on Team Fortress 2, and every textures have an ugly grain effect, but no more green texture on training video.

The question is: How can I correctly make OpenGL 3.3 available for Mesa 10.0.5 and avoid the ugly-grain texture problem ?

Before:

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

Now:

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

Despite the GL_VENDOR shows that it's VMware, I am doing everything bare-metal and not on a virtual machine.

Note that this time, I still naively compiled libdrm-2.4.58 like as said on the README file. And then compiled Mesa 10.0.5 without x11proto-dri3-dev, x11-proto-present-dev and inxi now.

Here's the guide I used in order to compile Mesa and, so far the best one: http://x.debian.net/howto/build-mesa.html

11
  • 2
    So what exactly is your question? The compiler error seems pretty clear, you have a linker error.
    – Ramhound
    Commented Sep 30, 2014 at 18:21
  • 1
    The problem is that I can't really find the nouveau.h header with an updatedb + locate. The file does not even exists in the repositories packages. So I think the guy have found a way to overcome that missing file problem but how ?
    – X.LINK
    Commented Sep 30, 2014 at 18:25
  • 1
    @Ramhound: "libdrm/nouveau.h: no such file or directory" <- not a linker error :)
    – akira
    Commented Oct 11, 2014 at 11:49
  • 3
    Please do not continuously edit your question with useless trivial edits. If someone knew then they would answer it. You could always try adding a bounty to try and get attention for your problem.
    – Mokubai
    Commented Oct 17, 2014 at 19:38
  • 1
    Alternatively if you edit your question to clean it up we could potentially consider migrating it to Unix & Linux where it may possibly have a better audience. Before that though I would recommend you post a question on their meta and if you got some support for a migration then we could move it for you. Do not simply repost this there.
    – Mokubai
    Commented Oct 17, 2014 at 20:18

0

You must log in to answer this question.

Browse other questions tagged .