<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY debian  "<productname>Debian GNU/Linux</productname>">
  <!ENTITY docbook "<productname>DocBook</productname>">
  <!ENTITY sgml    "<abbrev>SGML</abbrev>">
]>

<!-- Stolen from manual page for docbook-to-man, DocBook source file
     (C) 1999 W. Borgert debacle@debian.org

     $Id: docbook-to-man.sgml,v 1.8 2002/04/27 15:28:02 debacle Exp $ -->

<refentry>
  <refentryinfo>
    <address>
      <email>jcm@jonmasters.org</email>
    </address>
    <author>
      <firstname>Jon</firstname>
      <surname>Masters</surname>
    </author>
    <date>2010-03-01</date>
  </refentryinfo>
  <refmeta>
    <refentrytitle>depmod.d</refentrytitle>
    <manvolnum>5</manvolnum>
    <refentrytitle>depmod.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>
  <refnamediv>
    <refname>depmod.conf</refname><refname>depmod.d</refname> <refpurpose>Configuration file/directory for depmod</refpurpose>
  </refnamediv>
  <refsect1>
    <title>DESCRIPTION</title>

    <para>The order in which modules are processed by the
      <command>depmod</command> command can be altered on a global or
      per-module basis. This is typically useful in cases where built-in
      kernel modules are complemented by custom built versions of the
      same and the user wishes to affect the priority of processing in
      order to override the module version supplied by the kernel.
    </para>
    <para>
      The format of <filename>depmod.conf</filename> and files under <filename>depmod.d</filename> is simple: one
      command per line, with blank lines and lines starting with '#'
      ignored (useful for adding comments).  A '\' at the end of a line
      causes it to continue on the next line, which makes the file a
      bit neater.
    </para>
  </refsect1>
  <refsect1>
    <title>COMMANDS</title>
    <variablelist>
      <varlistentry>
        <term>search <replaceable>subdirectory...</replaceable>
        </term>
	<listitem>
	  <para>
	    This allows you to specify the order in which /lib/modules
	    (or other configured module location) subdirectories will
	    be processed by <command>depmod</command>. Directories are
	    listed in order, with the highest priority given to the
	    first listed directory and the lowest priority given to the last
	    directory listed. The special keyword <command>built-in</command> 
	    refers to the standard module directories installed by the kernel.
	  </para>
	  <para>
	    By default, depmod will give a higher priority to 
	    a directory with the name <command>updates</command>
	    using this built-in search string: "updates built-in"
	    but more complex arrangements are possible and are
	    used in several popular distributions.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>override <replaceable>modulename</replaceable> <replaceable>kernelversion</replaceable> <replaceable>modulesubdirectory</replaceable>
        </term>
	<listitem>
	  <para>
	    This command allows you to override which version of a
	    specific module will be used when more than one module
	    sharing the same name is processed by the
	    <command>depmod</command> command. It is possible to
	    specify one kernel or all kernels using the * wildcard.
	    <replaceable>modulesubdirectory</replaceable> is the
	    name of the subdirectory under /lib/modules (or other
	    module location) where the target module is installed.
	  </para>
	  <para>
	    For example, it is possible to override the priority of
	    an updated test module called <command>kmod</command> by
	    specifying the following command: "override kmod * extra".
	    This will ensure that any matching module name installed
	    under the <command>extra</command> subdirectory within
	    /lib/modules (or other module location) will take priority
	    over any likenamed module already provided by the kernel.
	  </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
    <title>COPYRIGHT</title>
    <para>
      This manual page Copyright 2006-2010, Jon Masters, Red Hat, Inc.
    </para>
  </refsect1>
    <refsect1>
    <title>SEE ALSO</title>
    <para><citerefentry>
	<refentrytitle>depmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>
    </para>
  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
