Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Linux kernel modules don't seem to be portable: they are compiled for a specific version of the kernel (that's why even binary drivers have some source files to be compiled). And you don't just need exactly the same kernel sources, you even need to compile it and use the made-by-yourself version... (pls correct me if I'm wrong somewhere).

So my question is: what is the reason behind all this? (... some binary interface that gets regenerated every time?) And is there any way to compile modules for a prebuilt kernel? (sources could be available, but not the tree it's compiled from).

share|improve this question
up vote 1 down vote accepted

You think you want a stable kernel interface, but you really do not, and you don't even know it. What you want is a stable running driver, and you get that only if your driver is in the main kernel tree. You also get lots of other good benefits if your driver is in the main kernel tree, all of which has made Linux into such a strong, stable, and mature operating system which is the reason you are using it in the first place.

(From The Linux Kernel Driver Interface (all of your questions answered and then some))

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.