[Rant]
Deja vu. When Ubuntu first introduced PulseAudio, it was one hell of a plight for the end-user. And now it is Plymouth turn to make life an uphill struggle for user with recent ATI or NVIDIA card and proprietary drivers (as well as people having examination like me >.<). Here is an interesting article by Scott James Remnant on why your expensive card doesn’t play nice with Plymouth in Lucid. I also grow tired and wary of all the copy-n-paste instructions lying on the Internet which are out-dated and untested yet considered as panacea. My most hated one is ‘set gfxpayload=keep’ originated from Arch forum and now spreading like fire. It makes your the Virtual Terminal (VT) useless, ‘keep’ is not the working option in Ubuntu, last and not least, in Lucid, there is a more graceful way to do it. And I hope my guide below will not suffer the same fate as them. It was quite comprehensive after days of manual grinding and testing during exam period.

[Problems/Symptoms/Why-Are-You-Here]
Plymouth splash screen…

is in low res mode.

has corrupted graphic

is decent but can’t switch to virtual terminal or VT is horribly in low res mode

is decent but the splash screen only appears for a brief 1-2 second ( you are missing the dots moving :P), before that you only see a black/blank screen

[Environment]
Use Synaptic or ‘apt-cache policy ‘ or common-sense to find out.

GRUB >= 1.98-1ubuntu5

Plymouth >= 0.8.2-2

ATI cards with FGLRX >= 8.723.1-0ubuntu3

NVIDIA cards with nvidia-glx-1*

A clean without other tweaks to plymouth & grub, please revert them before proceeding. Really, it will not work if you insisted on apply other tweaks. !!! IMPORTANT !!!

Common-sense and google searching skill

A bit of risk taking spirit and confidence

[Caveats and Limitations]
I will use the uvesafb to fix all the problems mentioned above but I have to warn you about certain limitations first. They don’t affected me much though (widescreen works on mine). I think problem will come when you want to use solar theme or any complex theme as uvesafb doesn’t have acceleration -> slow. Extract from documentation for uvesafb

uvesafb is a _generic_ driver which supports a wide variety of video cards, but which is ultimately limited by the Video BIOS interface. The most important limitations are:
– Lack of any type of acceleration.
– A strict and limited set of supported video modes. Often the native or most optimal resolution/refresh rate for your setup will not work with uvesafb, simply because the Video BIOS doesn’t support the video mode you want to use. This can be especially painful with widescreen panels, where native video modes don’t have the 4:3 aspect ratio, which is what most BIOS-es are limited to.
– Adjusting the refresh rate is only possible with a VBE 3.0 compliant Video BIOS. Note that many nVidia Video BIOS-es claim to be VBE 3.0 compliant, while they simply ignore any refresh rate settings.

Also, uvesafb replaces vesafb in Ubuntu, in case you are wondering.

[Fix/Workaround]
* uvesafb required v86d package to be installed. Hwinfo package is required for the next step as well.sudo apt-get install v86d hwinfo

* Find out the supported resolution by using hwinfo.sudo hwinfo --framebuffer

* Edit /etc/default/grub to make sure we boot with uvesafb framebuffer. For the mode_option parameter change to your native screen resolution you see from running the above comment (if not just set to 1024×768-24 which is safest. Oh, Netbook user – please exercise some common-sense here) Non relevant lines are omitted for clarity.
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1366x768-24,mtrr=3,scroll=ywrap"
...
GRUB_GFXMODE=1366x768

* Edit /etc/initramfs-tools/modules to include uvesafb by adding the following line.
uvesafb mode_option=1366x768-24 mtrr=3 scroll=ywrap

* Now reboot and enjoy the high resolution sensation 🙂 (my first reboot hangs, but 2nd time onward it works flawlessly). If it works correctly, you should be able to have moving dots with the splash screen; lesser time of blank screen and much more time with splash screen.

* And contrary to popular belief, my laptop resume and suspend works with uvesafb! 🙂

* No splash screen but high resolution virutal terminal using EFI framebuffer. Edit /etc/default/grub, remove ‘splash’ option and replace the two entries below with your native resolution. Seriously, this is way better than setting the payload to keep and in 00_header. GRUB_GFXPAYLOAD_LINUX is only available from grub 1.98 in lucid.
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
...
GRUB_GFXMODE=1366x768
GRUB_GFXPAYLOAD_LINUX=1366x768
...

[Last Words]
– Comments are welcome and appreciated.
– Testers are welcome.
– I will try to respond to you ASAP but spare me some thoughts cos the poor guy here is having his final exams at his university life 🙂