커널 버젼에 관한 질문이 있습니다.
글쓴이: pulley / 작성시간: 토, 2003/07/26 - 5:40오후
제가 처음 Hello, world를 찍어주는 모듈을 실행할 때
모듈이 컴파일된 버젼과 커널의 버젼이 맞지 않다고해서 커널 소스로 심볼릭 링크를 걸어줬습니다.
무슨 말인가 하면
insmod시 에러가 뜨더라고요 레드햇9.0을 깔았는데
모듈이 컴파일 된 소스의 버젼은 2.4.20인데 커널의 버젼은 2.4.20-8이라고
맞지 않는다면서 에러가 뜨더군요;
그래서 2.4.20-8 커널 소스가 있는 /usr/src/linux2.4.20-8/include의 asm,linux,scsi에다가 /usr/include의 asm,linux,scsi의 심볼릭 링크를 걸어주었습니다.
그 후에 컴파일후 insmod하니 제대로 되더라고요
그리고 나서 커널을 2.4.21로 업글시킨 후 심볼릭 링크도 물론 제대로 다 수정해주었죠.
그 이후에 제가 만든 간단한 시스템 콜을 추가했습니다.
매뉴얼(?)대로 entry.S와 asm/unistd.h 파일 모두 수정 제대로 마쳤구요
kernel/Makefile도 수정했습니다. 물론 시스템 콜이 구현된 c파일도 추가 해 놓았구요
그 이후에 다시 컴파일을 한 후 시스템 콜을 호출해 보니 undefined가 뜨는군요=_=
왜 이럴까요ㅡ,.ㅡ
2.4.21버젼에서 unistd.h에는 252개의 시스템 콜이 구현되어 있더군요
253번째 추가해 주었습니다.
왜 이런 문제가 생기는 것일까요ㅜ_ㅜ?
도와주세요ㅜ_ㅜ
Forums:
댓글 달기