Kernel 2.4.18-18 Compile Problems..

Christopher Wagner chrisw at pacaids.com
Wed Dec 18 10:51:05 PST 2002


Trying your suggestion now, although, I'm attempting to compile the sound
card driver directly into the kernel.  The module does not get automagically
loaded and I'm getting sick of modprobe'ing it manually.  Yeah sure, I could
add it to a start-up script but that seems silly, I'd rather have things
operating in the manner that they should.

- Christopher Wagner
chrisw at pacaids.com

Packaging Aids Corporation - Information Systems
P.O. Box 9144
San Rafael, CA 94912-9144
http://www.pacaids.com/
(415) 454-4868 x116
 

-----Original Message-----
From: ME [mailto:dugan at passwall.com]
Sent: Tuesday, December 17, 2002 5:52 PM
To: talk at nblug.org
Subject: RE: Kernel 2.4.18-18 Compile Problems..


(comments below)

Christopher Wagner said:
> NOW, I'm faced with yet another stepping block. :(  In the sound
> drivers section I'm getting:
> ---
> make[1]: Entering directory `/usr/src/linux-2.4.18-18.7.x'
> kallsyms pass 1
[chop]
> drivers/sound/sounddrivers.o: In function `es1371_probe':
> drivers/sound/sounddrivers.o(.text+0x6550): undefined reference to
> `gameport_register_port'
> drivers/sound/sounddrivers.o: In function `es1371_remove':
> drivers/sound/sounddrivers.o(.text+0x66ba): undefined reference to
> `gameport_unregister_port'
> make[1]: *** [kallsyms] Error 1
> make[1]: Leaving directory `/usr/src/linux-2.4.18-18.7.x'
> make: *** [vmlinux] Error 2
>
> This is happening every time now..  Any thoughts?

Yes.
It looks like the es1371 code section is looking for a gameport reference
(var or function) and cant find one. I have noticed occasional problems in
the newer sound code where dependencies withing the kernel are not met.

Suggestions on things to do...
If you know for certain that you have an es1371 based sound card using the
AC97 chips, then keep it in, if not, then remove support for this and then
the problem will be skipped.

If you know that you have a sound card that required this driver for
support, then consider examining the gameport/joystick section and enable
one or more drivers for this. This may provide the necessary
functions/variables expected in the compiler checks before compilation
(that all the vars called/used are actually defined and available in
scope.)

Doyou have such a card? According the the help for that driver:
CONFIG_SOUND_ES1371
  Say Y or M if you have a PCI sound card utilizing the Ensoniq
  ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if
  your sound card uses an ES1371 without removing your computer's
  cover, use lspci -n and look for the PCI ID 1274:1371. Since
  Ensoniq was bought by Creative Labs, Sound Blaster 64/PCI
  models are either ES1370 or ES1371 based. This driver differs
  slightly from OSS/Free, so PLEASE READ
  <file:Documentation/sound/solo1>

The doc file mentioned did not shed any light to the situation.

Heeding the notice of the GNU Generation, I try to "Use the Source" and
find this:

looking at "drivers/sound/es1371.c" I find that there is a reference to
"gameport_unregister_port" , but my /usr/include/linux/gameport.h (which
is included here) also has functions of the same name.

Now, I am test-building a kernel that has support for that module included
to see if I can duplicate your error.

I was unable to duplicate the error you found. You may want to examine
your system's linux include files - specificly the gameport.h file in
/usr/include/linux/gameport.h and the file in your linux source tree's
include/linux/gameport.h

Perhaps do a diff on the two files from the linux src tree's root directory:

(One line:)

<pre>

# diff /usr/include/linux/gameport.h src/include/linux/gameport

</pre>

If you see examples of "gameport_unregister_port" in the diff output, it
is likely that the /usr/include/linux/gameport.h is being used by your
kernel.

If this is the case, you may want to examine backing up the /usr/include
linux/gameport.h to say /usr/include/linux/gameport.h.bak
and then copy the one from your linux kernel source tree to
/usr/include/linux/gameport.h

There was debate ages ago about copying the linux kernel header files into
the system's /usr/include folder, or use symbolic links, or do nothing and
leave it as is. There are plusses and minuses for the different opinions.

Try the backup/copy of just this file to the system's /usr/include/linux
directory and see if it helps.
(Seeing all of these problems makes me glad I have Debian. *plug* *plug*:-)


-ME



-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM$/IT$/LS$/S/O$ !d--(  ) !s !a   (-----) C  $(    ) U    $( $) P $>
L   $(  ) E W   $( ) N  o K w $>  >    O-@ M $ V-$>- !PS !PE Y  PGP
t at -(  ) 5 @ X@ R- tv- b   DI    D  G--@ e >  >     h(  )>  r*>? z?
------END GEEK CODE BLOCK------
decode: http://www.ebb.org/ungeek/ about: http://www.geekcode.com/geek.html





SPAM: ---- Start SpamAssassin results
SPAM: 0 hits, 5 required;
SPAM: 
SPAM: ---- End of SpamAssassin results



More information about the talk mailing list