Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Corrigiendo el desempeño de gráficos en la Acer Aspire One A150.

La Acer Aspire tiene A150 tiene varios problemas en GNU/Linux en cuanto al desempeño de gráficos. Se pueden corregir y lograr sacar mejor provecho de la tarjeta de gráficos (Intel Corporation Mobile 945GME) corrigiendo los MTRR (Memory Type and Range Register) y un archivo xorg.conf con una configuración que permita utilizar Compiz y juegos 3D.

Corrigiendo el MTRR en la Acer Aspire One A150.

Nota: Los siguientes procedimientos son exclusivos para la Acer Aspire One A150. Otros modelos, como la D150 y D250, requieren otros valores.

El microprocesador de la Acer Aspire One A150 proporciona ocho registros de tipo y rango de memoria (Memory Type and Range Register). Lamentablemente el BIOS, aún actualizado, configura los ocho registros utilizando todos los disponibles. Esto deja a X sin uno y aunque de cualquier forma funcionará, carecerá de un MTRR con una consecuente lentitud de X y 3D. Las funciones están presentes en el núcleo 2.6.27, pero nunca realizan la limpieza de los MTRR. Bruce Perens solucionó el problema utilizando el núcleo 2.6.28 y versiones posteriores, con las siguientes opciones habilitadas en la configuración del núcleo:

CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1

Lo anterior condesa los MTRR de ocho a cuatro, dejando al menos un MTRR libre para X. A fin de que se realice la limpieza de MTRR, se requiere pasar el parámetro enable_mtrr_cleanup a los parámetros de arranque del núcleo en /boot/grub/grub.conf.

Utilizar el núcleo 2.6.28 o posterior soluciona todo el problema. Sin embargo muchos usuarios carecen de las habilidades necesarias para compilar un núcleo desde los fuentes. Es por tal motivo que me di a la tarea de realizar pruebas extensivas en varias Acer Aspire One A150 que poseo. Utilizando el núcleo más reciente para Fedora 10 (kernel-2.6.27.21-170.2.56.fc10.i686), es posible corregir los MTRR con el siguiente guión, que puede añadirse en /etc/rc.local.

# Fixes MTRR to have Xorg run smoothly
# Order do matters
echo "disable=0" >| /proc/mtrr
echo "disable=4" >| /proc/mtrr
echo "disable=1" >| /proc/mtrr
echo "disable=6" >| /proc/mtrr
echo "disable=2" >| /proc/mtrr
echo "disable=5" >| /proc/mtrr
echo "disable=3" >| /proc/mtrr
echo "disable=7" >| /proc/mtrr
# Writing correct MTRR
echo "base=0x000000000 size=0x40000000 type=write-back" >| /proc/mtrr
echo "base=0x03f500000 size=0x00100000 type=uncachable" >| /proc/mtrr
echo "base=0x03f600000 size=0x00200000 type=uncachable" >| /proc/mtrr
echo "base=0x03f800000 size=0x00800000 type=uncachable" >| /proc/mtrr
echo "base=0x040000000 size=0x10000000 type=write-combining" >| /proc/mtrr

Los MTRR de Fedora 10 (cat /proc/mtrr) antes de utilizar el guión son los siguientes:

reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
reg02: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
reg03: base=0x20000000 ( 512MB), size= 512MB: write-back, count=1
reg04: base=0x3f800000 (1016MB), size= 8MB: uncachable, count=1
reg05: base=0x3f600000 (1014MB), size= 2MB: uncachable, count=1
reg06: base=0x3f500000 (1013MB), size= 1MB: uncachable, count=1
reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1

Utilizando el guión descrito, los MTRR cambian a lo siguiente:

reg00: base=0x00000000 (   0MB), size=1024MB: write-back, count=1
reg01: base=0x3f500000 (1013MB), size= 1MB: uncachable, count=1
reg02: base=0x3f600000 (1014MB), size= 2MB: uncachable, count=1
reg03: base=0x3f800000 (1016MB), size= 8MB: uncachable, count=1
reg04: base=0x40000000 (1024MB), size= 256MB: write-combining, count=2

En CentOS 5.3 actualizado y con compiz habilitado, glxgears reportaba un promedio de 430 FPS. Luego de aplicar el guión y reiniciar X, glxgears reportaba 525 FPS.

En Fedora 10 actualizado y con compiz habilitado, antes de el ajuste glxgears reportaba un promedio de 290 FPS, después del ajuste glxgears reportó un promedio de 350 FPS.

Si, con la Acer Aspire One, todo indica que CentOS 5.3 tiene mejor desempeño para 3D que Fedora 10 (y 11) y Ubuntu 8.10 (y 9.04).

Archivo /etc/X11/xorg.conf sugerido.

Con lo anterior, solo basta utilizar la siguiente configuración para /etc/X11/xorg.conf:

# This configuration of xorg.conf only works for Acer Aspire One A150
# Customized by Joel Barrios Dueñas
# darkshram at gmail.com
# May 05, 2009

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "AIGLX" "true"
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "catalogue:/etc/X11/fontpath.d"
FontPath "built-ins"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection

