Sophie

Sophie

distrib > Mageia > 7 > i586 > media > nonfree-updates > by-pkgid > 81fae3ae235a548f801b562d1fe69f7f > files > 7

nvidia390-doc-html-390.129-1.mga7.nonfree.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
<title>Chapter&nbsp;8.&nbsp;Common Problems</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title=
"NVIDIA Accelerated Linux Graphics Driver README and Installation Guide">
<link rel="up" href="installationandconfiguration.html" title=
"Part&nbsp;I.&nbsp;Installation and Configuration Instructions">
<link rel="prev" href="faq.html" title=
"Chapter&nbsp;7.&nbsp;Frequently Asked Questions">
<link rel="next" href="knownissues.html" title=
"Chapter&nbsp;9.&nbsp;Known Issues">
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Chapter&nbsp;8.&nbsp;Common
Problems</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href=
"faq.html">Prev</a>&nbsp;</td>
<th width="60%" align="center">Part&nbsp;I.&nbsp;Installation and
Configuration Instructions</th>
<td width="20%" align="right">&nbsp;<a accesskey="n" href=
"knownissues.html">Next</a></td>
</tr>
</table>
<hr></div>
<div class="chapter" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="commonproblems" id=
"commonproblems"></a>Chapter&nbsp;8.&nbsp;Common Problems</h2>
</div>
</div>
</div>
<p>This section provides solutions to common problems associated
with the NVIDIA Linux x86 Driver.</p>
<div class="qandaset">
<table border="0" summary="Q and A Set">
<col align="left" width="1%">
<tbody>
<tr class="question">
<td align="left" valign="top"><a name="MyXServerFailsT53883" id=
"MyXServerFailsT53883"></a></td>
<td align="left" valign="top">
<p><b>My X server fails to start, and my X log file contains the
error:</b></p>
<pre class="screen">
(EE) NVIDIA(0): The NVIDIA kernel module does not appear to
(EE) NVIDIA(0):      be receiving interrupts generated by the NVIDIA graphics
(EE) NVIDIA(0):      device PCI:x:x:x. Please see the COMMON PROBLEMS
(EE) NVIDIA(0):      section in the README for additional information.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>This can be caused by a variety of problems, such as PCI IRQ
routing errors, I/O APIC problems, conflicts with other devices
sharing the IRQ (or their drivers), or MSI compatibility
problems.</p>
<p>If possible, configure your system such that your graphics card
does not share its IRQ with other devices (try moving the graphics
card to another slot if applicable, unload/disable the driver(s)
for the device(s) sharing the card's IRQ, or remove/disable the
device(s)).</p>
<p>Depending on the nature of the problem, one of (or a combination
of) these kernel parameters might also help:</p>
<div class="informaltable">
<table summary="(no summary available)" border="0">
<colgroup>
<col>
<col></colgroup>
<thead>
<tr>
<th>Parameter</th>
<th>Behavior</th>
</tr>
</thead>
<tbody>
<tr>
<td>pci=noacpi</td>
<td>don't use ACPI for PCI IRQ routing</td>
</tr>
<tr>
<td>pci=biosirq</td>
<td>use PCI BIOS calls to retrieve the IRQ routing table</td>
</tr>
<tr>
<td>noapic</td>
<td>don't use I/O APICs present in the system</td>
</tr>
<tr>
<td>acpi=off</td>
<td>disable ACPI</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p>The problem may also be caused by MSI compatibility problems.
See <a href="knownissues.html#msi_interrupts">MSI Interrupts</a>
for details.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="XStartsForMeButac314" id=
"XStartsForMeButac314"></a></td>
<td align="left" valign="top">
<p><b>X starts for me, but OpenGL applications terminate
immediately.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>If X starts but you have trouble with OpenGL, you most likely
have a problem with other libraries in the way, or there are stale
symlinks. See <a href="installedcomponents.html" title=
"Chapter&nbsp;5.&nbsp;Listing of Installed Components">Chapter&nbsp;5,
<i>Listing of Installed Components</i></a> for details. Sometimes,
all it takes is to rerun <code class=
"filename">ldconfig</code>.</p>
<p>You should also check that the correct extensions are
present;</p>
<pre class="screen">
    % xdpyinfo
