Archived

This topic is now archived and is closed to further replies.

err: 'GLX' extension missing... ???

This topic is 5626 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

laterly i''m porting my program to linux and i switched from wgl to the glX functions. i''m new to linux. whenever i call a glX function, it gives me the err message: ''GLX'' extension missing... what does it mean? how to solve it?

Share this post


Link to post
Share on other sites
my graphic card is GeForce2 MX
:D
why glX is not installed by default? are linux programers now using other tools? what should i do? many many thanks!

Share this post


Link to post
Share on other sites
GLX is not installed by default because you don''t "need" GLX to run OpenGL applications, even though 99% of todays linux OpenGL applications use GLX.

You''re lucky because you have a nVidia card, and as far as I know nobody supports linux better than nVidia.
Browse www.nvidia.com, click on ''download drivers'' and go to Linux drivers. Follow the steps to install nVidia drivers for your graphics card. GLX is included in the installation, but don''t install GLX alone. Install both packages that are recommended.
After the installation, restart your X server (or simply reboot your machine) and you will be able to :
1- execute OpenGL applications with hardware acceleration.
2- run the GLX protocol.

Many thanks to nVidia !

Note that this obviously work with nVidia cards only. If later you buy another card (for example an ATI Radeon) you may uninstall current nVidia packages and install ATI packages (but ATI doesn''t support linux as well as nVidia does).

Share this post


Link to post
Share on other sites
GLX is not installed by default because you don''t "need" GLX to run OpenGL applications, even though 99% of todays linux OpenGL applications use GLX.
it sounds strange. does GLUT run without GLX, and what about SDL? if so, how do they create opengl contexts?
and is the default opengl driver software-only? if i''m going to distribute my program, will i have to tell the users to install the drivers?

Share this post


Link to post
Share on other sites
quote:
does GLUT run without GLX, and what about SDL? if so, how do they create opengl contexts?

I think that GLUT and SDL both uses GLX since I''ve never been able to run GLUT and SDL applications without GLX.

quote:
and is the default opengl driver software-only?

Yes, and it is the case under Windows too.

quote:
if i''m going to distribute my program, will i have to tell the users to install the drivers?

Obviously! It''s also the same problem with Windows.

From an end-user point of view, the only difference between Linux and Windows is that Windows drivers are easier to find (more widely spread).

I''m comparing Linux to Windows because (I may be wrong but...) you seem to be using Windows more naturally than Linux, as most of us.

Share this post


