Mostrando entradas con la etiqueta ati. Mostrar todas las entradas
Mostrando entradas con la etiqueta ati. Mostrar todas las entradas

24 octubre 2007

Controlador propietario de ATI con aiglx disponible

¡POR FIN!
Últimamente AMD está esforzandose en mejorar el controlador gráfico (fglrx) de las tarjetas gráficas ATI/AMD. La versión del mes pasado mostraba un incremento en el rendimiento impresionante, pero seguía faltando aiglx, la extensión para que funcionen los efectos de escritorio de Compiz. Con las tarjetas que no son nuevas no hay problema hasta cierto punto: el controlador libre permite que funcione Compiz a la perfección. El problema es que el rendimiento no es el que desearíamos.

Pues ya tenemos la versión 8.42 de fglrx, que ya soporta aiglx (su rendimiento no parece ser lo mejor) y mejora el rendimiento general un poco más en ciertas tarjetas, además de permitir que las tarjetas nuevas funcionen sin problemas. Podemos instalarlo si nos es necesario mejorar el rendimiento y vemos correcto instalar un controlador propietario que sólo AMD sabe qué contiene. De todas formas, como han liberado las especificaciones de las gráficas (no todas, pero están en ello) y están haciendo estas enormes mejoras, ahora son los que mejor apoyo están dando a Linux, así que lo probaremos. Y de paso veremos el panel Catalyst.

Si te lo quieres instalar, en la web de ATI todavía no lo pone, pero lo tienen disponible para descarga. Aquí tienes el instalador. Si usas Ubuntu Gutsy te resultará mejor esta dirección, donde está empaquetado para dicha distribución.

18 febrero 2007

Cómo instalar Beryl con XGL en Ubuntu Edgy (6.10)

En la web del proyecto Beryl no está traducido al 100% el Cómo de XGL, así que hago la traducción aquí con ciertas modificaciones, tras haberlo instalado en este ordenador. Instalar Xgl y Beryl en Ubuntu Edgy Eft es fácil, pero hacer que trabaje todo en condiciones no es tan fácil, así que vamos a ello.


Primero de todo, el servidor XGL requiere aceleración 3D. En algunos casos podría estar instalado sin molestarse, pero creo que eso no ocurre demasiadas veces. La comprobación típica es escribir en una consola lo siguiente:
glxinfo | grep direct
Si contesta
direct rendering: Yes
es que hay aceleración, así que no hay que preocuparse por la configuración de la tarjeta. Si pone que NO, hay que instalar el controlador adecuado. En la web de Ubuntu pueden encontrarse las instrucciones. También puede usarse automatix, más recomendable, ya que lo hace todo solo.

Antes de continuar, quiero aclarar algo importante. Utilizar XGL es necesario sólo para tarjetas ATI (y otras menos conocidas) y sólo para el caso en que no funcione correctamente aiglx con el controlador libre o no podamos usarlo porque no nos da ciertas características (como la salida DVI). Mira aquí para las instrucciones correspondientes a aiglx, que serán las que hay que usar para Intel y Nvidia. La instalación de Beryl con XGL comparada con aiglx es difícil, además de las desventajas de tener un segundo servidor gráfico en marcha, así que siempre que sea posible, mejor usar aiglx y no XGL.

Vamos al meollo del asunto. Añadimos los repositorios de beryl. Para ello podemos usar Synaptic y elegir Configuración>Repositorios, u otros gestores, y lo más rápido, por consola:
sudo gedit /etc/apt/sources.list
y añadimos al final del todo:
deb http://ubuntu.beryl-project.org/ edgy main

Pueden usarse también las réplicas siguientes:
deb http://www.beerorkid.com/compiz edgy main-edgy 
deb http://media.blutkind.org/xgl edgy main
deb http://beryl.xglusers.de/ edgy main
que pueden ir más rápidas que el principal, aunque puede darse el caso de que no estén sincronizados y les falten algunos paquetes.

Estos repositorios están firmados con gpg para verificar su autenticidad. Para añadir las claves gpg, escribimos:
wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -
wget http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -
wget http://www.beerorkid.com/compiz/quinn.key.asc -O - | sudo apt-key add -
Todos en el caso en que hayamos añadido las réplicas. Si sólo ponemos el principal, con la primera línea es suficiente.

Ahora actualizamos la información de los repositorios.
sudo apt-get update
Instalamos XGL:
sudo apt-get install xserver-xgl

