insmod命令-->install module的縮寫,用來載入模塊,通過模式的方式在需要時載入內核,可使內核精簡,高效。此類載入的模塊,通常為設備驅動程序.
【insmod命令作用】
靜態加載就是把驅動程序直接編譯進內核,系統啟動后可以直接調用。靜態加載的缺點是調試起來比較麻煩,每次修改一個地方都要重新編譯和下載內核,效率較低。若采用靜態加載的驅動較多,會導致內核容量很大,浪費存儲空間。
動態加載利用了Linux的module特性,可以在系統啟動后用insmod命令添加模塊(.ko),在不需要的時候用rmmod命令卸載模塊,采用這種動態加載的方式便于驅動程序的調試,同時可以針對產品的功能需求,進行內核的裁剪,將不需要的驅動去除,大大減小了內核的存儲容量。
【insmod與modprobe命令】
在Linux中,modprobe和insmod都可以用來加載module,不過現在一般都推薦使用modprobe而不是insmod了。
modprobe和insmod的區別是什么呢?
1) modprobe可以解決load module時的依賴關系,比如load moudleA就必須先load mouduleB之類的,它是通過/lib/modules//modules.dep文件來查找依賴關系的。而insmod不能解決依賴問題。
2) modprobe默認會去/lib/modules/目錄下面查找module,而insmod只在給它的參數中去找module(默認在當前目錄找)。
這樣,有時insmod也有它的有用之處,舉個例子吧。
有/root/my-mod.ko這個module,cd /root/,然后用insmod my-mod.ko(insmod /root/my-mod.ko)就可以insert這個module了,但是用modprobe my-mod.ko(modprobe /root/my-mod.ko)卻提示"FATAL: Module my-mod.ko not found",這就是因為modprobe是到/lib/modules/`uname -r`/下去找module的,如果沒找到就是這樣了。
【檢查Linux內核】
安裝前要檢查內核版本和內核頭文件版本是否一致,否則報錯
由此可見內核版本和內核頭文件版本是一致的,都是4.2.0-27。
如果不一致的話在insmod一步必定出錯:Error inserting './hello.ko': -1 Invalid module format
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态