how (linux kernel) network modules gets loaded without modprobe.conf I have fedora distribution installed and can see e1000e module loaded automatically in the system.
Is there a configuration which specifies to load this module automatically ??
I have referred modprobe.conf, BUT no such entry exists. for that matter, I have grep'd entire /etc/ directory to check any entry to load this module, but no avail.
Please let me know 1. whether any configuration file mention about loaded specific modules automatically during bootup time ? 2. If there is not config file, how the modules are picked up by the system?
Thanks!
They are loaded based on hardware detection. In the case of your
e1000e
module the hardware in your machine, whether it is on board or a plugin card, will identify itself with a PCI vendor ID and device ID pair and those will be matched against the available modules and any module identifying itself with that ID will be loaded.You can see the IDs associated with the
e1000e
module by runningmodinfo e1000e
which will report something like this:Only with a much long list of
alias
lines, each of which identifies a specific PCI device that the module is able to support.As devices appear the linux kernel will announce them to userspace using uevents, and the udev daemon will match the device IDs against the module database and load the correct modules.
During boot an
initrd
, an initial RAM disk is loaded whose contents are then available for the second stage boot. See /boot.That RAM disk typically contains a.o. kernel modules not statically compiled into the kernel and needed for system boot i.e. modular drivers for file system , RAID controllers and network.
man initrd
has a much better explanation though.The first thing you need check is your kernel config file, if your module are builting in your kernel, for example my redhat 5 server
when you insert a e1000 network card, the kernel call modprobe program "kernel.modprobe = /sbin/modprobe" using kernel user mode api
If your module is builting, you can use the modprobe.conf for change the module parameters with options directive, unless the kernel load the module with module defaults parameters