커널 모듈 에러

Jeong Kwanhee의 이미지

gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -I /lib/modules/`uname -r`/build/include/asm-i386 -c -o hello-1.o hello-1.c
In file included from /lib/modules/2.6.12.6/build/include/asm/smp.h:18,
from /lib/modules/2.6.12.6/build/include/linux/smp.h:19,
from /lib/modules/2.6.12.6/build/include/linux/sched.h:26,
from /lib/modules/2.6.12.6/build/include/linux/module.h:10,
from hello-1.c:1:
/lib/modules/2.6.12.6/build/include/asm/mpspec.h:6:25: error: mach_mpspec.h: No such file or directory
In file included from /lib/modules/2.6.12.6/build/include/asm/smp.h:18,
from /lib/modules/2.6.12.6/build/include/linux/smp.h:19,
from /lib/modules/2.6.12.6/build/include/linux/sched.h:26,
from /lib/modules/2.6.12.6/build/include/linux/module.h:10,
from hello-1.c:1:
/lib/modules/2.6.12.6/build/include/asm/mpspec.h:8: error: 'MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.12.6/build/include/asm/mpspec.h:22: error: 'MAX_IRQ_SOURCES' undeclared here (not in a function)
In file included from /lib/modules/2.6.12.6/build/include/linux/smp.h:19,
from /lib/modules/2.6.12.6/build/include/linux/sched.h:26,
from /lib/modules/2.6.12.6/build/include/linux/module.h:10,
from hello-1.c:1:
/lib/modules/2.6.12.6/build/include/asm/smp.h:71:26: error: mach_apicdef.h: No such file or directory
make: *** [hello-1.o] Error 1

-----help요~~

bushi의 이미지

obj-m += hello-1.o
 
K_DIR = /lib/modules/$(shell uname -r)/build
M_DIR = $(shell pwd)
 
%:
    $(MAKE) -C $(K_DIR) -M $(M_DIR) $*

make modules
?

ydhoney의 이미지

No such file or directory

해당 파일이나 디렉토리가 없습니다.

==
아 씨끄러 씨끄러~ 조용해!!
레드햇 9 이하 사용금지!

Jeong Kwanhee의 이미지

TARGET := hello-1
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC := gcc-3.0

${TARGET}.o: ${TARGET}.c

.PHONY: clean

clean:
rm -rf ${TARGET}.o

전 이거였거든요...

아 그리고ydhoney 님 이상한게 원래 저파일은 asm밑이 아닌 asm-i386인가..어째든 include 안에 있는건데 못찾는거 같아서요..

dalgarak의 이미지

네. 커널 2.6에서의 Makefile 형식입니다. 님이 언급하신건 2.4에서 쓰던 형식이죠.

아래의 링크를 참조해보시길..
http://www.captain.at/programming/kernel-2.6/

----
:LOL:

http://lunapapa.egloos.com

Jeong Kwanhee의 이미지

감사
hello-1.ko
hello-1.mod.c
hello-1.mod.o
hello-1.o

.hello-1.ko.cmd
.hello-1.mod.o.cmd
.hello-1.o.cmd

이렇게 파일이 생기던데 무엇인지요?