<!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>modprobe</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>
  <refnamediv>
    <refname>modprobe</refname> <refpurpose>program to add and remove modules from the Linux Kernel</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <cmdsynopsis>
      <command>modprobe</command>
      <arg><option>-v</option></arg>
      <arg><option>-V</option></arg>
      <arg><option>-C <replaceable>config-file</replaceable></option></arg>
      <arg><option>-n</option></arg>
      <arg><option>-i</option></arg>
      <arg><option>-q</option></arg>
      <arg><option>-b</option></arg>
      <arg><option>-o</option> <replaceable>modulename</replaceable></arg>
      <arg><replaceable>modulename</replaceable></arg>
      <arg rep='repeat'><option><replaceable>module parameters</replaceable></option></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>modprobe</command>
      <arg>-r</arg>
      <arg><option>-v</option></arg>
      <arg><option>-n</option></arg>
      <arg><option>-i</option></arg>
      <arg rep='repeat'><option><replaceable>modulename</replaceable></option></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>modprobe</command>
      <arg>-l</arg>
      <arg>-t <replaceable>dirname</replaceable></arg>
      <arg><option><replaceable>wildcard</replaceable></option></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>modprobe</command>
      <arg>-c</arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>modprobe</command>
      <arg>--dump-modversions</arg> <arg rep='repeat'><replaceable>filename</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
    <title>Description</title>

    <para>
      <command>modprobe</command> intelligently adds or removes a
      module from the Linux kernel: note that for convenience, there
      is no difference between _ and - in module names (automatic
      underscore conversion is performed).
      <command>modprobe</command> looks in the module directory
      <filename>/lib/modules/`uname -r`</filename> for all
      the modules and other files, except for the optional
      <filename>/etc/modprobe.conf</filename> configuration file and
      <filename>/etc/modprobe.d</filename> directory
      (see <citerefentry>
	<refentrytitle>modprobe.conf</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>). <command>modprobe</command> will also use module
      options specified on the kernel command line in the form of
      &lt;module&gt;.&lt;option&gt;.
    </para>
    <para>
      Note that unlike in 2.4 series Linux kernels (which are not supported
      by this tool) this version of <command>modprobe</command> does not
      do anything to the module itself: the work of resolving symbols
      and understanding parameters is done inside the kernel.  So
      module failure is sometimes accompanied by a kernel message: see
      <citerefentry>
	<refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>.
    </para>
    <para>
      <command>modprobe</command> expects an up-to-date
      <filename>modules.dep.bin</filename> file (or fallback human
      readable <filename>modules.dep</filename> file), as generated
      by the corresponding <command>depmod</command> utility shipped
      along with <command>modprobe</command> (see
      <citerefentry><refentrytitle>depmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>).  This file lists what other modules each
      module needs (if any), and <command>modprobe</command> uses this
      to add or remove these dependencies automatically.
    </para>
    <para>
      If any arguments are given after the
      <replaceable>modulename</replaceable>, they are passed to the
      kernel (in addition to any options listed in the configuration
      file).
    </para>
  </refsect1>
  <refsect1>
    <title>OPTIONS</title>
    <variablelist>
      <varlistentry>
        <term><option>-a</option> <option>--all</option>
        </term>
        <listitem>
          <para>Insert all module names on the command line.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-b</option> <option>--use-blacklist</option>
        </term>
        <listitem>
	  <para>
	    This option causes <command>modprobe</command> to apply the
	    <command>blacklist</command> commands in the configuration files
	    (if any) to module names as well.  It is usually used by
	    <citerefentry>
	      <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
	    </citerefentry>.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-C</option> <option>--config</option>
        </term>
        <listitem>
          <para>This option overrides the default configuration directory/file
		(<filename>/etc/modprobe.d</filename> or 
		<filename>/etc/modprobe.conf</filename>).
	  </para>
          <para>
	    This option is passed through <command>install</command>
	    or <command>remove</command> commands to other
	    <command>modprobe</command> commands in the
	    MODPROBE_OPTIONS environment variable.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-c</option> <option>--showconfig</option>
        </term>
        <listitem>
          <para>Dump out the effective configuration from the config directory
                and exit.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--dump-modversions</option>
        </term>
        <listitem>
          <para>
            Print out a list of module versioning information required by a
            module. This option is commonly used by distributions in order to
            package up a Linux kernel module using module versioning deps.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-d</option> <option>--dirname</option>
        </term>
        <listitem>
          <para>
            Directory where modules can be found,
            <filename>/lib/modules/<replaceable>RELEASE</replaceable></filename>
            by default.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--first-time</option>
        </term>
        <listitem>
          <para>
	    Normally, <command>modprobe</command> will succeed (and do
	    nothing) if told to insert a module which is already
	    present or to remove a module which isn't present.  This is
	    ideal for simple scripts; however, more complicated scripts often
	    want to know whether <command>modprobe</command> really
	    did something: this option makes modprobe fail in the
	    case that it actually didn't do anything.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--force-vermagic</option>
        </term>
        <listitem>
          <para>
	    Every module contains a small string containing important
	    information, such as the kernel and compiler versions.  If
	    a module fails to load and the kernel complains that the
	    "version magic" doesn't match, you can use this option to
	    remove it.  Naturally, this check is there for your
	    protection, so this using option is dangerous unless
	    you know what you're doing.
	 </para>
	 <para>
	    This applies to any modules inserted: both the module (or
	    alias) on the command line and any modules on which it depends.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--force-modversion</option>
        </term>
        <listitem>
          <para>
	    When modules are compiled with CONFIG_MODVERSIONS set, a
	    section detailing the versions of every interfaced used
	    by (or supplied by) the module is created.  If a
	    module fails to load and the kernel complains that the
	    module disagrees about a version of some interface, you
	    can use "--force-modversion" to remove the version
	    information altogether.  Naturally, this check is there
	    for your protection, so using this option is dangerous
	    unless you know what you're doing.
	 </para>
	 <para>
	    This applies any modules inserted: both the module (or
	    alias) on the command line and any modules on which it depends.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-f</option> <option>--force</option>
        </term>
        <listitem>
          <para>
	    Try to strip any versioning information from the module
	    which might otherwise stop it from loading: this is the
	    same as using both <option>--force-vermagic</option> and
	    <option>--force-modversion</option>.  Naturally, these
	    checks are there for your protection, so using this option
	    is dangerous unless you know what you are doing.
	 </para>
	 <para>
	    This applies to any modules inserted: both the module (or
	    alias) on the command line and any modules it on which it depends.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-i</option> <option>--ignore-install</option> <option>--ignore-remove</option>
        </term>
        <listitem>
          <para>This option causes <command>modprobe</command> to
		ignore <command>install</command> and
		<command>remove</command> commands in the
		configuration file (if any) for the module specified on the
		command line (any dependent modules are still subject
		to commands set for them in the configuration file). Both
		<command>install</command> and <command>remove</command>
		commands will currently be ignored when this option is used
		regardless of whether the request was more specifically
		made with only one or other (and not both) of
		<option>--ignore-install</option> or
		<option>--ignore-remove</option>.
		See <citerefentry>
