Error using insmod "Could not insert module hello_world.ko: Invalid module format"

user3204332 picture user3204332 · Jan 20, 2014 · Viewed 23.5k times · Source

I'm trying to make a hello_world kernel module using C and Bash on a Raspberry Pi.

I successfully used the make command to generate a hello_world.ko file.

However, when I try to use the insmod hello_world.ko command, I get the following error:

Error: could not insert module hello_world.ko: Invalid module format

I tried following the steps described on the Raspberry Pi forum, but I didn't have much luck.

I think this may be due to a version mismatch between my kernel and the Linux headers. What role do these headers play in this process and how do I get versions that match my kernel?

Answer

ikstream picture ikstream · Jan 21, 2014

The header files define the interfaces between your modules and the kernel as well as the interfaces between userspace and kernel. If there is a mismatch between your kernel version and header files, your module wont work,as you expected. Your current header files are typically available in your repository. You could check your currently running kernel by:

     uname -r

afterwards check your repo for linux headers:

    sudo apt-cache search linux-headers

and install them.