[討論]自行撰寫模組

看板Soft_Job (軟體人)作者 (非常念舊)時間12年前 (2014/01/29 10:52), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
版友好。 我參考書上的範例 #include<linux/init.h> #include<linux/module.h> #include<linux/kernel.h> #include <linux/version.h> MODULE_DESCRIPTION("Hello World !!"); MODULE_AUTHOR("Bo-chun Chen "); MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel world\n"); } module_init(hello_init); module_exit(hello_exit); 編譯了Hello.ko檔 接著想 insmod ./Hello.ko 出現insmod: error inserting './Hello.ko': -1 Unknown symbol in module 直覺是Hello.c裡面有些東西核心無法辨識? 我的核心版本為 3.8.0-29-generic 請問是哪問題...? 謝謝。 LDD聖經版連 Hello.c 範例程式都不完全, include<linux/kernel.h>還是我加上去的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.21.170.157

01/29 10:56, , 1F
另外我的gcc版本4.4 不知道也有沒有關係
01/29 10:56, 1F

01/29 10:59, , 2F
書上的版本都太久了~LDD有人維護新的範例,可以去找找
01/29 10:59, 2F

01/29 11:01, , 3F
那麼久了還賣980 無言
01/29 11:01, 3F

01/29 11:02, , 4F
dmesg [ 1633.919094] Hello: Unknown symbol mcount
01/29 11:02, 4F

01/29 11:03, , 5F
不會啊~那本的觀念蠻不錯的~
01/29 11:03, 5F

01/29 11:20, , 6F
我只看到第二章,我是自己trace過核心makefile過後
01/29 11:20, 6F

01/29 11:21, , 7F
再看這本書才比較懂,不然很難了解
01/29 11:21, 7F

02/01 15:49, , 8F
放那麼多天沒人回XD,後來解決了 我發現是編譯器
02/01 15:49, 8F

02/01 15:50, , 9F
版本不對,編譯核心和模組的的gcc必須版本一致 4.6.3
02/01 15:50, 9F
文章代碼(AID): #1Iw6p-GH (Soft_Job)
文章代碼(AID): #1Iw6p-GH (Soft_Job)