modprobe实用程序用于将可加载模块添加到Linux内核。您也可以使用modprobe命令查看和删除模块。
Linux维护模块及其配置文件(/etc/modprobe.conf和/etc/modprobe.d除外)的/ lib / modules / $(uname-r)目录。
在Linux内核2.6中,使用.ko模块而不是.o文件,因为该文件包含内核用于加载模块的其他信息。本文中的示例是在Ubuntu上使用modprobe完成的。
1.列出可用的内核模块
modprobe -l将显示所有可用的模块,如下所示。
$ modprobe -l | less kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko kernel/arch/x86/kernel/msr.ko kernel/arch/x86/kernel/cpuid.ko kernel/arch/x86/kernel/apm.ko kernel/arch/x86/kernel/scx200.ko kernel/arch/x86/kernel/microcode.ko kernel/arch/x86/crypto/aes-i586.ko kernel/arch/x86/crypto/twofish-i586.ko
2.列出当前加载的模块
尽管上面的modprobe命令显示了所有可用的模块,但是lsmod命令将显示Linux内核中当前加载的所有模块。
$ lsmod | less soundcore 7264 1 snd ppdev 6688 0 snd_page_alloc 9156 1 snd_pcm psmouse 56180 0 lp 8964 0
3.将新模块安装到Linux内核中
为了将新模块插入内核,请使用模块名称执行modprobe命令。
以下示例将vmhgfs模块加载到Ubuntu上的Linux内核。
$ sudo modprobe vmhgfs
加载模块后,使用lsmod命令对其进行验证,如下所示。
$ lsmod | grep vmhgfs vmhgfs 50772 0
模块文件的扩展名为.ko。如果您想知道特定Linux内核模块的完整文件位置,请使用modprobe命令并对模块名称进行grep,如下所示。
$ modprobe | grep vmhgfs misc/vmhgfs.ko $ cd /lib/modules/2.6.31-14-generic/misc $ ls vmhgfs* vmhgfs.ko
注意:您也可以使用insmod将新模块安装到Linux内核中。
4.加载具有不同名称的新模块以避免冲突
考虑一下,在某些情况下,您应该加载一个新模块,但是具有相同模块名称的另一个模块已经出于不同目的而加载。
如果出于某些奇怪的原因,您试图加载到内核中的模块名称被另一个模块使用(具有相同的名称),那么您可以使用另一个名称来加载新模块。
要使用其他名称加载模块,请使用modprobe选项-o,如下所示。
$ sudo modprobe vmhgfs -o vm_hgfs $ lsmod | grep vm_hgfs vm_hgfs 50772 0
5.卸下当前加载的模块
如果你’如果出于某种测试目的将模块加载到Linux内核,则可能要从内核中卸载(删除)模块。
使用modprobe -r选项从内核卸载模块,如下所示。
modprobe -r vmhgfs
如果你 enjoyed this article, you might also like..
![]() |
![]() |
![]() |
![]() |
再次感谢 !!!