</pre>
<p>should show the &ldquo;<span class="quote">GLX</span>&rdquo; and
&ldquo;<span class="quote">NV-GLX</span>&rdquo; extensions present.
If these two extensions are not present, then there is most likely
a problem loading the glx module, or it is unable to implicitly
load GLcore. Check your X config file and make sure that you are
loading glx (see <a href="editxconfig.html" title=
"Chapter&nbsp;6.&nbsp;Configuring X for the NVIDIA Driver">Chapter&nbsp;6,
<i>Configuring X for the NVIDIA Driver</i></a>). If your X config
file is correct, then check the X log file for warnings/errors
pertaining to GLX. Also check that all of the necessary symlinks
are in place (refer to <a href="installedcomponents.html" title=
"Chapter&nbsp;5.&nbsp;Listing of Installed Components">Chapter&nbsp;5,
<i>Listing of Installed Components</i></a>).</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="WhenXineramaIsE5358f" id=
"WhenXineramaIsE5358f"></a></td>
<td align="left" valign="top">
<p><b>When Xinerama is enabled, my stereo glasses are shuttering
only when the stereo application is displayed on one specific X
screen. When the application is displayed on the other X screens,
the stereo glasses stop shuttering.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>This problem occurs with DDC and "blue line" stereo glasses,
that get the stereo signal from one video port of the graphics
card. When a X screen does not display any stereo drawable the
stereo signal is disabled on the associated video port.</p>
<p>Forcing stereo flipping allows the stereo glasses to shutter
continuously. This can be done by enabling the OpenGL control
"Force Stereo Flipping" in nvidia-settings, or by setting the X
configuration option "ForceStereoFlipping" to "1".</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="StereoIsNotInSy57ad4" id=
"StereoIsNotInSy57ad4"></a></td>
<td align="left" valign="top">
<p><b>Stereo is not in sync across multiple displays.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>There are two cases where this may occur. If the displays are
attached to the same GPU, and one of them is out of sync with the
stereo glasses, you will need to reconfigure your monitors to drive
identical mode timings; see <a href="programmingmodes.html" title=
"Chapter&nbsp;18.&nbsp;Programming Modes">Chapter&nbsp;18,
<i>Programming Modes</i></a> for details.</p>
<p>If the displays are attached to different GPUs, the only way to
synchronize stereo across the displays is with a Quadro Sync
device, which is only supported by certain Quadro cards. See
<a href="framelock.html" title=
"Chapter&nbsp;30.&nbsp;Configuring Frame Lock and Genlock">Chapter&nbsp;30,
<i>Configuring Frame Lock and Genlock</i></a> for details.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="IJustUpgradedMy144d6" id=
"IJustUpgradedMy144d6"></a></td>
<td align="left" valign="top">
<p><b>I just upgraded my kernel, and now the NVIDIA kernel module
will not load.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The kernel interface layer of the NVIDIA kernel module must be
compiled specifically for the configuration and version of your
kernel. If you upgrade your kernel, then the simplest solution is
to reinstall the driver.</p>
<p>ADVANCED: You can install the NVIDIA kernel module for a non
running kernel (for example: in the situation where you just built
and installed a new kernel, but have not rebooted yet) with a
command line such as this:</p>
<pre class="screen">
    # sh NVIDIA-Linux-x86-390.129.run --kernel-name='KERNEL_NAME'
