I don't know what's up with the "non-versioned kernel" stuff; but I had a similar problem. Check a few things first before you start spending time recompiling kernels:
1) Look in /usr/include for version.h. Compare it to the version.h in your kernel source tree, which can be found in [i]source_tree_root[i]/include/linux/version.h. If the LINUX_VERSION_CODE doesn't match up; back up your /usr/include/version.h and change it to match. This is the one that got me when I was learning how to do this stuff. In all cases I've seen, the /usr/include/version.h file matches the kernel version that actually came with the distribution, and installing kernel source doesn't update this file.
2) Look in /usr/src. If your kernel source is installed there, make sure /usr/src/linux is symlinked to the correct version.
3) Make sure you're actually building your driver modules against the kernel version that you are actually running (i.e. if you're running kernel version A don't build drivers against headers or anything in the version B source tree).
That list is not complete and applies at least to Redhat. Also note that:
Quote:
Module hello loaded, with warnings
|
Means that your module did load succesfully. You can use lsmod to list loaded modules and verify that yours got loaded. You can ignore the version warnings while you are just learning; but I'd check your version.h thing first.
Sorry, it's been awhile since I did anything like that so I don't remember much; also I'm not sitting in front of a Linux machine right now so this is just from memory.
Jason