4

I downloaded the sources for my kernel, applied a patch and rebuilt it and now I have a kernel module that, when I try to insmod, complains "Unknown symbol in module" with dmesg giving the error "disagrees about the version of symbol ...".

Without having to hunt down the source for this module and rebuild it against my kernel is it possible to somehow force the kernel to accept this module?

I realise this would be dangerous but I'll to take the risk if its possible.

3 Answers 3

6

insmod isn't the best tool to load modules - use modprobe instead, it's smarter. In modprobe's man page, you'll find that it has a --force option which might load a module with conflicting version information.

As you said, this is dangerous and should essentially never be used. You pick up the pieces if your system blows up.

5
  • 2
    giving FATAL: Module hello.ko not found. what to do?
    – gangadhars
    Apr 22, 2014 at 5:47
  • Find the module? The command is telling you it's not finding it, make sure it's somewhere it can find it.
    – Mat
    Apr 22, 2014 at 5:51
  • 2
    No. I build a kernel and I compiled with that new kernel. insmod is working for (uname -r). but my kernel is not working
    – gangadhars
    Apr 22, 2014 at 5:54
  • Post a question with all the required details, I can't understand your second comment or how it relates to the first.
    – Mat
    Apr 22, 2014 at 5:58
1

If you rebuilt the same kernel version and are getting that error, chances are the patch you applied changed something that in the kernel that is referenced by the module. That pretty much guarantees it's going to blow up. You will need to find the source for that module and compile it again against your new kernel so that it has the correct references.

There is also some chance it will fail to compile at all and need to be modified to match whatever modifications your kernel patch made.

2
  • Yeah the problem is I'm using a parallella board, the kernel i build with headers reports a different version number to the modules built using the headers, and now there's literally no way to load the module. it's driving me crazy.
    – Owl
    Sep 3, 2018 at 16:37
  • @Owl That shouldn't be happening, something is wrong with your build process. Are you cross-compiling?
    – Caleb
    Sep 4, 2018 at 8:53
0

do a make clean, and make again in your module directory , then insmod it, you wont be getting that error. or the other case might be you are missing kernel headers, install them according to the distro you have.

1
  • 1
    The question was how to do this without having to hunt down the source code for the module, so an answer that requires having the source code may not be very helpful.
    – Jenny D
    Mar 19, 2013 at 12:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .