Xw - Wndow, GLX extension unavaliable

Hi,
my system is:
Architecture x86-64
OS Opensuse 13.2, kernel version 3.16.6-2-desktop
processor 4xIntel(R) Core™ i7-4500U CPU @ 1.80GHz
graphics card Intel VGA compatible controller
graphics card nVidia 3D controller
after upgrading from 13.1 to 13.2 OS, this message appears when I try to launch a graphic program “Xw_Window, GLX extension unavailable”, the Xorg.0.log presents some errors:

    26.511] (EE) open /dev/dri/card0: No such file or directory
    26.511] (WW) Falling back to old probe method for modesetting
    26.511] (EE) open /dev/dri/card0: No such file or directory

    26.512] (WW) Falling back to old probe method for vesa
    26.512] (EE) Screen 0 deleted because of no matching config section.

    26.519] (EE) AIGLX: reverting to software rendering
    26.541] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (/usr/lib64/dri/swrast_dri.so: undefined symbol: _glapi_tls_Dispatch)
    26.541] (EE) GLX: could not load software renderer

Why ?

Didn’t we already have this not too long ago?

Because you installed the proprietary nvidia driver on your Optimus system, and this broke the intel’s OpenGL support, and Mesa’s software renderer.

Remove the nvidia driver and it should work (using the intel chip).

If you want to use the nvidia chip, you need to install Bumblebee and nvidia-bumblebee from the Bumblebee repository.

I don’t have nvidia driver installed:

linux:/ # zypper if nvidia
Loading repository data...
Reading installed packages...


package 'nvidia' not found.

And “Bumblebee” for opensuse 13.2 isn’t available.

Well, maybe you tried to install it via the .run installer from nvidia’s website?

In any case, your Mesa is broken, as it was back in the other thread. Maybe still some left-overs from your first tries? Maybe you should just install fresh?

Re-installing Mesa-libGL1 and xorg-x11-server should probably help:

sudo zypper in -f Mesa-libGL1 xorg-x11-server

If not, then you maybe did something wrong when upgrading.
Please post your repo list in this case:

zypper lr -d

And “Bumblebee” for opensuse 13.2 isn’t available.

Of course it is.
It’s even included in 13.2 (except nvidia-bumblebee).

PS: “zypper info nvidia” doesn’t prove anything, as there is no package named “nvidia”.
Post the output of “zypper se nvidia”. Or “rpm -qa | grep nvidia”.

I have just done the steps you suggested, but without success

linux:/home/studio # zypper lr -d
# | Alias                         | Name                          | Enabled | Refresh | Priority | Type   | URI                                                                | Service
--+-------------------------------+-------------------------------+---------+---------+----------+--------+--------------------------------------------------------------------+--------
1 | 13.2_education                | 13.2_education                | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Education/openSUSE_13.2/ |        
2 | Science_13.2                  | Science_13.2                  | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/science/openSUSE_13.2/   |        
3 | openSUSE:13.2:Update          | openSUSE:13.2:Update          | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/ports/update/13.2/                    |        
4 | openSUSE_13.2_OSS             | openSUSE_13.2_OSS             | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.2/repo/oss/           |        
5 | openSUSE_13.2_Updates         | openSUSE_13.2_Updates         | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.2/                          |        
6 | openSUSE_13.2_Updates_non-OSS | openSUSE_13.2_Updates_non-OSS | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.2-non-oss/                  |        
7 | openSUSE_13.2_non-OSS         | openSUSE_13.2_non-OSS         | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.2/repo/non-oss/       |        
8 | repo-update-non-oss           | openSUSE-13.2-Update-Non-Oss  | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.2-non-oss/                  |      

So, what about the nvidia driver?

rpm -qa | grep nvidia

And please post your /var/log/Xorg.0.log.

linux:/home/studio # zypper lr -d

Looks ok, maybe try to run “sudo zypper dup” to make sure everything is fully updated.

System is fully updated,

studio@linux:~> rpm -qa | grep nvidia
studio@linux:~> 

Xorg.0.log is at this URL: SUSE Paste

Thanks, that shows that you’re not even using the intel driver, but fbdev.

    18.815] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.16.6-2-desktop root=UUID=af4985eb-5794-4856-818b-bd4927d99dfa nomodeset resume=/dev/disk/by-id/ata-ST750LM022_HN-M750MBB_S31PJ9AF306573-part5 splash=silent quiet showopts modeset.nouveau=0

