viernes, 12 de febrero de 2010

Configurar GRUB 2 en modo gráfico

Continuando con esta serie de entradas sobre personalización (ver referencia), ahora vamos a darle un nuevo aspecto a la primera pantalla que vemos según arrancamos el ordenador. Para ello, vamos a configurar GRUB 2 para que se muestre en modo gráfico, en vez del modo texto por defecto, y cambiaremos el fondo de pantalla utilizado en el menú de selección de sistema operativo.

Para iniciar GRUB 2 en modo gŕafico debemos insertar las siguientes lineas de código al principio del archivo «/boot/grub/grub.cfg». En el ejemplo, se configura la resolución de la pantalla con «gfxmode» en 1024x768 a 32 bits de color. Lo ideal es seleccionar la resolución nativa de nuestro monitor ya que esta será la que mejor se vea, sobre todo si tenéis pantallas LCD o TFT.

Mediante «background_image» se indica la imagen de fondo y antes con «insmod» se indica el modulo necesario para cargar el tipo de imagen (png para una imagen png, jpeg para una imagen jpeg, ...). La imagen de fondo lo ideal es que tenga el mismo tamaño que la resolución de la pantalla escogida sino sólo se mostrará lo que quepa de la parte superior izquierda de la imagen. El archivo unicode.pf2 se puede copiar desde /usr/share/grub/.

insmod font
if loadfont /grub/unicode.pf2 ; then
  set gfxmode="1024x768x32"
  insmod gfxterm
  insmod vbe
  terminal_output gfxterm
  if terminal_output gfxterm; then true ; else
    terminal gfxterm
  fi
fi
insmod png
background_image /grub/backgrounds/archlinux.png

También podemos hacer que una vez se selecciona el sistema operativo los mensajes de inicio se visualicen en una consola gráfica con framebuffer. Para esto debemos añadir el comando «gfxpayload» con la resolución del framebuffer antes del comando «linux». Al final nos quedará en cada menuentry algo como esto:

menuentry "Arch Linux" {
  gfxpayload=1024x768x24
  linux /vmlinuz26 root=/dev/disk/by-uuid/2b0bbed6-17f9-4fa4-b45e-991d17c26896 ro
  initrd /kernel26.img
}

Para consultar los modos de tu tarjeta gráfica puedes instalar el paquete hwinfo desde AUR (en Arch Linux) y ejecutar:

# hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
  [Created at bios.459]
  Unique ID: rdCR.y65X0qfNL88
  Hardware Class: framebuffer
  Model: "Sun Microsystems VirtualBox VBE Adapter"
  Vendor: "Sun Microsystems, Inc."
  Device: "VirtualBox VBE Adapter"
  SubVendor: "VirtualBox VBE BIOS http://www.virtualbox.org/"
  SubDevice: 
  Revision: "Sun VirtualBox Version 3.1.2"
  Memory Size: 64 MB
  Memory Range: 0xe0000000-0xe3ffffff (rw)
  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x030d: 320x200 (+640), 15 bits
  Mode 0x030e: 320x200 (+640), 16 bits
  Mode 0x030f: 320x200 (+960), 24 bits
  Mode 0x0310: 640x480 (+1280), 15 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x0312: 640x480 (+1920), 24 bits
  Mode 0x0313: 800x600 (+1600), 15 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+2400), 24 bits
  Mode 0x0316: 1024x768 (+2048), 15 bits
  Mode 0x0317: 1024x768 (+2048), 16 bits
  Mode 0x0318: 1024x768 (+3072), 24 bits
  Mode 0x0319: 1280x1024 (+2560), 15 bits
  Mode 0x031a: 1280x1024 (+2560), 16 bits
  Mode 0x031b: 1280x1024 (+3840), 24 bits
  Mode 0x0340: 320x200 (+1280), 24 bits
  Mode 0x0341: 640x400 (+2560), 24 bits
  Mode 0x0342: 640x480 (+2560), 24 bits
  Mode 0x0343: 800x600 (+3200), 24 bits
  Mode 0x0344: 1024x768 (+4096), 24 bits
  Mode 0x0345: 1280x1024 (+5120), 24 bits
  Mode 0x0346: 320x200 (+320), 8 bits
  Mode 0x0347: 1600x1200 (+6400), 24 bits
  Mode 0x0348: 1152x864 (+1152), 8 bits
  Mode 0x0349: 1152x864 (+2304), 15 bits
  Mode 0x034a: 1152x864 (+2304), 16 bits
  Mode 0x034b: 1152x864 (+3456), 24 bits
  Mode 0x034c: 1152x864 (+4608), 24 bits
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Realizando estas modificaciones a nuestro inicio del sistema conseguimos que GRUB 2 y la consola con los mensajes del inicio del sistema se vean de esta forma:


Si te ha servido de ayuda deja un comentario y si te es posible un enlace con una captura de pantalla mostrando como se ve ahora tu inicio del sistema.


Actualización (13-06-2010): La forma de configurar GRUB 2 ha cambiado desde hace un tiempo consulta el apartado Configuration en la wiki de Arch sobre GRUB2 para ver como se hace ahora, que por lo que veo es bastante más sencillo, automático y menos propenso a errores.

Referencia:
Cambiar el fondo de pantalla de GDM
Cambiar el fondo del diálogo de bloqueo en GNOME
http://foro.archlinux.cl/viewtopic.php?id=12