I am running into this when I run insmod on my newly built minimal driver:
[root@rwfedora play]# insmod play.ko
insmod: error inserting 'play.ko': -1 Invalid module format
/var/log/messages ends with:
May 21 20:08:44 rwfedora kernel: play: no version for "struct_module" found: kernel tainted.
May 21 20:08:44 rwfedora kernel: play: version magic '2.6.20 SMP mod_unload PENTIUMIII ' should be '
2.6.20-1.2944.fc6 SMP mod_unload 586 4KSTACKS '
And uname tells me:
[eric@rwfedora play]$ uname --all
Linux rwfedora 2.6.20-1.2944.fc6 #1 SMP Tue Apr 10 17:27:49 EDT 2007 i686 athlon i386 GNU/Linux
Now I am savvy enough to know that I have some mismatches here but I am a little puzzled as to exactly what mismatches and why.
Obviously 2.6.20-1.2944.fc6 != 2.6.20 but do I need to match EXACTLY at every decimal place? Doesn't this complicate distribution of drivers as binaries?
Is the mismatch PENTIUMIII != 586 alsoa problem? What is the simplest fix?
What is the basic rationale behind this checking and how does it work?
Eric