/[gentoo]/xml/htdocs/doc/en/nvidia-guide.xml
Gentoo

Diff of /xml/htdocs/doc/en/nvidia-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.30 Revision 1.31
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/nvidia-guide.xml,v 1.30 2006/07/26 09:50:06 rane Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/nvidia-guide.xml,v 1.31 2006/09/02 10:04:16 nightmorph Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/nvidia-guide.xml"> 5<guide link="/doc/en/nvidia-guide.xml">
6<title>Gentoo Linux nVidia Guide</title> 6<title>Gentoo Linux nVidia Guide</title>
7 7
12 <mail link="curtis119@gentoo.org">M Curtis Napier</mail> 12 <mail link="curtis119@gentoo.org">M Curtis Napier</mail>
13</author> 13</author>
14<author title="Editor"> 14<author title="Editor">
15 <mail link="nightmorph@gentoo.org">Joshua Saddler</mail> 15 <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
16</author> 16</author>
17<author title="Editor">
18 <mail link="wolf31o2@gentoo.org">Chris Gianelloni</mail>
19</author>
17 20
18<abstract> 21<abstract>
19Many Gentooists have an nVidia chipset on their system. nVidia provides specific 22Many Gentooists have an nVidia chipset on their system. nVidia provides specific
20Linux drivers to boost the performance of your card. This guide informs you how 23Linux drivers to boost the performance of your card. This guide informs you how
21to install and configure these drivers. 24to install and configure these drivers.
23 26
24<!-- The content of this document is licensed under the CC-BY-SA license --> 27<!-- The content of this document is licensed under the CC-BY-SA license -->
25<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 28<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
26<license/> 29<license/>
27 30
28<version>1.26</version> 31<version>1.27</version>
29<date>2006-07-25</date> 32<date>2006-09-01</date>
30 33
31<chapter> 34<chapter>
32<title>Introduction</title> 35<title>Introduction</title>
33<section> 36<section>
34<body> 37<body>
35 38
36<p> 39<p>
37nVidia release their own Linux drivers which provide good performance and full 40nVidia release their own Linux drivers which provide good performance and full
383D acceleration. The driver releases are split up into two parts: 413D acceleration. There are two sets of drivers in portage. The first set is an
39<c>nvidia-kernel</c> and <c>nvidia-glx</c>. 42older set and split into two parts: <c>nvidia-kernel</c> and <c>nvidia-glx</c>.
43The second set is newer, and is split into <c>nvidia-drivers</c> and
44<c>nvidia-legacy-drivers</c>. If you are installing for the first time, you
45should use the newer set.
40</p> 46</p>
41 47
42<p> 48<p>
43<c>nvidia-kernel</c> is a kernel driver which handles the low-level 49<c>nvidia-kernel</c> is a kernel driver which handles the low-level
44communication with your video hardware. This is simply a kernel module, named 50communication with your video hardware. This is simply a kernel module, named
45<c>nvidia</c>, which installs against your kernel sources and needs to be loaded 51<c>nvidia</c>, which installs against your kernel sources and needs to be
46whenever you want to use the nvidia drivers. 52loaded whenever you want to use the nvidia drivers.
47</p> 53</p>
48 54
49<p> 55<p>
50As well as the kernel driver, you need to install the X11 GLX layer 56As well as the kernel driver, you need to install the X11 GLX layer
51(<c>nvidia-glx</c>). This is used by X to render graphics, which internally 57(<c>nvidia-glx</c>). This is used by X to render graphics, which internally
52uses the <c>nvidia-kernel</c> kernel driver to interface with the hardware. 58uses the <c>nvidia-kernel</c> kernel driver to interface with the hardware.
53</p> 59</p>
54 60
61<p>
62The newer drivers have the functionality of both <c>nvidia-kernel</c> and
63<c>nvidia-glx</c> in a single unified ebuild, much like how nVidia themselves
64ship the drivers.
65</p>
66
67<note>
68Both <c>nvidia-kernel</c> and <c>nvidia-glx</c> are deprecated, and will be
69removed from the Portage tree in the future in favor of <c>nvidia-drivers</c>
70and <c>nvidia-legacy-drivers</c>. If you use <c>nvidia-kernel</c> and
71<c>nvidia-glx</c>, then you should migrate to the newer packages.
72</note>
73
55</body> 74</body>
56</section> 75</section>
57</chapter> 76</chapter>
58 77
59<chapter> 78<chapter>
63<body> 82<body>
64 83
65<p> 84<p>
66As mentioned above, the nVidia kernel driver installs and runs against your 85As mentioned above, the nVidia kernel driver installs and runs against your
67current kernel. It builds as a module, so it makes sense that your kernel must 86current kernel. It builds as a module, so it makes sense that your kernel must
68support the loading of kernel modules. If you used <c>genkernel</c> to configure 87support the loading of kernel modules. If you used <c>genkernel</c> to
69the kernel for you then you're all set. If not, double check your kernel 88configure the kernel for you then you're all set. If not, double check your
70configuration so that this support is enabled: 89kernel configuration so that this support is enabled:
71</p> 90</p>
72 91
73<pre caption="Enabling the Loading of Kernel Modules"> 92<pre caption="Enabling the Loading of Kernel Modules">
74Loadable module support ---&gt; 93Loadable module support ---&gt;
75 [*] Enable loadable module support 94 [*] Enable loadable module support
83Processor and Features ---&gt; 102Processor and Features ---&gt;
84 [*] MTRR (Memory Type Range Register) support 103 [*] MTRR (Memory Type Range Register) support
85</pre> 104</pre>
86 105
87<p> 106<p>
88Also, you will have to add <c>agpgart</c> support to your kernel, either 107Also, you can optionally enable <c>agpgart</c> support to your kernel, either
89compiled in or as a module: 108compiled in or as a module. If you do not use the in-kernel agpgart, then the
109drivers will use their own <c>agpgart</c> implementation, called <c>NvAGP</c>.
110On certain systems, this performs better than the in-kernel agpgart, and on
111others, it performs worse. You will need to evaluate this on your own system to
112get the best performance. If you are unsure what to do, use the in-kernel
113agpgart:
90</p> 114</p>
91 115
92<pre caption="Enabling agpgart"> 116<pre caption="Enabling agpgart">
93Device Drivers ---&gt; 117Device Drivers ---&gt;
94Character devices ---&gt; 118Character devices ---&gt;
124&lt;*&gt; VESA VGA graphics support 148&lt;*&gt; VESA VGA graphics support
125</pre> 149</pre>
126 150
127<p> 151<p>
128Then, under "VESA driver type" select either <c>vesafb</c> or 152Then, under "VESA driver type" select either <c>vesafb</c> or
129<c>vesafb-tng</c>: 153<c>vesafb-tng</c>. If you are using an AMD64 processor, you should select
154<c>vesafb</c> rather than <c>vesafb-tng</c>:
130</p> 155</p>
131 156
132<pre caption="Select framebuffer type"> 157<pre caption="Select framebuffer type">
133( ) vesafb 158(X) vesafb
134(X) vesafb-tng 159( ) vesafb-tng
135</pre> 160</pre>
136 161
137<p> 162<p>
138For more information, you can read up 163For more information, you can read up
139<path>/usr/src/linux/Documentation/fb/vesafb.txt</path> if you are using 164<path>/usr/src/linux/Documentation/fb/vesafb.txt</path> if you are using
146<section> 171<section>
147<title>Continuing with Kernel Configuration</title> 172<title>Continuing with Kernel Configuration</title>
148<body> 173<body>
149 174
150<p> 175<p>
151nVidia's modules and libraries are combined in two packages: <c>nvidia-glx</c> 176The <c>nvidia-kernel</c>, <c>nvidia-drivers</c>, and
152and <c>nvidia-kernel</c>. The former are the X11 GLX libraries while the latter 177<c>nvidia-legacy-drivers</c> ebuilds automatically discover your kernel version
153are the kernel modules.
154</p>
155
156<p>
157The nvidia-kernel ebuild auto discovers your kernel version based on the
158<path>/usr/src/linux</path> symlink. Please ensure that you have this symlink 178based on the <path>/usr/src/linux</path> symlink. Please ensure that you have
159pointing to the correct sources and that your kernel is correctly configured. 179this symlink pointing to the correct sources and that your kernel is correctly
160Please refer to the Configuring the Kernel section of the <uri 180configured. Please refer to the Configuring the Kernel section of the <uri
161link="/doc/en/handbook/">Installation Handbook</uri> for details on configuring 181link="/doc/en/handbook/">Installation Handbook</uri> for details on configuring
162your kernel. 182your kernel.
163</p> 183</p>
164 184
165<p> 185<p>
199<title>Optional: Check for Legacy Card Support</title> 219<title>Optional: Check for Legacy Card Support</title>
200<body> 220<body>
201 221
202<note> 222<note>
203Unfortunately, certain legacy video cards are not supported by the newer 223Unfortunately, certain legacy video cards are not supported by the newer
204versions of <c>nvidia-glx</c> and <c>nvidia-kernel</c>. nVidia provides a <uri 224versions of <c>nvidia-drivers</c>, <c>nvidia-glx</c> and <c>nvidia-kernel</c>.
205link="http://www.nvidia.com/object/IO_18897.html">list of supported cards</uri>. 225nVidia provides a <uri link="http://www.nvidia.com/object/IO_18897.html">list
206Please check the list before installing the drivers. 226of supported cards</uri>. Please check the list before installing the drivers.
207</note> 227</note>
208 228
209<p> 229<p>
210The following is a list of <b>unsupported</b> legacy video cards: 230The following is a list of <b>unsupported</b> legacy video cards:
211</p> 231</p>
229Quadro2 Pro 249Quadro2 Pro
230Quadro2 EX 250Quadro2 EX
231</pre> 251</pre>
232 252
233<p> 253<p>
234If you own one of these cards, you will have to mask the newer versions of the 254If your card is listed in the legacy list, then you will be required to install
235nVidia drivers, and install an older version: 255the <c>nvidia-legacy-drivers</c> package to get 3D support.
236</p>
237
238<pre caption="Masking newer drivers">
239# <i>echo "&gt;media-video/nvidia-kernel-1.0.6629-r5" &gt;&gt; /etc/portage/package.mask</i>
240# <i>echo "&gt;media-video/nvidia-glx-1.0.6629-r7" &gt;&gt; /etc/portage/package.mask</i>
241</pre> 256</p>
242 257
243</body> 258</body>
244</section> 259</section>
245<section> 260<section>
246<title>Installing the Appropriate Drivers</title> 261<title>Installing the Appropriate Drivers</title>
247<body> 262<body>
248 263
249<p> 264<p>
250Now it's time to install <c>nvidia-kernel</c> and <c>nvidia-glx</c>. Since 265Now it's time to install the drivers. The newer drivers are unified, so you
251<c>nvidia-glx</c> depends on <c>nvidia-kernel</c>, installing <c>nvidia-glx</c> 266will only need to install a single package. The older drivers are split, so it
252is sufficient. 267will require two packages to be installed. Since <c>nvidia-glx</c> depends on
268<c>nvidia-kernel</c>, installing <c>nvidia-glx</c> is sufficient.
253</p> 269</p>
254 270
255<pre caption="Installing the nVidia modules"> 271<pre caption="Installing the nVidia drivers">
272<comment>(If you have a card not listed in the legacy list above)</comment>
273# <i>emerge nvidia-drivers</i>
274<comment>(If your card is listed in the legacy list)</comment>
275# <i>emerge nvidia-legacy-drivers</i>
276</pre>
277
278<pre caption="Installing the nVidia drivers (deprecated method)">
256# <i>emerge nvidia-glx</i> 279# <i>emerge nvidia-glx</i>
257</pre> 280</pre>
258 281
259<impo> 282<impo>
260Every time you <uri link="/doc/en/kernel-upgrade.xml">compile a new 283Every time you <uri link="/doc/en/kernel-upgrade.xml">compile a new
261kernel</uri> or recompile the current one, you have to run <c>emerge 284kernel</uri> or recompile the current one, you have to run <c>emerge
262nvidia-kernel</c> to reinstall the nVidia modules. <c>nvidia-glx</c> is 285nvidia-kernel</c> to reinstall the nVidia modules. <c>nvidia-glx</c> is
263unaffected by a kernel change and doesn't even need to be rebuilt when you 286unaffected by a kernel change and doesn't even need to be rebuilt when you
264recompile/upgrade X. 287recompile/upgrade X. If you are using the newer drivers, then you will need to
288run <c>emerge nvidia-drivers</c> or <c>emerge nvidia-legacy-drivers</c> to
289reinstall the nVidia modules.
265</impo> 290</impo>
266 291
267<p> 292<p>
268Once the installation has finished, run <c>modprobe nvidia</c> to load the 293Once the installation has finished, run <c>modprobe nvidia</c> to load the
269kernel module into memory. 294kernel module into memory. If this is an upgrade, you should remove the
295previous module first.
270</p> 296</p>
271 297
272<pre caption="Loading the kernel module"> 298<pre caption="Loading the kernel module">
299# <i>lsmod | grep nvidia &amp;&amp; rmmod nvidia</i>
273# <i>modprobe nvidia</i> 300# <i>modprobe nvidia</i>
274</pre> 301</pre>
275 302
276<p> 303<p>
277To prevent you having to manually load the module on every bootup, you probably 304To prevent you having to manually load the module on every bootup, you probably
297<title>Configuring the X Server</title> 324<title>Configuring the X Server</title>
298<body> 325<body>
299 326
300<p> 327<p>
301Once the appropriate drivers are installed you need to configure your X Server 328Once the appropriate drivers are installed you need to configure your X Server
302(XFree86 or Xorg) to use the <c>nvidia</c> driver instead of the default 329to use the <c>nvidia</c> driver instead of the default <c>nv</c> driver.
303<c>nv</c> driver.
304</p> 330</p>
305 331
306<p> 332<p>
307Open <path>/etc/X11/xorg.conf</path> (or <path>/etc/X11/XF86Config</path> if you 333Open <path>/etc/X11/xorg.conf</path> (or <path>/etc/X11/XF86Config</path> if you
308still use the older configuration file location) with your favorite editor 334still use the older configuration file location) with your favorite editor
420<section> 446<section>
421<title>Using NVidia Settings Tool</title> 447<title>Using NVidia Settings Tool</title>
422<body> 448<body>
423 449
424<p> 450<p>
425Since NVidia released version 1.0.6106 it also provides you with a settings 451Since nVidia released version 1.0.6106 it also provides you with a settings
426tool. This tool allows you to change graphical settings without restarting the X 452tool. This tool allows you to change graphical settings without restarting the
427server and is available through Portage as <c>media-video/nvidia-settings</c>. 453X server and is available through Portage as
454<c>media-video/nvidia-settings</c>.
428</p> 455</p>
429 456
430</body> 457</body>
431</section> 458</section>
432</chapter> 459</chapter>
436<section> 463<section>
437<title>Getting 2D to work on machines with 4Gb or more memory</title> 464<title>Getting 2D to work on machines with 4Gb or more memory</title>
438<body> 465<body>
439 466
440<p> 467<p>
441If you are having troubles with the nVidia 2D acceleration it is likely that you 468If you are having troubles with the nVidia 2D acceleration it is likely that
442are unable to set up a write-combining range with MTRR. To verify, check the 469you are unable to set up a write-combining range with MTRR. To verify, check
443contents of <path>/proc/mtrr</path>: 470the contents of <path>/proc/mtrr</path>:
444</p> 471</p>
445 472
446<pre caption="Checking if you have write-combining enabled"> 473<pre caption="Checking if you have write-combining enabled">
447# <i>cat /proc/mtrr</i> 474# <i>cat /proc/mtrr</i>
448</pre> 475</pre>
466<body> 493<body>
467 494
468<p> 495<p>
469<c>nvidia-kernel</c> packages older than 1.0.6106 only support kernels using an 496<c>nvidia-kernel</c> packages older than 1.0.6106 only support kernels using an
4708K stack size. More recent kernels (2.6.6 and higher) have support for 4K stack 4978K stack size. More recent kernels (2.6.6 and higher) have support for 4K stack
471size's as well. Do not select 4K stack size in your kernel configuration if you 498size's as well. Do not select 4K stack size in your kernel configuration if
472are using such an <c>nvidia-kernel</c> package. You can find this option in the 499you are using such an <c>nvidia-kernel</c> package. You can find this option in
473section <c>Kernel Hacking</c>. 500the section <c>Kernel Hacking</c>.
474</p> 501</p>
475 502
476</body> 503</body>
477</section> 504</section>
478<section> 505<section>
530<c>nvidia-glx</c> from the 8xxx series. At the time of this writing, both are 557<c>nvidia-glx</c> from the 8xxx series. At the time of this writing, both are
531still marked ~arch. These drivers no longer rely on hotplug or udev to create 558still marked ~arch. These drivers no longer rely on hotplug or udev to create
532the proper device nodes, so you won't need to run <c>NVmakedevices.sh</c>. 559the proper device nodes, so you won't need to run <c>NVmakedevices.sh</c>.
533Instead, the X driver itself will create your <path>/dev/nvidia*</path> files 560Instead, the X driver itself will create your <path>/dev/nvidia*</path> files
534when you start X. However, this will require you to use a recent kernel (2.6.14 561when you start X. However, this will require you to use a recent kernel (2.6.14
535and greater). 562and greater). This is also true for all versions of <c>nvidia-drivers</c> and
563<c>nvidia-legacy-drivers</c>.
536</note> 564</note>
537 565
538</body> 566</body>
539</section> 567</section>
540</chapter> 568</chapter>
550installed into <c>/usr/share/doc</c> and can be viewed with the following 578installed into <c>/usr/share/doc</c> and can be viewed with the following
551command: 579command:
552</p> 580</p>
553 581
554<pre caption="Viewing the NVIDIA documentation"> 582<pre caption="Viewing the NVIDIA documentation">
583<comment>(for nvidia-drivers)</comment>
584$ <i>less /usr/share/doc/nvidia-drivers-*/README.gz</i>
585<comment>(for nvidia-legacy-drivers)</comment>
586$ <i>less /usr/share/doc/nvidia-legacy-drivers-*/README.gz</i>
587<comment>(for nvidia-glx)</comment>
555# <i>less /usr/share/doc/nvidia-glx-*/README.txt.gz</i> 588$ <i>less /usr/share/doc/nvidia-glx-*/README.txt.gz</i>
556</pre> 589</pre>
557 590
558</body> 591</body>
559</section> 592</section>
560<section> 593<section>

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.20