Bug#779295: nvidia-driver: Problems with software using OpenGL after nvidia-driver install

José Luis García Pallero jgpallero at gmail.com
Fri Feb 27 14:04:22 UTC 2015


2015-02-27 11:11 GMT+01:00 Vincent Cheng <vcheng at debian.org>:
> Hi,
>
> On Thu, Feb 26, 2015 at 9:22 AM, José Luis García Pallero
> <jgpallero at gmail.com> wrote:
>> Package: nvidia-driver
>> Version: 340.65-2
>> Severity: important
>>
>> Dear Maintainer,
>>
>> I have a laptop running Debian Sid with an integrated Intel graphic card and a
>> NVIDIA Quadro K2100M. I want use the Quadro ONLY for CUDA tests and the Intel
>> card for the normal day work. Until now, I usually install the *.run NVIDIA
>> driver (blacklisting the nouveau kernel module) but I configure the xorg.conf
>> in order to use the Intel graphic card (see below the <<<<<<<<<<
>> /etc/X11/xorg.conf >>>>>>>>>> section). One problem of this procedure is that
>> after the NVIDIA driver installation I can't use some programs that use OpenGL
>> for drawing, line the native graphics of GNU Octave (either the official Debian
>> package or the program compiled by myself). The error emitted by Octave is:
>>
>> Xlib:  extension "GLX" missing on display ":0".
>> Xlib:  extension "GLX" missing on display ":0".
>> Insufficient GL support
>>
>> A trick to fix it consist on reinstall the debian packages libgl1-mesa-swx11
>> and libgl1-mesa-swx11-dev. I suppose this internally changes the libGL et al.
>> in a way that I can use programs that need OpenGL and also I can use CUDA. This
>> way to proceed works until the NVIDIA driver version (included) 340.65. For
>> higher driver versions the trick of reinstalling libgl1-mesa-swx11 and libgl1
>> -mesa-swx11-dev doesn't works, but the Xlib:  extension "GLX" missing on
>> display ":0" error still appears.
>>
>> Well, at this point I decided to install the Debian nvidia-driver package
>> (which uses the 340.65 driver). As a consequence, the libgl1-mesa-swx11 and
>> libgl1-mesa-swx11-dev packages were uninstalled. I reboot the computer using
>> still the corg.conf for the Intel graphic card. The problem is that the Xlib:
>> extension "GLX" missing on display ":0" error appears again and I can't use
>> programs that use OpenGL. I can see that in the /usr/lib/x86_64-linux-gnu/
>> folder exist the correct files libGL, libGLU, libGLESv1, libGLESv2, etc., so I
>> don't understand the "Insufficient GL support" error message. I don't know if
>> it is a bug in the nvidia-driver package
>>
>> I've also tried to use the NVIDIA card as the default graphic card. I've run
>> nvidia-xconfig, which generated the xorg.conf file:
>>
>> ****************************************************
>> # nvidia-xconfig: X configuration file generated by nvidia-xconfig
>> # nvidia-xconfig:  version 340.46  (buildd at brahms)  Tue Oct  7 08:00:32 UTC
>> 2014
>>
>> Section "ServerLayout"
>>     Identifier     "Layout0"
>>     Screen      0  "Screen0"
>>     InputDevice    "Keyboard0" "CoreKeyboard"
>>     InputDevice    "Mouse0" "CorePointer"
>> EndSection
>>
>> Section "Files"
>> EndSection
>>
>> Section "InputDevice"
>>     # generated from default
>>     Identifier     "Mouse0"
>>     Driver         "mouse"
>>     Option         "Protocol" "auto"
>>     Option         "Device" "/dev/psaux"
>>     Option         "Emulate3Buttons" "no"
>>     Option         "ZAxisMapping" "4 5"
>> EndSection
>>
>> Section "InputDevice"
>>     # generated from default
>>     Identifier     "Keyboard0"
>>     Driver         "kbd"
>> EndSection
>>
>> Section "Monitor"
>>     Identifier     "Monitor0"
>>     VendorName     "Unknown"
>>     ModelName      "Unknown"
>>     HorizSync       28.0 - 33.0
>>     VertRefresh     43.0 - 72.0
>>     Option         "DPMS"
>> EndSection
>>
>> Section "Device"
>>     Identifier     "Device0"
>>     Driver         "nvidia"
>>     VendorName     "NVIDIA Corporation"
>> EndSection
>>
>> Section "Screen"
>>     Identifier     "Screen0"
>>     Device         "Device0"
>>     Monitor        "Monitor0"
>>     DefaultDepth    24
>>     SubSection     "Display"
>>         Depth       24
>>     EndSubSection
>> EndSection
>> ******************************************************
>>
>> But surprisingly, I can't start the X environment, so I need to use again the
>> xorg.conf for Intel (I don't know if this error is due to the use of the *.run
>> driver from NVIDIA). This is really not important to me, because I want to use
>> for the X environment the Intel graphics
>
> Given the above, it sounds like you have a Nvidia Optimus system (i.e.
> dual intel and nvidia GPUs on one system). The most common solution
> for that is bumblebee [1], but if the only thing you're going to use
> your nvidia card for is CUDA, my understanding is that you don't
> actually need bumblebee (although some of its components may help,
> e.g. bbswitch [2]).
>
> Either way, throw out your nvidia-xconfig generated xorg.conf (your
> main X display is always driven by your intel card, not nvidia), and
> if you choose not to install Debian's bumblebee packages, make sure
> you manually update your libGL symlinks via alternatives (you want
> mesa's implementation, not nvidia's), e.g.
>
> # update-alternatives --config glx
> There are 2 choices for the alternative glx (providing /usr/lib/glx).
>
>   Selection    Path                    Priority   Status
> ------------------------------------------------------------
>   0            /usr/lib/nvidia          100       auto mode
> * 1            /usr/lib/mesa-diverted   5         manual mode
>   2            /usr/lib/nvidia          100       manual mode
>
> Press enter to keep the current choice[*], or type selection number: 1
>
> Regards,
> Vincent
>
> [1] https://wiki.debian.org/Bumblebee
> [2] https://wiki.archlinux.org/index.php/bumblebee#CUDA_without_Bumblebee


