도와주세요!!
Makefile
1 cc :=arm-generic-linux-gnueabi=gcc-4.3.2
2 obj-m :=test_module.o
3
4 KDIR :=/home/work/linux-2.6.35-s5pv210
5 all:
6 make -C $(KDIR) SUBDIRS=$(PWD) modules
7 clean:
8 make -C $(KDIR) SUBDIRS=$(PWD) clean
9
다음과 같은 파일을 만들구요
/*
* test_module.c
*
* Created on: 2012. 11. 8.
* Author: moon
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
int __intit test_init()
{
printk("module init \n");
return 0;
}
void __exit test_exit()
{
}
module_init( test_init );
module_exit( test_exit );
MODULE_LICENSE("GPL");
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
make 를 하였는데
다음과같은 에러가 나네요..
커널소스디렉토리에서 make menuconfig
를 해서 .config 를 확인했는데요
왜그런거죠?
커널소스는 제공받은 소스이고 압축해제후에 ,
zImage(./make_s5pv210.sh) 도 만들었고 menuconfig 설정도 해보고(.config 확인) 나서 한것입니다.
툴체인은 리눅스 루트에서 압축해제했구요.
arm-generic-linux-gnueabi-gcc 로 그냥 컴파일하면 arm 파일이 만들어지더라구요.
모듈을 컴파일하는 make 파일을 어떻게 만들어야 하나요?
make -C /home/work/linux-2.6.35-s5pv210/ SUBDIRS=/home/work/test modules
make[1]: Entering directory `/home/work/linux-2.6.35-s5pv210'
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
WARNING: Symbol version dump /home/work/linux-2.6.35-s5pv210/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /home/work/test/test_module.o
cc1: fatal error: include/generated/autoconf.h: No such file or directory
compilation terminated.
make[2]: *** [/home/work/test/test_module.o] Error 1
make[1]: *** [_module_/home/work/test] Error 2
커널 빌드를 제희가 제공하는 쉘을 이용해서 만드셨다면
bulid_s5pv210 같은 폴더가 생성됩니다
KDIR 설정을 위 폴더로 설정하고 다시 해보시길 바랍니다.