module 프로그래밍에서 insmod 에러

bosub의 이미지

컴파일 하고 insmod hello-1.o 하면 에러가 아래처럼 출력됩니다.

hello-1.o: kernel-module version mismatch
hello-1.o was compiled for kernel version 2.4.20
while this kernel is version 2.4.20-8.

이 에러는 어떻게 잡아야 하나요?

indie의 이미지

Makefile을 먼저 올려보는게 좋을거 같습니다.

집에나 갈까?

hys545의 이미지

bosub wrote:
컴파일 하고 insmod hello-1.o 하면 에러가 아래처럼 출력됩니다.

hello-1.o: kernel-module version mismatch
hello-1.o was compiled for kernel version 2.4.20
while this kernel is version 2.4.20-8.

이 에러는 어떻게 잡아야 하나요?

님의 커널하고 커널소스하고 버젼이 불일치한겁니다
님의 커널은 2.4.20-8인데
커널 소스는 2.4.20이어서 그런겁니다
커널 소스하고 커널을 일치시키고 컴파일해버ㅗ세야

즐린

bosub의 이미지

2.4.20-8 커널로 재 컴파일 했는데도 똑같은 에러가 뜨네요..

흠.. 이론이론

5초 앞이라도 내다 볼 수 있다면..

newmania의 이미지

우선 insmod -f 옵션으로 올리면 동작은 시킬 수 있습니다. 단순히 버전문제라면 그냥 쓰셔도 됩니다.

저같은 경우엔 deriver object file 을 열어보고
kernel 과 다른 버전 정보가 들어있는 것을 확인한 적 있습니다.
강제로 헤더 수정해서 kernel 에 맞추어 작업한 적이 있습니다.

실력이 부족해서 그런 꽁수라도 솔루션이 되더군요.
^^;

faye의 이미지

커널 컴파일 옵션중에 "Set version information on all module symbols"

부분을 제거하고 커널 다시 빌드후 모듈 올리면 메시지가 나왔던 것으로 기억합니다.(- -; 가물 가물)

참고하세요.