Common Problems and Solutions
To build a driver from source code you will need to install the full (and configured) kernel source, only the kernel headers are not enough. If the build fails on your computer with error messages referring to kernel headers that should not be used to build kernel space drivers this is most probably the reason why. For more detailed information please read this email.
Another very common problem are kernels with "kernel flavour" name like e.g. the notorious SuSE 2.X.Y-4GB problem which leads to version mismatch errors on inserting the modules. A workaround is described here.
Note that the fixscript that is linked in this posting is outdated. Please use the newest version of the fixscript.
You could also just change the version number in linux/include/linux/version.h from 2.X.Y to 2.X.Y-4GB which is also known to work but deprecated since one should generally avoid changes to header files that come with the distribution; maybe after all SuSE has a reason to deliver a version.h that is mismatched with the kernel images they deliver.