Algo de Linux: junio 2012

viernes, 22 de junio de 2012

Reproducir videos como salvapantallas en Gnome con Debian Squeeze

Últimamente, a ratos, he estado probando sistemas gestores de pantallas informativas. ¿Y eso qué es? Bueno, básicamente son aplicaciones que de un modo u otro nos permiten mostrar una serie de noticias breves de forma rotativa e ininterrumpida en pantallas de TV. Ésto se utiliza, por ejemplo, en universidades, puntos de información turística, etc...

Uno de los proyectos que he probado (Oculus) genera un video mpg que se transmite a una serie de equipos básicos que lo muestran de forma continua. Al principio no me gustaba mucho la idea de que fuera un vídeo, pero luego pensé que podía ser interesante y resultarme verdaderamente útil.

Bueno, pues ahora que disponía de un servidor de gestión de pantallas informativas, me planteé cómo reproducir el vídeo en los clientes de forma ininterrumpida con mplayer desde la línea de comandos. Una vez conseguido, ya tenía completo el sistema, pero se me ocurrió añadir algo más para completar el puzzle.

Aparte de reproducir el vídeo en una pantalla dedicada, pensé que sería interesante mostrar las noticias como salvapantallas en ciertos equipos. Vamos a ver cómo podemos conseguir ésto.

Antes de nada, decir que para lograrlo utilicé información de las siguientes fuentes:
Primero.- Instalamos mplayer, si no lo tenemos instalado aún:

# apt-get install mplayer

Segundo.- Copiamos el script movie.sh de http://duck-wrath.blogspot.com.es que permite reproducir los vídeos de una carpeta, controlando el cierre de procesos de mplayer, algo que me pareció importante:

#! /bin/bash 
# Movie screensaver code based on 
# http://ubuntuforums.org/showthread.php?t=1368224 
# modified January 2012 
# /usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
## path to video 

### USER MODIFY ##### 
# Modify this to add the directories with the videos you want 

# played. 
 

VIDEO=( "/usr/share/salvapantallas/*" ) 

##################### 
 

if [ ! -z $XSCREENSAVER_WINDOW ]; then 
# allow this script to run as a standalone without gnome-screensaver 
      WINDOW="-wid $XSCREENSAVER_WINDOW" 
fi 

## setup MPlayer aruments, remove -nosound if you want the video 
## to play sound. If you have to specify the video driver to use 
## then add that to the list 
 

MPLAYERARGS="-nosound -nolirc $WINDOW -nostop-xscreensaver -fs -really-quiet -shuffle" 

