I’ve got few machines with closed-source modules and urgent need for cutting few things out of kernel. As Suse provides source for their kernel (rpms kernel-source-18.104.22.168-0.8 and kernel-smp-22.214.171.124-0.8 respectively) everything looks simple - installing fresh machine with no updates (SLES10 GA in my case), grabbing .config from /proc/config.gz and make bzImage with no single change should bring me the kernel with is compatible with shipped one. But it isn’t. No single module works after that. Here is what I get after my try:
fat: disagrees about version of symbol struct_module
uname -a is exactly the same. modinfo data are exactly the same. .config is exactly the same. Gcc major version is also the same. But modules from stick kernel still does not load when running recompiled kernel and, after forcing that, they simply crash. So what’s going on? Are the sources shipped with suse not the ones used for compiling stock kernel or am I missing something here? Is there a way to extract mode data from kernel and modules to check what is this disagreement about struct_module about?