커널 모듈에서 export에 문제가...unresolved symbol...

j8508의 이미지

오늘도 질문에 여념이 없는 거미입니다...
초보다 보니 여러분들을 너무 귀찮게 하는것 같아 죄송하네요..

간단한 커널 모듈을 구성하다가 문제가 발생했는데...
원인을 못찾겠습니다..
혹시 비슷한 경험을 하고 해결하신 분들이 있으실것 같아서 질문 드립니다.

문제는 한마디로...
커널모듈을 올리려는데 모듈에서 사용하는 함수가 unresolved symbol이라고 합니다.
정확한 에러 메세지는
unresolved symbol IMMain

제가 지금 하는 작업은 iptable-1.2.6a 버전을 조금 수정해서,
netfilter에 의해 패킷의 후킹이 발생하면 여기에 뭔가를 하려고 합니다..
그래서 일단 iptable_filter 모듈 중에 다음과 같은 문장을 추가했습니다.

if (ret == NF_ACCET)
{
	ret = IMMain(pskb);
}

이때 IMMain 함수는 제가 만든 다른 모듈에서 export하는 함수이며, 형식은 다음과 같습니다.

unsigned int IMMain(struct sk_buff **pskb);

IMMain의 내용과 EXPORT 구문은 다음과 같습니다.

unsigned int IMMain(struct sk_buff **pskb)
{
	printk("<1>IMMain Test Success!!\n");

	return NF_ACCEPT;
}


EXPORT_SYMBOL(IMMain);

문제는.. IMMain 함수를 export한 제 모듈을 insmod 한 것에는 성공했는데..
iptable_filter 모듈을 insmod하려고하니

unresolved symbol IMMain

라는 에러가 발생하면서 안되더군요..
그래서 /proc/ksyms에서 확인했는데..
IMMain이 존재하더라구요...

확인한 문장은 다음과 같습니다.

e086d060 IMMain_R_ver_IMMain [imdriver]

도대체 뭐가 문제인지 모르겠어요..
아시는분들 도와주세요~

j8508의 이미지

그냥 함수 EXPORT 할때
EXPORT_SYMBOL이 아니라
EXPORT_SYMBOL_NOVERS로 해서 해결했어요...

나중에 문제 안생기려나.. 겁나네요....

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.