Por fin pude hacer funcionar el Beryl sobre mi Laptop Compaq nx6120 con chip Intel 915GM en un Debian Sid/Etch.
Fue dificil, pero lo logre. Voy a describir, en lo que mas pueda, todo mi problema, estoy seguro que habemos muchos con la misma bronca. Hay tantos wikis y howto’s que describen como instalarlo, pero la mayoría son para tarjetas nVidia, ATI Radeon e incluso Matrox. Pero para chips Intel, hay muy poco, y lo poco que hay son para Desktops (de escritorio), no Laptops (portatil). La ventaja de una maquina Desktop sobre una Laptop es que sí no te gusta la tarjeta de video, le agregas otra (AGP, PCI, PCI Express), pero una Laptop no es posible. Ademas, los chips Intel tienen la característica de que no traen memoria interna de video, usan la memoria RAM del sistema.
En los foros que busque nunca pude encontrar información concreta de mi problema. Muchos decían que en chips Intel 915GM no plano no jalaba, y en mi caso que es una Laptop, menos aun. O bien dicen que solo jala bien con AIGLX y no en XGL.
AIGLX no Xgl
Mucho guías proponen que es mejor usar el soporte de Xgl, un servidor gráfico independiente que permite usar la aceleracción 3D de las tarjetas. Sin embargo, sobre Debian aun no existe el servidor Xgl en forma de paquete. Este y aunado a que tampoco hay paquetes de Beryl oficiales, hacían mucho mas dificil hacerlo por medio de Xgl. Ademas, en muchas guías mencionan que sobre un chip Intel, Xgl solo funciona a 16 bits. Por lo tanto, descarte usar Xgl, y me fui por AIGLX. Hay que recordar que AIGLX, es la otra alternativa que existe para tener soporte gráfico de aceleracción 3D. Para mi es una solución mas efectiva, porque no propone otro servidor X (como Xgl), sino que simplemente agrega un nuevo modulo al servidor Xorg que se carga como todos los demas.
Beryl sobre Debian Sid/Etch
La solución que describo es usando un Xorg 7.1.x que trae ya integrado el soporte en forma de modulo AIGLX. Debian Sid/Etch ya traen el Xorg 7.1 en sus paquetes oficiales. Así que ya con esto teníamos el soporte de AIGLX por default.
El otro problema era hacerlo funcionar en un Debian Sid/Etch, la mayoría de ayudas y comentarios estan sobre otras distros (Ubuntu, Fedora, Gentoo), pero hay poco sobre Debian. Esto es compresible, por algún motivo en verdad molesto Debian aun no tiene el programa Beryl dentro de sus paquetes oficiales. Espero esto pronto cambie, el candidato a empaquetarlo que se ha tardado bastante. De hecho mientras esperamos estoy por liberar unos paquetes de Beryl que funcionen sin problemas en Debian Sid/Etch. Paquetes realizados lo mejor posible y solo no convertidos de otras distros.
Lo que aquí voy a intentar describir es el proceso (a grandes rasgos, esto no es un wiki) de lo que tuve que hacer para instalar Beryl 0.1.4 compilado desde sus fuentes bajados del sitio oficial de Beryl Project funcione sobre un chip Intel 915GM en una caja Debian Sid/Etch.
Instalar Debian
En este paso, no voy a detenerme mucho. Solo pondre a disposicion mi archivo sources.list por si alguien tiene dudas de que significa una instalación Debian Sid/Etch.
Instalar Beryl
Debemos bajar todos los fuentes de Beryl 0.1.4, al final tendremos los siguientes paquetes, los pongo en el orden de como los fui compilando:
Hay aparte otros 3 paquetes en el sitio, que no es necesario para que funcione Beryl por default. En mi caso ni los baje. No son necesarios para que funcione Beryl en forma normal.
- aquamarine-0.1.4.tar.bz2
- emerald-themes-0.1.4.tar.bz
- heliodor-0.1.4.tar.bz2
- beryl-mesa-0.1.4.tar.bz2
Instalar los paquetes necesarios Debian para compilar los fuentes
Puedes ser instalados en ese orden:
apt-get -V install libdbus-1-dev librsvg2-dev
apt-get -V install libxrender-dev libgtk2.0-dev
apt-get -V install libwnck-dev x11proto-xf86dri
apt-get -V install libgl1-mesa-dri libgl1-mesa-dev
apt-get -V install libgl1-mesa-glide3 libgl1-mesa-glx
apt-get -V install libglu1-mesa-dev mesa-utils
Ahora tambien instalamos el soporte de DRM del kernel pero en userspace, necesario para que la librería de Mesa se comunique con el soporte de DRM del kernel.
apt-get -V install libdrm2
Tenemos todo listo. Ahora a ver los detalles de la instalación.
TIP 1: Verifica no tengas instalado el paquete llamado fglrx-driver.
dpkg -l | grep fglrx-driver
Si la tienes borralo.
apt-cache --purge remove fglrx-driver
Este driver permite aceleleración 3D pero en tarjetas ATI Radeon. Sin embargo, mete conflictos directos con el paquete libgl1-mesa-dri, impidiendo con ellos que podamos tener aceleración 3D en tarjetas Intel. Hay un bug en el BTS de Debian donde lo menciona. Muchos dolores de cabeza me costo descubrirlo.
Alternativa A: Instalar los paquetes de beryl 0.1.4 de mi repositorio no oficial
Puede instalarlo de dos forma la fácil, instalando los paquetes que construi para Debian Sid/Etch y Beryl 0.1.4, o bien compilar de sus fuentes a Beryl. si eliges la primera solo agrega los siguiente en tu /etc/apt/sources.list:
deb http://fixxxer.cc/debian unstable/
deb-src http://fixxxer.cc/debian unstable/
Actualizas:
apt-get update
Instalas:
apt-get -V install beryl
Ojo, mis paquetes solo los prove con dos maquinas con Chip Intel. No se, si funcionen para chip ATI o nVidia.
Alternativa B: Compilar los paquetes fuentes de Beryl 0.1.4
Si prefieres o te fallaron mis paquetes puedes compilar. Esta parte es super simple. Por default, te instala todo en /usr/local. Instala binarios, librerias, todo en esa ruta (/usr/local/bin, /usr/local/share, /usr/local/lib, etc). Toda la infraestructura de Beryl. Así no se mezcla con los binarios propios del sistema. Sino tienes el comando ‘sudo’, instalalo antes.
tar -xjvf beryl-core-0.1.4.tar.bz2
cd beryl-core-0.1.4.
./configure
make
sudo make install
tar -xjvf beryl-manager-0.1.4.tar.bz2
cd beryl-manager-0.1.4
./configure
make
sudo make install
tar -xjvf beryl-settings-0.1.4.tar.bz2
cd beryl-settings-0.1.4
./configure
make
sudo make install
tar -xjvf beryl-dbus-0.1.4.tar.bz2
cd beryl-dbus-0.1.4
./configure
make
sudo make install
tar -xjvf beryl-plugins-0.1.4.tar.bz2
cd beryl-plugins-0.1.4
./configure
make
sudo make install
tar -xjvf emerald-0.1.4.tar.bz2
cd emerald-0.1.4.tar.bz2
./configure
make
sudo make install
Requerimientos para activar la aceleracción 3D de tu tarjeta Intel
Necesitas tener el soporte de DRM de tu kernel activado y cargado. Sino lo tienes, activalo. Debes estar en Device Drivers => Character Devices => Direct Rendering Manager. Ademas, tambien necesitas el soporte de DRM de la tarjeta Intel 830M, 845G, 852GM, 855GM, 865G. Tambien los drivers de i830 y 915. En mi caso solo es necesario el 915, ya que mi Laptop tiene un chipset 915GM. Una pantalla que describe este proceso sería:

