링크 ux 커 널 구동 helloword 모듈 의 컴 파일 및 로드
1600 단어 소프트웨어 구성
자신 이 쓴 커 널 구동 을 컴 파일 하려 면 현재 운영 체제 의 커 널 소스 코드 가 있 고 간단 한 준 비 를 해 야 커 널 의 소스 코드 를 사용 하여 자신의 구동 커 널 수 동 컴 파일 지 도 를 컴 파일 할 수 있 습 니 다.
커 널 모듈 을 컴 파일 하 는 방법:간단 한 Linux 커 널 모듈 Hello World 를 만 듭 니 다.hello.c 내용 은 다음 과 같 습 니 다.
#include
#include
MODULE_LICENSE("GPL");
static int hello_init(void)
{
printk(KERN_ALERT " Hello World enter
");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT " Hello World exit
");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("ephraim");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");
다음 과 같이 간단 한 Makefile 을 만 듭 니 다.
SOURCE_TREE=/usr/src/linux-headers-3.14.0-031400-generic
MOD_NAME=hello
obj-m := $(MOD_NAME).o
all :
$(MAKE) -C $(SOURCE_TREE) M=$(PWD) modules
clean:
rm -rf *.o *.mod.c $(MOD_NAME).ko Module.symvers modules.order .*.cmd .tmp_versions
$LINUX_KERNEL_PATH 는 커 널 파일 의 절대 경로 로 컴 파일 후 현재 디 렉 터 리 에 커 널 모듈 hello.ko 를 생 성 합 니 다.로드,보기,마 운 트 해제 모듈:
# insmod hello.ko // hello.ko
# insmod -f hello.ko // hello.ko
# lsmod //
# rmmod hello // , .ko
# rmmod -f module //
자료 출처:http://blog.chinaunix.net/uid-28440799-id-3431853.html 커 널 버 전이 많 습 니 다.원본 코드 와 현재 운영 체제 가 일치 하지 않 습 니 다.inmod 는 오류 가 발생 할 수 있 습 니 다.Invalid module format(커 널 을 불 러 올 때의 오류)는 해당 하 는 소스 코드 컴 파일 을 다운로드 하여 커 널 을 업그레이드 할 수 있 습 니 다.