## we handle SIGTERM and SIGINT here to kill the child 
## if active then quit. 
function ex { 
  pkill -TERM -P $CPID mplayer 
  kill -s 9 $CPID 
  exit 0 


trap ex SIGINT SIGTERM 

mplayer $MPLAYERARGS -loop 0 ${VIDEO[*]} < /dev/null & 

CPID=$! 
wait $CPID


En este script tan sólo tenemos que modificar la variable VIDEO con la ruta donde almacenemos nuestros videos.

Tercero.- Creamos un fichero /usr/share/applications/screensavers/movie.desktop con el siguiente contenido:

[Desktop Entry]
Name=Movie
Exec=/usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
TryExec=/usr/lib/gnome-screensaver/gnome-screensaver/movie.sh
Comment=Plays Videos
StartupNotify=false
Terminal=false
Type=Application
Categories=GNOME;Screensaver;
OnlyShowIn=GNOME;

Este fichero nos va a servir para que a la hora de elegir salvapantallas se nos muestre una opción más (movie.sh) que nos va a permitir reproducir los vídeos del directorio /usr/share/salvapantallas/.

Y listo. Si ahora abrimos el menú de gnome y hacemos clic en  Sistema -> Preferencias -> Salvapantallas, podremos elegir movie.sh para que se reproduzcan de forma continua los vídeos.

sábado, 16 de junio de 2012

Restaurar particiones de clonezilla desde una imagen de disco

Lo más habitual con clonezilla es restaurar discos completos, pero, en ocasiones, nos interesa restaurar una sola partición.  Pues bien, si tenemos una imagen de un disco completo, clonezilla nos va a permitir usarla para restaurar una o varias particiones de dicha imagen.

Si además, queremos que cualquier usuario pueda realizar el proceso, podemos facilitarle la tarea por ejemplo:
  • Añadiendo una entrada al menú de arranque de syslinux de un pendrive.
  • O añadiendo una entrada al menú de arranque de grub si queremos ofrecer la posibilidad de autorestaurar desde el propio equipo.
Veamos cómo preparar una entrada de autorestauración en el fichero de configuración syslinux.cfg con un ejemplo:

label Restaurar partición sda2
  # MENU DEFAULT
  # MENU HIDE
  MENU LABEL Restaurar partición sda2
  # MENU PASSWD
  kernel /live-hd/vmlinuz
  append initrd=/live-hd/initrd.img boot=live config live-media-path=/live-hd noswap nolocales edd=on nomodeset noprompt ocs_live_run="ocs-live-restore" ocs_live_extra_param="-c -k -p true restoreparts miniportatil-secundaria-final-20120612 sda2"  ocs_live_keymap="NONE" ocs_live_batch="yes" ocs_lang="es_ES.UTF-8" vga=788 ip=frommedia  nosplash
  TEXT HELP
  * Autorestaurar partición sda2
  ENDTEXT
 

Con la opción MENU LABEL indicamos lo que se va a mostrar en el menú:

MENU LABEL Restaurar partición sda2


Así, cuando arranque un equipo con mi pendrive usb, habrá una opción en el menú que diga "Restaurar partición sda2".

Como podéis ver, por las opciones que he resaltado en color rojo, tengo el sistema de clonezilla dentro del directorio live-hd. Eso es tan sólo porque también tengo drbl en el mismo pendrive.

En cuanto a las opciones de autorestauración que he usado, son las siguientes:
  • ocs_live_run="ocs-live-restore"
  • ocs_live_extra_param="-c -k -p true restoreparts miniportatil-secundaria-final-20120612 sda2"
  • ocs_live_batch="yes"
La opción por defecto de ocs_live_run es "ocs-live-general", que nos permite salvar o restaurar. Como queremos automatizar la restauración cambiamos esta opción por "ocs-live-restore".

La opción "ocs_live_extra_param" nos permite pasar parámetros al comando indicado en ocs_live_run. Estos parámetros le van a indicar a ocs-live-restore qué es lo que tiene que hacer:

ocs_live_extra_param=" -c -k -p true restoreparts miniportatil-secundaria-final-20120612 sda2"

Veamos de forma detallada para qué sirve cada opción:
  • -c: Sirve para que el cliente pida confirmación al usuario antes de clonar. Si no queremos que pida confirmación y clone directamente, omitimos esta opción.
  • -k: No crear tabla de particiones en el sector de arranque de la máquina destino.
  • -p true: Espera a que el usuario realice alguna acción una vez ha terminado el proceso de clonación.
  • restoreparts miniportatil-secundaria-final-20120612 sda2: Le dice a clonezilla que realice una restauración de la partición sda2 que hay en la imagen miniportatil-secundaria-final-20120612. 
Por último, la opción ocs_live_batch="yes" nos permite indicarle a clonezilla que haga la restauración en modo batch.

viernes, 15 de junio de 2012

Reproducir video con mplayer de forma ininterrumpida desde la línea de comandos

He estado probando sistemas de pantallas informativas que me permitan mostrar informaciones del centro de forma ininterrumpida.  
Uno de los que he probado, monta un servidor en el que se introducen las noticias mediante un interfaz web. 

Al mismo tiempo, con una serie de tareas programadas en el cron, se crea un video mpg en el que se incluyen las noticias vigentes. Este video se muestra de forma continua en las pantallas. 

Es interesante automatizar de algún modo el procedimiento de visualización del video de noticias en las pantallas, por ejemplo, haciendo uso de mplayer de forma que se reproduzca dicho video de forma continua. Ésto es algo sencillo de realizar si configuramos tres parámetros en los ficheros de configuración de mplayer.

Podemos añadir dichos parámetros en los siguientes ficheros:
  • /etc/mplayer/mplayer.conf: Si queremos aplicar la configuración para todos los usuarios.
  • ~/.mplayer/config: Si queremos aplicar la configuración tan sólo para algún usuario o usuarios en concreto.
Los parámetros de los que hablo son los siguientes:

$ cat .mplayer/config
# Write your default config options here!

# Mantener mplayer en primer plano
ontop="1"

# Reproducir en pantalla completa
fs="yes"

# Reproducir el video de forma continua sin parar
loop="0"

sábado, 9 de junio de 2012

Wine 1.4 para Debian Squeeze

Por si a alguien le interesa, aquí dejo un par de enlaces para descargar un paquete de wine 1.4 para Debian Squeeze.
  • La versión de wine 1.4 de 32 bits, creado por Jay Daniels mediante checkinstall: wine_1.4-1_i386.deb

  • La versión de wine 1.4 de 64 bits, creado por mi también usando checkinstall: wine_1.4-1_amd64.deb