Boot splash screen resolution in Lucid Lynx

Asked by Rune K. Svendsen on 2010-04-07

How do I change the resolution of the boot splash screen in Ubuntu Lucid Lynx?
Up until Karmic, this was done by editing "/etc/usplash.conf", but since the switch to plymouth in Lucid, I don't know how this is done any more.
I've tried:

- adding "vga=799" to the line "GRUB_CMDLINE_LINUX_DEFAULT" in "/etc/default/grub"
- adding "GRUB_GFXMODE=1600x1200" to "/etc/default/grub"
- editing the "GRUB_GFXMODE="-line in "/etc/grub.d/00_header"

But to no avail, unfortunately.

Question information

English Edit question
Ubuntu plymouth Edit question
No assignee Edit question
Last query:
Last reply:
Sanket Totewar (sunk8) said : #1

In Karmic Koala, I use a package named 'startupmanager' that lets me configure GRUB as well as startup screen resolutions...
I'm sure u'll find it useful in Lucid too...


Do you happen to be using Nvidia's proprietary driver? If so, I believe it is locked to 640x480 currently.

Also VGA= lines are no longer compatible with Lucid's kernel.

Personally I don't use any frame buffer resolution beyond the default.

Best of luck,

Rune K. Svendsen (runeks) said : #3

Hi Sanket
Using startupmanager, I am able to change the values you mention (and they are retained when I open the program again), but it doesn't make a difference concerning the boot splash resolution, it's still too big (1920x1440).

Hi George
No I'm using the open source radeon driver for my Radeon HD 3870.
If the vga= line no longer works, do you know how to specify the default display resolution to the kernel?
I think the kernel just chooses the highest resolution possible (in my case 1920x1440), but it looks pretty bad. I can change my xorg.conf to only use the second-highest resolution (1600x1200), but of course this is only used by X and the kernel doesn't know this.

Sam_ (and-sam) said : #4

> how to specify the default display

Try vbeinfo.

## About plymouth.
From README.debian (package plymouth)
Changing Themes

Plymouth themes are installed into sub-directories of /lib/plymouth/themes,
some themes may require plugins installed (as .so files) into /lib/plymouth.

Search the archive for packages named plymouth-theme-*

To change the current theme:

  sudo update-alternatives --config default.plymouth
  sudo update-initramfs -u

To restore the default theme:

  sudo update-alternatives --auto default.plymouth
  sudo update-initramfs -u

Disabling the splash screen

There are two methods to disable the splash screen. Both have the
same effect. Your boot will show such messages as are emitted by
the starting services, and will still be able to prompt if needs be.

 1) Remove all of the plymouth-theme-* packages from your system,
    including the text ones. Plymouth will remain installed to
    permit boot-time prompts.

 2) Remove "splash" from the kernel command-line. You can do this
    per-boot, or make it permanent by changing the
    GRUB_CMDLINE_LINUX_DEFAULT line in /etc/default/grub

High-color graphics on nVidia, ATI and other cards

Our default configuration uses low-color graphics on cards or drivers
for which "Kernel Mode Setting" (in-kernel graphics drivers) are not

This is because the driver that permits high-color graphics tends to
cause issues with suspend and resume, and we opted to prefer that

    For nVidia and ATI users, the default "nouveau" and "radeon"
    drivers are Kernel Mode Setting enabled, but do not always
    provide 3D capability at the current time. By switching to
    using the restricted/non-free nvidia-glx or fglrx drivers,
    you will gain 3D capability at the loss of a high-color
    splash screen.

You can however chose to enable high-color (and resolution) console
if you find it doesn't affect suspend/resume for you, or you don't
use that feature.

There are various methods of doing this, the most robust is the
following four steps:

 Append video=vesafb to the GRUB_CMDLINE_LINUX_DEFAULT in
 sudo update-grub

 echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
 sudo update-initramfs -u

Sam_ (and-sam) said : #6


I was able to get higher Plymouth / frame buffer resolution simply by adding two lines to /etc/default/grub:

   $ gksu gedit /etc/default/grub

Add the lines:


Simply substitute 1024x768x32 for the resolution you actually want.

You can see my /etc/default/grub at

Good luck,

Rune K. Svendsen (runeks) said : #9

Thanks for your replies all.
The bug you mention, Sam, has some valuable information. This was precisely what I needed, some way to tell the kernel which default display resolution to use now that the "vga="-parameter is gone.
I also tried your approach George, but it made my system unstable, though it returned to normal when I removed the changes you suggested. I think it is a bug in the radeon driver. Sometimes KMS would fail to load, not every time, but occasionally.
But anyway, I have - sort of - found the solution.

