<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
  This file is part of systemd.

  Copyright 2011 Lennart Poettering

  systemd is free software; you can redistribute it and/or modify it
  under the terms of the GNU Lesser General Public License as published by
  the Free Software Foundation; either version 2.1 of the License, or
  (at your option) any later version.

  systemd is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License
  along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="modules-load.d">

        <refentryinfo>
                <title>modules-load.d</title>
                <productname>systemd</productname>

                <authorgroup>
                        <author>
                                <contrib>Developer</contrib>
                                <firstname>Lennart</firstname>
                                <surname>Poettering</surname>
                                <email>lennart@poettering.net</email>
                        </author>
                </authorgroup>
        </refentryinfo>

        <refmeta>
                <refentrytitle>modules-load.d</refentrytitle>
                <manvolnum>5</manvolnum>
        </refmeta>

        <refnamediv>
                <refname>modules-load.d</refname>
                <refpurpose>Configure kernel modules to load at boot</refpurpose>
        </refnamediv>

        <refsynopsisdiv>
                <para><filename>/etc/modules-load.d/*.conf</filename></para>
                <para><filename>/run/modules-load.d/*.conf</filename></para>
                <para><filename>/usr/lib/modules-load.d/*.conf</filename></para>
        </refsynopsisdiv>

        <refsect1>
                <title>Description</title>

		<para><command>systemd</command> uses
		files from the above directories to configure
		kernel modules to load during boot in a static list.
		Each configuration file is named in the style of
		<filename>/etc/modules-load.d/&lt;program&gt;.conf</filename>. Note
		that it is usually a better idea to use the automatic
		module loading by PCI ID, by DMI ID or similar
		triggers configured in the kernel modules themselves
		instead of relying on static configuration like
		this.</para>
        </refsect1>

        <refsect1>
		<title>Configuration Format</title>

		<para>The configuration files should simply contain a
		list of kernel module names to load, separated by
		newlines. Empty lines and lines whose first
		non-whitespace character is # or ; are ignored.</para>

                <para>Each configuration file is named in the style of
                <filename>&lt;program&gt;.conf</filename>.
                Files in <filename>/etc/</filename> overwrite
                files with the same name in <filename>/usr/lib/</filename>.
                Files in <filename>/run</filename> overwrite files with
                the same name in <filename>/etc/</filename> and
                <filename>/usr/lib/</filename>. Packages should install their
                configuration files in <filename>/usr/lib/</filename>, files
                in <filename>/etc/</filename> are reserved for the local
                administration, which possibly decides to overwrite the
                configurations installed from packages. All files are sorted
                by filename in alphabetical order, regardless in which of the
                directories they reside, to ensure that a specific
                configuration file takes precedence over another file with
                an alphabetically later name.</para>
        </refsect1>

        <refsect1>
                <title>Example</title>
                <example>
                        <title>/etc/modules-load.d/virtio-net.conf example:</title>

                        <programlisting># Load virtio-net.ko at boot
virtio-net</programlisting>
                </example>
        </refsect1>

        <refsect1>
                <title>See Also</title>
                <para>
                        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                        <citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
                </para>
        </refsect1>

</refentry>
