R&D/OS

리눅스 디바이스 드라이버 제작 (1/5)

sunshout 2010. 6. 4. 17:30
참조: 
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