네트워크 드라이버를 이용해 packet_capture만드는 중인데요......
글쓴이: sisnim / 작성시간: 토, 2007/02/10 - 11:48오전
제가 네트워크 디바이스 드라이버단에서(sk_buff 구조체 참조 ) 패킷을 읽어들여 어플리케이션 단에서 뿌리려고 하는데요....
심볼릭 변수 , module 다 작성도 해주었고 커널컴파일도 다시 해주었습니다.
[root@localhost 0126]# insmod packet_dropper.o
packet_dropper.o: unresolved symbol ntohs
제가 packet_dropper.c 파일을 만들어서 make로 packet_dropper.o만드는데 까지는 되는데...
insmod로 넣기만 하면 위와 같은에러가 자꾸 나오네요...
그래서 ntohs 를 인식 못하는거 같아서 헤더파일 찾아 include시켜 주고 했는데도 계속 저에러가 뜨네요
#include
#include
둘다 같이쓰게 되면은 안돼고요 재정의 에러? 모 이런거 뜨네요 ㅠㅠ
또다른 방법으로 헤더파일 찾아들어가 거기에 정의 되어있는데로 매크로 끝까지 찾아가서 c파일에 다 추가시켜
써 놓았습니다. 그래도 또 에러....
이게 도대체 어떤 현상인가요??
혹시 다른 방법 없을까요??
Forums:
흐음.. 글쎄요.. 우선
흐음.. 글쎄요.. 우선 header 파일이 어떤 건지 안 보이는군요. 우선 include가 잘못되었다면, compile error가 발생했을 겁니다.
include 문제는 아닌 듯 싶고요. unresolved symbol 문제에서 커널 펑션을 사용하셨다면 kernel symbol에서 공개되지 않은 것(EXPORT_SYMBOL)을 사용할 경우에 저런 에러가 발생합니다. 모듈이 .o인거 보니 커널 2.4.x 버전에서 하시는거 같은데, /proc/ksyms 파일인가에 커널 심볼에 대한 정보가 있으니 거기서 ntohs가 들어가 있는지 확인해보셔야 할거 같습니다.
댓글 달기