링크 ux 커 널 구동 helloword 모듈 의 컴 파일 및 로드

링크 ux 커 널 구동 모듈 의 컴 파일 및 로드 호스트:Fedora 9 컴 파일 환경:arm-linux-gcc 4.4.3
자신 이 쓴 커 널 구동 을 컴 파일 하려 면 현재 운영 체제 의 커 널 소스 코드 가 있 고 간단 한 준 비 를 해 야 커 널 의 소스 코드 를 사용 하여 자신의 구동 커 널 수 동 컴 파일 지 도 를 컴 파일 할 수 있 습 니 다.
커 널 모듈 을 컴 파일 하 는 방법:간단 한 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(커 널 을 불 러 올 때의 오류)는 해당 하 는 소스 코드 컴 파일 을 다운로드 하여 커 널 을 업그레이드 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기