226

Instalando Xgl en Debian

NEW: How To Install XGL on Debian Etch by sonique.

neu: Xgl unter Debian.

El domingo conseguí hacer funcionar el servidor gráfico Xgl en mi Debian Testing. Lo logré ensuciando un poco el sistema, ya que aún no existe un paquete compilado para esta distribución, y tuve que usar binarios de otras distribuciones. ¡Pero el caso es que lo conseguí, y además es estable!

En principio no había pensado hacer una guía y no me apunté todos los pasos que seguí. Pero algunos amigos me han convencido para que escriba una ayuda, así que si veis que me he saltado algún paso avisarme y actualizaré la guía.

Preámbulos

Hace unas semanas Novell liberó el servidor gráfico Xgl, que junto con el gestor de ventanas Compiz nuestro sistema hará efectos muy atractivos y elegantes.

A continuación os invito a ver las siguientes direcciones donde se muestran estos efectos:

Para generar estos efectos se usa la CPU de la tarjeta gráfica así que se recomienda una gráfica decente y preferiblemente Nvidia ya que tiene mejores drivers en Linux. Yo dispongo de una Geforce 6600GT y los gráficos funcionan bien sin consumir casi CPU principal.

Instalación

Ésta guía me ha ayudado mucho para instalar el Xgl pero se centra en Ubuntu y yo tengo una Debian. Para SuSE hay guías oficiales.

Pues lo primero que debemos hacer es bajarnos los RPM’s de xgl, compiz, libsvg y libsvg-cairo desde esta página: http://en.opensuse.org/Xgl http://en.opensuse.org/Using_Xgl_on_SUSE_Linux

Una vez que tenemos los RPM’s citados abrimos una consola de texto en nuestra Debian y tecleamos:

wunslov@debian:~$ su
Password:
debian:/home/wunslov# apt-get install alien
......
debian:/home/wunslov# alien xgl*.rpm compiz*.rpm libsvg*.rpm
......

Y obtendremos sendos .deb listos para instalar:

debian:/home/wunslov# dpkg -i xgl*deb compiz*.deb libsvg*.deb

Ahora tendremos el servidor Xgl y el gestor de ventanas Compiz listo en nuestro sistema pero aún nos quedarán instalar las dependencias:

debian:/home/wunslov# apt-get install libdrm2 libpng3 libxdamage1 libxcomposite1

Por último, y no menos importante, toca hacer el hack que ensuciará un poco el sistema. Instalaremos las librerías glitz, libfontenc y libxfont1 que como no están en el repositorio de Debian las he cogido a Ubuntu y las he comprimido en un fichero. Primero bajároslo y:

debian:/home/wunslov# cd /usr/lib
debian:/home/wunslov# tar xfvz (ruta donde hemos guardado el fichero)/xgl-libs.tgz

Con esto ya tendremos todo lo necesario para arrancar el servidor gráfico. Si queremos probarlo, escribir el siguiente script con vuestro editor favorito:

#!/bin/bash
Xgl -accel glx:pbuffer -accel xv:fbo:1 & sleep 5 ; DISPLAY=:1 gnome-session & sleep 30 ; DISPLAY=:1 compiz --replace gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu & DISPLAY=:1 gnome-window-decorator

Y luego desde el modo texto, fuera del modo gráfico y con root:

debian:/home/wunslov# /etc/init.d/gdm stop
debian:/home/wunslov# sh (script que hemos creado)

Y os debería aparecer el entorno gráfico y después de unos 30 minutos tendríais las animaciones activadas.

