커널 | 모듈 만들기

[Makefile 생성]

1
2
3
4
5
6
7
8
TARGET = pid_test.ko
obj-m = pid_test.o
KDIRS = /usr/src/linux_v6
PWD = $(shell pwd)
default:
$(MAKE) -C $(KDIRS) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIRS) SUBDIRS=$(PWD) clean

[실행 방법]
$ make
실행하면 ~.o 파일이 생성되는데, 이것이 모듈파일
모듈 파일 실행을 위해서는 커널에 적재해야 함

$ insmod test.ko
커널 메시지 출력

$ dmesg
커널 모듈 확인

$ lsmod
커널 모듈 제거

$ rmmod test

$ make clean
컴파일 결과로 생성된 파일 제거

[모듈 초기화/제거 함수]
module_init(hello_init);
module_exit(hello_exit);

[커널 메시지 출력]
printk()

Share