如何在没有modprobe.conf的情况下加载(linux内核)networking模块

如何(linux内核)networking模块得到加载没有modprobe.conf我已经安装了fedora发行版,并可以看到自动在系统中加载e1000e模块。

是否有一个configuration指定自动加载这个模块?

我已经提到modprobe.conf,但没有这样的条目存在。 对于这个问题,我已经grep的整个/ etc /目录来检查任何条目来加载这个模块,但无济于事。

请让我知道1.是否有任何configuration文件提到在启动时自动加载特定模块? 2.如果没有configuration文件,系统如何拾取模块?

谢谢!

它们是基于硬件检测加载的。 对于e1000e模块,机器中的硬件(无论是板上还是插件卡)将使用PCI供应商ID和设备ID对标识自身,并且将与可用模块和任何标识自身的模块进行匹配该ID将被加载。

您可以通过运行modinfo e1000e来查看与e1000e模块关联的ID,这些报告将会显示如下内容:

 filename: /lib/modules/3.9.5-301.fc19.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko version: 2.2.14-k license: GPL description: Intel(R) PRO/1000 Network Driver author: Intel Corporation, <[email protected]> srcversion: 28B371A0E50A24E26204016 alias: pci:v00008086d00001559sv*sd*bc*sc*i* alias: pci:v00008086d0000155Asv*sd*bc*sc*i* alias: pci:v00008086d0000153Bsv*sd*bc*sc*i* alias: pci:v00008086d0000153Asv*sd*bc*sc*i* ... 

只有很长的alias列表才能识别模块能够支持的特定PCI设备。

当设备出现时,linux内核会使用uevents将它们通告给用户空间,而udev守护进程会将设备ID与模块数据库相匹配并加载正确的模块。

在启动一个initrd ,一个初始的RAM磁盘被加载,其内容随后可用于第二阶段启动。 请参阅/ boot。

该RAM磁盘通常包含一些内核模块,这些内核模块并非静态编译到内核中,而是用于系统引导,即文件系统,RAID控制器和networking的模块化驱动程序。

man initrd虽然有一个更好的解释。

你需要检查的第一件事是你的内核configuration文件,如果你的模块正在你的内核中build立,例如我的redhat 5服务器

 grep -i e1000 /boot/config-$(uname -r) | grep -v ^# CONFIG_E1000=m CONFIG_E1000_NAPI=y CONFIG_E1000E=m 

当您插入e1000网卡时,内核使用内核用户模式api调用modprobe程序“kernel.modprobe = / sbin / modprobe”

如果你的模块正在build立,你可以使用modprobe.conf来改变带有options指令的模块参数,除非内核用模块缺省参数