리눅스 모듈 따로 컴파일 - 따라하기
(인터넷을 보고 따라해 봄)
환경
w00t@ubuntu32svr:~/module/hello-1$ uname -a Linux ubuntu32svr 3.16.35 #1 SMP Tue May 3 14:21:22 KST 2016 i686 i686 i686 GNU/Linux |
우분투 모듈 컴파일 환경 구축
인터넷 참조 |
소스코드
- init_hello 함수는 모듈이 시스템에 로드될때 동작
- exit_hello 함수는 모듈이 시스템에서 제거될때 동작
- printk() : dmesg 명령어로 확인 가능
w00t@ubuntu32svr:~/module/hello-1$ cat hello-1.c #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk(KERN_INFO "Hello, World 1\n"); return 0; } void cleanup_module(void) { printk(KERN_INFO "Good bye world 1.\n"); } |
Makefile (인터넷 참조)
- make -C 앞에 탭이 중요함
w00t@ubuntu32svr:~/module/hello-1$ cat Makefile obj-m += hello-1.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 |
모듈 등록 및 삭제
sudo ismod hello-1.ko sudo rmmod hello-1.ko |
결과 확인 : 명령어 (dmesg)
[125734.809084] Hello, World 1 [125813.587657] Good bye world 1. [125834.278316] Hello, World 1 |
참조
1. http://funnyksoo.blogspot.kr/2014/11/linux-kernel-module-programing-1.html
'module' 카테고리의 다른 글
리눅스 커널 3.16에 sys_upper() 등록하기 (1) | 2016.05.16 |
---|