多個源文件編譯生成一個內核模塊
例如,將hello.c和world.c兩個c文件編譯生成一個叫hello_world.o的目標文件,則在Makefile中添加以下兩句:
obj-m:=hello_world.o
hello_world-objs=hello.cworld.c
內核污染
insmod ko模塊時,可能出現如下提示:
loadingout-of-tree
module
taintskernel
幾個可能原因:
-
模塊沒有聲明
GPL協議 - 當前linux內核版本和編譯模塊使用的內核版本不一致
- 使用內核源代碼未包含的樹外模塊
printk和printf
在內核中的打印函數是printk,printk和printf的行為非常相似,但是通常printk不支持浮點數,例如要打印一個浮點變量,在編譯時通常會出現如下警告,并且模塊也不會加載成功:
WARNING:
"__extendsfdf2"
[/home/ubuntu/driver/user.ko]undefined!
WARNING:
"__truncdfsf2"
[/home/ubuntu/driver/user.ko]undefined!
WARNING:
"__divdf32"
[/home/ubuntu/driver/user.ko]undefined!
WARNING:
"__floatsidf"
[/home/ubuntu/driver/user.ko]undefined!
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模塊
+關注
關注
7文章
2837瀏覽量
53282 -
內核
+關注
關注
4文章
1467瀏覽量
42869 -
Linux
+關注
關注
88文章
11758瀏覽量
219005 -
源文件
+關注
關注
0文章
30瀏覽量
4891
發布評論請先 登錄
相關推薦
熱點推薦
讓ChatGPT寫一個內核模塊
筆者最近看到這樣一篇文章 ,原作者讓 ChatGPT 寫一個內核模塊,要求實現的功能是:每 5 秒向控制臺打印一句 "Hello worl
發表于 08-17 09:30
?854次閱讀
在Linux 2.6內核下編譯可以加載的內核模塊解析
在舊的版本下(如linux 2.4)linux內核模塊的編譯只需要有內核的頭文件就行了,就可以通過和編譯其他程序
發表于 11-07 11:45
?0次下載
什么是內核模塊?如何編寫一個簡單的模塊?
內核模塊是Linux內核向外部提供的一個插口,其全稱為動態可加載內核模塊(Loadable Kernel Module,LKM),我們簡稱為
發表于 08-24 17:15
?20次下載
如何在Petalinux創建Linux內核模塊?
--enable”,能創建Linux內核模塊,包括c源代碼文件,Makefile,Yocto的bb文件。相關文件放在目錄“ project-spec / meta-user / re
嵌入式LINUX系統內核和內核模塊調試
嵌入式LINUX系統內核和內核模塊調試(嵌入式開發和硬件開發)-嵌入式LINUX系統內核和內核模塊調試? ? ? ? ? ? ? ? ?
發表于 07-30 13:55
?10次下載
Linux內核模塊參數傳遞與sysfs文件系統
函數傳參的內核傳參機制,編寫內核程序時只要實現傳參接口,用戶在加載內核模塊時即可傳入指定參數,使得內核模塊更加靈活。
發表于 06-07 16:23
?2960次閱讀
內核模塊知識:多個源文件編譯生成一個內核模塊
評論