Linux内核模块(二)
生活随笔
收集整理的這篇文章主要介紹了
Linux内核模块(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
·??? ko:kernel object ·??? so:shared object [root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/arch/x86/kvm kvm-amd.ko? kvm-intel.ko? kvm.ko ? ·??? 通過移除內核模塊可達到禁用該模塊的作用 [root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/drivers/usb/storage??????????? //移除usb-storage.ko即可禁用U盤 ums-alauda.ko?? ums-datafab.ko? ums-isd200.ko??? ums-karma.ko???? ums-sddr09.ko? ums-usbat.ko ums-cypress.ko? ums-freecom.ko? ums-jumpshot.ko? ums-onetouch.ko? ums-sddr55.ko? usb-storage.ko ? ·??? 通過lsmod查看系統已加載的所有內核模塊 [root@rhel6 ~]# lsmod 模塊名稱??????????????? ??? 模塊大小??? 依賴關系 Module????????????????? Size? Used by ipt_MASQUERADE????????? 2466? 0 ipt_REJECT????????????? 2383? 0 autofs4??????????????? 26888? 3 scsi_transport_fc????? 52241? 3 bnx2fc,fcoe,libfc scsi_tgt?????????????? 12173? 1 scsi_transport_fc 8021q????????????????? 23575? 0 iptable_mangle????????? 3349? 1 iptable_filter????????? 2793? 0 iptable_nat???????????? 6158? 1 nouveau?????????????? 708444? 0 ext4????????????????? 364410? 2 mmc_core?????????????? 72991? 1 sdhci video?????????????? ???21032? 2 nouveau,i915 ? ·??? 通過modprobe添加/刪除內核模塊 modprobe命令主要用于在Linux2.6內核中加載和刪除Linux內核模塊,通過此命令可輕松加載和刪除Linux內核模塊,同時會自動解決內核模塊之間的依賴關系,并加載相互依賴的模塊。 ·??? 添加vfat內核模塊 [root@rhel6 ~]# lsmod | grep vfat????????? ? ? ? ? ? ? ? ? ? //列出當前內存當中是否已加載vfat的內核模塊 [root@rhel6 ~]# modprobe vfat??????????????????? ? ? ? ? ? //不需加 .ko" [root@rhel6 ~]# lsmod | grep vfat vfat?????????????????? 46529? 0 fat??????????????????? 85873? 1 vfat ·??? 刪除vfat內核模塊 [root@rhel6 ~]# modprobe -r vfat [root@rhel6 ~]# lsmod | grep vfat ? ·??? 通過insmod/rmmod 添加/刪除內核模塊 insmod命令主要用于在Linux2.4內核之前加載內核模塊,系統不僅不會自動解決內核模塊之間的依賴關系,而且還要求寫出詳細的模塊路徑 rmmod命令主要用于卸載正在使用的Linux內核模塊,與modprobe -r命令相似 ·??? 添加vfat內核模塊 [root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/fat.ko ?? [root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/vfat/vfat.ko [root@rhel6 ~]# lsmod | grep vfat vfat?????????????????? 46529? 0 fat??????????????????? 85873? 1 vfat ·??? 刪除vfat內核模塊 [root@rhel6 ~]# rmmod vfat [root@rhel6 ~]# rmmod fat [root@rhel6 ~]# lsmod | grep vfat ? ·??? 通過 depmod 重新注冊內核模塊信息 (非系統自帶的內核模塊不能通過modprobe直接加載,可通過insmod手工加載或者將該內核模塊的*.ko文件拷貝到相應的目錄下通過depmod重新注冊內核模塊信息) [root@rhel6 ~]# depmod [-ane] -a???? :不加任何參數時, depmod 會主動的去分析目前核心的模塊,并且重新寫入/lib/modules/$(uname -r)/modules.dep 當中。 ?????? ?若加入 -a 參數時,則 depmod會去搜尋比 modules.dep 內還要新的模塊,如果找到新模塊,才會升級。 -n? :不寫入 modules.dep ,而是將結果輸出到屏幕上(standard out); -e? :顯示出目前已加載的不可運行的模塊名稱 ? [root@rhel6 ~]# file /lib/modules/2.6.32-220.el6.x86_64/modules.dep???????? /lib/modules/2.6.32-220.el6.x86_64/modules.dep: ASCII text, with very long lines [root@rhel6 ~]# rm -f /lib/modules/2.6.32-220.el6.x86_64/modules.dep [root@rhel6 ~]# depmod ??????????????? ? ? ? ? ? ? ? ? ? ? ? //重新注冊當前系統的內核模塊信息并生成modules.dep文件 [root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64| grep modules.dep modules.dep modules.dep.bak [root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64/modules.dep /lib/modules/2.6.32-220.el6.x86_64/modules.dep [root@rhel6 ~]# depmod -a ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//注冊/lib/modules/下所有內核的內核模塊信息 [root@rhel6 ~]# depmod `uname -r`????????????????? //只注冊當前系統中的內核模塊信息 ·??? 通過 modinfo 查看內核模塊信息 [root@rhel6 ~]# modinfo vfat filename:?????? /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/vfat.ko author:???????? Gordon Chaffee description:??? VFAT filesystem support license:??????? GPL srcversion:???? ACCC2F7E9526F402F526976 depends:??????? fat vermagic:?????? 2.6.32-220.el6.x86_64 SMP mod_unload modversions ? ? ?
總結
以上是生活随笔為你收集整理的Linux内核模块(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的win7黑屏解决方案
- 下一篇: 随记:Linux中一个修改活动卷组名所引