From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Wed Mar 16 2005 - 13:41:22 PST
Paolo, Your sysadmin is both right and wrong. The kernel sources you used are probably the correct source for building your kernel, but they are not fully configured, or the version found in include/linux/version.h (2.4.26) would have matched. Based on the configuration settings a given kernel source can generate many (millions) of different kernels. The differences among most of those potential kernels is small, but even the smallest changes will cause the kernel's functions to appear at different addresses in different builds. These differences are handled using a symbol table. However, there are some difference (such as configuring SMP support on or off) that are more significant because they change the fields in some kernel data structures. To operate correcly any loadable kernel module must agree with the running kernel on the composition of any data structures it uses. This agreement can optionally be checked at module load time using versioning on the symbols in the symbol table. In the example error you provided 0e2ea584 is a sort of checksum of the types of the arguments to the function __d_path(). There are two possibilities now. One is that you'll need to get a configured kernel source, which we may be able to help you with. The other possibility is that the blcr kernel modules are incorrectly assuming symbol versioning is being used when it is not enabled in your kernel. To determine which is the case, please provide the output of grep d_path /boot/System.map-2.4.26-1-386 -Paul Paolo Victor wrote: > Hello, > > I'm trying to install BLCR on my machine. I ran configure, make and > make install, the libs and modules were created and put in the > usr/local dir, but when I try to install the vmadump and blcr modules, > some errors occurr, being all of them like this: > >> /usr/local/lib/blcr/2.4.26/vmadump_blcr.o: >> /usr/local/lib/blcr/2.4.26/vmadump_blcr.o: unresolved symbol >> __d_path_R0e2ea584 > > > So, what could be wrong? Did I try to use a wrong version of the > kernel sources? I suppose the problem lies on the kernel sources > I'm using because when I run configure, I get this warning: > >> ******************************************************************* >> ***** WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***** >> ******************************************************************* >> * The kernel source does not match currently the running kernel. * >> * Compilation will produce modules unsuitable for the currently * >> * running kernel, which may not be what you intended. * >> ******************************************************************* >> ***** WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***** >> ******************************************************************* >> ====================================================================== >> Please review the following configuration information: >> Kernel source directory = /usr/src/kernel-source-2.4.26 >> Kernel build directory = /usr/src/kernel-source-2.4.26 >> Kernel symbol table = /boot/System.map-2.4.26-1-386 >> Kernel version probed from kernel build = 2.4.26 >> Kernel running currently = 2.4.26-1-386 >> ====================================================================== > > > But when I asked the system admin if the versions where different, > he said that the "-1-386" is just a kind of label and that the > versions are the same. Could you help me with this? > > Thanks in advance for your help, > Paolo Victor -- Paul H. Hargrove PHHargrove_at_lbl_dot_gov Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900