Enter YaST->System->Boot Loader->Kernel Parameters, and remove the “nomodeset” from the “Optional Kernel Boot Parameter” field.
Then the intel driver (including OpenGL) should work.
And you’d better remove the modeset.nouveau=0 as well, nouveau is not loaded anyway, as this is an Optimus system.

You’re original error message still puzzles me though:

    26.541] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (/usr/lib64/dri/swrast_dri.so: undefined symbol: _glapi_tls_Dispatch)

The software renderer (swrast) should work unless you install the nvidia driver.
Which Mesa packages do you have installed?
Maybe it doesn’t match the rest of the system?
You did experiment with different Mesa versions in the past IIRC…

rpm -qi Mesa Mesa-libglapi0
rpm -qa Mesa*

PS, please also post the output of:

ldd /usr/lib64/dri/swrast_dri.so

Maybe there’s still an old nvidia library lying around on your hard disk which gets preferred (replacing libglapi maybe).

If I remove the “nomodeset” and “modeset.nouveau=0” as well, yast2 gives me this error “An error occurred during boot loader installation. Retry boot loader configuration?”

I pasted you the others at URL: SUSE Paste

That’s bad.
How could it even install the boot loader in the first place then?

Then edit the file /etc/default/grub with a text editor (as root) and remove them from the line “GRUB_CMDLINE_LINUX_DEFAULT=”.
Afterwards run “sudo grub2-mkconfig -o /boot/grub2/grub.cfg” to apply the change.

I pasted you the others at URL: SUSE Paste

This looks ok.
But somewhere in the chain a wrong library must be loaded.
Maybe the library seach path is still set by the nvidia driver?

echo $LD_LIBRARY_PATH

“GRUB_CMDLINE_LINUX_DEFAULT=” seems ok (see pasted URL),

and:

linux:/etc/xdg/autostart # echo $LD_LIBRARY_PATH

linux:/etc/xdg/autostart # 

"GRUB_CMDLINE_LINUX_DEFAULT="

this variable seems undefined.

Where is the pasted URL?

linux:/etc/xdg/autostart # echo $LD_LIBRARY_PATH

linux:/etc/xdg/autostart #

Hm. I have no idea at the moment then where this error could come from then.
Maybe this will show something suspicious? (some wrong link?)

ls -l /usr/lib64/libGL*

and

ls -l /usr/lib64/libglapi*
"GRUB_CMDLINE_LINUX_DEFAULT="

this variable seems undefined.

Yes. This is no system variable that will get defined.
It is a configuration value for grub2.
You should change it accordingly in /etc/default/grub and then recreate the boot menu, via “sudo grub2-mkconfig -o /boot/grub2/grub.cfg”.
Have you done that?

Has it helped?
If not, please post /var/log/Xorg.0.log again.

Excuse me for the missed paste, find enclosed all output to that URL: http://paste.opensuse.org/18394680

studio@linux:/boot/grub2> sudo grub2-mkconfig -o /boot/grub2/grub.cfg    
/etc/default/grub: line 12: quiet: command not found

the update of /boot/grub2/grub.cfg seems troublesome.

[QUOTE=MarcoC;2678978]Excuse me for the missed paste, find enclosed all output to that URL: http://paste.opensuse.org/18394680

GRUB_CMDLINE_LINUX_DEFAULT=" "resume=/dev/disk/by-id/ata-ST750LM022_HN-M750MBB_S31PJ9AF306573-part5 splash=silent quiet showopts""

The double quotes are causing your error. Remove one pair, it should look exactly like this:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/disk/by-id/ata-ST750LM022_HN-M750MBB_S31PJ9AF306573-part5 splash=silent quiet showopts"

And I think I found your nvidia remnant which causes problems:

studio@linux:/boot/grub2> ls -l /usr/lib64/libGL*
lrwxrwxrwx 1 root root      21 Nov 24 19:35 /usr/lib64/libGLESv1_CM.so -> libGLESv1_CM.so.1.1.0
lrwxrwxrwx 1 root root      22 Nov 24 19:33 /usr/lib64/libGLESv1_CM.so.1 -> libGLESv1_CM.so.343.22
-rwxr-xr-x 1 root root   18280 Oct  8 18:41 /usr/lib64/libGLESv1_CM.so.1.1.0
-rwxr-xr-x 1 root root   48248 Oct  9 19:22 /usr/lib64/libGLESv1_CM.so.343.22
lrwxrwxrwx 1 root root      18 Nov 24 19:35 /usr/lib64/libGLESv2.so -> libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root      19 Nov 24 19:33 /usr/lib64/libGLESv2.so.2 -> libGLESv2.so.343.22
-rwxr-xr-x 1 root root   30568 Oct  8 18:41 /usr/lib64/libGLESv2.so.2.0.0
-rwxr-xr-x 1 root root   62352 Oct  9 19:22 /usr/lib64/libGLESv2.so.343.22
lrwxrwxrwx 1 root root      19 Nov 15 21:54 /usr/lib64/libGLEWmx.so.1.10 -> libGLEWmx.so.1.10.0
-rwxr-xr-x 1 root root  514152 Oct  6 21:47 /usr/lib64/libGLEWmx.so.1.10.0
lrwxrwxrwx 1 root root      17 Nov 15 21:54 /usr/lib64/libGLEW.so.1.10 -> libGLEW.so.1.10.0
-rwxr-xr-x 1 root root  575600 Oct  6 21:47 /usr/lib64/libGLEW.so.1.10.0
-rw-r--r-- 1 root root     656 Oct  9 19:22 /usr/lib64/libGL.la
lrwxrwxrwx 1 root root      14 Nov 24 19:35 /usr/lib64/libGL.so -> libGL.so.1.2.0
lrwxrwxrwx 1 root root      15 Nov 25 13:39 /usr/lib64/libGL.so.1 -> libGL.so.343.22
lrwxrwxrwx 1 root root      14 Nov 25 13:39 /usr/lib64/libGL.so.1.2 -> libGL.so.1.2.0
-rwxr-xr-x 1 root root  586304 Oct  8 18:41 /usr/lib64/libGL.so.1.2.0
-rwxr-xr-x 1 root root 1274552 Oct  9 19:22 /usr/lib64/libGL.so.343.22
lrwxrwxrwx 1 root root      15 Nov 24 19:35 /usr/lib64/libGLU.so.1 -> libGLU.so.1.3.1
-rwxr-xr-x 1 root root  518952 Sep 25 16:37 /usr/lib64/libGLU.so.1.3.1
lrwxrwxrwx 1 root root      15 Nov 24 19:35 /usr/lib64/libGLw.so -> libGLw.so.1.0.0
lrwxrwxrwx 1 root root      15 Nov 15 22:15 /usr/lib64/libGLw.so.1 -> libGLw.so.1.0.0
-rwxr-xr-x 1 root root   31331 Sep 25 18:50 /usr/lib64/libGLw.so.1.0.0
studio@linux:/boot/grub2>

Remove those files:

sudo rm /usr/lib64/*.343.22 /usr/lib64/libGL.so.1 /usr/lib64/libGLESv2.so.2 /usr/lib64/libGLESv1_CM.so.1

And then reinstall the affected Mesa packages:

sudo zypper in -f Mesa-libGLESv1_CM1 Mesa-libGLESv2-2 Mesa-libGL1

[quote="“wolfi323,post:15,topic:104878”]

Thank’s a lot, problem has been solved.

Last question, for using nvidia card and switch from intel to nvidia on my optimus notebook, there is a manual procedure ? Avoiding bumblebbe that is almost impossible to install for a newbi.

Good to hear! :slight_smile:

Last question, for using nvidia card and switch from intel to nvidia on my optimus notebook, there is a manual procedure ? Avoiding bumblebbe that is almost impossible to install for a newbi.

Yes, there is, but this only works with nouveau, not the nvidia driver. So it doesn’t really make much sense I think, except for turning off the nvidia card completely to save power.

IIRC, I already raised the suspicion that you still have parts of the nvidia driver left which cause your problems with the bumblebee installation.
So probably it will work just fine now after we finally removed it?

If you follow these instructions, it should work (but do not install the standard nvidia driver, install nvidia-bumblebee from the Bumblebee repo):
https://en.opensuse.org/SDB:NVIDIA_Bumblebee