5

I am automating some configurations on my systems using Puppet (however, that is not really relevant here). For a group of machines I want to load a kernel module at boot time. The most elegant way seems to edit /etc/modules and add one on an individual line. However, I would like to use separate files in a ".d" directory structure for easier maintainability, rather than having Puppet editing a file.

For modprobe and specifying the options for or blacklisting modules, there's /etc/modprobe.d/, but what's the most elegant way for actually loading modules at boot time using a single new file? Basically, I'm looking for the non-existing /etc/modules.d/ directory.

Any suggestions?

gertvdijk
  • 69,427

3 Answers3

3

The directory you are looking for is

/etc/modules-load.d

For example, to always load the nf_conntrack_pptp kernel module, add nf_conntrack_pptp to /etc/modules-load.d/pptp.conf. The filename doesn't matter, but I'm guessing the convention or requirement is that it ends in .conf.

This is implemented for older Ubuntu versions (without systemd) using a SysVinit script in /etc/init.d/kmod. For newer systemd-versions (15.04+), systemd handles this. Read the documentation man 5 modules-load.d.

gertvdijk
  • 69,427
Adam Monsen
  • 2,161
1

You should be able to put additional .conf files in /etc/modprobe.d/ to do module loading as well (even though the default files in there are all about blacklisting things).

You may be able to just put the module name on a line by itself, or if you need more complex behaviour, you can use 'install' at the beginning of a line. From the manpage:

install modulename command...
    This is the most powerful primitive: it tells modprobe to run your command 
    instead of inserting the module in the kernel as normal. 

http://manpages.ubuntu.com/manpages/precise/man5/modprobe.conf.5.html

-1

When using a file in /etc/modules.d directory you have to use install directive.

Since "install" is expecting [module_name] [command]

install your_module /bin/true

will do the trick ;)