<?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">
<refentry id="depmod">
  <refentryinfo>
    <title>depmod</title>
    <productname>kmod</productname>

    <authorgroup>
      <author>
        <contrib>Developer</contrib>
        <firstname>Jon</firstname>
        <surname>Masters</surname>
        <email>jcm@jonmasters.org</email>
      </author>
      <author>
        <contrib>Developer</contrib>
        <firstname>Robby</firstname>
        <surname>Workman</surname>
        <email>rworkman@slackware.com</email>
      </author>
      <author>
        <contrib>Developer</contrib>
        <firstname>Lucas</firstname>
        <surname>De Marchi</surname>
        <email>lucas.de.marchi@gmail.com</email>
      </author>
    </authorgroup>
  </refentryinfo>

  <refmeta>
    <refentrytitle>depmod</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>depmod</refname>
    <refpurpose>
      Generate <filename>modules.dep</filename> and map files.
    </refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>depmod</command>
      <arg><option>-b <replaceable>basedir</replaceable></option></arg>
      <arg><option>-e</option></arg>
      <arg><option>-E <replaceable>Module.symvers</replaceable></option></arg>
      <arg><option>-F <replaceable>System.map</replaceable></option></arg>
      <arg><option>-n</option></arg>
      <arg><option>-v</option></arg>
      <arg><option>-A</option></arg>
      <arg><option>-P <replaceable>prefix</replaceable></option></arg>
      <arg><option>-w</option></arg>
      <arg><option><replaceable>version</replaceable></option></arg>
    </cmdsynopsis>

    <cmdsynopsis>
      <command>depmod</command>
      <arg><option>-e</option></arg>
      <arg><option>-E <replaceable>Module.symvers</replaceable></option></arg>
      <arg><option>-F <replaceable>System.map</replaceable></option></arg>
      <arg><option>-n</option></arg>
      <arg><option>-v</option></arg>
      <arg><option>-P <replaceable>prefix</replaceable></option></arg>
      <arg><option>-w</option></arg>
      <arg><option><replaceable>version</replaceable></option></arg>
      <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1><title>DESCRIPTION</title>
    <para>
      Linux kernel modules can provide services (called "symbols") for other
      modules to use (using one of the EXPORT_SYMBOL variants in the code).  If
      a second module uses this symbol, that second module clearly depends on
      the first module.  These dependencies can get quite complex.
    </para>
    <para> <command>depmod</command> creates a list of module dependencies by
      reading each module under
      <filename>/lib/modules/</filename><replaceable>version</replaceable> and
      determining what symbols it exports and what symbols it needs.  By
      default, this list is written to <filename>modules.dep</filename>, and a
      binary hashed version named <filename>modules.dep.bin</filename>, in the
      same directory.  If filenames are given on the command line, only those
      modules are examined (which is rarely useful unless all modules are
      listed).  <command>depmod</command> also creates a list of symbols
      provided by modules in the file named
      <filename>modules.symbols</filename> and its binary hashed version,
      <filename>modules.symbols.bin</filename>.  Finally,
      <command>depmod</command> will output a file named
      <filename>modules.devname</filename> if modules supply special device
      names (devname) that should be populated in /dev on boot (by a utility
      such as systemd-tmpfiles).
    </para>
    <para> If a <replaceable>version</replaceable> is provided, then that kernel
      version's module directory is used rather than the current kernel version
      (as returned by <command>uname -r</command>).
    </para>
  </refsect1>
  <refsect1><title>OPTIONS</title>
    <variablelist>
      <varlistentry>
        <term>
          <option>-a</option>
        </term>
        <term>
          <option>--all</option>
        </term>
        <listitem>
          <para>
            Probe all modules. This option is enabled by default if no
            file names are given in the command-line.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-A</option>
        </term>
        <term>
          <option>--quick</option>
        </term>
        <listitem>
          <para>
            This option scans to see if any modules are newer than the
            <filename>modules.dep</filename> file before any work is done:
            if not, it silently exits rather than regenerating the files.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-b <replaceable>basedir</replaceable></option>
        </term>
        <term>
          <option>--basedir <replaceable>basedir</replaceable></option>
        </term>
        <listitem>
          <para>
            If your modules are not currently in the (normal) directory
            <filename>/lib/modules/</filename><replaceable>version</replaceable>,
            but in a staging area, you can specify a
            <replaceable>basedir</replaceable> which is prepended to the
            directory name.  This <replaceable>basedir</replaceable> is
            stripped from the resulting <filename>modules.dep</filename> file,
            so it is ready to be moved into the normal location. Use this
            option if you are a distribution vendor who needs to pre-generate
            the meta-data files rather than running depmod again later.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-C</option>
        </term>
        <term>
          <option>--config <replaceable>file or directory</replaceable></option>
        </term>
        <listitem>
          <para>
            This option overrides the default configuration directory at
            <filename>/etc/depmod.d/</filename>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-e</option>
        </term>
        <term>
          <option>--errsyms</option>
        </term>
        <listitem>
          <para>
            When combined with the <option>-F</option> option, this reports any
            symbols which a module needs which are not supplied by other
            modules or the kernel.  Normally, any symbols not provided by
            modules are assumed to be provided by the kernel (which should be
            true in a perfect world), but this assumption can break especially
            when additionally updated third party drivers are not correctly
            installed or were built incorrectly.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-E</option>
        </term>
        <term>
          <option>--symvers</option>
        </term>
          <listitem>
            <para>
              When combined with the <option>-e</option> option, this
              reports any symbol versions supplied by modules that do
              not match with the symbol versions provided by the
              kernel in its <filename>Module.symvers</filename>.
              This option is mutually incompatible with <option>-F</option>.
            </para>
          </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-F</option>
        </term>
        <term>
          <option>--filesyms <replaceable>System.map</replaceable></option>
        </term>
        <listitem>
          <para>
            Supplied with the <filename>System.map</filename> produced when the
            kernel was built, this allows the <option>-e</option> option to
            report unresolved symbols.  This option is mutually incompatible
            with <option>-E</option>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-h</option>
        </term>
        <term>
          <option>--help</option>
        </term>
        <listitem>
          <para>
            Print the help message and exit.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-n</option>
        </term>
        <term>
          <option>--show</option>
        </term>
        <term>
          <option>--dry-run</option>
        </term>
        <listitem>
          <para>
            This sends the resulting modules.dep and the various map files to
            standard output rather than writing them into the module directory.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-P</option>
        </term>
        <listitem>
          <para>
            Some architectures prefix symbols with an extraneous character.
            This specifies a prefix character (for example '_') to ignore.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-v</option>
        </term>
        <term>
          <option>--verbose</option>
        </term>
        <listitem>
          <para>
            In verbose mode, <command>depmod</command> will print (to stdout)
            all the symbols each module depends on and the module's file name
            which provides that symbol.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-V</option>
        </term>
        <term>
          <option>--version</option>
        </term>
        <listitem>
          <para>
            Show version of program and exit. See below for caveats when
            run on older kernels.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-w</option>
        </term>
        <listitem>
          <para>
            Warn on duplicate dependencies, aliases, symbol versions, etc.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1><title>COPYRIGHT</title>
    <para>
      This manual page originally Copyright 2002, Rusty Russell,
      IBM Corporation. Portions Copyright Jon Masters, and others.
    </para>
  </refsect1>

  <refsect1><title>SEE ALSO</title>
    <para>
      <citerefentry>
        <refentrytitle>depmod.d</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>modules.dep</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>
    </para>
  </refsect1>
</refentry>