<refentrytitle>modprobe.conf</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-l</option> <option>--list</option>
        </term>
        <listitem>
          <para>List all modules matching the given wildcard (or "*"
		if no wildcard is given).  This option is provided for
		backwards compatibility and may go away in future: see
	    <citerefentry>
	      <refentrytitle>find</refentrytitle><manvolnum>1</manvolnum>
	    </citerefentry> and
	    <citerefentry>
	      <refentrytitle>basename</refentrytitle><manvolnum>1</manvolnum>
	    </citerefentry> for a more flexible alternative.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-n</option> <option>--dry-run</option>
        <option>--show</option>
        </term>
        <listitem>
          <para>This option does everything but actually insert or
		delete the modules (or run the install or remove
		commands).  Combined with <option>-v</option>, it is
		useful for debugging problems. For historical reasons
		both <option>--dry-run</option> and <option>--show</option>
		actually mean the same thing and are interchangeable.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-o</option> <option>--name</option>
        </term>
        <listitem>
          <para>
	    This option tries to rename the module which is being
	    inserted into the kernel.  Some testing modules can
	    usefully be inserted multiple times, but the kernel
	    refuses to have two modules of the same name.  Normally,
	    modules should not require multiple insertions, as that
	    would make them useless if there were no module support.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-q</option> <option>--quiet</option>
        </term>
        <listitem>
          <para>
	    With this flag, <command>modprobe</command> won't print an error
	    message if you try to remove or insert a module it can't find (and
	    isn't an alias or
	    <command>install</command>/<command>remove</command> command).
	    However, it will still return with a non-zero exit status. The
	    kernel uses this to opportunistically probe for modules which might
	    exist using request_module.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-R</option> <option>--resolve-alias</option>
        </term>
        <listitem>
          <para>
	    Print all module names matching an alias. This can be useful
	    for debugging module alias problems.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-r</option> <option>--remove</option>
        </term>
        <listitem>
          <para>
	    This option causes <command>modprobe</command> to remove
	    rather than insert a module.  If the modules it depends on
	    are also unused, <command>modprobe</command> will try to
	    remove them too.  Unlike insertion, more than one module
	    can be specified on the command line (it does not make
	    sense to specify module parameters when removing modules).
	  </para>
	  <para>
	    There is usually no reason to remove modules, but some
	    buggy modules require it.  Your distribution kernel may not
	    have been built to support removal of modules at all.
	  </para>
        </listitem>
     </varlistentry>
     <varlistentry>
        <term><option>-S</option> <option>--set-version</option>
        </term>
        <listitem>
          <para>
	    Set the kernel version, rather than using
	    <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry> to decide on the kernel version (which dictates where to
	    find the modules).
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-depends</option>
        </term>
        <listitem>
          <para>
	    List the dependencies of a module (or alias), including
	    the module itself.  This produces a (possibly empty) set
	    of module filenames, one per line, each starting with
	    "insmod" and is typically used by distributions to determine
	    which modules to include when generating initrd/initramfs images.
	    <command>Install</commnd> commands which apply are shown prefixed by
	    "install".  It does not run any of the install commands.  Note that
	    <citerefentry><refentrytitle>modinfo</refentrytitle><manvolnum>8</manvolnum></citerefentry>
	    can be used to extract dependencies of a module from the
	    module itself, but knows nothing of aliases or install commands.
	  </para>
        </listitem>
     </varlistentry>
     <varlistentry>
        <term><option>-s</option> <option>--syslog</option>
        </term>
        <listitem>
          <para>
	    This option causes any error messages to go through the
	    syslog mechanism (as LOG_DAEMON with level LOG_NOTICE)
	    rather than to standard error.  This is also automatically
	    enabled when stderr is unavailable.
	  </para>
          <para>
	    This option is passed through <command>install</command>
	    or <command>remove</command> commands to other
	    <command>modprobe</command> commands in the
	    MODPROBE_OPTIONS environment variable.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-t</option> <option>--type</option>
        </term>
        <listitem>
          <para>Restrict <option>-l</option> to modules
		in directories matching the
		<replaceable>dirname</replaceable> given.  This option
		is provided for backwards compatibility and may go
		away in future: see
	    <citerefentry>
	      <refentrytitle>find</refentrytitle><manvolnum>1</manvolnum>
	    </citerefentry>
	    and
	    <citerefentry>
	      <refentrytitle>basename</refentrytitle><manvolnum>1</manvolnum>
	    </citerefentry> for a more flexible alternative.
	 </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-V</option> <option>--version</option>
        </term>
        <listitem>
          <para>Show version of program and exit.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>-v</option> <option>--verbose</option>
        </term>
        <listitem>
          <para>
	    Print messages about what the program is doing.  Usually
	    <command>modprobe</command> only prints messages if
	    something goes wrong.
	  </para>
          <para>
	    This option is passed through <command>install</command>
	    or <command>remove</command> commands to other
	    <command>modprobe</command> commands in the
	    MODPROBE_OPTIONS environment variable.
	  </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
    <title>ENVIRONMENT</title>
    <para>
      The MODPROBE_OPTIONS environment variable can also be used to
      pass arguments to <command>modprobe</command>.
    </para>
  </refsect1>
  <refsect1>
    <title>COPYRIGHT</title>
    <para>
      This manual page originally Copyright 2002, Rusty Russell, IBM
      Corporation. Maintained by Jon Masters and others.
    </para>
  </refsect1>
  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
	<refentrytitle>modprobe.conf</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>modprobe.d</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>insmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>rmmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>lsmod</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
	<refentrytitle>modinfo</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:
-->
