NVIDIA y AGP

3:47 am GNU/Linux, Gentoo

Todo empezó por saber cómo demonios se activaba el soporte de Fast Writes en mi tarjeta Nvidia (nada del otro mundo, Geforce FX 5500 256 MB) y después (se nota que me gusta liarme con estas cosas?) me enteré que se puede usar el soporte AGP del kernel para que reemplace la implementación AGP de las propia Nvidia, aunque realmente, no tengo la menor idea si hay mejora en el rendimiento (en mi caso, es el mismo sin tener Fast Writes activado, ya que con él, mejora), aunque mi testeo ha sido poco.

Hago esto porque he visto muchas dudas al respecto en muchos foros, lo mismo sucede con la posibilidad de habilitar SBA y Fast Writes. Posiblemente piensen que hablo en chino, la descripción al respecto la pueden encontrar acá.

Para empezar hay que saber que chipset’s se llevan con la implementación de Nvidia de AGP (NVAGP), hay un descripción por aqui: ftp://download.nvidia.com/XFree86/Linux-x86/1.0-8174/README/32bit_html/appendix-f.html. Ahí dice que los chispset’s que se llevan bien con NVAGP son las siguientes:

Supported AGP Chipsets
Intel 440LX
Intel 440BX
Intel 440GX
Intel 815 (”Solano”)
Intel 820 (”Camino”)
Intel 830M
Intel 840 (”Carmel”)
Intel 845 (”Brookdale”)
Intel 845G
Intel 850 (”Tehama”)
Intel 855 (”Odem”)
Intel 860 (”Colusa”)
Intel 865G (”Springdale”)
Intel 875P (”Canterwood”)
Intel E7205 (”Granite Bay”)
Intel E7505 (”Placer”)
AMD 751 (”Irongate”)
AMD 761 (”IGD4″)
AMD 762 (”IGD4 MP”)
AMD 8151 (”Lokar”)
VIA 8371
VIA 82C694X
VIA KT133
VIA KT266
VIA KT400
VIA P4M266
VIA P4M266A
VIA P4X400
VIA K8T800
VIA K8N800
VIA PT880
VIA KT880
RCC CNB20LE
RCC 6585HE
Micron SAMDDR (”Samurai”)
Micron SCIDDR (”Scimitar”)
NVIDIA nForce
NVIDIA nForce2
NVIDIA nForce3
ALi 1621
ALi 1631
ALi 1647
ALi 1651
ALi 1671
SiS 630
SiS 633
SiS 635
SiS 645
SiS 646
SiS 648
SiS 648FX
SiS 650
SiS 651
SiS 655
SiS 655FX
SiS 661
SiS 730
SiS 733
SiS 735
SiS 745
SiS 755
ATI RS200M

Para saber que chip tienes ejecuta lo siguiente:

UnderHouse ~ # lspci | grep -i agp
00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02)

Como ven yo tengo una Intel 865G que figura en la lista. Pasemos a ver como se activa NVAGP o AGPGART (el módulo de AGP del kernel de linux) si no se encuentra en la lista anterior. Nota: Estos pasos son realizados en Gentoo GNU/Linux, podría ser similares en otras distribuciones, pero, están advertidos.

Activar AGP del kernel de linux con NVIDIA.

Hay que activar AGP en el kernel como módulo (escoge tu chipset correspondiente).

Device Drivers  --->
  Graphics support  --->
    <m> /dev/agpgart (AGP Support)  --->
      <m>   Intel 440LX/BX/GX, I8xx and E7x05 chipset support

Para ver si ya lo tienes integrado:

UnderHouse ~ # modprobe -l | grep -i agp

Si te aparecen la ubicación donde se encuentran los módulos, lo tienes correcto.

En gentoo hay que re-instalar los drivers de NVIDIA para que tomen la dependencia de AGPGART, ya que al parecer revisa la configuración del kernel al compilar. Prueba de esto:

UnderHouse ~ # modinfo nvidia
filename:       /lib/modules/2.6.24-gentoo-r3/video/nvidia.ko
license:        NVIDIA
alias:          char-major-195-*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        agpgart,i2c-core

La línea que describe las dependencias del módulo: depends: agpgart,i2c-core. Por lo que se ha preparado a NVIDIA para usar el AGP del kernel. En otras distribuciones generalmente se hace la instalación mediante el paquete oficial de NVIDIA o mediante el gestor de paquetes de dicha distribución, no sé si funcione igual, pero sería mejor investigar al respecto (aunque modprobe debería funcionar de la misma forma).

Hay que agregar/modificar la siguiente línea en la configuración de Xorg en la sección Device (donde se coloca las opciones de tu tarjeta gráfica).

    Option      "NvAGP"  "2"

Reiniciamos el sistema y el módulo de NVIDIA debería cargar correctamente usando AGPGART:

soullost@UnderHouse ~ $ cat /proc/driver/nvidia/agp/status
Status: 	 Enabled
Driver: 	 AGPGART
AGP Rate: 	 8x
Fast Writes: 	 Disabled
SBA: 		 Enabled
soullost@UnderHouse ~ $ lsmod
Module                  Size  Used by
nvidia               7104708  24
intel_agp              25748  1
agpgart                35016  2 nvidia,intel_agp

