OpenGL Direct Rendering Debian 7.6 / 340.32 driver version / 32bit libraries. [Solved]

Hi guys, nice to meet you. I write my first post here because i have a problem with your 340.32 (2014.8.12 update) versión to GT740 driver for linux64bit, when I launch Steam I have this error mensage:

After can’t i run any game.

I thought that the problem was in steam-debian launcher so i posted there … xD And i wrote this in the wrong board https://devtalk.nvidia.com/default/topic/769049/opengl/opengl-direct-rendering-debian-7-6/ so, could any moderator delete this post at OpenGL board? Thanks :)
I tried to solve it, but for the moment i go back to 340.24 version :)

And the problem with 340.24 download it’s solved … I can now download this driver

Mostly likely you simply don’t have the 32-Bit libGL installed for the NVIDIA driver. Steam is a 32-Bit application.

Ahá, … and I should to ask in Steam dev forum? I say because with the before version (340.24) all works perfectly …

I mean … i must wait a Steam update for install the 340.32 driver version and while i run with 340.24 without problems? or there is any way to launch Steam app forcing it to use direct rendering in terminal or something?

It has nothing to do with 340.32 not working with Steam. The problem is your system. Do you have the 32-Bit libraries of the driver installed?

I had this message about 32bit compatibilities when I tried to install 340.32

I think that could be related with this.

External Media

External Media

But I selected “install compatibility” so … I think 32 bit libs was installed …

(I said “was” because i am running now with 340.24 version in which everything works perfectly xD but when you require I could try to reinstall 340.32)

See if you can find them on on your root filesystem. There should be two libGL.so in that case, both symlinked to the vendor implementation libGL.so.340.32

I could to find these: … xD

wyre@WyReDebPC:~$ sudo find / -name libGL.so
/usr/lib/i386-linux-gnu/libGL.so
/usr/lib/libGL.so
wyre@WyReDebPC:~$

Are enough? Or suggest you that should I to search with 340.32 version installed?

I think that my nvidia-installation log could be helpful but this is a 340.24 installation log although a previous installation of version 340.32 is mentioned … (That I had to uninstall before, obviously).

http://paste.debian.net/116566/

There is any difference between to use gcc-4.6 or 4.7 version? or this isn’t relevant?

(installation launcher gave me a message at this respect too, but 340.24 version was installed and works fine, even using gcc-4.6)

You need to use a version of GCC that matches the one that was used to build the kernel. In some distributions (notably Debian), the default version of GCC that’s installed is different from the one they used to build the kernel. If you’re getting that message, you’ll need to install the correct version and use “CC=gcc-4.whatever sh NVIDIA-…run” when installing.

As for the OpenGL compatibility library problem, what do you get if you run

ls -l /usr/lib/i386-linux-gnu/libGL.so.1

and

ldd ~/.local/share/Steam/ubuntu12_32/steamui.so | grep libGL

?

Ok, Thanks for ur answer first xD

I paste the output of ur commands but i insist! … I have installed now the 340.24 version because all works better (Should I to run this commands in this version or with 340.32 installed?), if is needed I could try to install 340.32 version with ur new suggestion :D (i have installed gcc-4.7.2 too now, i think :D):

wyre@WyReDebPC:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5) 
wyre@WyReDebPC:~$

Well the output … finally xD … :

wyre@WyReDebPC:~$ ls -l /usr/lib/i386-linux-gnu/libGL.so.1
lrwxrwxrwx 1 root root 15 ago 19 02:39 /usr/lib/i386-linux-gnu/libGL.so.1 -> libGL.so.340.24
wyre@WyReDebPC:~$ ldd ~/.local/share/Steam/ubuntu12_32/steamui.so | grep libGL
	libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf4e3a000)
wyre@WyReDebPC:~$

It seems that library is at adequate place and linked right… But again … I had installed 340.24 driver version now because Steam works better with it.

When will I try to install 340.32 version must I run before 340.24 uninstall? Or isn’t needed And can i to install over the previous version directly? Something like …

sudo apt-get remove --purge nvidia*

sudo CC=gcc-4.7* sh NVIDIA-....340.32....run

Anew, thanks for ur reply :D

I wouldn’t mix and match the Debian packages with the .run package. If you’re having trouble with Debian packaging issues, you’ll need to get support from the Debian community. If you want to try the .run installer, then yes, it’s a good idea to complete remove the Debian packages first.

But … Which is the .run package usage then? Why Nvidia distributes it like Linux driver if can’t i use it at my Debian version? … Are you suggesting that should i use this information to install this nvidia driver (304.117 version) on my Debian Wheezy?:

https://wiki.debian.org/NvidiaGraphicsDrivers
https://packages.debian.org/source/wheezy/nvidia-graphics-drivers

I think that i haven’t issues with Debian packaging; unless than libGL.so be a Debian package (that’s likely … xD) … I’m very noob in Linux’s advanced knowledge … :S
I don’t understand very well what you mean with: “I wouldn’t mix and match the Debian packages with the .run package”. Is it I shouldn’t install the Nvidia .run package? How should i install my Nvidia drivers?

Then, in the hypothetical case that i can use the .run package … Do you think that it’s fine this idea?:

sudo apt-get remove --purge nvidia*

sudo CC=gcc-4.7.2 sh NVIDIA-....340.32....run

I mean exactly… using

sudo apt-get remove --purge nvidia*

instruction; Can i complete removing supported Debian community packages?

I say this because when i tried to install the Nvidia driver (340.24 or 340.32) the first time, with newly installed OS, i had to remove the Nouveau driver (it was by default) and i did it with:

