El bendito video de VIA K8M890 Chrome 9 IGP y Linux (Xorg, Ubuntu, Arch y tal vez otros)

Caí­ en la trampa de VIA… o en la de Ubuntu… o en la de Xorg… o en la de quien sabe que. La cosa es que compre una placa con chipset Via K8M890 para la Secretarí­a de Quí­mica Biológica y resulta que cuando instalo Ubuntu Edgy 6.10 (cada vez creo mas firmemente que hasta Arch es mas amigable!) el ví­deo se veí­a todo ‘trabado’, el scroll iba a 2 frames por segundo mas o menos… y eso que es en 2D, por que si habláramos de Beryl/Compiz vaya y pase, pero no, hablamos de simples y planas aplicaciones.

En fin, cuestión que me encontraba con Ubuntu y un Xorg con driver ‘vesa’, ya que ni el driver ‘via’ (xserver-xorg-video-via) o el ‘unichrome’ (xserver-xorg-video-unichrome) funcionaban! Cada vez que intentaba cargarlos en Xorg, terminaba con un pantallazo azul que hacia recordar a mis peores épocas (si, las de Windows).

Entonces me puse manos a la obra, y orandole a San Google ™, empece a recaudar información de todas partes. Finalmente, logre tener un driver de video que funciona y a una velocidad mas q aceptable, exceptuando que no tiene ninguna cualidad 3D. Esta es una guí­a de como configurar el video de una placa integrada chipset K8M890 en Xorg y Ubuntu, sin morir en el intento.

English: You can find the English version of this article here

En primer lugar, debemos desinstalar un par de cositas e instalar unas cuantas dependencias para poder compilar el driver, con ingresar estas, apt-get se deberí­a encargar del resto. (disclaimer: a mi me llevo prácticamente un search y un install por cada uno de ellos, puede haber alguno faltante!)

sudo apt-get remove xserver-xorg-video-via xserver-xorg-video-unichrome
sudo apt-get install build-essential libxinerama-dev x11proto-xinerama-dev libxvmc-dev sysutils tofrodos
sudo apt-get build-dep xserver-xorg-video-via
sudo apt-get build-dep xorg

Luego descargamos el driver de aquí­ (en esta ocasión estamos usando la versión CN_CX700-CN800XORG40071, pero esto puede cambiar con el tiempo!) :

Y procedemos a descomprimirlo:
Aclaración: Noten que todos los comandos tienen el # y no el $, esto indica que deben ejecutarse como root, o en el caso de Ubuntu, con sudo.


tar zxvf CN_CX700-CN800XORG40071-kernel-src_[fecha].tgz

Una vez hecho esto, corregimos el directorio para que funcione todo el proceso:


mv CN_CX700-CN800XORG40071-kernel-src_[fecha] CN_CX700-CN800XORG40071

Obviamente revisen que el path (el nombre del dir) sea el suyo, en particular la versión del driver y la fecha.

Y ahora lo compilamos:


cd CN_CX700-CN800XORG40071/src

Actualizado: 2007/06/01
Como era de esperarse, algo se rompio.
Muchas personas han comentado sobre problemas al compilar el driver. Esto al parecer se debe a problemas en la version del kernel que figura en los drivers de Via.
Si estan utilizando Ubuntu Edgy, deberian chequear esto antes de compilar el driver (esto tambien puede funcionar para otras distribuciones, si tienen el mismo problema, pruebenlo!):

uname -r

Esta es la version del kernel que estan utilizando. Ahora vamos a chequear para que version estan configurados los drivers de Via, dentro de la carpeta de los drivers, corran esto::

grep "2.6." makedriver

Chequeen que la version es la misma, si no lo es, entonces editen con vim (o su editor preferido) y reemplazen la version con que les da el comando: “uname -r“.
Ahora chequeen la version del kernel, pero en este otro archivo:

grep "2.6." vinstall_2D

De nuevo, si la version es la misma esta todo bien, si no es la misma editen con vim (o su editor preferido) y reemplazen la version con que les da el comando: “uname -r“.


sudo ./makedriver

Una vez que ejecutamos makedriver, nos preguntara sobre una versión de release, aquí­ debemos ingresar la versión del driver que bajamos (determinada por los últimos dos caracteres), en este caso: 71.
Luego nos preguntara sobre la arquitectura de nuestro procesador, presten atención por que esto tiene que ser correcto para que funcione bien!

Por ultimo, re indexamos las librerias:


sudo ldconfig

Una vez hecho esto, tendremos nuestro driver compilado (en el caso de que salido todo bien) en /CN_CX700-CN800XORG40071 (si, / de raiz!).
Allí­ dentro, estará el directorio XServer, donde deberán encontrar el binario via_driver.so y libddmpeg.so, ademas, deberán tener el directorio Utility con algunos otros archivos (5 mas precisamente). Si encontraron todo eso, es hora de terminar la instalación:

Dentro del directorio /CN_CX700-CN800XORG40071 vamos a ejecutar lo siguiente:


sudo /CN_CX700-CN800XORG40071/vinstall_2D

Luego de la salida que nos informa de la instalación correcta, este script se habrá encargado (automaticamente) de modificar ‘vesa’ por ‘via’ en nuestro /etc/X11/xorg.conf

Con esto hecho, procedemos a reiniciar Xorg y voila! deberí­amos tener un 2D mas que aceptable!

Nota:
En caso de querer volver atras, osea, deshacer esta configuración:


sudo /CN_CX700-CN800XORG40071/vuninstall

=================== ARCH LINUX ================

Ahora que ya vieron todo lo que hay que hacer para tener esta placa funcionando en Ubuntu, les explico como instalarla en Arch:


$ pacman -Ss chrome
current/xf86-video-unichrome 0.2.6-2
X.org VIA Unichrome video drivers
extra/openchrome 20060724-6
Most developed drivers for Via Unichrome/Unichrome Pro under xorg

Ya sabemos que unichrome no funciona con esta placa, y necesitamos openchrome (que no estaba disponible en los repositorios de Ubuntu) que no solo tiene soporte 2D como el driver de Via, sino que ademas incluye algunas funciones de aceleración por hardware para 3D.
Tal vez instalar este ultimo en un Ubuntu cero km sea mas sencillo que el propio de VIA, en algún momento veré de averiguarlo.

Entonces:


# pacman -S openchrome

Cambiamos la linea que dice ‘vesa’ por ‘openchrome’ en /etc/X11/xorg.conf y listo.

2 comandos, contra… algunos cuantos. Y Ubuntu se supone q es para las PC de escritorio, los humanos y todo eso…
Yo me quedo con Arch y KISS toda la vida.

——

Algunas referencias usadas para crear este documento y la milagrosa tarea de hacer andar este driver:

https://help.ubuntu.com/community/OpenChrome
http://wiki.openchrome.org/pipermail/openchrome-users/2006-August/001632.html
http://forums.viaarena.com/messageview.aspx?catid=28&threadid=73032&STARTPAGE=1