Linux - Configuring AGP

Answer ID 149
Published 11/10/2004 09:33 AM
Updated 02/25/2008 10:48 AM

Linux - Configuring AGP


There are several choices for configuring the NVIDIA kernel module's

use of AGP: you can choose to either use NVIDIA's AGP module (NVAGP),

or the AGP module that comes with the linux kernel (AGPGART).  This is

controlled through the "NvAGP" option in your X config file:

 

  Option "NvAgp" "0"  ... disables AGP support

  Option "NvAgp" "1"  ... use NVAGP, if possible

  Option "NvAgp" "2"  ... use AGPGART, if possible

  Option "NvAGP" "3"  ... try AGPGART; if that fails, try NVAGP

 

The default is 3 (the default was 1 until after 1.0-1251).

 

You should use the AGP module that works best with your AGP chip set.

If you are experiencing problems with stability, you may want to start

by disabling AGP and observing if that solves the problems.  Then you

can experiment with either of the other AGP modules.

 

You can query the current AGP status at any time via the /proc filesystem

interface (see APPENDIX O: PROC INTERFACE).

 

To use the Linux AGPGART module, it will need to be compiled with

your kernel, either statically linked in, or built as a module.

NVIDIA AGP support cannot be used if AGPGART is loaded in the kernel.

It is recommended that you compile AGPGART as a module and make sure that

it is not loaded when trying to use NVIDIA AGP.

 

Please also note that changing AGP drivers generally requires a reboot

before the changes actually take effect.

 

The following AGP chipsets are supported by NVIDIA's AGP; for all other

chipsets it is recommended that you use the AGPGART module.

 

  o Intel 440LX

  o Intel 440BX

  o Intel 440GX

  o Intel 815 ("Solano")  

  o Intel 820 ("Camino")  

  o Intel 830

  o Intel 840 ("Carmel")  

  o Intel 845 ("Brookdale")

  o Intel 845G

  o Intel 850 ("Tehama")

  o Intel 855 ("Odem")

  o Intel 860 ("Colusa")

  o Intel 865G ("Springdale")

  o Intel 875P ("Canterwood")

  o Intel E7205 ("Granite Bay")

  o Intel E7505 ("Placer")

  o AMD 751 ("Irongate")

  o AMD 761 ("IGD4")  

  o AMD 762 ("IGD4 MP")

  o AMD 8151 ("Lokar")

  o VIA 8371  

  o VIA 82C694X

  o VIA KT133

  o VIA KT266

  o VIA KT400

  o VIA P4M266

  o VIA P4M266A

  o VIA P4X400

  o VIA K8T800

  o RCC CNB20LE

  o RCC 6585HE

  o Micron SAMDDR ("Samurai")

  o Micron SCIDDR ("Scimitar")

  o NVIDIA nForce

  o NVIDIA nForce2

  o NVIDIA nForce3

  o ALi 1621

  o ALi 1631

  o ALi 1647

  o ALi 1651

  o ALi 1671

  o SiS 630

  o SiS 633

  o SiS 635

  o SiS 645

  o SiS 646

  o SiS 648

  o SiS 648FX

  o SiS 650

  o SiS 655FX

  o SiS 730

  o SiS 733

  o SiS 735

  o SiS 745

  o SiS 755

  o ATI RS200M

 

 

If you are experiencing AGP stability problems, you should be aware of

the following:

 

  o Support for the processor's Page Size Extension on Athlon Processors

 

  Some linux kernels have a conflicting cache attribute bug that is

  exposed by advanced speculative caching in newer AMD Athlon family

  processors (AMD Athlon XP, AMD Athlong 4, AMD Athlon MP, and Models 6

  and above AMD Duron). This kernel bug usually shows up under heavy use

  of accelerated 3D graphics with an AGP graphics card.

 

  Linux distributions based on kernel 2.4.19 and later *should*

  incorporate the bug fix. But, older kernels require help from the user

  in ensuring that a small portion of advanced speculative caching is

  disabled (normally done through a kernel patch) and a boot option is

  specified in order to apply the whole fix.

 

  NVIDIA's driver automatically disables the small portion of advanced

  speculative caching for the affected AMD processors without the need

  to patch the kernel; it can be used even on kernels which do already

  incorporate the kernel bug fix. Additionally, for older kernels the

  user performs the boot option portion of the fix by explicitly disabling

  4MB pages. This can be done from the boot command line by specifying:

 

mem=nopentium

 

  Or by adding the following line to etc/lilo.conf:

 

append = "mem=nopentium"

 

  o AGP drive strength BIOS setting (Via based mainboards)

 

  Many Via based mainboards allow adjusting the AGP drive strength in

  the system BIOS. The setting of this option largely affects system

  stability, the range between 0xEA and 0xEE seems to work best for

  NVIDIA hardware. Setting either nibble to 0xF generally restults in

  severe stability problems.

 

  If you decide to experiment with this, you need to be aware of

  the fact that you are doing so at your own risk and that you may

  render your system unbootable with improper settings until you

  reset the setting to a working value (w/ a PCI graphics card or

  by resetting the BIOS to its default values).

 

  o System BIOS version

 

  Make sure to have the latest system BIOS provided by the board

  manufacturer.

 

  o AGP Rate

 

  You may want to decrease the AGP rate setting if you are seeing

  lockups with the value you are currently using. You can do so by

  extracting the .run file:

 

sh NVIDIA-Linux-x86-1.0-6629-pkg1.run --extract-only

cd NVIDIA-Linux-x86-1.0-6629-pkg1/usr/src/nv/

 

  Then edit os-registry.c, and make the following changes:

 

- static int NVreg_ReqAGPRate = 7;

+ static int NVreg_ReqAGPRate = 4;   /* force AGP Rate to 4x */

  or

+ static int NVreg_ReqAGPRate = 2;   /* force AGP Rate to 2x */

  or

+ static int NVreg_ReqAGPRate = 1;   /* force AGP Rate to 1x */

 

  and enable the "ReqAGPRate" parameter:

 

- { NULL, "ReqAGPRate",&NVreg_ReqAGPRate, 0 },

+ { NULL, "ReqAGPRate",&NVreg_ReqAGPRate, 1 },

 

  Then recompile and load the new kernel module.

 

 

On Athlon motherboards with the VIA KX133 or 694X chip set, such as the

ASUS K7V motherboard, NVIDIA drivers default to AGP 2x mode to work around

insufficient drive strength on one of the signals.  You can force AGP 4x

by setting NVreg_EnableVia4x to 1.  Note that this may cause the system

to become unstable.

 

On ALi1541 and ALi1647 chipsets, NVIDIA drivers disable AGP to work

around timing issues and signal integrity issues. You can force AGP

to be enabled on these chipsets by setting NVreg_EnableALiAGP to 1.

Note that this may cause the system to become unstable.

 

Early SBIOS revisions for the ASUS A7V8X-X KT400 motherboard misconfigure

the chipset when an AGP 2.x graphics card is installed; if X hangs on

your ASUS KT400 system with either Linux AGPGART or NvAGP enabled and the

installed graphics card is not an AGP 8x device, make sure that you have

the lastest SBIOS installed.

Was this answer helpful?
Your rating has been submitted, please tell us how we can make this answer more useful.

LIVE CHAT

Chat online with one of our support agents

CHAT NOW

ASK US A QUESTION

Contact Support for assistance

CONTACT US