커널 모듈 프로그래밍시 버젼이 다르다는..

daeroo의 이미지

안녕하세요.. 지금 막 커널 프로그래밍에 발을 들여놓은 학생입니다...

커널 컴파일부터.. 참 어려운 난관을 많이 겪었었는데... 쩝..

이번에도 역시 새로운 난관이 기둘리고 있더군요..

현재 쓰구 있는 커널 버젼은 2.2.16입니다...

여기서 모듈 프로그램을 하나 만들구...(t1.c)

컴파일을 하고(gcc -c -Wall -D__KERNEL__ -DMODULE t1.c)

insmod를 하면..

커널 버젼이 맞지 않는다구 나오네요

제가 만든게.. 2.4.2버젼이라구 튕기는데...

사용하는 리눅스는 레드햇 7.0이고..

현재 커널은.. 2.2.16이구...

#include <linux/module.h>는.. 그 커널의 경로를 참조하고 있는데..

어케.. 이런일이.. ㅠ.ㅠ

고수님들 경험담좀 부탁드립니다..

sanae의 이미지

1. /usr/include/linux/version.h 파일에 보면 버전이 있어여..
커널 버전에 맞게 수정하세요..

2. 두번째 방법은 모듈 올릴 때 버전에 상관없이 올리는 옵션이 있어요..
insmod 옵션을 찾아 보세요..