新聞中心

成都創(chuàng)新互聯(lián)是專業(yè)的永靖網(wǎng)站建設(shè)公司,永靖接單;提供做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行永靖網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
模塊的全稱是
動態(tài)可加載內(nèi)核模塊,它是具有獨立功能的程序,可以被單獨編譯,但不能獨立運行。模塊是為內(nèi)核或其他模塊提供功能的代碼集合。這些模塊可以是 Linux 源碼中自帶的,也可以是由硬件廠商開發(fā)的(可以想象成驅(qū)動)。不過內(nèi)核因為發(fā)布時間較長,所以自帶的模塊可能版本較低,還有一些新硬件可能就不自帶模塊了,只能由硬件廠商在發(fā)布硬件的同時發(fā)布新模塊。
也就是說,安裝模塊一般有兩種方法:
- 第一種方法在編譯內(nèi)核時,手工調(diào)整內(nèi)核模塊功能,加入所需的模塊。這種方法有一個問題,就是內(nèi)核必須支持這個硬件或功能才可以通過編譯內(nèi)核加入模塊。如果硬件比內(nèi)核新,內(nèi)核本身并不支持硬件,就不能通過重新編譯內(nèi)核來加入新的硬件的支持。
- 第二種方法就是下載廠商發(fā)布的新硬件的驅(qū)動模塊,或下載驅(qū)動程序,再編譯成驅(qū)動模塊,然后手工安裝。
本節(jié)我們主要來學習第二種方法,也就是如果我已經(jīng)得到了一個模塊,該如何手工安裝?這個模塊該如何得到呢?
如果是新硬件的驅(qū)動,則可以到硬件官方網(wǎng)站下載內(nèi)核驅(qū)動或內(nèi)核模塊。如果下載的是內(nèi)核模塊,則直接安裝即可;如果下載的是內(nèi)核驅(qū)動源碼,則只需要編譯源碼包,就會生成模塊(具體編譯過程和源碼包安裝非常類似,可以查看驅(qū)動的說明)。如果需要加入的模塊不是硬件的驅(qū)動,而只是內(nèi)核中的某項功能,那么,只要部分重新編譯內(nèi)核,就可以生成新功能的模塊(我們會通過 NTFS 文件系統(tǒng)支持來學習這種方法),然后安裝這個模塊即可。
內(nèi)核模塊保存位置與模塊保存文件
內(nèi)核模塊的保存位置在什么地方?其實在 /lib/modules/ 內(nèi)核版本 /kernel/ 目錄中,在 CentOS 6.x 中這個目錄就是:
[root@localhost ~]# cd /lib/modules/2.6.32-279.el6. i686/kemel/
查看一下目錄內(nèi)容:
[root@localhost kernel]#ls
arch
與硬件相關(guān)的模塊
crypto
#內(nèi)核支持的加密技術(shù)的相關(guān)模塊
drivers
#硬件的驅(qū)動程序模塊,如顯卡、網(wǎng)卡等
fs
#文件系統(tǒng)模塊,如 fat、vfat、nfs等
lib
#函數(shù)庫
net
#網(wǎng)絡協(xié)議相關(guān)模塊
sound
#音效相關(guān)模塊
Linux 中所有的模塊都存放在 /lib/modules/2.6.32-279.el6.i686/modules.dep 文件中,在安裝模塊時,依賴這個文件査找所有的模塊,所以不需要指定模塊所在位置的絕對路徑,而且也依靠這個文件來解決模塊的依賴性。如果這個文件丟失了怎么辦?不用擔心,使用 depmod 命令會自動掃描系統(tǒng)中已有的模塊,并生成 modules.dep 文件。命令格式如下:
[root@localhost ~]# depmod [選項]
#不加選項,depmod命令會掃描系統(tǒng)中的內(nèi)核模塊,并寫入modules.dep文件
選項:
- -a:掃描所有模塊;
- -A:掃描新模塊,只有有新模塊時,才會更新modules.dep文件;
- -n:把掃描結(jié)果不寫入modules.dep文件,而是輸出到屏幕上;
我們把 modules.dep 文件刪除,看看使用 depmod 命令是否可以重新生成這個文件。命令如下:
[root@localhost ~]# cd /lib/modules/2.6.32-279.el6.i686/
#進入模塊目錄
[root@localhost 2.6.32-279.el6.i686]# rm -rf modules.dep
#刪除 modules.dep文件
[raot@localhost 2.6.32-279.el6.i686]# depmod
#重新掃描模塊
[root@localhost 2.6.32-279.el6.i686]# ls -l modules.dep
-rw-r--r--. 1 root root 191899 5 月 23 07:09 modules.dep
#再查看一下,modules.dep文件又生成了
depmod 命令會掃描系統(tǒng)中所有的內(nèi)核模塊,然后把掃描結(jié)果放入 modules.dep 文件。后續(xù)的模塊安裝或刪除就依賴這個文件中的內(nèi)容。也就是說,如果我們要手工安裝一個模塊,則需要先把模塊復制到指定位置,一般復制至 /lib/modules/2.6.32-279.el6.i686/kernel/ 目錄中,使用 depmod 命令掃描之后,才能繼續(xù)安裝。
內(nèi)核模塊的查看
使用 lsmod 命令可以查看系統(tǒng)中到底安裝了哪些內(nèi)核模塊。命令如下:
[root@localhost ~]# lsmod
Module Size Used by
autofs4 20981 3
sunrpc 215000 1
ipt_REJECT 1867 2
nf_conntrack_ipv4 7694 2
nf_defrag_ipv4 1039 1 nf_conntrack_ipv4
…省略部分輸出…
lsmod命令的指定結(jié)果共有三列。
- Module:模塊名。
- Size:模塊大小。
- Used by:模塊是否被其他模塊調(diào)用。
我們還可以使用 modinfo 命令來查看這些模塊的說明,命令格式如下:
[root@localhost ~]# modinfo 模塊名 例如:
[root@localhost ~]# modinfo autofs4
filename:/lib/modules/2.6.32-279.el6.i686/kernel/fs/autofs4/autofs4.ko
license: GPL
srcversion: 4F798AD1AD66D2CBBB5D953
depends:
vermagic:2.6.32-279.el6.i686 SMP mod_unload modversions 686
#能夠看到模塊名,來源和簡易說明
內(nèi)核模塊的添加與刪除
其實,如果模塊已經(jīng)下載到本機了,那么安裝模塊的方法非常簡單。首先需要把模塊復制到指定位置,一般復制到 /lib/modules/2.6.32-279.el6.i686/kemel/ 目錄中,模塊的擴展名一般是 *.ko;然后需要執(zhí)行 depmod 命令掃描這些新模塊,并寫入 modules.dep 文件;最后就可以利用 modprobe 命令安裝這些模塊了。命令格式如下:
[root@localhost ~]# modprobe [選項] 模塊名
選項:
- -I:列出所有模塊的文件名,依賴 modules.dep 文件;
- -f:強制加載模塊;
- -r:刪除模塊;
舉個例子,我們需要安裝 vfat 模塊(fat32 文件系統(tǒng)的模塊),那么需要執(zhí)行如下命令即可:
[root@localhost ~]# modprobe vfat
#安裝vfat模塊
[root@localhost ~]# Ismod | grep vfat
vfat 8575 0
fat 47049 1 vfat
vfat 模塊是系統(tǒng)中的默認模塊,所以不需要執(zhí)行 depmod 命令進行掃描。如果是外來模塊,則必須執(zhí)行 depmod 命令。因為已經(jīng)把模塊的完整文件名寫入了 modules.dep 文件,所以安裝模塊的命令不需要寫絕對路徑。
那么,如何刪除這個模塊呢?命令如下:
[root@localhost ~]# modprobe -r vfat
[root@localhost ~]# lsmod | grep vfat
#查找為空
分享標題:Linux內(nèi)核模塊管理(查看、添加和刪除)
當前路徑:http://m.fisionsoft.com.cn/article/dhsejeo.html


咨詢
建站咨詢