Section "InputDevice"
# "SynPS/2 Synaptics TouchPad"
Identifier "Mouse0"
Driver "synaptics"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
Option "SHMConfig" "on"
Option "CircularScrolling" "0"
Option "HorizEdgeScroll" "0"
Option "VertEdgeScroll" "0"
EndSection

Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "auto"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
Option "SendCoreEvents"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
DisplaySize 195 113
Modeline "1024x600@60.00" 48.90 1024 1048 1184 1304 600 600 619 625
EndSection

Section "Device"
Identifier "Card0"
VendorName "Intel Corporation"
BoardName "Mobile 945GME Express Integrated Graphics Controller"
BusID "PCI:0:2:0"
# Needed to fix huge fonts, allows to use DisplaySize in Monitor
Option "NoDDC"

# Options for EXA accel only
Option "AccelMethod" "EXA"
Option "ExaNoComposite" "true"
# Options for MigrationHeuristic are: greedy, always, smart
# greedy: better performance for 3D but corrupts screen with compiz
# smart: similar to greedy. Corrupts screen with compiz
# always: allows compiz and 3D
Option "MigrationHeuristic" "always"
# To improve Xv and 3D performance.
Option "XvMC" "true"
Option "TripleBuffer" "true"
Option "CacheLines" "1980"

# The folowing is an alternative config using the old XAA accel.
# Use it on your own risk! System may hang with anything
## XAA acccel only!!!
## Needs to disable the EXA options
##Option "AccelMethod" "XAA"
##Option "XAANoOffscreenPixmaps" "true"
##Option "EnablePageFlip" "true"
##Option "PageFlip" "on"
##Option "XvMCSurfaces" "7"
##VideoRam 262144
##Option "Legancy3D" "true"
##Option "ModeDebug" "true"

EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 15
Modes "1024x600@60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x600@60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Modes "1024x600@60.00"
Depth 24
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection

Section "Extensions"
Option "Composite" "enable"
Option "RENDER" "enable"
Option "MIT-SHM" "true"
EndSection

Section "ServerFlags"
Option "AIGLX" "true"
EndSection

Lo anterior utiliza aceleración EXA con el valor Always para MigrationHeuristic. El desempeño de los gráficos 3D trabaja excelentemente con juegos como OpenArena y Lincity-ng y muy malo para juegos como Supertux, pero permite utilizar Compiz sin mayores complicaciones y con excelente desempeño.

Para complementar, aunque experimental, sugiero añadir el siguiente contenido en /etc/enviroment:

INTEL_BATCH="1"

Ajustes posteriores.

Hecho todo lo anterior, solo basta reiniciar el sistema para disfrutar y utilizar Compiz y una mejor aceleración de gráficos. Para poder habilitar Compiz, es importante desactivar, como usuario, la función de Metacity para gestión de composición, en caso de que estuviese activa:

gconftool-2 --set /apps/metacity/general/compositing_manager  --type bool 0

Comentarios.

Aunque puede se tentador mejorar el sistema operativo, por el momento recomiendo utilizar Fedora 10 y Ubuntu 8.10. Conviene esperar un tiempo antes de comenzar a utilizar Fedora 11 (actualmente en desarrollo) y Ubuntu 9.04, debido a que hay una regresión en cuanto a desempeño en el controlador utilizado para tarjetas gráficas Intel.


Atención: Salvo que se indique lo contrario, la licencia del texto de este documento es Creative Commons Reconocimiento 2.5, mediante la cual usted tiene permitido copiar, modificar, comunicar y distribuir el contenido de este texto, de manera total o parcial, y publicarlo o difundirlo en cualquier otro sitio de Internet o medio de comunicaciòn, siempre y cuando incluya o cite (1)el nombre de este sitio de Internet, (2)enlace permanente de este documento, (3)nombre del autor y (4)la misma licencia de distribución.

Opciones: Imprimir | Recomendar | Enlace permanente

Twitter Facebook Google Bookmarks Bitacoras.com Wikio Menéame Technorati Bloglines Digg Yahoo Buzz

Seguimientos (Trackback)

URL de seguimiento para esta entrada:
http://www.alcancelibre.org/trackback.php/corrigiendo-performance-graficos-aaone

[...] a que hay una regresión en cuanto a desempeño en el controlador utilizado para tarjetas gráficas Intel. Fuente: Alcance LibreComparte/Guarda Leave a Reply Name (required) Mail (will not be published) (required) Website Código CAPTCHA [...] [leer más]

  • Corrigiendo el desempeño de gráficos en la Acer Aspire One A150.
  • 0comentarios
  • Crea cuenta nueva
Agregar comentario

Los siguientes comentarios son de la persona que los haya enviado. Este sitio se deslinda de cualquier responsabilidad respecto de las opiniones expresadas por los participantes en nuestros foros y secciones de comentarios, y el hecho de publicar las mismas no significa que se esté de acuerdo con éstas.