Thank you for your answer:

First of all, I've tried to do the update-alternatives --config glx.
I've selected the option 1 (the same as in your advice), but the error
related to "Insufficient GL support" still appears (I've rebooted the
laptop after the update-alternatives). I've tried also installing the
bumblebee package, but then it is impossible to start the X system
(I've uses the xorg.conf for the intel card)

So, the only way to work with OpenGL graphics (in my case for Octave
plotting and CloudCompare work) is using the packages
libgl1-mesa-swx11. But this package is uninstalled when I install the
nvidia-driver Debian package. As I wrote in my first mail, until
NVIDIA 340.65 (the *.run file from nvidia.com), I installed the *.run
file and then I reinstall the libgl1-mesa-swx11 package and all works:
OpenGL plotting in Octave and other software and working with CUDA in
my Quadro card. But after the 340.65 driver the trick of reinstall the
libgl1-mesa-swx11 package doesn't work anymore, so OpenGL doesn't
work. But if I try to do now the update-alternatives the system says
that there is not alternatives. I suppose that I could do the correct
links to the correct GL libs manually. But, which links should I made?

I put here the result of /usr/lib/x86_64-linux-gnu/libGL* after the
installation of NVIDIA-Linux-x86_64-346.47.run

-rw-r--r-- 1 root root 7700082 ene 15 15:02 /usr/lib/x86_64-linux-gnu/libGL.a
lrwxrwxrwx 1 root root      17 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx 1 root root      22 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1 -> libGLESv1_CM.so.346.47
-rwxr-xr-x 1 root root   51096 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.346.47
lrwxrwxrwx 1 root root      14 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx 1 root root      19 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2 -> libGLESv2.so.346.47
-rwxr-xr-x 1 root root   75416 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv2.so.346.47
lrwxrwxrwx 1 root root      17 nov 22  2013
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 -> libGLEW.so.1.10.0
-rw-r--r-- 1 root root  554088 nov 22  2013
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
-rw-r--r-- 1 root root     671 feb 27 12:03 /usr/lib/x86_64-linux-gnu/libGL.la
lrwxrwxrwx 1 root root      10 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root      15 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGL.so.1 -> libGL.so.346.47
-rwxr-xr-x 1 root root 1317432 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGL.so.346.47
-rw-r--r-- 1 root root  901120 sep 19  2013 /usr/lib/x86_64-linux-gnu/libGLU.a
lrwxrwxrwx 1 root root      15 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx 1 root root      15 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so.1 -> libGLU.so.1.3.1
-rw-r--r-- 1 root root  449144 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1

And here is the same result after the reinstallation of
libgl1-mesa-swx11, libgl1-mesa-swx11-dev, libgles1-mesa and
libgles2-mesa

-rw-r--r-- 1 root root 7700082 ene 15 15:02 /usr/lib/x86_64-linux-gnu/libGL.a
lrwxrwxrwx 1 root root      17 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx 1 root root      22 feb 27 15:06
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1 -> libGLESv1_CM.so.346.47
-rw-r--r-- 1 root root   18232 ene 15 15:01
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1.1.0
-rwxr-xr-x 1 root root   51096 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.346.47
lrwxrwxrwx 1 root root      14 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx 1 root root      19 feb 27 15:06
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2 -> libGLESv2.so.346.47
-rw-r--r-- 1 root root   26424 ene 15 15:01
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2.0.0
-rwxr-xr-x 1 root root   75416 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGLESv2.so.346.47
lrwxrwxrwx 1 root root      17 nov 22  2013
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 -> libGLEW.so.1.10.0
-rw-r--r-- 1 root root  554088 nov 22  2013
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
-rw-r--r-- 1 root root     671 feb 27 12:03 /usr/lib/x86_64-linux-gnu/libGL.la
lrwxrwxrwx 1 root root      14 ene 15 15:01
/usr/lib/x86_64-linux-gnu/libGL.so -> libGL.so.1.6.0
lrwxrwxrwx 1 root root      15 feb 27 15:06
/usr/lib/x86_64-linux-gnu/libGL.so.1 -> libGL.so.346.47
-rw-r--r-- 1 root root 4330248 ene 15 15:01
/usr/lib/x86_64-linux-gnu/libGL.so.1.6.0
-rwxr-xr-x 1 root root 1317432 feb 27 12:03
/usr/lib/x86_64-linux-gnu/libGL.so.346.47
-rw-r--r-- 1 root root  901120 sep 19  2013 /usr/lib/x86_64-linux-gnu/libGLU.a
lrwxrwxrwx 1 root root      15 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx 1 root root      15 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so.1 -> libGLU.so.1.3.1
-rw-r--r-- 1 root root  449144 sep 19  2013
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1

As I said, OpenGL drawing sill doesn't work


Thanks

-- 
*****************************************
José Luis García Pallero
jgpallero at gmail.com
(o<
/ / \
V_/_
Use Debian GNU/Linux and enjoy!
*****************************************



More information about the pkg-nvidia-devel mailing list