Displaying boot messages on top of my boot image

Asked by mightymouse2045

Hi,

OS = Grub2 / Ubuntu Lucid 10.04

I want to have all the default boot messages scrolling on my screen on top of my background image.

I have setup grub2 to display in 1920x1080x24bit, and have my image 1_grub_background.png (1920x1080x24bit) displaying properly.

With the 'set gfxpayload=keep' in my grub.cfg file the resolution and background persist until just before the login window loads, however no boot messages are displayed until right before the login window gets loaded BUT not over my background image. The X11 or nvidia drivers kick in and take over from the framebuffer and that is when I see a few messages.

I have removed 'quiet splash' altogether from the grub config, but this does nothing.

The only way I can get all the default messages scrolling is to remove the gfxpayload=keep line - but then the background image disappears straight away and the text scrolling is in 1280x1024 resolution not 1920x1080.

What I have seen in the past and examples online is the grub boot background image persisted and the boot messages scroll over this image. This is what I want to do but for the life of me cannot work out how to do it.

my grub.cfg below:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 967ebf9f-0031-4cbf-bab1-95fd2d0dba4e
if loadfont /boot/grub/fonts/myfont.pf2 ; then
set gfxmode=1920x1080x24
set gfxpayload=keep
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 967ebf9f-0031-4cbf-bab1-95fd2d0dba4e
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 967ebf9f-0031-4cbf-bab1-95fd2d0dba4e
insmod png
if background_image /usr/share/backgrounds/1_grub_image.png ; then
  set color_normal=white/black
  set color_highlight=red/black
else
  set menu_color_normal=white/black
  set menu_color_highlight=black/light-gray
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set 967ebf9f-0031-4cbf-bab1-95fd2d0dba4e
    linux /boot/vmlinuz-2.6.32-24-generic root=UUID=967ebf9f-0031-4cbf-bab1-95fd2d0dba4e ro
    initrd /boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set 967ebf9f-0031-4cbf-bab1-95fd2d0dba4e
    echo 'Loading Linux 2.6.32-24-generic ...'
    linux /boot/vmlinuz-2.6.32-24-generic root=UUID=967ebf9f-0031-4cbf-bab1-95fd2d0dba4e ro single
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-2.6.32-24-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu grub2 Edit question
Assignee:
No assignee Edit question
Solved by:
mightymouse2045
Solved:
Last query:
Last reply:
Revision history for this message
actionparsnip (andrew-woodhead666) said :
#1

After you remove quiet splash you must run:

sudo update-grub

to apply the setting

Revision history for this message
mightymouse2045 (eagleeyes426) said :
#2

Yes I have run this already of course :) That sort of goes without saying.

Revision history for this message
actionparsnip (andrew-woodhead666) said :
#3

The range of abilities on here is VAST so no, not of course at all.

If you see your boot splash, you can press ESC and see the messages.

Revision history for this message
Sam_ (and-sam) said :
#4

First off
> my grub.cfg below:
# DO NOT EDIT THIS FILE

No need to fiddle around with grub.cfg, it won't survive the next kernel update anyway.
If at all, /etc/default/grub and files in /etc/grub.d are the correct address.
After editing any of those update-grub will introduce it to grub.cfg.
e.g. this is what /etc/default/grub says:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
https://wiki.ubuntu.com/Grub2#grub.cfg%20%28/boot/grub/grub.cfg%29

However your case is totally aside from grub.cfg
> boot messages scrolling on my screen on top of my background image.

What you mean is manipulation of plymouth.
You'd like to have plymouth splash with messages.
Background.
Reference section: Summary
-quote on-
Lucid Lynx boot experience, changing from using usplash to plymouth to provide the graphical splash screen while waiting for the boot to complete.
-quote off-
and section: Plymouth packaging
https://wiki.ubuntu.com/FoundationsTeam/LucidBootExperience

There is a nontrivial howto.
http://joekuan.wordpress.com/2010/08/05/plymouth-create-your-own-splash-screen-with-scrolling-boot-messages/

Side notes.
https://bugs.launchpad.net/ubuntu/+source/boot/+bug/34165/comments/11
http://ubuntu.stackexchange.com/questions/248/how-can-i-show-or-hide-boot-messages-when-ubuntu-starts

Beside, example workaround regarding high resolution of plymouth.
http://idyllictux.wordpress.com/2010/04/26/lucidubuntu-10-04-high-resolution-plymouth-virtual-terminal-for-atinvidia-cards-with-proprietaryrestricted-driver/

Or search answers and web, subject plymouth+resolution gives lots of results.

Revision history for this message
Sam_ (and-sam) said :
#5
Revision history for this message
mightymouse2045 (eagleeyes426) said :
#6

.Ok granted not so obvious then granted. I wasn't having a go at you actionparsnip.

Just to clear things up I DO NOT edit grub.cfg directly. This grub.cfg is built after editing:

/etc/default/grub - remove the quiet splash, set the font, and gfxmode of the terminal
/etc/grub.d/00_header - to enable the 'set gfxpayload=keep'
/etc/grub/05_debian_theme - to set the background image and change the font colours
/etc/grub.d/50_ubuntu - Custom menu entry to boot from Ubuntu ISO image

Then I run sudo update-grub and viola the above grub.cfg file is 'automatically' built.

Actionparsnip - I have un-installed all the plymouth theme's including the text ones. So I am not loading a splash screen at all. The background picture is persisted from when it is loaded by the grub2 menu. This picture stays on screen right up to about 2 seconds before the x11 session is loaded and the login screen is then displayed.

SAM - Thanks for all that info I am just going through it now and will get back here with a response if (hopefully) something from all that information gives me an answer. Looking through 2 of the articles just quickly I think you have put me onto something. SO we will see :)

Cheers!

Revision history for this message
mightymouse2045 (eagleeyes426) said :
#7

http://www.youtube.com/watch?v=dWHUkWnOoi4

Thanks sam you links lead me to the solution

t=`mktemp`;echo {S,F}{o,r}{ft,ci}{e,wa}{r,e,t}{e,y}|tee >(cut -d' ' -f88|tr -d 'yic' >>$t)|tee >(cut -d' ' -f7 >>$t)|cut -d ' ' -f18 >>$t;v=`<$t head -n1`;printf "\n%s %s, %s %s.\n\n" $v `<$t head -n2|tail -n1` $v `<$t tail -n1`;rm -f $t;unset t

Revision history for this message
Sam_ (and-sam) said :
#8

Thanks for the link, though I can't watch it. (german local)
<This video contains content from UMG. It is not available in your country.>