日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux驱动模块命令大全insmod/rmmod/modprobe/depmod/lsmod

發布時間:2023/12/15 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux驱动模块命令大全insmod/rmmod/modprobe/depmod/lsmod 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

玩過linux程序開發的人都知道,當一個驅動程序以模塊化的模式編譯之后,它并不是隨著系統啟動而直接活躍的,而是靜靜的躺在內核的某個角落里,此時是不可用的。應用程序想要調用該驅動,則必須先加載,然后才能使用。而且,使用完還存在一個卸載的過程。那么,這些個驅動模塊,該如何加載?又該如何卸載?又能否通過某個命令來進行統一管理或者查看呢?下面我們就來逐一分析。

一、驅動模塊的加載

一般來說,insmod和modprobe這兩個命令都可以完成驅動模塊的加載過程。下面以hello.ko驅動模塊為例來解釋:

1、insmod命令

進入hello.ko驅動模塊文件所在的目錄,然后直接輸入下面的命令即可:

insmod hello.ko

2、modprobe命令

首先必須將hello.ko文件拷貝到/lib/module/#uname -r#/目錄下【為方便敘述,下文中統一稱為驅動模塊安裝目錄】。

這里要說明一下,#uname -r#的意思是,在終端中輸入uname -r后顯示的內核版本及名稱。例如我目前正在玩的mini2440開發板中,#uname -r#就是2.6.32.2-FriendlyARM,所以,編譯好的驅動模塊就必須放在/lib/module/2.6.32.2-FriendlyARM這個目錄下。

然后執行以下命令即可:

depmod # 更新modules.dep和modules.dep.bb文件,記錄模塊的依賴關系 modprobe hello # 注意這里無需輸入.ko后綴

3、二者對比

總結一下,如上所述,insmod和modprobe都可以用來載入kernel module,但是二者還是有差別的,主要體現在modprobe能夠處理module載入的依賴性問題。

比方你要載入a module,而a module需要系統先載入b module,此時如果直接用insmod載入,通常都會出錯,不過當你使用modprobe命令時,系統就能夠分析出其中的依賴關系,于是會自動先載入b module然后再載入a module。

當然,modprobe 并不是大神,不可能真的是全自動分析,它只是讀取了驅動模塊安裝目錄下的modules.dep文件,從而分析出各個模塊的依賴性的,而該文件則是通過depmod命令所建立,這就是上面為什么要先執行一下depmod命令然后再執行modprobe命令的原因了。當然,如果你不執行depmod命令,modprobe命令可能也可以執行成功,但是你本次載入的模塊就沒有與系統其他驅動模塊建立依賴關系,無法形成一個有機的整體。

也就是說,如果你確定你要加載的驅動模塊不依賴其他驅動模塊的話,既可以insmod也可以modprobe,當然insmod可以在任何目錄下執行,更方便一些。而如果你要加載的驅動模塊還依賴其他ko驅動模塊的話,就只能將模塊拷貝到上述的特定目錄,depmod后再modprobe。

二、驅動模塊的卸載

上面既然已經了解了如何加載一個驅動模塊,自然也要介紹一下如何卸載一個驅動模塊。與加載命令對應,卸載命令也有兩個:

1、rmmod

在任何目錄下輸入以下命令即可:

rmmod module_name

注意:其中”module_name”是lsmod顯示的模塊名稱,而不是對應的ko文件名。

2、modprobe命令

modprobe -r hello # 注意這里無需輸入.ko后綴 depmod # 更新modules.dep和modules.dep.bb文件,記錄模塊的依賴關系

同上所述,使用modprobe命令來卸載一個模塊時,它也會自動更新驅動模塊安裝目錄下的modules.dep和modules.dep.bb文件,從而將該模塊完整的卸載掉。

三、模塊列表的查看

在任何目錄下,都可以輸入下面的命令來查看已加載的驅動模塊列表。

leon@Ubuntu:~$ lsmod Module Size Used by vboxsf 45056 3 bnep 20480 2 rfcomm 69632 0 bluetooth 512000 10 bnep,rfcomm binfmt_misc 20480 1 nfsd 315392 13 auth_rpcgss 57344 1 nfsd nfs_acl 16384 1 nfsd nfs 249856 0 lockd 94208 2 nfs,nfsd grace 16384 2 nfsd,lockd sunrpc 331776 19 nfs,nfsd,auth_rpcgss,lockd,nfs_acl fscache 65536 1 nfs snd_intel8x0 40960 2

總結

以上是生活随笔為你收集整理的linux驱动模块命令大全insmod/rmmod/modprobe/depmod/lsmod的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。