※ 모듈의 구현 원리
※ 모듈 유틸리티
ㅡ.# insmod <모듈명>.ko
커널 라이브러리를 객체(.ko)형태로 만들어 시스템콜을 통해 커널에 적재 요청하고,
그 요청에 따라 커널은 해당 객체를 커널에 동적으로 링크하여 사용한다.
이를 구현하기 우해 커널에 심볼 테이블 기능이 추가 됐다.
그 요청에 따라 커널은 해당 객체를 커널에 동적으로 링크하여 사용한다.
이를 구현하기 우해 커널에 심볼 테이블 기능이 추가 됐다.
/proc/ksyms 는 v2.4 의 kernel 소스에서 커널 심볼 테이블이고,
v2.6 kernel에서는
/proc/kallsyms 로 바뀌었다.
v2.6 kernel에서는
/proc/kallsyms 로 바뀌었다.
※ 모듈 유틸리티
ㅡ.# insmod <모듈명>.ko
커널에 모듈 추가
ㅡ.# rmmod <모듈명>
커널에서 모듈 제거
ㅡ.# lsmod
현재 등록된 모듈을 확인
/proc/modules 파일을 읽어서 모듈 정보를 얻는다.
/proc/modules 파일을 읽어서 모듈 정보를 얻는다.
ㅡ.# modprobe
모듈의 의존성 검사 및 추가, 삭제(-r)
ㅡ.# depmod
모듈의 의존성 검사 및 의존성 업데이트
※ 모듈 프로그램의 기본 형태
#include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> MODULE_LICENSE("GPL"); int my_module_start() { ... return 0; } void my_module_end() { ... } module_init(my_module_start); module_exit(my_module_end); |
'Embedded > Device Driver' 카테고리의 다른 글
Device Driver] Kernel Facilities (0) | 2011.04.30 |
---|---|
Device Driver] 커널 메시지 출력 (0) | 2011.04.25 |
Device Driver] Hello World 모듈 컴파일 (0) | 2011.04.25 |
Device Driver] 디바이스 드라이버 만드는 법 (0) | 2011.04.25 |
Device Driver] 시작. (0) | 2011.04.24 |