메모장 입니다2
Linux] 커널 모듈 제작 - 1) Hello 출력 본문
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
'Study > Programming' 카테고리의 다른 글
codility] TapeEquilibrium (0) | 2017.11.01 |
---|---|
C++] vector - 1) 생성, 추가, 참조 (0) | 2017.11.01 |
안드로이드] 안드로이드 스튜디오 - 2) 프로젝트 구성 (0) | 2017.10.11 |
안드로이드] 안드로이드 스튜디오 - *) 단축키 (0) | 2017.10.11 |
안드로이드] 안드로이드 스튜디오 - 1) 간단한 인터페이스 세팅 (0) | 2017.10.10 |