linux 드라이브 학습 1--Hello World 모듈

1394 단어
목적: 주로 드라이버 작성 및 디버깅의 기본 절차를 익히는 데 사용된다.
1. 준비
운영 체제: ubuntu 12.04 LTS
2. 원본 코드
#include <linux/init.h>
#include <linux/module.h>

static int hello_init(void)
{
	pr_info("Hello, World.
"); return 0; } static void hello_exit(void) { pr_info("Goodbye, cruel word
"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("Dual BSD/GPL");

3.Makefile
obj-m := hello.o

KERNELDIR := /usr/src/linux-headers-$(shell uname -r)
PWD := $(shell pwd)

modules:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

4. 컴파일
make:
ckt@ubuntu:~/work/ldd/hello$ make
make -C /usr/src/linux-headers-3.13.0-32-genericM=/home/ckt/work/ldd/hello modules
make[1]: Entering directory`/usr/src/linux-headers-3.13.0-32-generic'
  CC [M]  /home/ckt/work/ldd/hello/hello.o
  Buildingmodules, stage 2.
  MODPOST 1modules
  LD [M]  /home/ckt/work/ldd/hello/hello.ko
make[1]: Leaving directory`/usr/src/linux-headers-3.13.0-32-generic'

5. 테스트
         lsmod                  #         
         insmodhello.ko         #  hello.ko  
         rmmodhello             #  hello.ko  
         cat/var/log/syslog     #    

좋은 웹페이지 즐겨찾기