메모장 입니다2

Linux] 커널 모듈 제작 - 1) Hello 출력 본문

Study/Programming

Linux] 커널 모듈 제작 - 1) Hello 출력

Wooum@n 2017. 10. 25. 14:51

0.순서


 1)커널모듈 작성

 2)Makefile 작성

 3)make

 4)확인




1.커널모듈 소스


 

#include <linux/init.h>             // For init, exit macro

#include <linux/module.h>           // Core header for LKM

#include <linux/kernel.h>           // Core header for kernel


///////////////////////////////////////////////////////////////////////////////


MODULE_LICENSE("GPL");

MODULE_AUTHOR("SecuritySchool");

MODULE_DESCRIPTION("Practical Security School - Linux Kernel Module");

MODULE_VERSION("0.1");  // Basic codes


///////////////////////////////////////////////////////////////////////////////

 

// Module Init function

static int __init pssapl_init(void);

// Module Exit function

static void __exit pssapl_exit(void); 


// Set init function to kernel

module_init(pssapl_init);

// Set exit function to kernel

module_exit(pssapl_exit);


///////////////////////////////////////////////////////////////////////////////


// Module Init function

static int __init pssapl_init(void){

   printk(KERN_INFO "[%s] Hello LKM!\n", __FUNCTION__);

   return 0;

}

 

// Module Exit function

static void __exit pssapl_exit(void){

   printk(KERN_INFO "[%s] Goodbye LKM!\n", __FUNCTION__);

}


///////////////////////////////////////////////////////////////////////////////




 -module_init(FUNCITON_ADDRESS)

: 커널모듈이 로드될 때 호출될 함수 설정.


 -module_exit(FUNCITON_ADDRESS)

: 커널모듈이 언로드될 때 호출될 함수 설정.




2.MakeFile 설정


//MakeFile

obj-m += pssap_lkm.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



 >>후 make




3.확인


 -명령어

`insmod [모듈명]`

: 커널 모듈 로딩


>insmod pssap_lkm.ko


`dmesg [옵션]`

: 커널 메시지 출력

>dmesg | grep -i pss


`rmmod [모듈명]`

: 커널 모듈 언로딩


>rmmod pssap_lkm