jueves, 18 de junio de 2015

Plymouth en Debian GNU/Linux



Plymouth es una aplicación de arranque de sistema en modo gráfico que despliega una animación mientras el computador se inicia. Cuyo fin es lograr que "La experiencia de arranque sea sin parpadeos, sutil y brillante".

Plymouth inicializa en el proceso de booteo (incluso antes de que el sistema de archivos esté montado) que proporcional una animación gráfica de booteo mientas el proceso de inicio ocurre en segundo plano.

Esta diseñado para trabajar en sistemas que tengan controladores DRM modesetting. La idea es que el proceso de booteo se configure de forma nativa el modesetting ya que Plymouth usa este modo el cual debe mantenerse durante todo el proceso de booteo incluso después de iniciar el servidor gráfico X. El máximo propósito es evitar los parpadeos durante el proceso de inicio.

Pre-instalación: 

Es importante saber si los controladores gráficos que utilizamos en el sistema soportan el modesetting, para esto debemos a la página web del controlador libre o a la página del fabricante del Hardware si es un controlador propietario. Los controladores libres de las tarjetas gráficas nVidia, AMD Graphics e Intel soportan modesetting.

Instalación con Controladores Libres 

Lo primero que hacemos es instalar Plymouth junto a sus temas.

sudo aptitude install plumouth plymouth-themes-all
Es necesario instalar además las librerías DRM de nuestro controlador gráfico:

Para controladores gráficos Intel
sudo aptitude install libdrm-intel1
Para controladores gráficos libres Nouveau (nVidia)
sudo aptitude install libdrm-nouveau1
Para controladores gráficos AMD Graphics
sudo aptitude install libdrm-redeon1

Configuración 
Editar el archivo de configuración /etc/initramfs-tools/modules y agregar las siguientes líneas para agregar el modesetting.
sudo nano /etc/initramfs-tools/modules
Para controladores gráficos Intel.
#KMS
intel_agp drm i915 modeset=1
Para controladores gráficos libres Nouveau (nVidia).
#KMS
drm nouveau modeset=1
Nota 1: En el caso de las tarjetas AMD Graphics debería funcionar sin problemas.
Nota 2: Una vez hacemos los cambios y editamos un archivo con el editor nano presionamos la tecla F2 para guardar los cambios.
Se debe configurar su bootloader para que cargue el bootsplash e incluso configurar la resolución.

Configuración de Grub2 

Editamos el archivo /etc/default/grub
sudo nano /etc/default/grub
Para configurar una resolución óptima, buscamos la línea #GRUB_GFXMODE=640x480 y la cambiamos por algo así:
GRUB_GFXMODE=1024x768
Esto es en el caso de una pantalla estándar de 15 pulgadas. Las netbooks por lo general tienen una resolución de 1024x576 o 1024x600, por ejemplo:
GRUB_GFXMODE=1024x576
Podemos indicar la profundidad del color agregándolo al final de la línea, por ejemplo:
GRUB_GFXMODE=1024x576x32
Buscamos además en el mismo archivo la línea GRUB_CMDLINE_LINUX_DEFAULT="quiet" y le indicamos al Grub2 como el kernel Linux iniciará a Plymouth, modificando la línea así:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Guardamos los cambios.

Actualizar el Grub2:
sudo update-grub2
Configuración de BURG 
Para aquellos que tienen instalado BURG. Editar el archivo /etc/default/burg para configurar de forma correcta la resolución, buscamos la línea #GRUB_GFXMODE=640x480 y cambiamos por algo así:
GRUB_GFXMODE=1024x768
Es muy parecida a configurar Grub2. Las netbooks por lo general tienen una resolución de 1024x576 o 1024x600, por ejemplo:
GRUB_GFXMODE=1024x576
También podemos indicar la profundidad del color agregándolo al final de la línea:
GRUB_GFXMODE=1024x576x32
Buscamos la línea GRUB_CMDLINE_LINUX_DEFAULT="quiet" y hacemos que el BURG le indique al kernel Linux que como Plymouth que debe iniciarse:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Guardamos los cambios.

Actualizamos BURG:
sudo update-burg

Instalación con Controladores NO LIBRES

Si contamos con Tarjetas de video con controladores NO LIBRES o queremos utilizar dichos controladores los pasos a seguir son diferentes a utilizar controladores LIBRES.

Lo primero que debemos hacer es instalar Plymouth como arriba esta explicado pero sin instalar las librerías DRM ni modificar el archivo /etc/initramfs-tools/modules como esta arriba y luego vamos a instalar el paquete v86d
sudo aptitude install v86d
Luego editamos /etc/default/grub (si utilizas BURG cambia grub por burg) con también arriba esta explicado pero aquí haremos algunos cambios.
nano /etc/default/grub
Busca la linea que dice.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Y cambiadla por (sustituimos la resolución por una adecuada).
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1360x768-24,mtrr=3,scroll=ywrap"
Solo para BURG.
Ponemos # delante de GRUB_GFXMODE=saved
Guardamos los cambios.

Editamos el archivo /etc/initramfs-tools/modules.
sudo nano /etc/initramfs-tools/modules
Agregamos la siguiente linea.
uvesafb mode_option=1280x1024-24 mtrr=3 scroll=ywrap
Guardamos los cambios.

Nota: la resolución que se pone aquí debe ser la misma puesta en los archivos /etc/default/grub en caso de usar Grub2 o /etc/default/burg en caso de usar BURG.

Para que todo se vea correctamente escribimos lo siguiente en la terminal.
echo FRAMEBUFFER=y | tee /etc/initramfs-tools/conf.d/splash
Si tenemos Grub2 lo actualizamos.
sudo update-grub
Si en cambio tenemos BURG, actualizamos este.
sudo update-burg

Configurar el tema

Ejecutamos como administrador los siguientes comandos:
Para listar los temas disponibles.
sudo plymouth-set-default-theme --list
Para cambiar el tema, donde dice NOMBREDELTEMA reemplazar con los nombres que aparecen con el parámetro --list
sudo plymouth-set-default-theme NOMBREDELTEMA
Por ultimo aplicamos los cambios.
sudo update-initramfs -u
Reiniciar la computadora y Listo

Para poder ver el tema sin tener que reiniciar el sistema solo tenemos que instalar el siguiente paquete:
sudo aptitude install plymouth-x11
Crearemos un script que al ejecutarlo nos mostrará el tema elegido.
nano ply.sh
Copiamos lo siguiente dentro el archivo ply.sh

#!/bin/bash  
 ## Preview Plymouth Splash ##  
 ##   by _khAttAm_    ##  
 ##  www.khattam.info   ##  
 ##  License: GPL v3   ##  
 chk_root () {  
  if [ ! $( id -u ) -eq 0 ]; then  
   echo Must be run as root  
   exit  
  fi  
 }  
 chk_root  
 DURATION=$1  
 if [ $# -ne 1 ]; then  
      DURATION=5  
 fi  
 plymouthd; plymouth --show-splash ; for ((I=0; I<$DURATION; I++)); do plymouth --update=test$I ; sleep 1; done; plymouth quit 

Guardamos los cambios presionando la tecla F2

Los temas son los siguientes: 
fade-in
 

glow


joy
 
lines
 
script
 
text
 
spinner
 
spinfinity
 
spacefun
 
solar
 
tribal