掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

成都創(chuàng)新互聯(lián)是專業(yè)的永靖網(wǎng)站建設(shè)公司,永靖接單;提供做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行永靖網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
模塊的全稱是
動(dòng)態(tài)可加載內(nèi)核模塊,它是具有獨(dú)立功能的程序,可以被單獨(dú)編譯,但不能獨(dú)立運(yùn)行。模塊是為內(nèi)核或其他模塊提供功能的代碼集合。這些模塊可以是 Linux 源碼中自帶的,也可以是由硬件廠商開發(fā)的(可以想象成驅(qū)動(dòng))。不過(guò)內(nèi)核因?yàn)榘l(fā)布時(shí)間較長(zhǎng),所以自帶的模塊可能版本較低,還有一些新硬件可能就不自帶模塊了,只能由硬件廠商在發(fā)布硬件的同時(shí)發(fā)布新模塊。
也就是說(shuō),安裝模塊一般有兩種方法:
本節(jié)我們主要來(lái)學(xué)習(xí)第二種方法,也就是如果我已經(jīng)得到了一個(gè)模塊,該如何手工安裝?這個(gè)模塊該如何得到呢?
如果是新硬件的驅(qū)動(dòng),則可以到硬件官方網(wǎng)站下載內(nèi)核驅(qū)動(dòng)或內(nèi)核模塊。如果下載的是內(nèi)核模塊,則直接安裝即可;如果下載的是內(nèi)核驅(qū)動(dòng)源碼,則只需要編譯源碼包,就會(huì)生成模塊(具體編譯過(guò)程和源碼包安裝非常類似,可以查看驅(qū)動(dòng)的說(shuō)明)。如果需要加入的模塊不是硬件的驅(qū)動(dòng),而只是內(nèi)核中的某項(xiàng)功能,那么,只要部分重新編譯內(nèi)核,就可以生成新功能的模塊(我們會(huì)通過(guò) NTFS 文件系統(tǒng)支持來(lái)學(xué)習(xí)這種方法),然后安裝這個(gè)模塊即可。
內(nèi)核模塊的保存位置在什么地方?其實(shí)在 /lib/modules/ 內(nèi)核版本 /kernel/ 目錄中,在 CentOS 6.x 中這個(gè)目錄就是:
[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ū)動(dòng)程序模塊,如顯卡、網(wǎng)卡等
fs
#文件系統(tǒng)模塊,如 fat、vfat、nfs等
lib
#函數(shù)庫(kù)
net
#網(wǎng)絡(luò)協(xié)議相關(guān)模塊
sound
#音效相關(guān)模塊
Linux 中所有的模塊都存放在 /lib/modules/2.6.32-279.el6.i686/modules.dep 文件中,在安裝模塊時(shí),依賴這個(gè)文件査找所有的模塊,所以不需要指定模塊所在位置的絕對(duì)路徑,而且也依靠這個(gè)文件來(lái)解決模塊的依賴性。如果這個(gè)文件丟失了怎么辦?不用擔(dān)心,使用 depmod 命令會(huì)自動(dòng)掃描系統(tǒng)中已有的模塊,并生成 modules.dep 文件。命令格式如下:
[root@localhost ~]# depmod [選項(xiàng)]
#不加選項(xiàng),depmod命令會(huì)掃描系統(tǒng)中的內(nèi)核模塊,并寫入modules.dep文件
選項(xiàng):
我們把 modules.dep 文件刪除,看看使用 depmod 命令是否可以重新生成這個(gè)文件。命令如下:
[root@localhost ~]# cd /lib/modules/2.6.32-279.el6.i686/
#進(jìn)入模塊目錄
[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 命令會(huì)掃描系統(tǒng)中所有的內(nèi)核模塊,然后把掃描結(jié)果放入 modules.dep 文件。后續(xù)的模塊安裝或刪除就依賴這個(gè)文件中的內(nèi)容。也就是說(shuō),如果我們要手工安裝一個(gè)模塊,則需要先把模塊復(fù)制到指定位置,一般復(fù)制至 /lib/modules/2.6.32-279.el6.i686/kernel/ 目錄中,使用 depmod 命令掃描之后,才能繼續(xù)安裝。
使用 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é)果共有三列。
我們還可以使用 modinfo 命令來(lái)查看這些模塊的說(shuō)明,命令格式如下:
[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
#能夠看到模塊名,來(lái)源和簡(jiǎn)易說(shuō)明
其實(shí),如果模塊已經(jīng)下載到本機(jī)了,那么安裝模塊的方法非常簡(jiǎn)單。首先需要把模塊復(fù)制到指定位置,一般復(fù)制到 /lib/modules/2.6.32-279.el6.i686/kemel/ 目錄中,模塊的擴(kuò)展名一般是 *.ko;然后需要執(zhí)行 depmod 命令掃描這些新模塊,并寫入 modules.dep 文件;最后就可以利用 modprobe 命令安裝這些模塊了。命令格式如下:
[root@localhost ~]# modprobe [選項(xiàng)] 模塊名
選項(xiàng):
舉個(gè)例子,我們需要安裝 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)中的默認(rèn)模塊,所以不需要執(zhí)行 depmod 命令進(jìn)行掃描。如果是外來(lái)模塊,則必須執(zhí)行 depmod 命令。因?yàn)橐呀?jīng)把模塊的完整文件名寫入了 modules.dep 文件,所以安裝模塊的命令不需要寫絕對(duì)路徑。
那么,如何刪除這個(gè)模塊呢?命令如下:
[root@localhost ~]# modprobe -r vfat
[root@localhost ~]# lsmod | grep vfat
#查找為空

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流