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

Re: compiling kernel for another system



On Sun, Dec 07, 2003 at 01:46:09AM +0100, John L. Fjellstad wrote:
> Magnus von Koeller wrote:
> > I mean, after all, you can still boot to the old kernel with LinuxOLD,
> > can't you? Or is your machine that uptime-critical?
> 
> No, I'm just worried because I have unplugged everything on it (monitor,
> keyboard etc). So the only way I will find out something is wrong is if it
> doesn't come up after a couple of minutes (and then I have to spend some
> time plugging stuff in etc).
> 
> Basically, I'm just trying to understand the reason why I get the missing
> symbols... (it would be more reassuring if I understood the why:-)

I'm assuming you used make-kpkg to make the deb package.  

My understanding is that "depmod -a" searches for each symbol exported
by each module in the two places: a map of the kernel's symbol table or
in any other installed modules.  The currently installed kernel's symbol
map can be found by catting /proc/ksyms.  The symbol map for an
installed, but not yet booted, kernel is found in
/boot/System.map-<version>.  So, when dpkg installed the new kernel deb
package its postint script
(/var/lib/dpkg/info/kernel-image.<version>.postinst) runs:

    $ depmod -a -F System.map-<version> <version>

The upshot of all this is that modules with unresolved symbols require
functions which were excluded from both the kernel and any other 
installed modules for that kernel version.  If for some reason you built
this module but don't need it, then these errors can be ingored.
Otherwise, I believe you will not be able to load the module.

What I'd like to know is: how do I track down the kernel configuration
option(s) for unresolved symbols?  Shouldn't "make config" recognize
such dependencies and throw an error message, as it does for other
options?

-- 
Really??  What a coincidence, I'm shallow too!!



Reply to: