커널2.6.5 업하고나서...문제가..

sangjina의 이미지

디바이스드라이버를 짜서..컴파일을 했습니다..
근데..
insmod xxx.o하면 에러가 나옵니다.
insmod: error inserting 'xxx.o' : -1 Invalid module format

이라는 에러가 나옵니다..
그래서...
Makefile 에
gcc Flag에 -DKBUILD_MODNAME 를 추가했습니다.
근데..올라가긴 하는데..이상하게 나옵니다.

module size used by
l 704 -

글구 다른 모듈들은 올라오지도 않습니다..

어떻게 해야되죠...
?

답부..바랍니다.ㄷ
그런.

errai의 이미지

커널 2.6 으로 오면서 모듈 컴파일 방법 등이 바뀌었죠.

아래 자료를 참조해서 Makefile을 바꾸어 주시면 될 것 같습니다.

Driver porting: compiling external modules
( http://lwn.net/Articles/21823/ )

sangjina의 이미지

lsmod 치면
---------------------------------
module size Used by
1 816 0
---------------------------------
이런식으로 나옵니다.
글구..
rmmod 1 하면
segmentaiton fault
라고 나오네요...

cat /proc/modules 해서 보면
1 816 0 - unloading 0xc882c000
라고 나옵니다.문제가 뭐죠...
다부하며...

sangjina의 이미지

insmod xxx.o
치면
module size Used by
1 816 0
cat /proc/modules
1 816 0 - Live 0xc883b000

이렇게 나옵니다..
2.6커널에서는 원래이런가요...
dmesg 치면 printk한 문자들이 나오긴합니다.
근데..
rmmod xxx 는 안되고.. rmmod 1
하면
segmentation fault 라고 나옵니다.
글구..
cat /proc/modules
1 816 0 - unloading 0xc883b000
라고 나옵니다.
왜이런지...
답부합니다...플리즈..그럼..수고하세요..

cybosser의 이미지

혹시 module관련 유틸리트를 업그레이드 하셨는지요?
만약 안하셨다면 module-init-tool 새로 컴파일해서 업글하십시요

sangjina의 이미지

depmod -V
하면
module-init-tools 3.0-prel0
이라고 나옵니다..
제가 업했죠...

sangjina의 이미지

어느정도 해결되네요...
kldp를 디지다가...이걸봤습니다
아래소스대로 하니깐...모듈이 올라가고 모듈을 제거가 됩니다.

#include <linux/module.h>
#include <linux/kernel.h>

--------이부분추가---------------------------
#define DRIVER_AUTHOR "saibi"
#define DRIVER_DESC "test module"
-----------------------------------------------
int init_module(void)
{
printk("<1>Hello world 1.\n");

return 0;
}

void cleanup_module(void)
{
printk("Goodbye world 1.\n");
}

module_init(init_module);
module_exit(cleanup_module);

--------이부분추가---------------------------
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
------------------------------------------------

두부분을 추가하니깐..모듈을 로드,언로드됩니다..에러없이...
근데...

Module Size Used by
1 1488 0

이런식으로 나옵니다..
모듈네임이 xxx이면 1대신 xxx가 나와야되는데...
이게 문제가 됩니다..
답변부탁합니다..
그럼..

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.