簡體   English   中英

如何編寫Linux內核模塊的代碼?

[英]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內核,模塊編程以及為嵌入式設備編寫簡單設備驅動程序的完整簡化博客。

xploredevicedrivers.blogspot.in

我建議開始閱讀“ Linux內核模塊編程指南

盡管它基於相當舊的內核版本(2.6),但即使在今天它仍然值得您花時間閱讀它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM