Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I care that the symbol version dump is missing? How do I get one?

Tags:

linux-kernel

I am trying to compile a driver that we have from source and I am working through the issues with a new target environment. One of the slightly disturbing things I see is the following warning:

  WARNING: Symbol version dump /usr/src/linux-2.6.38/Module.symvers
           is missing; modules will have no dependencies and modversions.

I spent a fair amount of time looking on the web and this is shown in output frequently when other questions are asked, but I didn't see any commentary about whether or not this is an issue.

In any case, how would I tell linux/ubuntu to generate Module.symvers?

like image 937
sage Avatar asked Feb 24 '12 04:02

sage


People also ask

Is there a symbol version dump for GCC modules?

WARNING: Symbol version dump ./Module.symvers is missing; modules will have no dependencies and modversions. the empty file is just as good as the one generated by gcc, which just has the symbols all with the same 0x00000000 CRC value, on a system without modversions.

How do I troubleshoot symbol issues?

....... You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded. You should also verify that your symbol search path (.sympath) is correct.

How to troubleshoot kernel symbols that are wrong?

You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded. You should also verify that your symbol search path (.sympath) is correct. Use !analyze -v to get detailed debugging information. ***** Kernel symbols are WRONG.

Why can't I load symbols in the debugger?

* Symbols can not be loaded because symbol path is not initialized. * * using the _NT_SYMBOL_PATH environment variable. * * using the -y <symbol_path> argument when starting the debugger. * * Symbols can not be loaded because symbol path is not initialized. * * using the _NT_SYMBOL_PATH environment variable. *


1 Answers

Module.symvers is generated when the kernel itself is compiled and ought to be provided to the user as part of the kernel build environment package, however that may look on Ubuntu (possibly broken there?) Fedora and openSUSE for example ship one or more “kernel-devel” (and/or similarly-named) packages that ship this build environment and make the file reachable through /lib/modules/<version>/build/Module.symvers. When using a self-compiled kernel, substitue /lib/modules/version/build for the appropriate path to the build directory (where all the .o files are).

like image 53
jørgensen Avatar answered Sep 18 '22 17:09

jørgensen