Link to post
Share on other sites
till now, i''ve done everything that i can do. i installed the driver, configurated the XF86Config-4, restarted X... but the error ''GLX extension missing'' is still playing with me :-(
it''s not as easy as on Windows at all.

Share this post


Link to post
Share on other sites
You have installed both packages (NVIDIA_GLX-xx and NVIDIA_kernel-xx) and saved changes into XF86Config-4 and restarted your X server and it still doesn''t work ?

Also, are you sure XF86Config-4 was the right file to modify ? Your linux may use XF86Config. To know this, open /var/log/XFree86.0.log and look at the line beginning with "(==) Using config file:".

May I download your program ? I can test it at home if you want. If your program runs fine on my machine, then that would mean you failed installing nVidia drivers. Otherwise that would mean that it is your program that is not calling GLX correctly.

Can you copy-paste the whole error message (from the time when you enter the command into to shell to the time when the application stops) ?

Share this post


Link to post
Share on other sites
Have you chacked the folder /usr/X11R6/lib/modules/extensions/ to see if there was the file libglx.so.x.y.z ? (where x, y and z represent the version numbers)

Share this post


Link to post
Share on other sites
This may be a cheap-shot, but what the hell:
Does you XF86Config (or XF86Config-4) file include the line

Load "glx"

in Section "Module"?

Also, look at the X logs. They should say whether the X server actually tries to load the GLX extension, and if so, hopefully it will also say what went wrong. If libglx.so fails to load it could be that the kernel module (NVdriver) is not loaded. Try doing an lsmod and see if NVdriver is included in the output. If not run

modprobe NVdriver

You should configure the system to automatically load NVdriver at startup.

If X loads GLX successfully you should see something similar to this in the X log:

(II) LoadModule: "glx"
(II) Loading /usr/X11R6/lib/modules/extensions/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.2960
Module class: XFree86 Server Extension
ABI class: XFree86 Server Extension, version 0.1
(II) Loading extension GLX

If this is what the logs say, but you still get the error, perhaps you're doing something strange when initializing/using GLX?

[edited by - Dactylos on July 18, 2002 11:51:36 AM]

Share this post


Link to post
Share on other sites
i have followed the instructions of README.TXT of the driver packages. i have made sure it''s using XF86Config-4. i have checked the files installed, from both packages. i have added the line ''Load "glx"'' in the module section, and changed ''Driver "nv"'' to ''Driver "nvidia"''.

but in /var/log/XFree86.0.log, there is no "glx"!! i checked the date of the files. it seems not the files currently using. i''m using VNCSERVER and VNCVIEWER from a Win2000 machine. will this make some differences? it seems using another configuration file, but i don''t know what it is.

and after i installed the driver, i get a "/bin/bash: =: not a command" message every time i login. what''s it?

Share this post


Link to post
Share on other sites
today i tried to start X directly on the server instead of using vncserver and vncviewer from my win2000 machine. the XF86Config-4 is actually loaded this time. so i can be sure that vnc is using some else config file. could anyone tell me how to configurate vnc?

but still without luck. X cannot start.

the server is running mandrake 8.2smp. (double PIII 1G, TNT2 Vanta)

here''s a portion of XFree86.0.log

...

(II) LoadModule: "glx"
(II) Loading /usr/X11R6/lib/modules/extensions/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.2960
Module class: XFree86 Server Extension
ABI class: XFree86 Server Extension, version 0.1
(II) Loading extension GLX

...

(II) LoadModule: "nvidia"
(II) Loading /usr/X11R6/lib/modules/drivers/nvidia_drv.o
(II) Module nvidia: vendor="NVIDIA Corporation"
compiled for 4.0.2, module version = 1.0.2960
Module class: XFree86 Video Driver
(II) LoadModule: "mouse"
(II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o
(II) Module mouse: vendor="The XFree86 Project"
compiled for 4.2.0, module version = 1.0.0
Module class: XFree86 XInput Driver
ABI class: XFree86 XInput driver, version 0.3
(II) v4l driver for Video4Linux
(II) NVIDIA XFree86 Driver 1.0-2960 Tue May 14 07:45:20 PDT 2002
(II) NVIDIA: NVIDIA driver for: RIVA TNT, RIVA TNT2, Vanta,
RIVA TNT2 Ultra, RIVA TNT2 Model 64, Aladdin TNT2, GeForce 256,
GeForce DDR, Quadro, GeForce2 MX/MX 400, GeForce2 MX 100/200,
Quadro2 MXR/EX/Go, GeForce2 Integrated GPU, GeForce2 GTS,
GeForce2 Ti, GeForce2 Ultra, Quadro2 Pro, GeForce4 MX 460,
GeForce4 MX 440, GeForce4 MX 420, Quadro4 500/550 XGL,
Quadro4 200/400 NVS, GeForce3, GeForce3 Ti 200, GeForce3 Ti 500,
Quadro DCC, GeForce4 Ti 4600, GeForce4 Ti 4400, GeForce4 Ti 4200,
Quadro4 900 XGL, Quadro4 750 XGL, Quadro4 700 XGL, GeForce2 Go,
GeForce4 440 Go, GeForce4 420 Go, GeForce4 420 Go 32M,
GeForce4 440 Go 64M, Quadro4 500 GoGL
(II) Primary Device is: PCI 01:00:0
(--) Assigning device section with no busID to primary device
(--) Chipset Vanta found

...

(II) Setting vga for screen 0.
(II) Loading sub module "vgahw"
(II) LoadModule: "vgahw"
(II) Loading /usr/X11R6/lib/modules/libvgahw.a
(II) Module vgahw: vendor="The XFree86 Project"
compiled for 4.2.0, module version = 0.1.0
ABI class: XFree86 Video Driver, version 0.5
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(--) NVIDIA(0): Linear framebuffer at 0xD4000000
(--) NVIDIA(0): MMIO registers at 0xD6000000
(EE) NVIDIA(0): Failed to initialize the NVdriver kernel module!
(EE) NVIDIA(0): *** Aborting ***
(II) UnloadModule: "nvidia"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/X11R6/lib/modules/libvgahw.a
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

Share this post


Link to post
Share on other sites
You could start X before, but now when you start X manually it doesn''t work ?!

I can''t help you about vnc. I hope that it''s not it that causes problems.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I don''t know vnc at all, but i may understand what it does ...

with vnc you can run an X session on a windows2k machine from a linux server ? right ?

so if i''m right, perhaps you should check some of these "little" things :

- when using vnc, will OpenGL be handled by the server''s video card or the client one ?
- does vnc allows hardware OpenGL be "carried" from the server to the client ?
- does vnc allows hardware OpenGL be called from the server and actually be done on the client ?

and finally :
- does the server have an OpenGL video card ?
- does the client have an OpenGL video card ?

from what you said, i guess the server hasn''t an OpenGL nvidia card

and i think i could safely assume vnc doesn''t enable a program that is executed on the server to use the hardware OpenGL acceleration on the client...

hope that helps ...

flure

Share this post


Link to post
Share on other sites
i mean, when the sytem has nothing to do with vnc, X failed to start after i installed the driver. maybe i do something wrong?

vncserver seems using another config file other than XF86Config-4. so it''s not affected by the driver at all.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
what video card does the server have ?

IIRC, some old nvidia cards aren''t supported at all by their linux drivers, but you should check this on nvidia''s website

BTW i had no problem installing and configuring OpenGL for my TNT2 M64 on my linux box, just took me approximately one hour (including download time) including some annoying reboots because i didn''t set up the runlevel correctly, thus i had to use a rescue disc to recover my box, but that was my own fault )

flure

Share this post


Link to post
Share on other sites
when installing the kernel rpm, it prints
modprobe: Can''t load module NVdriver
and then
the package is successfully installed.

i just asked the administrator, and got to know he has rebuild the linux kernel. so i guess that neither the SMP or UP driver can be installed properly. i have asked him to help me with the problem.

many thanks to everyone here!

Share this post


Link to post
Share on other sites
With the nvidia drivers it''s usually best (in my experience) to install using the tar balls (i.e. the .tar.gz, or .tgz files).

I have never heard of vnc, but I did a quick web search, and from what I gather it is (among other things) an X server that forwards stuff to a ''display server'' running on a different computer (kinda like a remote X session, but a little different).

From what I understand your X client will be running under the Xvnc server, and not the ordinary X server (meaning that it will likely use a different configuration file, and it will probably not load modules designed for the XFree86 server).

In general you won''t get accelerated OpenGL with a remote X server, since all OpenGL calls have to go through the X protocol over the network to be displayed on the server.

Perhaps this link can help you. I found it through google, but as I said I have never heard of vnc before, so I''m not sure how helpful it is.

Share this post


Link to post
Share on other sites