Ahora instalamos los paquetes beryl y emerald-themes, siendo lo segundo los temas de las ventanas. Beryl es un metapaquete que instalará las dependencias requeridas como beryl-core, beryl-plugins, beryl-manager y beryl-settings, así como el decorador emerald, pero no los temas.
sudo apt-get install beryl emerald-themes
Si quieres usar el decorador de ventanas de KDE, añade a la línea anterior "aquamarine"

Esto era lo fácil. Ahora vamos a lo menos fácil.
Hay dos formas de validarse en una sesión XGL e iniciar el gestor de composición Beryl.

La primera es añadir una sesión XGL a gdm (o kdm). Es útil para la mayoría de casos dado que permite intercambiar entre una sesión con XGL y otra normal con solo cerrar la sesión y volver a entrar. Uno de los casos que hacen necesario esto es que algunas aplicaciones puede ser que no funcionen correctamente con XGL. Esto ocurre por ejemplo con la televisión digital, que funciona terriblemente lenta. La reproducción de vídeos, aunque funciona perfectamente, gasta más procesador, así que en algunos equipos con poca memoria (XGL gasta) quizá vaya peor. También hay que tener en cuenta que Beryl no se puede considerar totalmente estable, así que esto siempre viene bien.

Vamos a añadir la sesión.
Crearemos un guión de inicio y luego una entrada en la pantalla de inicio que llame al guión. Lo primero:
sudo gedit /usr/local/bin/startxgl.sh

En una nvidia, si es que no quieres usar aiglx que es lo más fácil y recomendado, pondríamos:
 #!/bin/sh
/usr/bin/Xgl :1 -fullscreen -ac -br -accel xv:fbo -accel glx:pbuffer &
sleep 4
export DISPLAY=:1
exec gnome-session

Esto para Gnome. Para KDE cambiamos la última linea por:
exec startkde

Para ATI, que es el caso realmente interesante con XGL:
#!/bin/sh
Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:pbuffer &
sleep 4
export DISPLAY=:1
exec gnome-session

para Gnome. Para KDE cambiamos la última linea por:
exec startkde

y para xcfe:
exec xfce4-session

Se dice que iniciándolo así se puede perder en algunos casos (a mi no me ha pasado) la configuración de las tipografías y el puntero del ratón, puesto que no se cargan junto con Xgl. La forma correcta en ese caso sería exec /etc/X11/Xsession en lugar de gnome-session o startkde. O sea, que se tiene que poner así: exec /etc/X11/Xsession startkde

Un tema extremadamente importante en este punto. Todos los que hemos usado XGL hemos sufrido el estúpido detalle de perder los botones de apagar el sistema y reiniciar, teniendo que cerrar la sesión para luego poder apagar o reiniciar en la pantalla de inicio, por culpa de tener un servidor encima de otro. Vamos a ver como se soluciona este problema, para tener la ventana de cierre totalmente normal. Modificaríamos lo de antes de esta manera:
#!/bin/sh
Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:pbuffer &
sleep 4
export DISPLAY=:1
cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)"
xauth -i add :1 . "$cookie"
exec gnome-session

El tema de Gnome no se verá en todos los casos correctamente, mostrando un aspecto bastante feo por mucho beryl que haya. O sea, que no está cargando el tema de Gnome. A mi me ha pasado. En lugar de lo de antes escribiríamos:
#!/bin/sh
Xgl :1 -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer &
DISPLAY=:1
exec dbus-launch --exit-with-session gnome-session

que requiere instalar beryl-dbus teóricamente, aunque según creo está ya desfasado, pues la versión no coincide y se queja de un archivo ya existente. Vamos, que dbus ya se incluye en beryl. Y en todo caso, a mi no me ha resuelto nada. Cuestión de probar. Si no os funciona hay otra manera que a mi sí que me funciona.
Escribimos en una consola:
gnome-settings-daemon &

Si esto nos lo arregla, añadimos gnome-settings-daemon en sesiones, de la misma forma que comentaré después para añadir beryl-manager, aunque hay que hacerlo después de este.

Más posibles problemas, aunque este es raro. El servidor X calcula correctamente los puntos por pulgada, pero puede ocurrir que la tarjeta gráfica informe mal sobre la medida del monitor. Si las tipografías se muestran demasiado pequeñas por ello, habría que hacer el truquito de añadir el parámetro -dpi 96 a la llamada a Xgl del archivo que editábamos antes:
Xgl :1 -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer -dpi 96 &

aunque la forma limpia debería ser editar el archivo de configuración del servidor e incluir en la seccion Monitor la linea
DisplaySize  344        222
siendo esos valores los correspondientes a tu monitor, en milímetros.

Ahora hacemos el guión ejecutable para que pueda ser utilizable, o sea, que pueda ser llamado desde la entrada del inicio de sesión. Escribimos:
sudo chmod a+x /usr/local/bin/startxgl.sh

