[vox-tech] video garbage

Peter Jay Salzman vox-tech@lists.lugod.org
Fri, 26 Jul 2002 04:02:18 -0700


begin Gabriel Rosa <grosa@ucdavis.edu> 
> On Fri, 26 Jul 2002, Peter Jay Salzman wrote:
> 
> > are you talking about misreading "gpm" for "gdm" or are you talking
> > about not looking at your logs as a first line of attack?   ;-)
> >
> 
> Ya, I misread it.
> Don't you know that the mouse port, in reality, piggybacks onto AGP? ;)
 
hmmm.  i thought that was only a sparc thing.

> > gabe, did you notice the unresolved symbols in your log?  related to
> > your GL system.   i'm guessing that's the problem.  in fact, i'm
> > guessing the "splash screen" you see makes use of GL functions.  your
> > rendering engine goes to grab whatever functions are used to render the
> > splash screen, and isn't finding them.
> 
> Ya, i noticed the errors, but didn't think much of them.
 
i'd be surprised if gpm can take down a system like that.  gpm is a
"user space module" -- a device driver that operates in user space.  it
doesn't have access to the blood and guts of linux.  i'm pretty sure
that it couldn't be the root of your problems.  har har.

> > seriously, something had to have changed.  you had to have installed
> > something.  perhaps delete something?
> >
> 
> I (dselect update && apt-get upgrad)'ed today (woody). Although, it was
> obviously a windows goofup.
 
well, installing windows shouldn't have affected linux.

> More investigation is needed. Thanks for the input.
> 
> -Gabe
 
one more piece of input.  your problem library is libGLcore.a.  look at
a typical error:

   Symbol __glXFree from module
   /usr/X11R6/lib/modules/extensions/libGLcore.a is unresolved!

so there's this reference to a function called __glXFree in libGLcore.a.
it's obviously an external reference, since X is complaining that it's
unresolved.  kind of like declaring a variable extern but not defining
the variable.

i'm not the world's expert on nm (someone may want to chirp in here),
but you can use nm to inspect the library.

p@satan% nm -A /usr/lib/libGL.a
(snip)
/usr/lib/libGL.a:dri_glx.o:00000448 T driCreateDisplay
/usr/lib/libGL.a:dri_glx.o:000003ec t driDestroyDisplay
/usr/lib/libGL.a:dri_glx.o:         U fprintf
(snip)

the "U" means "undefined".  the linker needs to link code to the
unresolved symbol.  this is what you'll most likely see for the symbol
__glXFree.

so what you can do is use nm to search your various libraries for a
definition for whatever symbols aren't getting linked.  i believe that's
an "A", but you should look at the nm man page because i'm no expert at
this stuff.  i just find it interesting enough to hack around a little.

at least this will give you an idea of what should be part of the link
process.  if you get frustrated, you can do something dopey like:

find / | xargs nm -A | grep '__glXFree' | grep ' A '

pete

ps- what the HECK are you doing up at 4 in the morning?  get to sleep!
the sun is coming up in 2 hours!  :-)

-- 
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D