Programming

Kernel module compile example

daehee87 2013. 7. 8. 16:18

다른 커널소스에 대한 크로스컴파일이 아닌 자기자신 커널에 대한 모듈컴파일시는

커널소스를 따로 다운로드받거나 커널소스를 미리 컴파일할 필요가 없다.

그냥 바로 할 수 있다. 아래와같이 두 파일을 놓고 make 하면된다...


// m.c

#include <linux/module.h>

#include <linux/kernel.h>


int init_module(void){

printk("Hello World\n");

return 0; // must return 0

}


void cleanup_module(void)

{

printk("bye\n");

}




// Makefile

obj-m += m.o


all:

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules


clean:

make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean



Makefile 이 아주 간단하다.

여기서 /lib/modules/$(shell uname -r)/build 는 /usr/src/커널소스헤더 에 대한 심볼릭 링크이다.