Aceleración gráfica VIA / ASROCK / S3G

De Guía Ubuntu
Revisión a fecha de 22:09 6 dic 2008; Oandresmontes (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Unichrome / Unichrome Pro

Esta guía esta dirigida a los modelos:

  • CLE266
  • CN400
  • CN700
  • KN400
  • KM400
  • K8M800
  • K8M890
  • PM800
  • P4VM800
  • VN800
  • P4M900(sólo 2D)
Nota clasica.png Ubuntu dispone de soporte parcial a tarjetas VIA, pero los chipsets mencionados en esta sección quedan excluidos de ese soporte. Si teniendo cualquiera de los chipsets indicados se cambia el identificador de dispositivo a VIA sin instalar los drivers de Openchrome (o los propios de VIA) entonces no podrán iniciar en modo gráfico hasta que regresen al modo vesa.

Pero puede darse el caso de que funcionen con otros modelos, está lista expone más detalladamente todos los modelos compatibles.

Instalación automática

El controlador que dar soporte a los modelos anteriormente mencionados se llama OpenChrome y se puede instalar desde los repositorios de Ubuntu buscando el siguiente paquete:

xserver-xorg-video-openchrome

Instalación manual

Si la instalación automática no funciona por cualqueir motivo (por ejemplo no proporciona la aceleración 3D) procederemos con la instalación manual.

No sé si afecta dejar instalado o no el paquete del modo automático pero por seguridad se recomienda desinstalarlo para empezar desde cero.

Aceleración 2D en OpenChrome

  • Instalando los paquetes necesarios

Abrimos una terminal y escribimos lo siguiente:

Si usamos Ubuntu 6.10 o 7.04

sudo apt-get build-dep xserver-xorg-video-via

Si usamos Ubuntu 6.06.1

sudo apt-get build-dep xserver-xorg-driver-via

Luego para cualquier versión de Ubuntu instalamos los paquetes subversion, autoconf, automake1.9 y libtool del método que queramos. Aquí usaremos la terminal por lo que escribimos este comando:

sudo aptitude install subversion autoconf automake1.9 libtool
  • Descargamos el código fuente del controlador

Para todos los modelos (excepto el K8M890) nos descargaremos el código fuente del controlador escribiendo el siguiente comando en una terminal:

svn checkout http://svn.openchrome.org/svn/trunk openchrome

Si disponemos del modelo K8M890 nos descargaremos un código fuente especifico, distinto del anterior:

svn co http://svn.openchrome.org/svn/trunk openchrome-vt3336

Si disponemos del modelo P4M900 nos descargaremos un código fuente especifico, distinto del anterior:

svn co http://svn.openchrome.org/svn/trunk openchrome-vt3371
  • Compilamos e instalamos el controlador

En la misma terminal entramos en la carpeta del controlador con este comando:

cd openchrome*

El siguiente comando configurará el controlador de acuerdo a nuestro sistema así como la ruta de instalación del mismo.

sh ./autogen.sh --prefix=/usr

Compilamos el controlador (driver) OpenChrome

make

Instalamos el controlador

sudo make install

Por último debes modificar el archivo xorg.conf para sustituir "vesa" por "openchrome" en la sección "Device". Para ello escribe en una terminal:

Si usas Ubuntu (GNOME)

sudo gedit /etc/X11/xorg.conf

Si usas Kubuntu (KDE)

sudo kate /etc/X11/xorg.conf

Ve a donde pone:

Section "Device"

Y cambia la palabra "vesa" (comillas incluidas) por "openchrome" (comillas incluidas). Por último guarda el archivo y reinicia el ordenador, si por alguna razón tuvieras un problema durante la carga de las X escribe:

sudo nano /etc/X11/xorg.conf

Y invierte el proceso subtituyendo "vesa" en lugar de "openchrome"

Aceleración 3D en OpenChrome

Teóricamente la aceleración gráfica o aceleración 3D debería funcionar automáticamente desde Ubuntu 6.10 (por lo que la 7.04 también funcionaría)

Si no es tu caso procederemos a instalar el controlador de forma manual:

  • Instalando los paquetes necesarios

git-core y linux-headers-generic

Desde una terminal se pueden instalar con el siguiente comando:

sudo aptitude install git-core linux-headers-generic
  • Descargamos el código fuente del controlador
git clone git://anongit.freedesktop.org/git/mesa/drm
  • Compilamos e instalamos libdrm y drm

- libdrm

Entramos en el directorio con el siguiente comando:

cd drm

Ejecutamos el comando que configurará el controlador de acuerdo a nuestro sistema así como la ruta de instalación del mismo.

./autogen.sh --prefix=/usr

Nótese que para correr este comando tienes que tener instalados el automake. autoconf y libtools, todos disponibles en synaptic.

Compilamos el código fuente

make

Y lo instalamos

sudo make install

- drm

Sin cerrar la terminal al acabar el anterior proceso cambiamos de directorio:

cd linux-core

Compilamos los módulos del kernel

make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via


Al parecer en Ubuntu 7.04 puede dar un error similar a este:

/home/shad/stuff/drm/linux-core/drm_compat.c:190: error: static declaration of ‘vm_insert_pfn’ follows non-static declaration 
include/linux/mm.h:1126: error: previous declaration of ‘vm_insert_pfn’ was here
make[2]: *** [/home/shad/stuff/drm/linux-core/drm_compat.o] Error 1
make[1]: *** [_module_/home/shad/stuff/drm/linux-core] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic'
make: *** [modules] Error 2

Si es tu caso visita esta entrada en la sección de Resolución de problemas

Copiamos los módulos del kernel al lugar correcto

sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm/

Ejecutamos el depmod

sudo depmod -ae 

Y cargamos los módulos

sudo modprobe drm
sudo modprobe via

Escribimos en la terminal el comando:

glxinfo | grep render

Y si nos responde YES entonces ya tenemos aceleración gráfica por lo que pondremos los módulos para que se carguen al inicio del sistema.

echo "drm" | sudo tee -a /etc/modules
echo "via" | sudo tee -a /etc/modules

Para acabar se recomienda reiniciar Ubuntu o por lo menos el entorno gráfico.

VIA / ASROCK / S3G (Unichrome / Unichrome Pro)

Instalación manual de la aceleración 2D

Si al ejecutar el comando ./autogen.sh --prefix=/usr te devuelve un error similar a este:

configure.ac: 30: required file `./[config.h].in' not found
unichrome/Makefile.am:33: via_drv_la_SOURCES defined both conditionally and unconditionally

Es debido a que tienes más de una versión del paquete automake y usas la versión problemática por defecto. Para solucionarlo escribe en la terminal:

sudo update-alternatives --config automake

Y selecciona automake-1.9.

Instalación manual de la aceleración 3D

Al parecer en Ubuntu 7.04 puede dar un error al ejecutar el comando:

make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via

durante la instalación manual del controlador OpenChrome para la aceleración 3D, el error en cuestión es (por lo menos) similar al siguiente

/home/shad/stuff/drm/linux-core/drm_compat.c:190: error: static declaration of ‘vm_insert_pfn’ follows non-static declaration 
include/linux/mm.h:1126: error: previous declaration of ‘vm_insert_pfn’ was here
make[2]: *** [/home/shad/stuff/drm/linux-core/drm_compat.o] Error 1
make[1]: *** [_module_/home/shad/stuff/drm/linux-core] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic'
make: *** [modules] Error 2

Si es tu caso (si también te ocurre lo mismo) existe una solución temporal que conlleva modificar un archivo llamado drm_compat.c . Para ello en la misma terminal y sin haberla cerrado antes (debe estar en el mismo directorio) escribimos lo siguiente:

Si usas Ubuntu (GNOME):

gedit drm_compat.c

Si usas Kubuntu (KDE)

kate drm_compat.c

Y substituimos lo siguiente:

static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,

unsigned long pfn)

{
	int ret;
	if (!drm_pte_is_clear(vma, addr))
		return -EBUSY;

	ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot);
	return ret;
}

Por esto:

/*
static int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
		  unsigned long pfn)
{
	int ret;
	if (!drm_pte_is_clear(vma, addr))
		return -EBUSY;

	ret = io_remap_pfn_range(vma, addr, pfn, PAGE_SIZE, vma->vm_page_prot);
	return ret;
}
*/


Guardamos el archivo y volvemos a escribir:

make LINUXDIR=/lib/modules/`uname -r`/build DRM_MODULES=via

Para los que le interese: Lo que estamos haciendo es comentar las lineas de código que dan problemas de tal forma que el compilador no las tendrá en cuenta durante el proceso. Extraído de este enlace: [1]

El sistema se bloquea algunas veces

Al parecer es un error el el módulo drm, para solucionarlo debes comentarlo (añadirle un # delante) pero perderás la aceleración gráfica.

Para ello abre una terminal y escribe:

Si usas Ubuntu

sudo gedit /etc/X11/xorg.conf

Si usas Kubuntu

sudo kate /etc/X11/xorg.conf

busca el texto Load "dri"

y modifícalo para que quede así:

#Load    "dri"

No aparece ninguna imagen al reproducir vídeos

Esto ocurre mayoritariamente en en portatiles (laptop) y es debido a que OpenChrome no soporta correctamente Xv en algunos modelos. Puedes probar a cambiar al modo gl o x11 en el reproductor y ver si funciona.

Según parece este problema no se da cuando en vez de usar la pantalla LCD integrada se usa un monitor externo

Algunas veces el cursor (ratón) desaparece

Este es un error conocido en los modelos VN800 y VM800, puedes probar añadiendo la opción:

       Option          "SWCursor" "true"

al archivo xorg.con en Section "Device" debajo de donde pone Driver "via"

Al actualizar el sistema/kernel la aceleración 3D desaparece

Esto no es un "problema" propiamente dicho, únicamente tendrás que repetir el proceso de instalación de controlador de aceleración 3D.

Ver También