[root@study linux]#
ll
-
rw
-
r
--
r
--
. 1 dmtsai dmtsai 1043 Mar 7 2015 config.c
-
rwxr
-
xr
-
x. 1 dmtsai dmtsai 395 Dec 27 2013 Makefile
-
rw
-
r
--
r
--
. 1 root root 139
9896 Oct 21 00:59 rr640l.ko
#
就是
家伙!
# 2.
½
放置到正确的位置去!
[root@study linux]#
cp rr640l.ko /lib/modules/3.10.89vbird/kernel/drivers/scsi/
[root@study linux]#
depmod
-
a
#
生模
相依性
文件
[root@study linux]#
grep rr640 /lib/modules/3.10.89vbird/modules.dep
kernel/drivers/scsi/rr640l.ko:
#
确定模
有在相依性的配置文件中!
[root@study linux]#
modprobe rr640l
modprobe: ERROR: could not insert 'rr640l': No such device
#
测试
一下才行,不
,我
们实际
虚拟
这张
RAID card
,所以出
现错误
是正常的啦!
# 3.
程中就得要加
此模
需要
½
放入
initramfs
才行喔!
[root@study linux]#
dracut
--
force
-
v
--
add
-
drivers rr640l
\
>
/boot/initramfs
-
3.10.89vbird.img 3.10.89vbird
[root@study linux]#
lsinitrd /boot/initramfs
-
3.10.89vbird.img | grep rr640
透过这样的动作,我们就可以轻易的½模块编译起来,并且还可以½他直½放置到核心模块目录中,
同时以
depmod
½模块½立相关性,未来就能够利用
modprobe
来直½取用啦!
但是需要提醒你的
是,
当自行编译模块时,
若你的核心有更新
(
例如利用自动更新机制½行在线更新
)
时,则你必须
要重新编译该模块一次,
重复上面的步骤
才行!因为这个模块½针对目前的核心来编译的啊!对吧!
.
利用旧有的核心原始码½行编译
如果你后来发现忘记加入某个模块功能了,那该如何是好?其实如果½是重新编译模块的话,
那么
整个过程就会变的非常简单!我们先到目前的核心原始码所在目录下达
make menuconfig
然后½
NTFS
的选项设定成为模块,之后直½下达:
make fs/ntfs/
那么
ntfs
的模块
(ntfs.ko)
就会自动的被编译出来了!
然后½该模块复制到
/lib/modules/3.10.89vbird/kernel/fs/ntsf/
目录下,
再执行
depmod -a
,呵呵~就可以在原来的核心底
下新增某个想要加入的模块功能啰~
^_^
24.4.3
核心模块管理
核心与核心模块是分不开的,至于驱动程序模块在编译的时候,更与核心的原始码功能分不开~
此,你必须要先了½到:核心、核心模块、驱动程序模块、核心原始码与头文件案的相关性,
然后
才有办法了½到为何编译驱动程序的时候老是需要找到核心的原始码才能够顺利编译!
然后也才会
知道,为何当核心更新之后,自己之前所编译的核心模块会失效~