Usar NVAGP de NVIDIA.

Si tu chipset se encuentra como compatible con NVAGP, es recomendable usarlo. Para esto hay que desactivar el soporte de AGP en el kernel (en gentoo). En otras distribuciones he visto que se bloquean los módulos al iniciar en /etc/modprobe.d/blacklist o en grub con agp=off (habrá que investigarlo).

En gentoo al compilar sin soporte AGP del kernel, modinfo no nos muestra la dependencia de AGPGART:

UnderHouse ~ # modinfo nvidia
filename:       /lib/modules/2.6.24-gentoo-r3/video/nvidia.ko
license:        NVIDIA
alias:          char-major-195-*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        i2c-core

Por lo que el módulo de NVIDIA implementará su propio driver de AGP. Editar el xorg.conf con la siguiente opción:

    Option      "NvAGP"  "1"

Podemos ver la información de /proc.

soullost@UnderHouse ~ $ cat /proc/driver/nvidia/agp/status
Status: 	 Enabled
Driver: 	 NVIDIA
AGP Rate: 	 8x
Fast Writes: 	 Disabled
SBA: 		 Enabled
UnderHouse ~ # lsmod
Module                  Size  Used by
nvidia               7102020  24

Test de glgears:

soullost@UnderHouse ~ $ glxgears
9382 frames in 5.0 seconds = 1876.342 FPS
9394 frames in 5.0 seconds = 1878.656 FPS
9350 frames in 5.0 seconds = 1869.923 FPS

Activar Fast Writes y SBA.

Antes que nada hay que saber si tenes la posibilidad de habilitarlo, de nuevo, con ayuda de /proc.

soullost@UnderHouse ~ $ cat /proc/driver/nvidia/agp/card
Fast Writes: 	 Supported
SBA: 		 Supported
AGP Rates: 	 8x 4x
Registers: 	 0x1f000e1b:0x1f004312
soullost@UnderHouse ~ $ cat /proc/driver/nvidia/agp/host-bridge
Host Bridge: 	 PCI device 8086:2570
Fast Writes: 	 Supported
SBA: 		 Supported
AGP Rates: 	 8x 4x
Registers: 	 0x1f004a1b:0x00000b12

Correcto, tenemos soportado tanto Fast Writes y SBA tanto en el driver de NVIDIA para mi tarjeta gráfica como por medio del chipset de AGP de mi tarjeta madre (motherboard).

En general para hacer esto hay que pasar las opciones al módulo de NVIDIA, en gentoo, existe la siguiente guía: http://gentoo-wiki.com/HARDWARE_Nvidia_Driver_AGP_FastWrite_and_Side_Band_Addressing, que es bastante enredosa y sobre todo, había cosas que no entendía para que se hacían (prefiero no hacerlas si desconozco). Yo lo que hice fue agregar lo siguiente: NVreg_EnableAGPFW=1 NVreg_EnableAGPSBA=1 al archivo /etc/modprobe.d/nvidia, quedando de la siguiente forma:

alias char-major-195 nvidia
alias /dev/nvidiactl char-major-195

options nvidia NVreg_DeviceFileMode=432 NVreg_DeviceFileUID=0
NVreg_DeviceFileGID=27 NVreg_ModifyDeviceFiles=1 NVreg_EnableAGPFW=1
NVreg_EnableAGPSBA=1

Y hacer un update-modules para re-generar el archivo /etc/modprobe.conf.

update-modules

Si el módulo de NVIDIA se encontraba cargado antes de hacer la modificación, hay que salir del servidor X totalmente (parar GDM) y desactivar el módulo, para después volverlo a cargar (si prefieres no hacerte bolas, reiniciar el sistema xD).

1. Salir de GNOME/KDE/?.
2. Matar KDM/GDM/?.
3. modprobe -r nvidia
4. modprobe nvidia
5. startx

Veremos si ha sido correctamente configurado en /proc.

soullost@UnderHouse ~ $ cat /proc/driver/nvidia/agp/status
Status: 	 Enabled
Driver: 	 NVIDIA
AGP Rate: 	 8x
Fast Writes: 	 Enabled
SBA: 		 Enabled

Parece que es todo, nos vemos.

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Temas Relacionados:
  • Kernel 2.6.23 y Nvidia-drivers (VIOLATION!)
  • Beryl en Gentoo (pequeña muestra)
  • 2 Responses

    1. Eduardo Says:

      Hola n_n.
      Pues yo no uso Gentoo, yo uso Archlinux, pero el tuto no sabes cuanto me ha ayudado ya estoy usando NVagp y active tanto el Fast Write como el SBA, muchísimas gracias.
      Un saludo.

    2. soullost Says:

      Eduardo, que bueno que te sirvió, da gusto saber que sirve de algo lo que escribo xD. Me estoy pasando por tu blog. :P .

    Leave a Comment

    Your comment

    You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.