Para crear la entrada de la ventana de inicio, hay que crear el archivo /etc/X11/sessions/xgl.desktop
sudo mkdir -p /etc/X11/sessions
sudo gedit /etc/X11/sessions/xgl.desktop

y en el escribiremos lo siguiente
[Desktop Entry]
Encoding=UTF-8
Name=Xgl
Exec=/usr/local/bin/startxgl.sh
Icon=
Type=Application

El nombre Xgl será el que aparecerá en la lista de sesiones. Puedes poner cualquier otro que te guste en su lugar, tal como gnome-XGL o lo que quieras.
Para kdm quizá tenga que ser en /usr/share/xsessions

Ya está todo. Ahora al arrancar el sistema, podrás elegir en la pantalla de inicio de GDM o KDM la sesión Xgl (o el nombre que le hayas puesto). Al entrar, Xgl se ejecutará por encima del servidor X estándar, o sea, en DISPLAY: 1, y cargará el escritorio. Ahora podrás ejecutar Beryl, como se comenta después. Si entras con una sesión normal, será todo como siempre, sin Beryl.

Ahora vamos al caso en que cambiaremos la sesión de inicio normal. Es mejor hacerlo como se ha explicado antes, con dos sesiones en lugar de esto, pero si quieres hacerlo por alguna razón, así se haría:
sudo gedit /etc/gdm/gdm.conf-custom

Al final del todo añadimos
0=Xgl
[server-Xgl]
name=Xgl server
command=/usr/bin/Xgl :0 -fullscreen -ac -accel glx:pbuffer -accel xv:fbo
flexible=true

Al reiniciar la sesión gráfica, el servidor Xgl estará funcionando.

Vamos ya a lo que interesa: ejecutar Beryl. Para iniciar Beryl, simplemente hay que teclear "beryl", aunque es más cómodo usar el gestor en su lugar. Por ello, mejor teclear en una consola:
beryl-manager

Si todo va bien, (en la consola irá mostrando algunos datos) mostrará la pantalla de entrada, un logo ondulante, y los bordes de las ventanas cambiarán a un tema inicial de Emerald. También podremos notar los demás cambios, como el tambaleo al mover las ventanas, el cubo al cambiar de escritorio, y todo lo demás. Hay que destacar la aparición de un icono nuevo en la bandeja del sistema correspondiente al gestor de Beryl, (si es que hemos arrancado beryl con beryl-manager, claro). Con él podemos configurar cualquier cosa pensable de beryl. De todas formas, se añaden nuevas entradas en Aplicaciones.
Si no arranca, quizá haya que ir a las opciones que brinda la gema y seleccionar el gestor de ventanas beryl. Si ni así, hay que fijarse en qué errores nos ha dado la consola...

Ahora que todo ha ido bien, nos falta que arranque beryl cada vez que iniciamos una sesión. Esto antes quedaba hecho de serie, pero bueno.

Vamos a Sistema > Preferencias > Sesiones.
Seleccionamos la pestaña Programas de Inicio.
Pinchamos en el botón Añadir y tecleamos: beryl-manager
Repetimos el paso anterior y añadimos beryl-xgl.

Para añadir beryl al inicio en KDE por consola escribiríamos:
ln -s /usr/bin/beryl-manager ~/.kde/Autostart/beryl-manager

Para iniciar el gestor de beryl sólo cuando se inicia con la sesión Xgl en lugar de siempre, habría que, en lugar de hacer lo anterior, crear un guión extra de la forma siguiente:
sudo gedit /usr/local/bin/start_beryl.sh

Escribimos esto:
#!/bin/bash
#
# Iniciar beryl-manager en gnome-session
#
if (( `ps -A -o comm | grep -c '^Xgl$'` == "1" )); then
DISPLAY=:1 beryl-manager
DISPLAY=:1 beryl-xgl
else echo "${0}: Error: beryl-manager no se ha iniciado. ¿Xgl no está funcionando?"
fi

y guardamos. Lo hacemos ejecutable:
sudo chmod a+x /usr/local/bin/start_beryl.sh

Y ahora si añadimos el guión al inicio de sesión:
Vamos a Sistema>Preferencias>Sesiones
En la pestaña "Programas de Inicio" pulsamos sobre "Añadir" y escribimos /usr/local/bin/start_beryl.sh en la ventana de dialogo que emerge. Pulsamos en cerrar y ya está hecho.
Ahora, si cerramos la sesión y la volvemos a iniciar, el guión mirará si XGL está iniciado y si es así (estamos en la sesión Xgl que creamos), se lanzará beryl-manager, el gestor de beryl. Aunque lo descrito es para Gnome, funciona también para KDE, aunque la forma de añadirlo al inicio es como la descrita en el apartado anterior.

