Ene 28

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ón

Algunas pantallas de mi Laptop. Yo uso XFCE4 en su ultima versión 4.2.4.

RSS feed

9 comentarios »

Comentario by Jose Antonio Cely
2007-03-09 20:00:33

Excelente, lo probé en un portátil SONY VAIO y funciono de maravilla

Gracias

 
Comentario by Isra
2007-04-14 01:05:03

hola…esta muy bien la explicacion
aunque yo tengo una duda servira para tambien una tarjeta:
Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller

yo tambien he estado batallando con mi tarjeta grafica… y tambien es laptop…

bueno de todas maneras lo intentare…haber que pasa..

Saludos….


Por supuesto que funciona sobre esta tarjeta. Solo haz las pruebas que vienen en mi articulo, para verificar que todo va bien.

 
Comentario by Isra
2007-04-14 01:07:43

otra cosa que no entendi muy bien es esta parte:

Tambien los drivers de i830 y 915. En mi caso solo es necesario el 915, ya que mi Laptop tiene un chipset 915GM.

los tuvistes que buscar e instalar o como esta ?

como quiera dejame checo,,


No tienes que instalar por separado ni nada por el estilo. Lo que quise decir es que funciona para ambos chips (y otros mas). El final es el mismo driver

 
Comentario by cP
2007-04-21 10:56:21

buenas! muy buen post
tengo el intel 915 con 128 de video compartido y 256 de RAM y debian ecth con xfce

He seguido todos tus pasos (con tu repositorio), pero el Beryl me va fatal, el cubo rota de maravilla pero lo que son las ventanas se me cuelgan y se me fusionan con el fondo … de repende al cabo de un rato se me ve todo blanco, pero lo que es el cubo me gira perfectamente. alfinal acabo utilizando el gestor del XFCE.
el soporte DRM lo tengo activado, y el directRendering en yes

por lo pronto todo esta corecto :S
un saludo y gracias

 
Comentario by pablo
2007-05-03 15:09:59

mira no entiendo nada de esto pero quiero tener linux en mi computadora, como hago para descargar linux gratis y cual es el mas apropiado para alguien que esta interesado pero no tiene muchos conocimientos

 
Comentario by Gonzalo
2007-05-11 02:33:10

Como fue tu experiencia con Beryl. ¿La velocidad con la que corrio en la Laptop fue buena?
Tengo la misma Laptop y estoy considerando instalar AIGLX y Beryl, ¿Me lo recomiendas?
Por ultimo, muy buena tu explicacion y gracias por compartirla con la comunidad!! ;)

Pues ¿instalar AIGLX? Con que tengas instalado xorg 7.2 ya tienes AIGLX por default.
¿Beryl? Si claro, pero espera porque esta por unificar Beryl con Compiz, por lo que pronto habra sorpresas.

Saludos.

 
Comentario by juan jose
2007-08-03 05:33:56

al momento de compilar el primer pakete me marco esto, alguien me puede ayudar a corregirlo?
No package ‘xcomposite’ found
No package ‘xfixes’ found
No package ‘xdamage’ found
No package ‘xrandr’ found
No package ‘ice’ found
No package ‘sm’ found
No package ‘xinerama’ found
No package ‘libstartup-notification-1.0′ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BERYL_CFLAGS
and BERYL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

 
Comentario by alberto marcial
2007-10-16 22:04:54

funciona bajo un sistema windows xp o hay que instalar forsosamente el karnel de linspire para la ejecucion de este, mi trajeta es una ati radeon, procesador celeron m, a 1.6ghz, y ram en 512

 
Comentario by Victor Avila
2009-05-07 06:48:18

Que hay del Intel GM965 Express Chipset Family

que opinas?, lo soportara siguiendo tus pasos?

 
Nombre (requerido)
E-mail (required - never shown publicly)
URI
Tu comentario (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.