Si no carga, escribirme un comentario porque seguramente haya olvidado algún paso :_(

Configuración

Para cargar automáticamente el servidor Xgl al hacer el login, lo tenemos muy pero que muy fácil; tan sólo necesitaremos entrar en un terminal de texto e introducir lo siguiente:

wunslov@debian:~$ su
Password:
debian:/home/wunslov# mv /etc/X11/X /etc/X11/X.old
debian:/home/wunslov# ln -s /usr/X11R6/bin/Xgl /etc/X11/X

Con esto cargaremos el servidor Xgl siempre, ahora si queremos activar los efectos gráficos accederemos con nuestro usuario a Escritorio->Preferencia->Sesiones, y en Programas al inicio añadimos: “compiz –replace decoration wobbly fade minimize cube rotate zoom scale move resize place menu switcher” con prioridad 80, “gnome-window-decorator” con 90 y “xmodmap /usr/share/xmodmap/xmodmap.es” con 99 para cargar el teclado español.

NOTA: en compiz también se puede cargar al principio el módulo gconf para modificar los valores por defecto de las animaciones, pero a mi no me funciona así que no lo cargo, vosotros podéis probarlo de las dos formas.

Las combinaciones de teclas las podéis encontrar en: http://en.opensuse.org/Compiz

Problemas

He detectado algunos problemas:

El teclado sólo funciona con el modo de 101 teclas, no se si es debido a que la versión compilada de Xgl sólo esté configurada para los teclados ingleses.

El servidor gráfico no funciona con las aplicaciones OpenGL, como por ejemplo los protectores de pantalla (a mi se me reinicia cada vez que intenta cargar alguno), así que desactivarlos o desinatalarlos: dpkg –remove xscreensaver-gl.

La guía puede ser incompleta, si se me ha olvidado algo comentármelo y haré memoria.

NOTA: he considerado que hay está gnome instalado pero también funciona con KDE.

Actualización 23/02/2006: Las páginas de openSUSE han cambiado y tienen nuevas versiones de compiz y xgl. Parece que han solucionado el problema del teclado y ¡ya funcionan las 105 teclas y el OpenGL!. También ha mejorado el rendimiento, ahora las ventanas se arrastran con mayor suavidad, como se muestra en los vídeos.

Actualización 23/02/2006: Os recomiendo ver el siguiente vídeo. Por cierto, estoy impresionado la cantidad de visitas que estoy recibiendo, espero serviros de ayuda 🙂

Actualización 26/02/2006: Para que funcionen algunos efectos se requiere también la librería libpng3: apt-get install libpng3. Si tenéis algún problema ejecutar el comando: ldd /usr/lib/compiz/libcube.so (o con el módulo que os da problemas) e instalar las librerías que aparecen con el texto “not found”.

Actualización 02/03/2006: Hay nuevas versiones de Xgl y Compiz en el wiki de opensuse, y he modificado algunas partes del documento para solucionar los problemas que he encontrado al instalarlo en el portátil. Para que funcione el teclado español ejecutar el comando: “xmodmap /usr/share/xmodmap/xmodmap.es” con prioridad 99 en gnome-session (obtenido de esta otra guía).

Actualización 25/03/2006: Sonique ha creado una guía en inglés basándonse en esta: How To Install XGL on Debian Etch by sonique.

Actualización 02/04/2006: He encontrado una traducción en alemán de esta guía: Xgl unter Debian.

Actualización 13/08/2006: Después de muchos intentos, por fín he conseguido configurar XGL en Ubuntu Dapper con una NVIDIA.

0

De DIVX a DVD

Preámbulos

Esta vez voy a hablaros de cómo pasar una película en DIVX a DVD. Ésto puede resultar inútil para la mayoría de gente pero tiene su utilidad cuando intentas reproducir películas codificadas en DIVX en aparatos que sólo reproducen DVD.

Lo primero que debemos hacer es instalar las siguientes herramientas:

  • ffmpeg: permite codificar la película en formato MPEG-2.
  • dvdauthor: crea los archivos necesarios para que la película pueda ser reproducida en el lector de DVDs

Instalación

SuSE

Para instalar los programas necesitas tener configurado los repositorios que indiqué en el artículo “SUSE: Repositorios para Yast (II)”.

Una vez tenemos los repositorios, accedemos a Yast y buscamos las herramientas “ffmpeg” y “dvdauthor” y las instalamos.

Debian

Abrimos una consola de texto y ejecutamos lo siguiente:

wunslov@debian:~$ su
Password:
debian:/home/wunslov# apt-get install dvdauthor ffmpeg

Esto nos instalará las herramientas que vamos a necesitar. También podremos utilizar la herramienta gráfica Synaptic para instalarlas.

De DIVX a MPEG-2

El primer paso que tenemos que hacer será convertir nuestra película en formato MPEG-2 que es el utilizado para crear los DVD’s.

Para realizar la conversión ejecutaremos lo siguiente desde una consola de texto:

ffmpeg -i <origen.avi> -target pal-dvd <destino.mpg>

Esto convertirá la película guardada en el fichero “origen.avi” a otra en MPEG-2 (usando la resolución PAL-DVD) en el fichero “destino.mpg”.

Un ejemplo podría ser el siguiente:

wunslov@debian:~$ ffmpeg -i ORIGEN.avi -target pal-dvd DESTINO.mpg
ffmpeg version CVS, build 3276800, Copyright (c) 2000-2004 Fabrice Bellard
configuration:  --build i486-linux-gnu --enable-gpl --enable-pp --enable-zlib --enable-vorbis --enable-libogg --enable-theora --enable-a52 --enable-dts --enab le-dc1394 --enable-libgsm --disable-debug --prefix=/usr
built on Nov 19 2005 00:08:41, gcc: 4.0.3 20051111 (prerelease) (Debian 4.0.2- 4)
Input #0, avi, from 'ORIGEN.avi':
Duration: 01:38:51.0, start: 0.000000, bitrate: 989 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 624x320, 25.00 fps
Stream #0.1: Audio: mp3, 48000 Hz, stereo, 128 kb/s
Output #0, dvd, to 'DESTINO.mpg':
Stream #0.0: Video: mpeg2video, yuv420p, 720x576, 25.00 fps, q=2-31, 6000 kb/s
Stream #0.1: Audio: ac3, 48000 Hz, stereo, 448 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
[dvd @ 0x82c4c80]buffer underflowB time=4051.8 bitrate=3202.6kbits/s
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
[dvd @ 0x82c4c80]buffer underflow
frame=148275 q=0.0 Lsize= 2375660kB time=5931.0 bitrate=3281.3kbits/s
video:1991809kB audio:324350kB global headers:0kB muxing overhead 2.568924%

Creando el DVD

Una vez que tengamos la película en MPEG-2 tenemos que crear los archivos necesarios para que el lector DVD “lo entienda”.

Primero tenemos que crear un directorio que será el que usaremos como referencia para nuestro DVD:

mkdir dvd

Estos ficheros se crearán automáticamente con la utilidad dvdauthor usando los siguientes parámetros:

dvdauthor -o dvd/ -t <ORIGEN.mpg>
dvdauthor -o dvd/ -T

Esto nos creará en el directorio DVD los subdirectorios AUDIO_TS y VIDEO_TS.

Un ejemplo podría ser el siguiente:

wunslov@debian:~$ mkdir dvd
wunslov@debian:~$ dvdauthor -o dvd/ -t PELICULA.mpg
DVDAuthor::dvdauthor, version 0.6.11.
Build options: gnugetopt magick iconv freetype
Send bugs to <dvdauthor-users@lists.sourceforge.net>
INFO: dvdauthor creating VTS
STAT: Picking VTS 01
STAT: Processing PELICULA.mpg...
STAT: VOBU 9664 at 2319MB, 1 PGCS
INFO: Video pts = 0.500 .. 5931.500
INFO: Audio[0] pts = 0.500 .. 5931.476
STAT: VOBU 9665 at 2319MB, 1 PGCS
INFO: Generating VTS with the following video attributes:
INFO: MPEG version: mpeg2
INFO: TV standard: pal
INFO: Aspect ratio: 16:9
INFO: Resolution: 720x576
INFO: Audio ch 0 format: ac3/2ch, 48khz drc
STAT: fixed 9665 VOBUS
wunslov@debian:~$ dvdauthor -o dvd/ -T
DVDAuthor::dvdauthor, version 0.6.11.
Build options: gnugetopt magick iconv freetype
Send bugs to <dvdauthor-users@lists.sourceforge.net>
INFO: dvdauthor creating table of contents
INFO: Scanning dvd/VIDEO_TS/VTS_01_0.IFO

Grabando el DVD

Para grabar el CD usaremos la herramienta K3b, crearemos un “Nuevo proyecto de vídeo DVD” y arrastraremos todo el contenido del directorio dvd/VIDEO_TS al directorio VIDEO_TS del vídeo DVD.

Por último grabaremos el DVD y ya podremos reproducir nuestra película en lectores de DVD.

Estas navidades os recomiendo ver Saw, porque es la película que más me ha gustado de este año que está apunto de finalizar.

¡Felices fiestas a todos y a todas! ¡Y próspero año nuevo!

0

Mejorando la velocidad de transferencia en NFS

Network File System es un sistema de archivos distribuido para una red local entre máquinas *NIX. Permite conectar, o compartir, directorios entre varios ordenadores.

NFS se parece mucho a lo que implementa Microsoft en clientes Windows para compartir carpetas, en Windows se utiliza lo que se denomina SMB que permite compartir archivos e impresoras.

He dicho se “parece” porque NFS supera con creces a SMB. La característica más notable para el usuario, es su alta velocidad de transferencia.

Una vez introducido esto, decidí compartir unas carpetas entre el PC y el portátil, ambas máquinas funcionando con una Debian. Para hacer esta tarea tenía dos opciones, usar Samba (la implementación libre de SMB) o NFS.

El principal uso que le iba a dar era la transferencia de ficheros grandes de una máquina a otra, así que opté por usar NFS ya que consigue una transferencia mayor.

Una vez configurado todo, a base de buscar con google, hice una prueba de transferencia y el tiempo empleado en transferir un fichero fue muy grande. La velocidad era alta pero cada minuto se solía detener durante un rato lo que reducía la media.

Así que seguí buscando por google hasta dar con la solución.

Resulta que el NFS utiliza por defecto el protocolo UDP que es óptimo para transmitir ficheros pequeños pero no para los grandes; así que según leí recomendaban usar el NFS sobre TCP.

Para ello sólo tuve que modificar la línea del FSTAB del cliente:

server:/usr/local/pub /mnt/nfs nfs auto,rsize=8192,wsize=8192,timeo=14,intr,tcp

Con este cambio puedo copiar ficheros a la máxima velocidad que da la red.

Más información aquí.