Linux:如何在启动时自动加载内核模块
如何在引导时自动加载Linux内核模块,以便在系统引导过程中自动识别我的硬件?
Linux内核遵循模块化内核设计。
可加载内核模块(LKM)是目标文件,其中包含扩展运行中的内核或所谓的基本内核的代码。
LKM通常用于添加对新硬件,文件系统,NIC等的支持。
配置文件
加载内核模块是一项基本任务。
您需要编辑名为/etc/modules
的文件或在/etc/modules-load.d /
目录中放置一个新的配置文件。
使用任何一种方法加载内核模块。
配置文件由一组行组成。
所有空行以及#之后的所有文本都将被忽略。
如果在安装后添加了新硬件并且硬件需要内核模块,则使用文件"/etc/modules"(或" /etc/modules-load.d/"中的其他文件)。
新硬件的适当内核模块。
例子
例如,如果系统包含IDE CD-ROM,则模块配置文件包含以下3行:
# vi /etc/modules
追加以下几行:
ide-cd ide-core cdrom
保存并关闭文件。
重新引导系统以进行测试:
# reboot
另一个选择是加载驱动程序而不重新引导系统。
使用modprobe命令:
# modprobe {driver-name} # modprobe ide-cd # modprobe ide-cd cdrom
请注意,如果您使用的是Debian Linux或Ubuntu Linux,请使用文件/etc/modules文件而不是/etc/modules.conf(该文件可在较旧版本的Red Hat/Fedora/CentOS Linux上运行。
如今,这样更好在所有Linux发行版上使用目录/etc/modules-load.d /
。
关于现代Linux内核的说明
如今,udev用于自动模块处理。
不需要将模块放在任何配置文件中,因为udev会处理它。
但是,有时您仍需要在引导过程中添加一个额外的模块,或将另一个模块列入黑名单,以使您的Linux便携式计算机或服务器正常工作。
例如,可以在引导过程中在/etc/modules-load.d/下的文件中加载内核模块。
例如:
# cat /etc/modules-load.d/kvm.conf kvm kvm_intel
查看当前正在加载哪些内核模块
输入lsmod命令获取有关当前加载的模块/驱动程序的信息:
$ lsmod
或者
$ lsmod | more
要获取有关模块的信息,请运行modinfo命令
查找有关模块的信息
$ modinfo {module_name}
例如,获取有关名为igb的模块的信息:
$ modinfo igb
卸载/卸下模块
rmmod命令的语法如下
$ sudo rmmod {module_name}
或者
$ sudo modprobe -r {module_name}