linux查看進程命令,圖解Linux命令之--insmod命令

 2023-11-30 阅读 48 评论 0

摘要:insmod命令-->install module的縮寫,用來載入模塊,通過模式的方式在需要時載入內核,可使內核精簡,高效。此類載入的模塊,通常為設備驅動程序. 【insmod命令作用】 靜態加載就是把驅動程序直接編譯進內核,系統啟動后可以直接調用

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188297.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息