</pre>
<p>Where 'KERNEL_NAME' is what <span><strong class="command">uname
-r</strong></span> would report if the target kernel were
running.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="kernelmoduleloadfailed" id=
"kernelmoduleloadfailed"></a></td>
<td align="left" valign="top">
<p><b>Installing the driver fails with:</b></p>
<pre class="screen">
Unable to load the kernel module 'nvidia.ko'.
</pre>
<p><b>My X server fails to start, and my X log file contains the
error:</b></p>
<pre class="screen">
(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p><strong class="userinput"><code>nvidia-installer</code></strong>
attempts to load the NVIDIA kernel module before installing the
driver, and will abort if this test load fails. Similarly, if the
kernel module fails to load when starting the an X server with the
NVIDIA X driver, the X server will fail to start.</p>
<p>If the NVIDIA kernel module fails to load, you should check the
output of <strong class="userinput"><code>dmesg</code></strong> for
kernel error messages and/or attempt to load the kernel module
explicitly with <strong class="userinput"><code>modprobe
nvidia</code></strong>. There are a number of common failure
cases:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Some symbols that the kernel module depends on failed to be
resolved. If this happens, then the kernel module was most likely
built against a Linux kernel source tree (or kernel headers) for a
kernel revision or configuration that doesn't match the running
kernel.</p>
<p>In some cases, the NVIDIA kernel module may fail to resolve
symbols due to those symbols being provided by modules that were
built as part of the configuration of the currently running kernel,
but which are not installed. For example, some distributions, such
as Ubuntu 14.04, provide the DRM kernel module in an optionally
installed package (in the case of Ubuntu 14.04, linux-image-extra),
but the kernel headers will reflect the availability of DRM
regardless of whether the module that provides it is actually
installed. The NVIDIA kernel module build will detect the
availability of DRM when building, but will fail at load time with
messages such as:</p>
<pre class="screen">
nvidia: Unknown symbol drm_open (err 0)
</pre>
<p></p>
<p>If any of the NVIDIA kernel modules fail to load due to
unresolved symbols, and you are certain that the modules were built
against the correct kernel source tree (or headers), check to see
if there are any optionally installable modules that might provide
these symbols which are not currently installed. If you believe
that you might not be using the correct kernel sources/headers, you
can specify their location when you install the NVIDIA driver using
the <code class="option">--kernel-source-path</code> command line
option (see <strong class="userinput"><code>sh
NVIDIA-Linux-x86-390.129.run --advanced-options</code></strong>
for details).</p>
</li>
<li>
<p>Nouveau, or another driver, is already using the GPU. See
<a href="commonproblems.html#nouveau" title=
"Interaction with the Nouveau Driver">Q &amp; A&nbsp;8.1,
&ldquo;Interaction with the Nouveau Driver&rdquo;</a> for more
information on Nouveau and how to disable it.</p>
</li>
<li>
<p>The kernel requires that kernel modules carry a valid signature
from a trusted key, and the NVIDIA kernel module is unsigned, or
has an invalid or untrusted signature. This may happen, for
example, on some systems with UEFI Secure Boot enabled. See
<a href="installdriver.html#modulesigning" title=
"Signing the NVIDIA Kernel Module">the section called
&ldquo;Signing the NVIDIA Kernel Module&rdquo;</a> for more
information about signing the kernel module.</p>
</li>
<li>
<p>No supported GPU is detected, either because no NVIDIA GPUs are
detected in the system, or because none of the NVIDIA GPUs which
are present are supported by this version of the NVIDIA kernel
module. See <a href="supportedchips.html" title=
"Appendix&nbsp;A.&nbsp;Supported NVIDIA GPU Products">Appendix&nbsp;A,
<i>Supported NVIDIA GPU Products</i></a> for information on which
GPUs are supported by which driver versions.</p>
</li>
</ul>
</div>
<p></p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="InstallingTheNv99f2c" id=
"InstallingTheNv99f2c"></a></td>
<td align="left" valign="top">
<p><b>Installing the NVIDIA kernel module gives an error message
like:</b></p>
<pre class="screen">
#error Modules should never use kernel-headers system headers
#error but headers from an appropriate kernel-source
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>You need to install the source for the Linux kernel. In most
situations you can fix this problem by installing the kernel-source
or kernel-devel package for your distribution</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="OpenglApplicatib08b0" id=
"OpenglApplicatib08b0"></a></td>
<td align="left" valign="top">
<p><b>OpenGL applications crash and print out the following
warning:</b></p>
<pre class="screen">
WARNING: Your system is running with a buggy dynamic loader.
This may cause crashes in certain applications.  If you
experience crashes you can try setting the environment
variable __GL_SINGLE_THREADED to 1.  For more information,
consult the FREQUENTLY ASKED QUESTIONS section in
the file /usr/share/doc/NVIDIA_GLX-1.0/README.txt.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The dynamic loader on your system has a bug which will cause
applications linked with pthreads, and that <code class=
"function">dlopen()</code> libGL multiple times, to crash. This bug
is present in older versions of the dynamic loader. Distributions
that shipped with this loader include but are not limited to Red
Hat Linux 6.2 and Mandrake Linux 7.1. Version 2.2 and later of the
dynamic loader are known to work properly. If the crashing
application is single threaded then setting the environment
variable <code class="envar">__GL_SINGLE_THREADED</code> to
<code class="literal">1</code> will prevent the crash. In the bash
shell you would enter:</p>
<pre class="screen">
    % export __GL_SINGLE_THREADED=1
</pre>
<p>and in csh and derivatives use:</p>
<pre class="screen">
    % setenv __GL_SINGLE_THREADED 1
</pre>
<p>Previous releases of the NVIDIA Accelerated Linux Graphics
Driver attempted to work around this problem. Unfortunately, the
workaround caused problems with other applications and was removed
after version 1.0-1541.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="Quake3CrashesWh70f99" id=
"Quake3CrashesWh70f99"></a></td>
<td align="left" valign="top">
<p><b>Quake3 crashes when changing video modes.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>You are probably experiencing a problem described above. Please
check the text output for the &ldquo;<span class=
"quote">WARNING</span>&rdquo; message described in the previous
hint. Setting <code class="envar">__GL_SINGLE_THREADED</code> to
<code class="literal">1</code> as will fix the problem.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="ICannotBuildThed7d59" id=
"ICannotBuildThed7d59"></a></td>
<td align="left" valign="top">
<p><b>I cannot build the NVIDIA kernel module, or, I can build the
NVIDIA kernel module, but modprobe/insmod fails to load the module
into my kernel.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>These problems are generally caused by the build using the wrong
kernel header files (i.e. header files for a different kernel
version than the one you are running). The convention used to be
that kernel header files should be stored in <code class=
"filename">/usr/include/linux/</code>, but that is deprecated in
favor of <code class=
"filename">/lib/modules/RELEASE/build/include</code> (where RELEASE
is the result of <span><strong class="command">uname
-r</strong></span>. The <code class=
"filename">nvidia-installer</code> should be able to determine the
location on your system; however, if you encounter a problem you
can force the build to use certain header files by using the
<code class="option">--kernel-include-dir</code> option. For this
to work you will of course need the appropriate kernel header files
installed on your system. Consult the documentation that came with
your distribution; some distributions do not install the kernel
header files by default, or they install headers that do not
coincide properly with the kernel you are running.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="CompilingTheNvi5332d" id=
"CompilingTheNvi5332d"></a></td>
<td align="left" valign="top">
<p><b>Compiling the NVIDIA kernel module gives this error:</b></p>
<pre class="screen">
You appear to be compiling the NVIDIA kernel module with
a compiler different from the one that was used to compile
the running kernel. This may be perfectly fine, but there
are cases where this can lead to unexpected behavior and
system crashes.

If you know what you are doing and want to override this
check, you can do so by setting IGNORE_CC_MISMATCH.

In any other case, set the CC environment variable to the
name of the compiler that was used to compile the kernel.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>You should compile the NVIDIA kernel module with the same
compiler version that was used to compile your kernel. Some Linux
kernel data structures are dependent on the version of gcc used to
compile it; for example, in <code class=
"filename">include/linux/spinlock.h</code>:</p>
<pre class="programlisting">
        ...
        * Most gcc versions have a nasty bug with empty initializers.
        */
        #if (__GNUC__ &gt; 2)
          typedef struct { } rwlock_t;
          #define RW_LOCK_UNLOCKED (rwlock_t) { }
        #else
          typedef struct { int gcc_is_buggy; } rwlock_t;
          #define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
        #endif
</pre>
<p>If the kernel is compiled with gcc 2.x, but gcc 3.x is used when
the kernel interface is compiled (or vice versa), the size of
<span class="structname">rwlock_t</span> will vary, and things like
ioremap will fail. To check what version of gcc was used to compile
your kernel, you can examine the output of:</p>
<pre class="screen">
    % cat /proc/version
</pre>
<p>To check what version of gcc is currently in your <code class=
"envar">$PATH</code>, you can examine the output of:</p>
<pre class="screen">
    % gcc -v
</pre>
<p></p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="IRecentlyUpdatedf77c" id=
"IRecentlyUpdatedf77c"></a></td>
<td align="left" valign="top">
<p><b>I recently updated various libraries on my system using my
Linux distributor's update utility, and the NVIDIA graphics driver
no longer works.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Conflicting libraries may have been installed by your
distribution's update utility; see <a href=
"installedcomponents.html" title=
"Chapter&nbsp;5.&nbsp;Listing of Installed Components">Chapter&nbsp;5,
<i>Listing of Installed Components</i></a> for details on how to
diagnose this.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="IHaveRebuiltThed1d8b" id=
"IHaveRebuiltThed1d8b"></a></td>
<td align="left" valign="top">
<p><b>I have rebuilt the NVIDIA kernel module, but when I try to
insert it, I get a message telling me I have unresolved
symbols.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Unresolved symbols are most often caused by a mismatch between
your kernel sources and your running kernel. They must match for
the NVIDIA kernel module to build correctly. Make sure your kernel
sources are installed and configured to match your running
kernel.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="OpenglApplicati00a55" id=
"OpenglApplicati00a55"></a></td>
<td align="left" valign="top">
<p><b>OpenGL applications leak significant amounts of memory on my
system!</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>If your kernel is making use of the -rmap VM, the system may be
leaking memory due to a memory management optimization introduced
in -rmap14a. The -rmap VM has been adopted by several popular
distributions, the memory leak is known to be present in some of
the distribution kernels; it has been fixed in -rmap15e.</p>
<p>If you suspect that your system is affected, try upgrading your
kernel or contact your distribution's vendor for assistance.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="SomeOpenglApplia8550" id=
"SomeOpenglApplia8550"></a></td>
<td align="left" valign="top">
<p><b>Some OpenGL applications (like Quake3 Arena) crash when I
start them on Red Hat Linux 9.0.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Some versions of the glibc package shipped by Red Hat that
support TLS do not properly handle using <code class=
"function">dlopen()</code> to access shared libraries which use
some TLS models. This problem is exhibited, for example, when
Quake3 Area <code class="function">dlopen()</code>'s NVIDIA's libGL
library. Please obtain at least glibc-2.3.2-11.9 which is available
as an update from Red Hat.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="WhenChangingSetbd041" id=
"WhenChangingSetbd041"></a></td>
<td align="left" valign="top">
<p><b>When changing settings in games like Quake 3 Arena, or
Wolfenstein Enemy Territory, the game crashes and I see this
error:</b></p>
<pre class="screen">
...loading libGL.so.1: QGL_Init: dlopen libGL.so.1 failed: 
/usr/lib/tls/libGL.so.1: shared object cannot be dlopen()ed:
static TLS memory too small
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>These games close and reopen the NVIDIA OpenGL driver (via
<code class="function">dlopen()</code>/<code class=
"function">dlclose()</code>) when settings are changed. On some
versions of glibc (such as the one shipped with Red Hat Linux 9),
there is a bug that leaks static TLS entries. This glibc bug causes
subsequent re-loadings of the OpenGL driver to fail. This is fixed
in more recent versions of glibc; see Red Hat bug #89692: <a href=
"https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=89692"
target="_top">https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=89692</a></p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="WhenITryToInsta37aa1" id=
"WhenITryToInsta37aa1"></a></td>
<td align="left" valign="top">
<p><b>When I try to install the driver, the installer claims that X
is running, even though I have exited X.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The installer detects the presence of an X server by checking
for the X server's lock files: <code class=
"filename">/tmp/.Xn-lock</code>, where 'n' is the number of the X
Display (the installer checks for X Displays 0-7). If you have
exited X, but one of these files has been left behind, then you
will need to manually delete the lock file. <span class=
"emphasis"><em>Do not</em></span> remove this file if X is still
running!</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="optimusacpivbios" id=
"optimusacpivbios"></a></td>
<td align="left" valign="top">
<p><b>Why does the VBIOS fail to load on my Optimus system?</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>On some notebooks with Optimus graphics, the NVIDIA driver may
not be able to retrieve the Video BIOS due to interactions between
the System BIOS and the Linux kernel's ACPI subsystem. On affected
notebooks, applications that require the GPU will fail, and
messages like the following may appear in the system log:</p>
<pre class="screen">
NVRM: failed to copy vbios to system memory.
NVRM: RmInitAdapter failed! (0x30:0xffffffff:858)
NVRM: rm_init_adapter(0) failed
</pre>
<p>Such problems are typically beyond the control of the NVIDIA
driver, which relies on proper cooperation of ACPI and the System
BIOS to retrieve important information about the GPU, including the
Video BIOS.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="libglvnd" id=
"libglvnd"></a></td>
<td align="left" valign="top">
<p><b>OpenGL applications do not work with driver version 364.xx
and later, which worked with previous driver versions</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Release 361 of the NVIDIA Linux driver introduced OpenGL
libraries built upon the libglvnd (GL Vendor Neutral Dispatch)
architecture, to allow for the coexistence of multiple OpenGL
implementations on the same system. The .run installer package
includes both GLVND and non-GLVND GLX client libraries, and
beginning with release 364, the GLVND libraries are installed by
default.</p>
<p>By design, GLVND conforms with the Linux OpenGL ABI version 1.0
as defined at <a href="https://www.opengl.org/registry/ABI/"
target="_top">https://www.opengl.org/registry/ABI/</a> and exposes
all required entry points; however, applications which depend upon
specifics of the NVIDIA OpenGL implementation which fall outside of
the OpenGL ABI may be incompatible with a GLVND-based OpenGL
implementation.</p>
<p>If you encounter an application which is incompatible with
GLVND, you may install a legacy, non-GLVND GLX client library by
adding the <code class="option">--no-glvnd-glx-client</code> to the
<span><strong class="command">nvidia-installer</strong></span>
command line at installation time. Please contact the application
vendor to inform them that their application will need to be
updated to ensure compatibility with GLVND.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="VulkanApplicatiad1f6" id=
"VulkanApplicatiad1f6"></a></td>
<td align="left" valign="top">
<p><b>Vulkan applications crash when entering or leaving
fullscreen, or when resized</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Resizing a Vulkan application generates events that trigger an
out-of-date swapchain.</p>
<p>Fullscreen Vulkan applications are optimized for performance by
the driver. This optimization also generates events that trigger an
out-of-date swapchain upon entering or leaving fullscreen mode.
This is commonly encountered when using the alt-tab key
combination, for example.</p>
<p>Applications that do not properly respond to the
VK_ERROR_OUT_OF_DATE_KHR return code may not function properly when
these events occur. The expected behavior is documented in section
30.8 of the Vulkan specification.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="TheVulkanIcdHas2343d" id=
"TheVulkanIcdHas2343d"></a></td>
<td align="left" valign="top">
<p><b>The Vulkan ICD has dependencies on X libraries</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>By default, nvidia-installer creates a
/etc/vulkan/icd.d/nvidia_icd.json that points to
libGLX_nvidia.so.0. This DSO has dependencies on X libraries.</p>
<p>It is possible to avoid those dependencies by hand editing that
file to point to libEGL_nvidia.so.0 instead. However in that case,
an application will only be able to create non-X swapchains if it
wants to present frames.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="OpenglApplicati0fbea" id=
"OpenglApplicati0fbea"></a></td>
<td align="left" valign="top">
<p><b>OpenGL applications are running slowly</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The application is probably using a different library that still
remains on your system, rather than the NVIDIA supplied OpenGL
library. See <a href="installedcomponents.html" title=
"Chapter&nbsp;5.&nbsp;Listing of Installed Components">Chapter&nbsp;5,
<i>Listing of Installed Components</i></a> for details.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="XTakesALongTime97f5c" id=
"XTakesALongTime97f5c"></a></td>
<td align="left" valign="top">
<p><b>X takes a long time to start (possibly several
minutes).</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Most of the X startup delay problems we have found are caused by
incorrect data in video BIOSes about what display devices are
possibly connected or what i2c port should be used for detection.
You can work around these problems with the X config option
<a href="xconfigoptions.html#IgnoreDisplayDevices">IgnoreDisplayDevices</a>.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="FontsAreIncorre3aeb6" id=
"FontsAreIncorre3aeb6"></a></td>
<td align="left" valign="top">
<p><b>Fonts are incorrectly sized after installing the NVIDIA
driver.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Incorrectly sized fonts are generally caused by incorrect DPI
(Dots Per Inch) information. You can check what X thinks the
physical size of your monitor is, by running:</p>
<pre class="screen">
 % xdpyinfo | grep dimensions
</pre>
<p>This will report the size in pixels, and in millimeters.</p>
<p>If these numbers are wrong, you can correct them by modifying
the X server's DPI setting. See <a href="dpi.html" title=
"Appendix&nbsp;E.&nbsp;Dots Per Inch">Appendix&nbsp;E, <i>Dots Per
Inch</i></a> for details.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="OpenglApplicati611c0" id=
"OpenglApplicati611c0"></a></td>
<td align="left" valign="top">
<p><b>OpenGL applications don't work, and my X log file contains
the error:</b></p>
<pre class="screen">
(EE) NVIDIA(0): Unable to map device node /dev/zero with read and write
(EE) NVIDIA(0):     privileges.  The GLX extension will be disabled on this 
(EE) NVIDIA(0):     X screen.  Please see the COMMON PROBLEMS section in the 
(EE) NVIDIA(0):     README for more information.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The NVIDIA OpenGL driver must be able to map anonymous memory
with read and write execute privileges in order to function
correctly. The driver needs this ability to allocate aligned
memory, which is used for certain optimizations. Currently, GLX
cannot run without these optimizations.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="XDoesntStartAndd2265" id=
"XDoesntStartAndd2265"></a></td>
<td align="left" valign="top">
<p><b>X doesn't start, and my log file contains a message like the
following:</b></p>
<pre class="screen">
(EE) NVIDIA(0): Failed to allocate primary buffer: failed to set CPU access
(EE) NVIDIA(0):     for surface.  Please see Chapter 8: Common Problems in
(EE) NVIDIA(0):     the README for troubleshooting suggestions.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>The NVIDIA X driver needs to be able to access the buffers it
allocates from the CPU, but wasn't able to set up this access. This
commonly fails if you're using a large virtual desktop size.
Although your GPU may have enough onboard video memory for the
buffer, the amount of usable memory may be limited if the <a href=
"xconfigoptions.html#IndirectMemoryAccess">IndirectMemoryAccess</a>
option is disabled, or if not enough address space was reserved for
indirect memory access (this commonly occurs on 32-bit systems). If
you're seeing this problem and are using a 32-bit operating system,
it may be resolved by switching to a 64-bit operating system.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="MyLogFileContai3b468" id=
"MyLogFileContai3b468"></a></td>
<td align="left" valign="top">
<p><b>My log file contains a message like the following:</b></p>
<pre class="screen">
(WW) NVIDIA(GPU-0): Unable to enter interactive mode, because non-interactive
(WW) NVIDIA(GPU-0): mode has been previously requested.  The most common
(WW) NVIDIA(GPU-0): cause is that a GPU compute application is currently
(WW) NVIDIA(GPU-0): running. Please see the README for details.
</pre></td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>This indicates that the X driver was not able to put the GPU in
interactive mode, because another program has requested
non-interactive mode. The GPU watchdog will not run, and
long-running GPU compute programs may cause the X server and OpenGL
programs to hang. If you intend to run long-running GPU compute
programs, set the <a href=
"xconfigoptions.html#Interactive">Interactive</a> option to "off"
to disable interactive mode.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="blankloginordesktopscreen"
id="blankloginordesktopscreen"></a></td>
<td align="left" valign="top">
<p><b>I see a blank screen or an error message instead of a login
screen or desktop session</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Installation or configuration problems may prevent the X server,
a login/session manager, or a desktop environment from starting
correctly. If your system is failing to display a login screen, or
failing to start a desktop session, try the following
troubleshooting steps:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Make sure that you are using the correct X driver for your
configuration. Recent X servers will be able to automatically
select the correct X driver in many cases, but if your X server
does not automatically select the correct driver, you may need to
manually configure it. For example, systems with multiple GPUs will
likely require a PCI BusID in the "Device" section of the X
configuration file, in order to specify which GPU is to be
used.</p>
<p>If you are planning to use NVIDIA GPUs for graphics, you can run
the <code class="filename">nvidia-xconfig</code> utility to
automatically generate a simple X configuration file that uses the
NVIDIA X driver. If you are not using NVIDIA GPUs for graphics
(e.g. on a server system where displays are driven by an onboard
graphics controller, and NVIDIA GPUs are used for non-graphical
computational purposes only), <span class="emphasis"><em>do
not</em></span> run <code class=
"filename">nvidia-xconfig</code>.</p>
</li>
<li>
<p>Some recent desktop environments (e.g. GNOME 3, Unity), window
managers (e.g. mutter, compiz), and session managers (e.g. gdm3)
require a working OpenGL driver in order to function correctly. In
addition to making sure that the X server is configured to use the
correct X driver for your configuration, please ensure that you are
using the correct OpenGL driver to match your X driver.</p>
<p>If you are not using NVIDIA GPUs for graphical purposes, try
installing the driver with the <code class=
"option">--no-opengl-files</code> option on the installer's command
line to prevent the installer from overwriting any existing OpenGL
installation, which may be needed for proper OpenGL functionality
on whichever graphics controller is to be used on the system.</p>
</li>
<li>
<p>Some desktop environments (e.g. GNOME 3, Unity) and window
managers (e.g. mutter) do not properly support multiple X screens,
leaving you with a blank screen displaying only a cursor on the
non-primary X screen. If you encounter such a problem, try
configuring X with a single X screen, or switching to a different
desktop environment or window manager.</p>
</li>
<li>
<p>Desktop environments, window managers, and session managers that
require OpenGL typically also require the X Composite extension. If
you have disabled the Composite extension, either explicitly, or by
enabling a feature that is not compatible with it, try re-enabling
the extension (possibly by disabling any incompatible features). If
you are unable to satisfy your desired use case with the Composite
extension enabled, try switching to a different desktop
environment, window manager, and/or session manager that does not
require Composite.</p>
</li>
<li>
<p>Check the X log (e.g. <code class=
"filename">/var/log/Xorg.0.log</code>) for additional errors not
covered above. Warning or error messages in the log may highlight a
specific problem that can be fixed with a configuration
adjustment.</p>
</li>
</ul>
</div>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="settingsoverridden" id=
"settingsoverridden"></a></td>
<td align="left" valign="top">
<p><b>The display settings I configured in</b> <span><strong class=
"command">nvidia-settings</strong></span> <b>do not
persist.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Depending on the type of configuration being performed,
<span><strong class="command">nvidia-settings</strong></span> will
save configuration changes to one of several places:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Static X server configuration changes are saved to the X
configuration file (e.g. <code class=
"filename">/etc/X11/xorg.conf</code>). These settings are loaded by
the X server when it starts, and cannot be changed without
restarting X.</p>
</li>
<li>
<p>Dynamic, user-specific configuration changes are saved to
<code class="filename">~/.nvidia-settings-rc</code>.
<span><strong class="command">nvidia-settings</strong></span> loads
this file and applies any settings contained within. These settings
can be changed without restarting the X server, and can typically
be configured through the <span><strong class=
"command">nvidia-settings</strong></span> command line interface as
well, or via the RandR and/or NV-CONTROL APIs.</p>
</li>
<li>
<p>User-specific application profiles edited in
<span><strong class="command">nvidia-settings</strong></span> are
saved to <code class=
"filename">~/.nv/nvidia-application-profiles-rc</code>. This file
is loaded along with the other files in the application profile
search path by the NVIDIA OpenGL driver when it is loaded by an
OpenGL application. The driver evaluates the application profiles
to determine which settings apply to the application. Changes made
to this configuration file while an application is already running
will be applied when the application is next restarted. See
<a href="profiles.html" title=
"Appendix&nbsp;J.&nbsp;Application Profiles">Appendix&nbsp;J,
<i>Application Profiles</i></a> for more information about
application profiles.</p>
</li>
</ul>
</div>
<p></p>
<p>Settings in <code class="filename">~/.nvidia-settings-rc</code>
only take effect when processed by <span><strong class=
"command">nvidia-settings</strong></span>, and therefore will not
be loaded by default when starting a new X session. To load
settings from <code class="filename">~/.nvidia-settings-rc</code>
without actually opening the <span><strong class=
"command">nvidia-settings</strong></span> control panel, use the
<code class="option">--load-config-only</code> option on the
<span><strong class="command">nvidia-settings</strong></span>
command line. <span><strong class="command">nvidia-settings
--load-config-only</strong></span> can be added to your login
scripts to ensure that your settings are restored when starting a
new desktop session.</p>
<p>Even after <span><strong class=
"command">nvidia-settings</strong></span> has been run to restore
any settings set in <code class=
"filename">~/.nvidia-settings-rc</code>, some desktop environments
(e.g. GNOME, KDE, Unity, Xfce) include advanced display
configuration tools that may override settings that were configured
via <span><strong class="command">nvidia-settings</strong></span>.
These tools may attempt to restore their own display configuration
when starting a new desktop session, or when events such as display
hotplugs, resolution changes, or VT switches occur.</p>
<p>These tools may also override some types of settings that are
stored in and loaded from the X configuration file, such as any
MetaMode strings that may specify the initial display layouts of
NVIDIA X screens. Although the configuration of the initial
MetaMode is static, it is possible to dynamically switch to a
different MetaMode after X has started. This can have the effect of
making the set of active displays, their resolutions, and layout
positions as configured in the <span><strong class=
"command">nvidia-settings</strong></span> control panel appear to
be ineffective, when in reality, this configuration was active when
starting X and then overridden later by the desktop
environment.</p>
<p>If you believe that your desktop environment is overriding
settings that you configured in <span><strong class=
"command">nvidia-settings</strong></span>, some possible solutions
are:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Use the display configuration tools provided as part of the
desktop environment (e.g. <span><strong class=
"command">gnome-control-center display</strong></span>,
<span><strong class=
"command">gnome-display-properties</strong></span>,
<span><strong class="command">kcmshell4 display</strong></span>,
<span><strong class="command">unity-control-center
display</strong></span>, <span><strong class=
"command">xfce4-display-settings</strong></span>) to configure your
displays, instead of the <span><strong class=
"command">nvidia-settings</strong></span> control panel or the
<span><strong class="command">xrandr</strong></span> command line
tool. Setting your desired configuration using the desktop
environment's tools should cause that configuration to be the one
which is restored when the desktop environment overrides the
existing configuration from <span><strong class=
"command">nvidia-settings</strong></span>. If you are not sure
which tools your desktop environment uses for display
configuration, you may be able to discover them by navigating any
available system menus for "Display" or "Monitor" control
panels.</p>
</li>
<li>
<p>For settings loaded from <code class=
"filename">~/.nvidia-settings-rc</code> which have been overridden,
run <span><strong class="command">nvidia-settings
--load-config-only</strong></span> as needed to reload the settings
from <code class="filename">~/.nvidia-settings-rc</code>.</p>
</li>
<li>
<p>Disable any features your desktop environment may have for
managing displays. (Note: this may disable other features, such as
display configuration tools that are integrated into the
desktop.)</p>
</li>
<li>
<p>Use a different desktop environment which does not actively
manage display configuration, or do not use any desktop environment
at all.</p>
</li>
</ul>
</div>
<p></p>
<p>Some systems may have multiple different display configuration
utilities, each with its own way of managing settings. In addition
to conflicting with <span><strong class=
"command">nvidia-settings</strong></span>, such tools may conflict
with each other. If your system uses more than one tool for
configuring displays, make sure to check the configuration of each
tool when attempting to determine the source of any unexpected
display settings.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="MyDisplaysAreRe45784" id=
"MyDisplaysAreRe45784"></a></td>
<td align="left" valign="top">
<p><b>My displays are reconfigured in unexpected ways when I plug
in or unplug a display, or power a display off and then power it on
again.</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>This is a special case of the issues described in <a href=
"commonproblems.html#settingsoverridden">&ldquo;The display
settings I configured in nvidia-settings do not
persist.&rdquo;</a>. Some desktop environments which include
advanced display configuration tools will automatically configure
the display layout in response to detected configuration changes.
For example, when a new display is plugged in, such a desktop
environment may attempt to restore the previous layout that was
used with the set of currently connected displays, or may configure
a default layout based upon its own policy.</p>
<p>On X servers with support for RandR 1.2 or later, the NVIDIA X
driver reports display hotplug events to the X server via RandR
when displays are connected and disconnected. These hotplug events
may trigger a desktop environment with advanced display management
capabilities to change the display configuration. These changes may
affect settings such as the set of active displays, their
resolutions and positioning relative to each other, per-display
color correction settings, and more.</p>
<p>In addition to hotplug events generated by connecting or
disconnecting displays, DisplayPort displays will generate a hot
unplug event when they power off, and a hotplug event when they
power on, even if no physical plugging in or unplugging takes
place. This can lead to hotplug-induced display configuration
changes without any actual hotplug action taking place.</p>
<p>Upon suspend, the NVIDIA X driver will incur an implicit VT
switch. If a DisplayPort monitor is powered off when a VT switch or
modeset occurs, RandR will forget the configuration of that
monitor. As a result, the display will be left without a mode once
powered back on. In the absence of an RandR-aware window manager,
bringing back the display will require manually configuring it with
RandR.</p>
<p>If display hotplug events are resulting in undesired
configuration changes, try the solutions and workarounds listed in
<a href="commonproblems.html#settingsoverridden">&ldquo;The display
settings I configured in nvidia-settings do not
persist.&rdquo;</a>. Another workaround would be to disable the
NVIDIA X driver's reporting of hotplug events with the <a href=
"xconfigoptions.html#UseHotplugEvents">UseHotplugEvents</a> X
configuration option. Note that this option will have no effect on
DisplayPort devices, which must report all hotplug events to ensure
proper functionality.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="qandaset">
<table border="0" summary="Q and A Set">
<col align="left" width="1%">
<tbody>
<tr class="qandadiv">
<td align="left" valign="top" colspan="2"><a name="nouveau" id=
"nouveau"></a>
<h3 class="title">8.1. Interaction with the Nouveau Driver</h3>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="WhatIsNouveauAnb4938" id=
"WhatIsNouveauAnb4938"></a></td>
<td align="left" valign="top">
<p><b>What is Nouveau, and why do I need to disable it?</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Nouveau is a display driver for NVIDIA GPUs, developed as an
open-source project through reverse-engineering of the NVIDIA
driver. It ships with many current Linux distributions as the
default display driver for NVIDIA hardware. It is not developed or
supported by NVIDIA, and is not related to the NVIDIA driver, other
than the fact that both Nouveau and the NVIDIA driver are capable
of driving NVIDIA GPUs. Only one driver can control a GPU at a
time, so if a GPU is being driven by the Nouveau driver, Nouveau
must be disabled before installing the NVIDIA driver.</p>
<p>Nouveau performs modesets in the kernel. This can make disabling
Nouveau difficult, as the kernel modeset is used to display a
framebuffer console, which means that Nouveau will be in use even
if X is not running. As long as Nouveau is in use, its kernel
module cannot be unloaded, which will prevent the NVIDIA kernel
module from loading. It is therefore important to make sure that
Nouveau's kernel modesetting is disabled before installing the
NVIDIA driver.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="HowDoIPreventNof36ca" id=
"HowDoIPreventNof36ca"></a></td>
<td align="left" valign="top">
<p><b>How do I prevent Nouveau from loading and performing a kernel
modeset?</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>A simple way to prevent Nouveau from loading and performing a
kernel modeset is to add configuration directives for the module
loader to a file in one of the system's module loader configuration
directories: for example, <code class=
"filename">/etc/modprobe.d/</code> or <code class=
"filename">/usr/local/modprobe.d</code>. These configuration
directives can technically be added to any file in these
directories, but many of the existing files in these directories
are provided and maintained by your distributor, which may from
time to time provide updated configuration files which could
conflict with your changes. Therefore, it is recommended to create
a new file, for example, <code class=
"filename">/etc/modprobe.d/disable-nouveau.conf</code>, rather than
editing one of the existing files, such as the popular <code class=
"filename">/etc/modprobe.d/blacklist.conf</code>. Note that some
module loaders will only look for configuration directives in files
whose names end with <code class="filename">.conf</code>, so if you
are creating a new file, make sure its name ends with <code class=
"filename">.conf</code>.</p>
<p>Whether you choose to create a new file or edit an existing one,
the following two lines will need to be added:</p>
<pre class="screen">
blacklist nouveau
options nouveau modeset=0
</pre>
<p>The first line will prevent Nouveau's kernel module from loading
automatically at boot. It will not prevent manual loading of the
module, and it will not prevent the X server from loading the
kernel module; see "How do I prevent the X server from loading
Nouveau?" below. The second line will prevent Nouveau from doing a
kernel modeset. Without the kernel modeset, it is possible to
unload Nouveau's kernel module, in the event that it is
accidentally or intentionally loaded.</p>
<p>You will need to reboot your system after adding these
configuration directives in order for them to take effect.</p>
<p>If nvidia-installer detects Nouveau is in use by the system, it
will offer to create such a modprobe configuration file to disable
Nouveau.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="WhatIfMyInitialea2f5" id=
"WhatIfMyInitialea2f5"></a></td>
<td align="left" valign="top">
<p><b>What if my initial ramdisk image contains Nouveau?</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Some distributions include Nouveau in an initial ramdisk image
(henceforth referred to as "initrd" in this document, and sometimes
also known as "initramfs"), so that Nouveau's kernel modeset can
take place as early as possible in the boot process. This poses an
additional challenge to those who wish to prevent the modeset from
occurring, as the modeset will occur while the system is executing
within the initrd, before any directives in the module loader
configuration files are processed.</p>
<p>If you have an initrd which loads the Nouveau driver, you will
additionally need to ensure that Nouveau is disabled in the initrd.
In most cases, rebuilding the initrd will pick up the module loader
configuration files, including any which may disable Nouveau.
Please consult your distribution's documentation on how to rebuild
the initrd, as different distributions have different tools for
building and modifying the initrd. Some popular distro initrd tools
include: <code class="filename">dracut</code>, <code class=
"filename">mkinitrd</code>, and <code class=
"filename">update-initramfs</code>.</p>
<p>Some initrds understand the <code class=
"option">rdblacklist</code> parameter. On these initrds, as an
alternative to rebuilding the initrd, you can add the option
<code class="option">rdblacklist=nouveau</code> to your kernel's
boot parameters. On initrds that do not support <code class=
"option">rdblacklist</code>, it is possible to prevent Nouveau from
performing a kernel modeset by adding the option <code class=
"option">nouveau.modeset=0</code> to your kernel's boot parameters.
Note that <code class="option">nouveau.modeset=0</code> will
prevent a kernel modeset, but it may not prevent Nouveau from being
loaded, so rebuilding the initrd or using <code class=
"option">rdblacklist</code> may be more effective than using
<code class="option">nouveau.modeset=0</code>.</p>
<p>Any changes to the default kernel boot parameters should be made
in your bootloader's configuration file(s), so that the options get
passed to your kernel every time the system is booted. Please
consult your distribution's documentation on how to configure your
bootloader, as different distributions use different bootloaders
and configuration files.</p>
</td>
</tr>
<tr class="question">
<td align="left" valign="top"><a name="HowDoIPreventTh1f6a6" id=
"HowDoIPreventTh1f6a6"></a></td>
<td align="left" valign="top">
<p><b>How do I prevent the X server from loading Nouveau?</b></p>
</td>
</tr>
<tr class="answer">
<td align="left" valign="top"></td>
<td align="left" valign="top">
<p>Blacklisting Nouveau will only prevent it from being loaded
automatically at boot. If an X server is started as part of the
normal boot process, and that X server uses the Nouveau X driver,
then the Nouveau kernel module will still be loaded. Should this
happen, you will be able to unload Nouveau with `modprobe -r
nouveau` after stopping the X server, as long as you have taken
care to prevent it from doing a kernel modeset; however, it is
probably better to just make sure that X does not load Nouveau in
the first place.</p>
<p>If your system is not configured to start an X server at boot,
then you can simply run the NVIDIA driver installer after
rebooting. Otherwise, the easiest thing to do is to edit your X
server's configuration file so that your X server uses a
non-modesetting driver that is compatible with your card, such as
the <code class="systemitem">vesa</code> driver. You can then stop
X and install the driver as usual. Please consult your X server's
documentation to determine where your X server configuration file
is located.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href=
"faq.html">Prev</a>&nbsp;</td>
<td width="20%" align="center"><a accesskey="u" href=
"installationandconfiguration.html">Up</a></td>
<td width="40%" align="right">&nbsp;<a accesskey="n" href=
"knownissues.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">
Chapter&nbsp;7.&nbsp;Frequently Asked Questions&nbsp;</td>
<td width="20%" align="center"><a accesskey="h" href=
"index.html">Home</a></td>
<td width="40%" align="right" valign="top">
&nbsp;Chapter&nbsp;9.&nbsp;Known Issues</td>
</tr>
</table>
</div>
</body>
</html>