[lug] rio500 module support

D. Stimits stimits at idcomm.com
Wed Dec 6 16:24:18 MST 2000


C Menzes wrote:
> 
> >
> > Does depmod -a give any other unknown symbols if you have that module
> > temporarily moved out of the /lib/modules/2.4.0-test11/ area?
> >
> 
>         the only unresolved symbol that depmod gives me is:
> 
>         [~] Yes, my master? >sudo depmod -a
>         depmod: *** Unresolved symbols in
>         /lib/modules/2.4.0-test11/kernel/arch/i386/kernel/apm.o

I'm not certain, but I think the apm symbol is the power management
module, such as used for UPS or battery operated units. Can you check if
this feature is enabled in both your older and newer kernel?

> 
>         which will probably lead to another posting :)
> 
> > If other modules do not do this, then it is extremely likely that the
> > module either was not compiled against this kernel (2.4.0-test11), or it
> > is using functions that are not supported in this kernel (some
> > interfaces have been removed or modified in 2.4.x versus 2.2.x). If you
> > have the source to the module, you could recompile the module. I assume
> > that since your install of 2.4.x you haven't cleaned or removed the
> > configuration of the 2.4.0-test11, so you could be guaranteed that it
> > isn't a mismatch of kernel configuration versus compilation of the
> > module.
> >
> 
>         i am not sure what you mean by 'cleaned or removed the
>         configuration of the 2.4.0-test11'
>         with each recompile of the kernel, i

What I mean is anything that changes "make menuconfig" or "make xconfig"
or other config utilities. Changes to the specific kernel setup, either
by direct changes in config, or deleting files.

> 
>         mv /lib/modules/2.4.0-test11 /lib/modules/2.4.0-test11.old
> 
>         however, when i do this the rio500.o file gets moved along
>         with it. when i issue make modules_install, the rio500.o file
>         doesnt get recreated in the new /lib/modules/2.4.0-test11.

Then you are not compiling the rio module with that kernel. Apparently
the make menuconfig is either not checked to include this, or whatever
your source compile method is, it isn't being compiled after the new
kernel.

> 
>         i am guesssing that my poor understanding of modules is starting
>         to show, because I am very lost at this point.
> 
>         thanks for all your help. -cjm
> 

Kernel configuration with "make menuconfig" and other choices actually
alters parts of the kernel source. When the kernel compiles, it places
interfaces for the various options you chose at different locations in a
file; the System.map is a list of those interfaces and their offsets.
Without a System.map it may not be possible to look up a symbol by name,
but if you already knew where it was, you could still use the interface
that provides a given functionality. But if during kernel configuration
that functionality/configure option was not compiled in, there is no
hope (the interface wouldn't exist). Or if it changed location of
offset, and the application using it did not know how to find the
option's interface after a change, it would also be unable to use the
option (the symbol could be there, but it wouldn't recognize it).

Modules should be recompiled after a kernel compile because the
interfaces may have changed, or the offset of those interfaces. It
appears that your rio is causing the system to look for the apm
symbol/interface, but it can't find it; it then exits. The fact that the
module does not install with make modules_install most likely means the
particular kernel was never configured to create the module (either
because it wasn't set up before kernel compile, or because it doesn't
have it). You can compile and install modules separately, but they
always read and refer to the current kernel found in /usr/src/linux/,
and the source in that directory absolutely must have options configured
to match the kernel that will be run when the module is in use. Where
did you get the rio module source? Was it part of the old kernel, or
downloaded elsewhere?




More information about the LUG mailing list