참조:
1. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Embedded/Documents/WritingDeviceDriversInLinux (디바이스 드라이브 개요)
2. http://wiki.kldp.org/wiki.php/LinuxDeviceDriverSelfStudy#s-2.2.1 (Makefile 작성)
3. http://dada.pe.kr/145 (우분투 커널 컴파일)
개요:
~ 리눅스 디바이스 드라이브 제작에 대한 기본적인 skeleton에 대한 이해
~ hello.c 라는 파일을 작성하고, 이를 컴파일하여 hello.ko라는 디바이스 모듈을 만든다
~ 이를 동작으로 load, unload 하는 방법에 대해서 이해한다.
~ 또한 Makefile 에 대한 구조도 이해한다.
~ 가정: Linux 커널 2.6 버전을 기준으로 작성
1. skeleton 파일 (hello.c)
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
2. Makefile (컴파일 자동화를 위해서)
3.모듈 컴파일
~ 컴파일은 make를 실행하면 된다. (hello.ko 파일이 생성됨)
~ 모듈을 커널에 올리려며 insmod hello.ko 하면 된다. (루트 권한)
~ 모듈을 내릴려면 rmmod h