[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Unresolve symbols, running kernel



On Sun, Dec 28, 2003 at 03:57:18PM -0500, Paul M Foster wrote:
> I'm trying to build the Wacom tablet driver from the linuxwacom project,

Ask there.

> and in attempting to load the resultant wacom.o module, I get three
> unresolved symbols:
> 
> input_register_device_Rd7e250e3
> input_event_Rbe7e42b3
> input_unregister_device_Rcf34c401

The _R..... part is module versioning stuff.  If only this part of the
name would differ, recompile the kernel and the module using common
sources.

> I have the 2.4.18-1-k6 kernel image that loads at boot. In order to
> build this module, I installed the 2.4.18-1-k6 kernel package and built
> the source using the .config file in my /boot partition. Now, I find the
> same symbols published in:
> 
> /lib/modules/2.4.18-1-k6/kernel/drivers/input/input.o
> 
> that I just built. However, these may not be the same symbols published
> by the actual running kernel, and I don't know how to tell what those
> are.

A tit for tat:  What you're looking for is /proc/ksyms (AFAICT).  Now
how *did* you determine which symbols the input.o publishes?

> So I suppose the question is: does a built module attempt to reconcile
> its symbols with a running kernel or with the one you've just built? (I
> hope this makes sense.)

It does, but it's almost silly :-) -- The compilation of a new kernel,
or of any program, for that matter, doesn't mess with the kernel symbol
table.  If I understand it correctly, the kernel symbol table is just a
bunch of name-address pairs, which allow different parts of the kernel
to use common functions.  When you insmod a kernel, it may append to the
table, or even overwrite some entries, usually with pointers to the
functions it itself provides.  If everything is done correctly, other
modules, or the core kernel, can use the new functions now.  The module
may requires some functions to be present, too.  And this is your
situation.  input.o provides some functions wacom.o uses.  You have to
insmod the input.o module, in order to use the wacom.o module.

HTH.
Jan.

-- 
Jan Minar                      "Please don't CC me, I'm subscribed." x 4

Attachment: pgpoJV4Qazi7k.pgp
Description: PGP signature


Reply to: