본문 바로가기

Programming

Kernel module compile example

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

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

그냥 바로 할 수 있다. 아래와같이 두 파일을 놓고 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/커널소스헤더 에 대한 심볼릭 링크이다.




'Programming' 카테고리의 다른 글

x86 assembly 16bit prefix  (0) 2013.07.10
FreeBSD system call table  (0) 2013.07.10
python RIJNDAEL encryptor/decryptor  (0) 2013.07.02
FreeBSD pkg_add package install  (0) 2013.07.01
python malware scanner  (0) 2013.06.29