모듈 프로그램 컴파일이 안되요..
글쓴이: seomee / 작성시간: 목, 2008/08/07 - 3:02오후
디바이스 드라이버 공부를 시작했습니다.
처음으로 hello.c를 만들고 컴파일 하려는데 컴파일이 잘 안되네요..
환경은 fedora release 9에 2.6.25.11-97.fc9.i686 입니다.
페도라 깔고 커널 소스 없어서 고생하다가
>yum install kernel-devel
로 소스 설치하고 컴파일 했습니다.
우선 코드는
#include < linux/module.h >
int init_module(void)
{
printk("<1>Hello\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>Goodbye\n");
}이구요...
Makefile 입니다.
TARGET := hello
INCLUDE := -I/usr/src/kernels/`uname -r`/include
CFLAGS := -O2 -Wall -DMODULE -D__KERNEL__ -DLINUX
CC := gcc
${TARGET}.o: ${TARGET}.c
$(CC) $(CFLAGS) ${INCLUDE} -c ${TARGET}.c질답 뒤져가면서 겨우 여기까지 오긴 했는데... 그래도 다음과 같은 에러가 나네요..
[root@localhost work]# make
gcc -O2 -Wall -DMODULE -D__KERNEL__ -DLINUX -I/usr/src/kernels/`uname -r`/include -c hello.c
In file included from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/prefetch.h:14,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/list.h:8,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/module.h:9,
from hello.c:3:
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:102: error: ?ONFIG_X86_L1_CACHE_SHIFT?undeclared here (not in a function)
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:102: error: requested alignment is not a constant
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h: In function ?oad_cr3?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:162: error: ?ONFIG_PAGE_OFFSETUL?undeclared (first use in this function)
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:162: error: (Each undeclared identifier is reported only once
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:162: error: for each function it appears in.)
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h: At top level:
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/processor.h:201: error: requested alignment is not a constant
In file included from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/thread_info.h:4,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/thread_info.h:35,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/preempt.h:9,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/spinlock.h:49,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/seqlock.h:29,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/time.h:8,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/stat.h:60,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/module.h:10,
from hello.c:3:
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/thread_info_64.h: In function ?urrent_thread_info?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/thread_info_64.h:66: error: ?HREAD_SIZE?undeclared (first use in this function)
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/thread_info_64.h: In function ?tack_thread_info?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/thread_info_64.h:74: error: ?HREAD_SIZE?undeclared (first use in this function)
In file included from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/elf.h:7,
from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/module.h:14,
from hello.c:3:
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h: In function ?lf_common_init?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:165: error: ?truct pt_regs?has no member named ?8?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:165: error: ?truct pt_regs?has no member named ?9?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:165: error: ?truct pt_regs?has no member named ?10?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:165: error: ?truct pt_regs?has no member named ?11?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:166: error: ?truct pt_regs?has no member named ?12?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:166: error: ?truct pt_regs?has no member named ?13?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:166: error: ?truct pt_regs?has no member named ?14?
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/elf.h:166: error: ?truct pt_regs?has no member named ?15?
In file included from /usr/src/kernels/2.6.25.11-97.fc9.i686/include/linux/module.h:21,
from hello.c:3:
/usr/src/kernels/2.6.25.11-97.fc9.i686/include/asm/module.h:70:2: error: #error unknown processor family
make: *** [hello.o] Error 1여기서 더이상 진도가 안나갑니다..
뭐가 잘못된건지 알려주세요...
Forums:


댓글 달기