03 noviembre 2006

Sobre Beryl, Compiz, Xgl, aiglx...

¿Que es todo eso de Beryl, Compiz, Xgl, aiglx que dicen por ahí, como que Linux lleva la delantera en eso del escritorio? Pues todo eso son los pasos iniciales del escritorio 3D, que más que pasos parecen saltos. Lo que más llama la atención y lo primero con lo que nos sorprendió Novell fue con el cubo. Aquí se ve, en esta imagen de la wikipedia.

Xubuntu


Bueno, para conseguir esto primero apareció Xgl, creado por Novell. Es un servidor gráfico OpenGL que funciona sobre el servidor normal X. Aparentemente es una sobrecarga, pero va rapidísimo. Otro posible inconveniente: si hay otro servidor, más memoria consumida. Pues si, es así. Además enlentece la visualización de vídeos. Esto no se nota en un ordenador sin powernow, speedstep o similares sistemas de rebaja de frecuencia del procesador para ahorrar energía, pero si está activado, se ve como se pone a tope al poner un vídeo o la tele funcionando con Xgl. Por lo demás, es espectacular. Se me olvidaba una pieza. Compiz. Sólo con el servidor no hacemos nada. Si usamos gnome, estaríamos usando el gestor de ventanas metacity, que sigue pensando que debajo tiene el Xserver normal, sin cambiar nada. Para sacar provecho de Xgl necesitamos usar compiz, el gestor de composición. Éste es el que se encarga de las decoraciones de las ventanas y demás. Y de mantener siempre dibujadas las ventanas, una de las mayores ventajas de usar estas cosas. El ver ventanas dibujadas a medias se acabó.

Mientras Novell trabaja en Xgl, RedHat no está cruzado de brazos sobre este tema. Aiglx. Un añadido al servidor X de siempre que trabaja con la composición, y que Xorg ha aceptado rápidamente.

Mientras tanto, la comunidad se ha movido bastante y se ha creado una escisión de Compiz: Beryl. Compiz lo sigue llevando Novell y Beryl lo lleva la comunidad. Compiz es de desarrollo estricto y Beryl ha empezado siendo "excesivamente" abierto, es decir, desorganizado y sin hoja de ruta, pero parece que las cosas se van centrando.

Beryl funciona sobre Xgl y aiglx. Detecta si usamos gnome o kde y sustituye el gestor de ventanas convenientemente. Antes había que tocar configuraciones y demás. Beryl lo hace por nosotros. Además, incluye muchas otras cosas que no tenía compiz.

Cosas de compiz: el cubo, las ventanas gelatinosas, el intercambiador de tareas "activo", transparencias, el exposé de mac, las ventanas ocupadas pasan a ser en b/n...
Cosas de beryl: muchísimo mas. Temas, variación del brillo según si la ventana está activa o no, animaciones en las ventanas al minimizar, maximizar, abrir, cerrar...

¿Con qué funciona cada cosa? Compiz con Xgl. Xgl en cualquier gráfica con aceleración 3D activada. Hay que instalar Xgl, cosa que no es directa, pero hay muchos manuales por la red. ¿Y beryl? es más flexible.
ATI. Primera opcion: Con el controlador libre de xorg funciona sin más, porque xorg ya lleva aiglx. Pero va bastante mal. A mi me reinicia las X cuando quiere, así que, segunda opción: Controlador propietario de ati con Xgl. Sin problemas, pero el controlador es bastante malo.
Nvidia. Beryl comprueba directamente si está instalado el controlador propietario y se olvida de lo demás. O sea, va de lujo. Con Xgl, sin xgl, como sea.
Intel. Controlador libre de xorg. Problemas con ciertas extensiones en ciertas tarjetas, tienen que corregirlo. Sólo se lo que pasó con mi experimento con la i810e. Por lo demás, se supone que el controlador libre es de intel, porque intel liberó sus controladores, pero quizá xorg no haya adoptado todavía aquéllos. En fin, investigaré un día de estos.

¿En que distribuciones lo tenemos? En todas. En unas más fácilmente que en otras, pero va mejorando. En la Suse, va de serie. Se coge el asistente, y se activa compiz sobre xgl. Más fácil imposible. Con ubuntu/debian, hay que añadir repositorios y seguir ciertos pasos en caso de usar Xgl. Sin xgl, sólo hay que instalar beryl con synaptic y ya funciona.