sudo apt-get remove --purge xserver-xorg-video-nouveau

command. Can this to mean that i am not mixing and matching the .run package with Debian packages? or… Am i doing it wrong anyway? xD

https://packages.debian.org/search?suite=wheezy&arch=amd64&keywords=xserver-xorg-video-nouveau

After to write this message i am a bit confused, i explain, Which is the difference between this two driver links that i posted now? (I mean between Nouveau and Nvidia 304.117 proprietary driver version). Is 304.117 maybe the latest supported proprietary version by Debian community?

The usage for the *.run package is so that distro maintainers can build their packages from it.
You can of course use the *.run package to install the driver manually, but this isn’t a good idea. In fact the NVIDIA download website even mentions this. The problem is that installing the *.run package will place files into your system directories, which are untracked by your package manager. On a Linux system every file that isn’t part of your home directory belongs to some package that makes up your system.
Now if you install the *.run package you will have files in place, which would also be provided by the nvidia package that is provided by your distro. If you don’t properly remove the manually installed driver you packagemanager won’t be able to install any nvidia package from your Debian repos, since the files already exist on the system. Even worse you can end up with both getting mixed up, which is of course bad since they are from different versions.

The NVIDIA driver makes use of a 3rd party kernel module which is loaded as an interface between the kernel and the driver. This module has to be compatible with your kernel. So when a distro has say the Linux 3.10 kernel in its repos, it will build the nvidia driver against this version. So when you install the nvidia driver it will work with your kernel. You can’t upgrade your kernel to a new major version and use the old nvidia package which was compiled against the old kernel. So distros will make sure that the nvidia package is rebuilt against the new kernel, when they ship a new kernel.

Nouveau is the open source reverse engineered driver for nvidia cards. It also uses a kernel module called (nouveau), but nouveau IS part of the Linux kernel so it will always be compatible with your kernel. It will only need mesa installed which is the open source implementation of OpenGL. It will provided the libGL.so for the nouveau driver and other open source driver like Intel. The NVIDIA driver ships NVIDIAs closed source implementation of lbGL.so. Since both files can’t exist in the same place at the same time the open source driver with the mesa libGL.so has to be removed when you want to use the NVIDIA driver. Since the nouveau kernel module is part of Linux it can’t be removed, but it can be blacklisted so it won’t get autoloaded when your PC starts up and your hardware is detected. Instead the nvidia kernel module will be loaded. Every nvidia package you install on a distro automatically adds a small *.conf file containing “blacklist nouveau” to your modprobe.d folder, which makes sure nouveau doesn’t get loaded.

Debian is a release based distro meaning every version of Debian is basically a snapshot in time of whatever was the latest stable version of whatever software it provided at that time. Since Debian only releases a new stable version (Wheezy being the current one) every two years the packages will be very old of course after some time. You won’t get any new software until a new version of Debian is released (there isn’t a fixed schedule). The next version of Debian stable will then, ship a new version of everything (Linux kernel, nvidia driver, libre office etc.) There are also testing and development branches of Debian, which will contain packages that are newer than the ones you find in Debian Stable. The purpose of these branches is to make sure the new packages are OK, when a new stable release is made. Debian Unstable (also called Sid) will have the newest packages you can get on Debian. Most will still not be the latest version that you can find on the web, though.
Using an old base system like Debian wheezy and trying to keep some parts of it updated to the latest version isn’t a good idea and prone to errors if you don’t really know what you are doing. You could probably use some packages from Debian Unstable on Debian Wheezy (Stable), but you have to be aware of dependency conflicts.

There are also distributions (like Gentoo or Arch Linux) which don’t have any releases and simply ship the latest version of everything after it has been packaged. Often this is just 2-3 days after the new release is available on the web. Critical packages like new kernels, drivers or desktop environment releases will still go through a short testing process.

So how do you get a new version of the NVIDIA driver?
To make it “relatively” easy I’d just update to Debian Testing or Debian Unstable. You still won’t have the latest driver, but considerably newer. Also keep in mind that there are multiple branches of the nvidia driver, since support for older cards was dropped at one point. The 304 branch is for cards that are from ca. 2006 (like the 6000 series). The current version 340 supports everything from 8000 series upward and with the upcoming 343 driver (there is a beta already) support for everything older than GeForce 400 will be dropped. So you will likely find a nvidia driver in your Debian repos and also packages like nvidia-304, which are for these legacy cards.

Thanks blackout24 … Your reply helps me to understand better the Debian structure I was speaking about this with Debian technical support (at their IRC channel) and they were saying me the same that you; i will try install Debian Testing and will use present drivers in community support (awaiting for updates … :)

Now i can reinstall Debian Testing and get everything back to normal (relatively … xD )
Thanks for your attention and your replies; nice support.

Greetings… :D

Don’t be afraid of the name Debian Testing or Debian Unstable. When Project A releases Software B Version 2.1. The developers of this project consider this a stable release. Just like NVIDIA considers their latest driver a stable release. The fact that it’s not in Debian Stable, but only in the Unstable branch doesn’t mean the software is inherently buggy or crash.

Yes i will go to fight with bugs but i’m not afraid… xD I have spoken about this (like i said you before) with Debian’s technical support operator and yes; i will try to test Debian Testing … Despite bugs … i wanna to collaborate with distro maintainers i think that’s a god idea and it can help me to learn more about programming and free operating systems; at least Debian branch although i like to learn about Linux kernel but slowly and gradually …

Anew; thanks for your interest and your explanation, it was helpful for me, seriously. :D