In "/etc/default/grub", adding "video=1600x1200@85" to the line "GRUB_CMDLINE_LINUX_DEFAULT [...]", so it looks like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=1600x1200@85"
at least makes my virtual terminals use that resolution (which is the same as X's resolution, flicker free VT switching - yay!). The strange thing is, however, that when I add this line, the plymouth boot screen isn't shown. If I remove the line, the plymouth boot screen is shown at the large resolution (1920x1440), and so are my virtual terminals. When I add the above line, plymouth isn't shown anymore, but my virtual terminals have the correct resolution.
It works both with and without the refresh rate added to the end ("@85"), but if I add the name of the output - whether it be as displayed by xrandr or in /sys/class/drm - it doesn't work.
So basically I think the solution is this kernel option, although plymouth doesn't support it - it seems - yet.

As a workaround try to use uvesafb.

Rune K. Svendsen (runeks) said : #11

Hi Oleksandr,

When I use the uvesafb kernel parameter like this:

it doesn't seem to work. Both the resolution of plymouth and my VTs are
too large (1920x1440). I get this message as well (in dmesg):

        [drm:drm_mode_getfb] *ERROR* invalid framebuffer id

I can insert the uvesafb module manually when my computer has started
up, so it definitely isn't missing this module...

Also, now the plymouth splash screen *is* displayed when I use the
parameter, which is wasn't before. But it's still at the wrong (too
large) resolution (1920x1440).

Should this be reported as a bug? plymouth's splash screen resolution
not following the kernel's default?

> Your question #106718 on Ubuntu changed:
> Oleksandr Samoylyk posted a new comment:
> As a workaround try to use uvesafb.

Rune K. Svendsen (runeks) said : #12

After installing the package v86d (which uvesafb seemed to miss), it
still doesn't work, but I get the following error in dmesg:

        [ 3.192559] uvesafb: Unknown parameter `mode'

there is no "mode" mentioned in my kernel parameters though:

        [ 0.000000] Kernel command line:
        root=UUID=63549b46-3e47-42ae-b5cf-a910879c041e ro quiet splash

Hi Rune,

Try the following:

In /etc/default/grub add:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1024×768-24,mtrr=3,scroll=ywrap"

In /etc/initramfs-tools/modules add this:
uvesafb mode_option=1024×768-24 mtrr=3 scroll=ywrap

instead of 1024×768 there can be any supported resolution (check that out by executing "sudo hwinfo --framebuffer")

echo "FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash

And finally:
sudo update-grub2
sudo update-initramfs -u

Reboot and enjoy :)

Rune K. Svendsen (runeks) said : #15

Thanks for your input!
I just tried the above, but I still get a 1920x1440 resolution on the plymouth boot screen and now also on my VTs.

    rune@runescomp:~$ cat /etc/default/grub
    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.

    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=1600x1200@85"
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=uvesafb:mode_option=1600x1200-24,mtrr=3,scroll=ywrap"

    # Uncomment to disable graphical terminal (grub-pc only)

    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'

    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux

    # Uncomment to disable generation of recovery mode menu entries

    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"

    rune@runescomp:~$ cat /etc/initramfs-tools/modules
    # List of modules that you want to include in your initramfs.
    # Syntax: module_name [args ...]
    # You must run update-initramfs(8) to effect this change.
    # Examples:
    # raid1
    # sd_mod
    uvesafb mode_option=1600x1200-24 mtrr=3 scroll=ywrap

    rune@runescomp:~$ cat /etc/initramfs-tools/conf.d/splash

And yes, I have run update-grub2 and update-initramfs.

According to the guide you posted alexeagar, it is only for the proprietary drivers though. I'm using the open source radeon driver, so that might be the reason it's not working.

Also, in the guide he seems to use the highest resolution that the "hwinfo"-command spits out. This is precisely what I'm trying *not* to do. Here's the output from running that command:

    rune@runescomp:~$ sudo hwinfo --framebuffer
    [sudo] password for rune:
    02: None 00.0: 11001 VESA Framebuffer
      [Created at bios.464]
      Unique ID: rdCR.tMTgUOhmAoF
      Hardware Class: framebuffer
      Model: "(C) 1988-2005, ATI Technologies Inc. RV670"
      Vendor: "(C) 1988-2005, ATI Technologies Inc. "
      Device: "RV670"
      SubVendor: "ATI ATOMBIOS"
      Revision: "01.00"
      Memory Size: 16 MB
      Memory Range: 0xd0000000-0xd0ffffff (rw)
      Mode 0x0300: 640x400 (+640), 8 bits
      Mode 0x0301: 640x480 (+640), 8 bits
      Mode 0x0303: 800x600 (+832), 8 bits
      Mode 0x0305: 1024x768 (+1024), 8 bits
      Mode 0x0307: 1280x1024 (+1280), 8 bits
      Mode 0x0311: 640x480 (+1280), 16 bits
      Mode 0x0314: 800x600 (+1600), 16 bits
      Mode 0x0317: 1024x768 (+2048), 16 bits
      Mode 0x031a: 1280x1024 (+2560), 16 bits
      Mode 0x030e: 320x200 (+640), 16 bits
      Mode 0x0320: 320x200 (+1280), 24 bits
      Mode 0x0393: 320x240 (+320), 8 bits
      Mode 0x0395: 320x240 (+640), 16 bits
      Mode 0x0396: 320x240 (+1280), 24 bits
      Mode 0x03b3: 512x384 (+512), 8 bits
      Mode 0x03b5: 512x384 (+1024), 16 bits
      Mode 0x03b6: 512x384 (+2048), 24 bits
      Mode 0x03c3: 640x350 (+640), 8 bits
      Mode 0x03c5: 640x350 (+1280), 16 bits
      Mode 0x03c6: 640x350 (+2560), 24 bits
      Mode 0x0383: 640x400 (+640), 8 bits
      Mode 0x0385: 640x400 (+1280), 16 bits
      Mode 0x0386: 640x400 (+2560), 24 bits
      Mode 0x0333: 720x400 (+768), 8 bits
      Mode 0x0335: 720x400 (+1472), 16 bits
      Mode 0x0336: 720x400 (+2944), 24 bits
      Mode 0x0353: 1152x864 (+1152), 8 bits
      Mode 0x0355: 1152x864 (+2304), 16 bits
      Mode 0x0356: 1152x864 (+4608), 24 bits
      Mode 0x0363: 1280x1024 (+1280), 8 bits
      Mode 0x0365: 1280x1024 (+2560), 16 bits
      Mode 0x0366: 1280x1024 (+5120), 24 bits
      Mode 0x0321: 640x480 (+2560), 24 bits
      Mode 0x0322: 800x600 (+3200), 24 bits
      Mode 0x0323: 1024x768 (+4096), 24 bits
      Mode 0x0324: 1280x1024 (+5120), 24 bits
      Mode 0x0343: 1400x1050 (+1408), 8 bits
      Mode 0x0345: 1400x1050 (+2816), 16 bits
      Mode 0x0346: 1400x1050 (+5632), 24 bits
      Mode 0x0373: 1600x1200 (+1600), 8 bits
      Mode 0x0375: 1600x1200 (+3200), 16 bits
      Mode 0x0376: 1600x1200 (+6400), 24 bits
      Mode 0x0383: 640x400 (+640), 8 bits
      Mode 0x0385: 640x400 (+1280), 16 bits
      Mode 0x0386: 640x400 (+2560), 24 bits
      Mode 0x03d3: 1856x1392 (+1856), 8 bits
      Mode 0x03d5: 1856x1392 (+3712), 16 bits
      Mode 0x03d6: 1856x1392 (+7424), 24 bits
      Mode 0x03e3: 1920x1440 (+1920), 8 bits
      Mode 0x03e5: 1920x1440 (+3840), 16 bits
      Mode 0x03e6: 1920x1440 (+7680), 24 bits
      Config Status: cfg=new, avail=yes, need=no, active=unknown

Rune K. Svendsen (runeks) said : #17

Hi marcobra

That is the same fix that was posted by alexeagar above. As you can see from my above post, it didn't work.

Sam_ (and-sam) said : #18

Is plymouth worth the hassle since April, just to see splash for milliseconds?
Since you've tested many possible actions without final solution isn't it time to convert the question into a bug?

Rune K. Svendsen (runeks) said : #19

I think you're right. I will file the bug as soon as I have the time.

On Sat, 2010-07-24 at 17:54 +0000, Sam wrote:
> Your question #106718 on plymouth in ubuntu changed:
> Sam posted a new comment:
> Is plymouth worth the hassle since April, just to see splash for milliseconds?
> Since you've tested many possible actions without final solution isn't it time to convert the question into a bug?

Launchpad Janitor (janitor) said : #20

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Rune K. Svendsen (runeks) said : #22

I have tried that and it doesn't work. I have created a bug report concerning this issue, and linked it to this question.