在Linux中,如何添加或者删除内核模块/驱动程序

时间:2019-11-20 08:54:13  来源:igfitidea点击:

使用Linux系统自带的 modprobe命令,可以在Linux内核中添加和删除模块。

在Linux中的模块就是Windows下 “设备驱动程序“ 的意思。

在Linux启动时,只有一个最小的驻留内核被加载到内存中。
如果添加新硬件,则需要添加驱动程序,即模块。

所有Linux内核模块(驱动程序)都存储在位于 /lib/modules/$(uname -r)目录中。

Linux中如何查看驱动程序(当前的模块)

$ ls /lib/modules/$(uname -r)

输出示例:

build                modules.ccwmap       modules.order
initrd               modules.dep          modules.pcimap
kernel               modules.dep.bin      modules.seriomap
misc                 modules.devname      modules.softdep
modules.alias        modules.ieee1394map  modules.symbols
modules.alias.bin    modules.inputmap     modules.symbols.bin
modules.builtin      modules.isapnpmap    modules.usbmap
modules.builtin.bin  modules.ofmap        updates

使用以下命令列出各种设备的所有驱动程序:

$ ls /lib/modules/$(uname -r)/kernel/drivers/

如何添加或者删除运行Linux内核的硬件设备驱动程序(模块)?

使用 modprobe命令智能地在Linux内核中添加或者删除模块

例如 ,添加一个名为foo的模块(驱动程序)

以root用户身份执行以下命令:

# modprobe foo
# modprobe -v foo

查看加载模块信息

使用 modinfo命令可以查看有关Linux内核模块的信息。

# modinfo -v foo
# modinfo foo

如何列出Linux中所有加载的模块

lsmod命令显示Linux内核中模块的状态:

# lsmod

输出示例:

Module                  Size  Used by
md5                     5953  1
ipv6                  284193  10
ipt_TOS                 4033  2
iptable_mangle          4545  1
ip_conntrack_ftp       74801  0

Linux中如何移除一个模块

modprobe -r命令用于删除模块

# modprobe -r foo

我们还可以使用rmmod命令,从Linux内核中删除模块:

# rmmod foo