作者 主題: 自己想寫一個module??  (閱讀 2800 次)

0 會員 與 1 訪客 正在閱讀本文。

lake

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
自己想寫一個module??
« 於: 2003-01-20 12:40 »
我用的是mdk9.0  參考歐來禮的linux device driver
可是光是按照他的第一個範例hello world就遇到了問題
他的原始碼是
代碼: [選擇]
#define MODULE
#include <linux/module.h>
int init_module(void)     {printk("<1>hello ,world\n");return 0;}
         
void cleanup_module(void)    {printk("<1>goodbye world\n");}

compile時  確實可以將其轉為hello.o檔
可是當我想把他載入時卻出現了錯誤訊息
代碼: [選擇]
hello.o: kernel-module version mismatch
        hello.o was compiled for kernel version 2.4.20
        while this kernel is version 2.4.20-2mdk.

看起來是版本的問題  
可是不懂的是這是在我的本機自己寫的compiler應該也沒問題
我想可能是有些底層的觀念我不懂  不然就是我耍白爛

麻煩各位大大  幫我解答一下好嗎  謝謝

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5392
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
自己想寫一個module??
« 回覆 #1 於: 2003-01-20 14:26 »
版本不同吧. 且 kernel 編譯的時候有指明不接受不同版本的 modules.
用 insmod -f 強迫載入就可以了.

lake

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
自己想寫一個module??
« 回覆 #2 於: 2003-01-20 16:28 »
經過測試

應該是因為這本書適用的kernel的是2.0.x

可適用的mdk9.0都已經是2.4.X了

整個API可能都已經換過  

所以只要能把書上的2.0.x版的翻譯成現在的api我想就可以跑了

不過  重要的是我根本不知道改了什麼東西啊...........

不知道各位大大有麼有什麼建議還是哪裡有參考文件可以看的

拜託幫忙一下  謝謝