링크 ux 모듈 프로 그래 밍 (1) - 모듈 불 러 오기

Liux 커 널 을 직접 수정 할 수 있 는 정도 에 이 르 기 전에 우리 가 쓴 코드 는 모두 모듈 로 커 널 에 추가 하여 실행 해 야 합 니 다.이 절 은 가장 간단 한 모듈 작성 과 로드 방법 을 소개 합 니 다.
1. 나중에 작 성 된 모듈 을 저장 하기 위해 먼저 디 렉 터 리 modules 를 만 듭 니 다.다음 에 하위 디 렉 터 리 hello 를 만 들 고 이 절 에 모듈 을 만 드 는 위 치 를 만 듭 니 다.
2. 원본 파일 hello. c 를 작성 합 니 다. 코드 는 다음 과 같 습 니 다.
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_INFO "Hello, world!
"); return 0; } static void hello_exit() { printk(KERN_INFO "Hello, exit!
"); } module_init(hello_init); module_exit(hello_exit);

 
3. Makefile 파일 을 작성 합 니 다. 다음 과 같 습 니 다.
KERNEL_DIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

module-objs := hello.o

obj-m := module.o

default:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules


 
여기 서 먼저 hello. c 를 hello. o 로 컴 파일 한 다음 에 hello. o 를 module. o 로 합 친 다음 에 불 러 올 수 있 는 모듈 module. ko 를 생 성 합 니 다.사실 module. o 를 통 하지 않 고 hello. o 로 불 러 올 수 있 는 모듈 을 직접 만 들 수도 있 습 니 다.다만 Liux 습관 적 인 방법 은 모든 대상 파일 을 대상 파일 에 합 친 다음 에 다른 작업 을 하 는 것 입 니 다.
 
4. 모듈 을 컴 파일 하고 불 러 옵 니 다.
     $make 

      컴 파일 생 성 module. ko
     $sudo insmod module.ko

     모듈. ko 를 커 널 모듈 에 추가 합 니 다.
      $lsmod

      모듈 모듈 을 포함 하여 불 러 온 모듈 목록 보기
      $sudo rmmod module

      마 운 트 해제 모듈 모듈
      $dmesg | less

      최근 기록 5 개 를 인쇄 하면 helloinit 와 helloexit 에서 인쇄 된 정보.
 
 
이제 우 리 는 모듈 컴 파일 로 딩 의 절 차 를 완전히 알 게 되 었 으 며, 커 널 로 들 어 가 는 문 을 여 는 것 과 같다.앞으로 점점 더 많은 커 널 API 를 접 하 게 될 것 이 고 우리 가 할 수 있 는 일 도 많아 질 것 이다.
 
 
 
 

좋은 웹페이지 즐겨찾기