Ademas, tambien es necesario el soporte de AGP. Este debe estar en la misma seccion que el anterior, Device Drivers => Character Devices => AGP Support.
Una vez, que tenemos el soporte necesario en el kernel, procedemos a verificar que los modules se cargan cuando iniciamos nuestro servidor X. Primero checamos que el soporte de DRM haya sido cargado correctamente por el servidor Xorg.
El archivo /var/log/Xorg.0.log debe decir algo como esto en alguna parte:
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 8, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 8, (OK)
drmOpenByBusid: Searching for BusID pci:0000:00:02.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 8, (OK)
drmOpenByBusid: drmOpenMinor returns 8
drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
(II) I810(0): [drm] DRM interface version 1.2
(II) I810(0): [drm] created "i915" driver at busid "pci:0000:00:02.0"
(II) I810(0): [drm] added 8192 byte SAREA at 0xe0319000
(II) I810(0): [drm] mapped SAREA 0xe0319000 to 0xb7aee000
(II) I810(0): [drm] framebuffer handle = 0xc0020000
(II) I810(0): [drm] added 1 reserved context for kernel
(II) I810(0): [drm] Registers = 0xd0400000
(II) I810(0): [drm] ring buffer = 0xc0000000
(II) I810(0): [drm] init sarea width,height = 1024 x 768 (pitch 1024)
(II) I810(0): [drm] Mapping front buffer
(II) I810(0): [drm] Front Buffer = 0xc0020000
(II) I810(0): [drm] Back Buffer = 0xcf800000
(II) I810(0): [drm] Depth Buffer = 0xcf400000
(II) I810(0): [drm] textures = 0xc0620000
(II) I810(0): [drm] Initialized kernel agp heap manager, 246415360
(II) I810(0): [drm] installed DRM signal handler
(II) I810(0): [drm] dma control initialized, using IRQ 11
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: Searching for BusID pci:0000:00:02.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: drmOpenMinor returns 9
drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
(II) I810(0): [drm] dma control initialized, using IRQ 11
Lo siguiente a verificar es que el soporte de DRI tambien haya sido cargado por el servidor Xorg. El archivo /var/log/Xorg.0.log debe decir:
(II) I810(0): [drm] created "i915" driver at busid "pci:0000:00:02.0"
(II) I810(0): [dri] visual configs initialized
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: node name is /dev/dri/card0
Ahora buscamos que el driver DRI especifico para un chip Intel 915 haya sido cargado tambien por servidor X:
(II) AIGLX: Loaded and initialized /usr/lib/dri/i915_dri.so
Configurar Xorg
La secciones importantes son:
Section "ServerLayout"
...
Option "AIGLX" "true"
EndSection
...
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "extmod"
Load "freetype"
Load "dri"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection
...
Section "Device"
Identifier "Generic Video Card"
Driver "i810"
Option "XAANoOffscreenPixmaps" "true"
VideoRam 256000
Option "DRI" "true"
BusID "PCI:0:2:0"
EndSection
....
Section "DRI"
Group 0
Mode 0666
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Listo. Eso es lo mas importante diferente que debe tener para una tarjeta Intel.
Ejecutar beryl
Primero, debes levantar el ambiente gráfico donde deseas tener aceleración 3D. Beryl debes siemrpe recordar es un Window Manager, así que solo puede funcionar sobre Gnome, KDE o XFCE4. ¿Porque solo en esos ambientes? Porque esos ambientes son Desktop Managers que puede opcionalmente deshabilitarse su WM por default (Metacity en Gnome, kwin en KDE y xfwm4 en XFCE4). En mi caso yo uso XFCE4.
Para levantar xfce4, solo ejecuto desde una consola:
startxfce4
Una vez levantado nuesto ambiente gráfico y nuestro Desktop Manager. Hay que verificar que todo esta completo. Ejecuta esto:
glxinfo | grep direct
direct rendering: Yes
Debe decir Yes, de lo contrario algo te debe segur faltando (posiblemente el soporte del kernel). Una forma de saber exactamente cual es tu error, puedes hacer esto desde una xterm:
export LIBGL_DEBUG=verbose
glxgears -printfps
Checa que errores te envia.
Por el contrario, si la respuesta es Yes. Entonces ya estas listo, ejecuta desde una xterm el comando:
beryl-manager
Te debe poner un icono en forma de diamente rojo en la barra de tu esquina superior derecha.
Sino ves los efectos, es porque no se activo del inicio. Solo dale click al icono y donde dice “Select Window Manager”, selecciona Beryl.
Beryl en acción3>
Algunas pantallas de mi Laptop. Yo uso XFCE4 en su ultima versión 4.2.4.


