<!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 19. Using the NVIDIA Driver with Optimus Laptops</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 I. Installation and Configuration Instructions"> <link rel="prev" href="configlaptop.html" title= "Chapter 18. Configuring a Notebook"> <link rel="next" href="programmingmodes.html" title= "Chapter 20. Programming Modes"> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Chapter 19. Using the NVIDIA Driver with Optimus Laptops</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href= "configlaptop.html">Prev</a> </td> <th width="60%" align="center">Part I. Installation and Configuration Instructions</th> <td width="20%" align="right"> <a accesskey="n" href= "programmingmodes.html">Next</a></td> </tr> </table> <hr></div> <div class="chapter" lang="en"> <div class="titlepage"> <div> <div> <h2 class="title"><a name="optimus" id= "optimus"></a>Chapter 19. Using the NVIDIA Driver with Optimus Laptops</h2> </div> </div> </div> <p>Some laptops with NVIDIA GPUs make use of Optimus technology to allow switching between an integrated GPU and a discrete NVIDIA GPU. The NVIDIA Linux driver can be used on these systems, though functionality may be limited.</p> <h3>Installing the NVIDIA Driver on an Optimus Laptop</h3> <p>The driver may be installed normally on Optimus systems, but the NVIDIA X driver and the NVIDIA OpenGL driver may not be able to display to the laptop's internal display panel unless a means to connect the panel to the NVIDIA GPU (for example, a hardware multiplexer, or "mux", often controllable by a BIOS setting) is available. On systems without a mux, the NVIDIA GPU can still be useful for offscreen rendering, running CUDA applications, and other uses that don't require driving a display.</p> <p>On muxless Optimus laptops, or on laptops where a mux is present, but not set to drive the internal display from the NVIDIA GPU, the internal display is driven by the integrated GPU. On these systems, it's important that the X server not be configured to use the NVIDIA X driver after the driver is installed. Instead, the correct driver for the integrated GPU should be used. Often, this can be determined automatically by the X server, and no explicit configuration is required, especially on newer X server versions. If your X server autoselects the NVIDIA X driver after installation, you may need to explicitly select the driver for your integrated GPU.</p> <p>An additional caveat is that existing OpenGL libraries may be overwritten by the install process. If you want to prevent this from happening, e.g., if you intend to use OpenGL on the integrated GPU, you may prevent the installer from installing the OpenGL and GLX libraries by passing the option <code class= "option">--no-opengl-files</code> to the <code class= "filename">.run</code> file, or directly to nvidia-installer, e.g.:</p> <pre class="screen"> # NVIDIA-Linux-x86_64-304.125.run --no-opengl-files </pre> <p></p> <p>See <a href="installdriver.html" title= "Chapter 4. Installing the NVIDIA Driver">Chapter 4, <i>Installing the NVIDIA Driver</i></a> for details on the driver install process.</p> <h3>Loading the Kernel Module and Creating the Device Files without X</h3> <p>In order for programs that use the NVIDIA driver to work correctly (e.g.: X, OpenGL, and CUDA applications), the kernel module must be loaded, and the device files <code class= "filename">/dev/nvidiactl</code> and <code class= "filename">/dev/nvidia[0-9]+</code> must exist with read and write permissions for any users of such applications. When running X with the NVIDIA X driver, the kernel module is automatically loaded and the device files are automatically created when X starts; however, if X is not in use, for example, on an Optimus laptop where the NVIDIA GPU is used to run CUDA applications only, then this must be done separately.</p> <p>The NVIDIA driver can load the kernel module and populate the device files automatically, if an application that uses the driver is run as a super user (usually root). Such applications include an X server configured to use the NVIDIA X driver, CUDA applications, and some of the utilities that are distributed with the NVIDIA driver.</p> <p>For example, running:</p> <pre class="screen"> # nvidia-xconfig --query-gpu-info </pre> <p>as root will cause the kernel module to be loaded, and the device files to be created, if this hasn't already been done. Note: the <code class="option">--query-gpu-info</code> option to <span><strong class="command">nvidia-xconfig</strong></span> is important here: without it, <span><strong class= "command">nvidia-xconfig</strong></span> will configure the X server to use the NVIDIA X driver, which may prevent X from starting later.</p> <p>See <a href="faq.html#devicenodes">“How and when are the the NVIDIA device files created?”</a> for more information.</p> <p>Note that on some Optimus notebooks the driver may fail to initialize the GPU due to system-specific ACPI interaction problems: see <a href= "commonproblems.html#optimusacpivbios">“Why does the VBIOS fail to load on my Optimus system?”</a> for more information.</p> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href= "configlaptop.html">Prev</a> </td> <td width="20%" align="center"><a accesskey="u" href= "installationandconfiguration.html">Up</a></td> <td width="40%" align="right"> <a accesskey="n" href= "programmingmodes.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top"> Chapter 18. Configuring a Notebook </td> <td width="20%" align="center"><a accesskey="h" href= "index.html">Home</a></td> <td width="40%" align="right" valign="top"> Chapter 20. Programming Modes</td> </tr> </table> </div> </body> </html>