如何使用modprobe命令来加载,卸载和查看模块
答案:1 悬赏:60 手机版
解决时间 2021-04-04 15:23
- 提问者网友:遮云壑
- 2021-04-03 20:54
如何使用modprobe命令来加载,卸载和查看模块
最佳答案
- 五星知识达人网友:杯酒困英雄
- 2021-04-03 22:26
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. 安装新模块到内核
要向内核插入一个新模块,使用modprobe加模块名就行了:
$ sudo modprobe vmhgfs
当模块被加载后,最好使用lsmod来验证一下
$ lsmod | grep vmhgfs
vmhgfs 50772 0
模块的名称使用.ko后缀,如果你想知道特定的模块文件到底存放在哪里,可以使用modprobe命令并将输出定向到grep命令即可:
$ modprobe | grep vmhgfs
misc/vmhgfs.ko
$ cd /lib/modules/2.6.31-14-generic/misc
$ ls vmhgfs*
vmhgfs.ko
注:也可以使用 insmod 命令安装新模块到内核。
. 使用另一个名字加载模块来防止冲突
考虑下这个问题,有些情况下我们想要向内核加载一个新模块,但是新模块的名称与一个已加载模块相同,但是这两个模块的功能和作用并不相同。
由于一些很奇怪的原因,你想要加载到内核的模块和别的已加载模块重名,那么这时候你需要使用另一个名字来加载你的模块,可以使用 modprobe 命令的 -o 选项来达到这个目的:
$ sudo modprobe vmhgfs -o vm_hgfs
$ lsmod | grep vm_hgfs
vm_hgfs 50772 0
5. 卸载模块
如果你已经加载一些模块到内核中(比如测试用),你或许想要把它们从内核卸载(或删除)。使用 modprobe 的 -r 选项可以达到这个目的:
modprobe -r vmhgfs
使用 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. 安装新模块到内核
要向内核插入一个新模块,使用modprobe加模块名就行了:
$ sudo modprobe vmhgfs
当模块被加载后,最好使用lsmod来验证一下
$ lsmod | grep vmhgfs
vmhgfs 50772 0
模块的名称使用.ko后缀,如果你想知道特定的模块文件到底存放在哪里,可以使用modprobe命令并将输出定向到grep命令即可:
$ modprobe | grep vmhgfs
misc/vmhgfs.ko
$ cd /lib/modules/2.6.31-14-generic/misc
$ ls vmhgfs*
vmhgfs.ko
注:也可以使用 insmod 命令安装新模块到内核。
. 使用另一个名字加载模块来防止冲突
考虑下这个问题,有些情况下我们想要向内核加载一个新模块,但是新模块的名称与一个已加载模块相同,但是这两个模块的功能和作用并不相同。
由于一些很奇怪的原因,你想要加载到内核的模块和别的已加载模块重名,那么这时候你需要使用另一个名字来加载你的模块,可以使用 modprobe 命令的 -o 选项来达到这个目的:
$ sudo modprobe vmhgfs -o vm_hgfs
$ lsmod | grep vm_hgfs
vm_hgfs 50772 0
5. 卸载模块
如果你已经加载一些模块到内核中(比如测试用),你或许想要把它们从内核卸载(或删除)。使用 modprobe 的 -r 选项可以达到这个目的:
modprobe -r vmhgfs
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