![](/img/trans.png)
[英]How to pass parameters from makefile to Linux kernel module source code
[英]How to code a Linux kernel module?
我有幾年的c編程經驗。 現在我決定致力於Linux內核模塊開發。 但是,我甚至無法開始。 我在ubuntu中編譯了這段代碼。
#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}
但是,insmod無法正常工作,錯誤消息是“模塊格式無效”。 谷歌搜索后,我認為它可能是版本兼容性的一些問題。 而且沒有好辦法解決它。 那么一些真正的內核模塊開發人員能給我一些建議嗎? 在我開始學習之前,我應該准備什么環境?
謝謝!
您缺少module_init()
和module_exit()
宏以及一些關鍵的#defines
。 我們還需要更多信息,例如make / gcc選項。 它可能是報告“無效模塊格式”,因為當您的內核為64位時,您正在編譯32位,因此請確保使用-64編譯和鏈接標志。
內核模塊的一個很棒的hello world教程位於: http : //archive.is/KNkEE (該文章的原始鏈接已被破壞)。
歡迎編寫內核模塊。 與編寫Windows驅動程序相比,它們很有趣(我已經完成了兩者)。 Linux內核模塊接口使用起來更簡單,並且可以委派許多基本驅動程序並更快地完成工作。
關於Linux內核,模塊編程以及為嵌入式設備編寫簡單設備驅動程序的完整簡化博客。
我建議開始閱讀“ Linux內核模塊編程指南 ”
盡管它基於相當舊的內核版本(2.6),但即使在今天它仍然值得您花時間閱讀它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.