Linux內(nèi)核驅(qū)動(dòng)模塊動(dòng)態(tài)加載

在命令行中運(yùn)行隆敢,創(chuàng)建驅(qū)動(dòng)源碼
echo '' > HelloWorld.c
創(chuàng)建編譯規(guī)則文件
echo 'obj-m := HelloWorld.o' > Makefile
上面的 obj-m 意思是將驅(qū)動(dòng)作為模塊(.ko 文件)編譯振惰,還有一種選項(xiàng)是obj-y這個(gè)的作用是將驅(qū)動(dòng)編譯進(jìn)內(nèi)核。
.ko文件可以被動(dòng)態(tài)的加載進(jìn)內(nèi)核,也可以從內(nèi)核中移除束析。

驅(qū)動(dòng)中如果有依賴其他程序申尤,在Makefile文件中添加 模塊名稱-y := 庫名.o 庫名1.o

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/fs.h>

static int hello_world_init(void){
printk("hello world init seccess");
return 0;
}

static void hello_world_exit(void){
printk("hello world init exit success");
}

module_init(hello_world_init);
module_exit(hello_world_exit);

上面的printk跟printf是一樣的,但是兩個(gè)函數(shù)所運(yùn)行的內(nèi)存空間是不一樣的寻仗,也就是內(nèi)核空間用不了printf函數(shù)刃泌。

接著將HelloWorld.c驅(qū)動(dòng)源碼進(jìn)行編譯

make -C /usr/src/linux-headers-版本號(hào)-generic M=HelloWorld.c的路徑

這里需要注意,這里的版本號(hào)必須要跟宿主系統(tǒng)上的使用的內(nèi)核版本一致署尤。否則編譯不能通過耙替。

在完成編譯之后,需要將驅(qū)動(dòng)進(jìn)行安裝
insmod HelloWorld.ko
查看是否安裝成功:
lsmod | grep HelloWorld
卸載驅(qū)動(dòng)
rmmod HelloWorld
查看驅(qū)動(dòng)輸出的日志
dmesg | grep HelloWorld | tail -n 2

在編寫驅(qū)動(dòng)程序的時(shí)候曹体,需要注意的一點(diǎn)是俗扇,老版本的內(nèi)核驅(qū)動(dòng)編譯可以允許不寫入modinfo數(shù)據(jù)。高版本內(nèi)核是需要進(jìn)行填寫的箕别,如果不寫铜幽,那么將會(huì)編譯不能通過滞谢。

MODULE_AUTHOR(""); 模塊作者
MODULE_DESCRIPTION(""); 模塊描述
MODULE_ALIAS(""); 模塊別名
MODULE_LICENSE(""); 開源協(xié)議

后面再詳細(xì)的理解一下開源協(xié)議。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末除抛,一起剝皮案震驚了整個(gè)濱河市爹凹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌镶殷,老刑警劉巖禾酱,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绘趋,居然都是意外死亡颤陶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門陷遮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滓走,“玉大人,你說我怎么就攤上這事帽馋〗练剑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵绽族,是天一觀的道長姨涡。 經(jīng)常有香客問我,道長吧慢,這世上最難降的妖魔是什么涛漂? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮检诗,結(jié)果婚禮上匈仗,老公的妹妹穿的比我還像新娘。我一直安慰自己逢慌,他們只是感情好悠轩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攻泼,像睡著了一般火架。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坠韩,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天距潘,我揣著相機(jī)與錄音炼列,去河邊找鬼只搁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛俭尖,可吹牛的內(nèi)容都是我干的氢惋。 我是一名探鬼主播洞翩,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焰望!你這毒婦竟也來了骚亿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤熊赖,失蹤者是張志新(化名)和其女友劉穎来屠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體震鹉,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俱笛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了传趾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迎膜。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浆兰,靈堂內(nèi)的尸體忽然破棺而出磕仅,到底是詐尸還是另有隱情,我是刑警寧澤簸呈,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布榕订,位于F島的核電站,受9級(jí)特大地震影響蜕便,放射性物質(zhì)發(fā)生泄漏卸亮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一玩裙、第九天 我趴在偏房一處隱蔽的房頂上張望兼贸。 院中可真熱鬧,春花似錦吃溅、人聲如沸溶诞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽螺垢。三九已至,卻和暖如春赖歌,著一層夾襖步出監(jiān)牢的瞬間枉圃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工庐冯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孽亲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓展父,卻偏偏與公主長得像返劲,于是被迫代替她去往敵國和親玲昧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 我們說的Linux其實(shí)指的就是 內(nèi)核(kernel)而已篮绿。這個(gè)內(nèi)核控制你主機(jī)的所有硬件并提供系統(tǒng)所有的功能孵延,所以它...
    Zhang21閱讀 7,380評(píng)論 0 18
  • 做內(nèi)核驅(qū)動(dòng)第一步都是學(xué)習(xí)如何添加模塊,這是基礎(chǔ)亲配,有了這個(gè)基礎(chǔ)尘应,剩下就是寫代碼了。 由于2.4到2.6內(nèi)核版本的更新...
    ice_camel閱讀 1,921評(píng)論 1 3
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對(duì)象 2: 1)客戶端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,253評(píng)論 0 18
  • Linux 對(duì)大多數(shù)的驅(qū)動(dòng)作了分類:塊設(shè)備驅(qū)動(dòng)吼虎、網(wǎng)絡(luò)驅(qū)動(dòng)菩收、I 2 C 驅(qū)動(dòng)、USB 驅(qū)動(dòng)鲸睛、SPI 驅(qū)動(dòng)娜饵、音頻驅(qū)動(dòng)等...
    不配野心閱讀 2,976評(píng)論 0 0
  • 1. 簡介 本文檔包含DPDK軟件安裝和配置的相關(guān)說明友绝。旨在幫助用戶快速啟動(dòng)和運(yùn)行軟件橄唬。文檔主要描述了在Linux...
    半天妖閱讀 17,897評(píng)論 0 22