n Centos 5, /etc/rc.d/rc.sysinit looking for two locations to load modules
# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
# Load modules (for backward compatibility with VARs)
if [ -f /etc/rc.modules ]; then
/etc/rc.modules
fi
As you can see, you can put load module commands in /etc/sysconfig/modules/*.modules or /etc/rc.modules. Putting in /etc/rc.local might not work, because rc.local is executed very late.
#e.g loading dummy network module "dummy"
echo "modprobe dummy" >/etc/sysconfig/modules/my.modules
chmod +x /etc/sysconfig/modules/my.modules
Kernel modules are usually loaded directly by the facility that requires them, which is given correct settings in the /etc/modprobe.conf file. However, it is sometimes necessary to explicitly force the loading of a module at boot time.
Red Hat Enterprise Linux checks for the existence of the /etc/rc.modules file at boot time, which contains various commands to load modules. The rc.modules should be used, and not rc.local because rc.modules is executed earlier in the boot process.
For example, the following commands configure loading of the foo module at boot time (as root):
# echo modprobe foo >> /etc/rc.modules
# chmod +x /etc/rc.modules