最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一個(gè)Linux驅(qū)動(dòng)工程師必知的內(nèi)核模塊知識(shí)

2023-04-17 16:11 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

最簡(jiǎn)單的驅(qū)動(dòng)

加載卸載模塊命令

模塊加載

insmod:加載指定目錄下的一個(gè).ko文件到內(nèi)核。例如:

modprob:自動(dòng)加載模塊到內(nèi)核,相對(duì)于insmod來(lái)講更智能。在執(zhí)行該命令前最好運(yùn)行一次depmod命令來(lái)更新模塊的依賴信息,使用modprobe不指定路徑和后綴,例如:

模塊卸載

rmmod:卸載模塊。例如:

模塊信息

modinfo:查看模塊的信息。例如:

多個(gè)源文件編譯生成一個(gè)內(nèi)核模塊

例如,將hello.c和world.c兩個(gè)c文件編譯生成一個(gè)叫hello_world.o的目標(biāo)文件,則在Makefile中添加以下兩句:

內(nèi)核污染

insmod?ko模塊時(shí),可能出現(xiàn)如下提示:

幾個(gè)可能原因:

  • 模塊沒有聲明GPL協(xié)議

  • 當(dāng)前l(fā)inux內(nèi)核版本和編譯模塊使用的內(nèi)核版本不一致

  • 使用內(nèi)核源代碼未包含的樹外模塊


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)?



printk和printf

在內(nèi)核中的打印函數(shù)是printk,printkprintf的行為非常相似,但是通常printk不支持浮點(diǎn)數(shù),例如要打印一個(gè)浮點(diǎn)變量,在編譯時(shí)通常會(huì)出現(xiàn)如下警告,并且模塊也不會(huì)加載成功:

內(nèi)核模塊參數(shù)

在加載一個(gè).ko模塊時(shí),也可以像應(yīng)用程序那樣,通過命令行傳入一些參數(shù),這個(gè)過程發(fā)生在調(diào)用模塊初始化函數(shù)之前。

內(nèi)核支持的參數(shù)類型有:boolinvbool(反轉(zhuǎn)值bool類型)、charp(字符串指針)、short、intlong、ushort、uint、ulong。這些類型又可以復(fù)合成對(duì)應(yīng)的數(shù)組類型。

具體用法,在驅(qū)動(dòng)中定義三個(gè)變量baudrate、port、name

使用module_parammodule_param_array宏聲明這些變量為模塊參數(shù)。說(shuō)明:

name:變量的名字

type:變量或數(shù)組元素的類型

nump:數(shù)組元素個(gè)數(shù)的指針,可選

perm:在sysfs文件系統(tǒng)中對(duì)應(yīng)文件的權(quán)限屬性。

權(quán)限的取值參考<linux/stat.h>頭文件。

修改這三個(gè)變量的值,即加載模塊時(shí)傳參:

C庫(kù)

內(nèi)核模塊處于C函數(shù)庫(kù)之下,自然就不能調(diào)用C庫(kù)函數(shù)(內(nèi)核源碼會(huì)實(shí)現(xiàn)類似的函數(shù)).

而應(yīng)用程序則可以隨意調(diào)用C庫(kù)函數(shù)。



一個(gè)Linux驅(qū)動(dòng)工程師必知的內(nèi)核模塊知識(shí)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
株洲县| 胶南市| 肇东市| 伽师县| 全南县| 岢岚县| 鹿泉市| 牙克石市| 曲阳县| 康平县| 油尖旺区| 仪陇县| 余干县| 桐乡市| 岚皋县| 长岛县| 中西区| 吕梁市| 同江市| 华宁县| 启东市| 余庆县| 白山市| 平安县| 兖州市| 九龙城区| 万荣县| 海南省| 汉中市| 交城县| 沈丘县| 贵溪市| 龙井市| 江门市| 清河县| 石河子市| 罗源县| 浦县| 深水埗区| 清涧县| 太湖县|