Use GRUB2 and a boot framebuffer for a smoother boot splash
GRUB2 supports programming a VBE mode in the boot loader and telling the kernel about it, causing the kernel to use a framebuffer at boot. With Linux 2.6.34, vesafb/efifb can hand over smoothly to a KMS driver, allowing us to assemble all of this into something very close to a flicker-free boot splash process.
Blueprint information
- Status:
- Started
- Approver:
- Robbie Williamson
- Priority:
- Essential
- Drafter:
- Colin Watson
- Direction:
- Needs approval
- Assignee:
- Colin Watson
- Definition:
- Approved
- Series goal:
- Accepted for natty
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Robbie Williamson
- Completed by
Related branches
Whiteboard
Old work items for ubuntu-10.10:
[apw] Get the fbcon handoff patch kit together in a PPA: DONE
[apw] Develop cleanedup fbcon handoff patch kit, test, and push to maverick: DONE
[leannogasawara] vesafb needs to be built-in on x86: DONE
[leannogasawara] fbcon needs to be built-in on all architectures (already done on ports): DONE
Work items for natty-alpha-1:
[apw] confirm patches survived the natty rebases: DONE
[jeremyfoshee] tag bugs 605614, 608429, 612626 and other similar bugs and monitor for new: DONE
[apw] give graphics upstreams a heads-up about impending bug reports: DONE
[broder] re-enable lua grub-extras module: DONE
[broder] add white/blacklist functionality to grub2: DONE
Work items for natty-alpha-2:
[cjwatson] re-enable gfxpayload=keep and call for testing: DONE
[cjwatson] Arrange for a suitable GRUB background colour: DONE
[cjwatson] Make sure GRUB shows background even when not showing the menu: DONE
Work items for ubuntu-
[apw] investigate meego framebuffer patches: DROPPED
[apw] start upstream discussions: POSTPONED
[cjwatson] cut over to whitelist mode, if required: DROPPED
Work items for ubuntu-11.04:
[jeremyfoshee] general bug triage work item: TODO
[cjwatson] Change GRUB to program vesafb on BIOS systems rather than efifb: DONE
[cjwatson] Change GRUB packaging to use vesafb by default if we have a new enough kernel: DONE
[cjwatson] Fix Plymouth to cope with framebuffer mode change: DROPPED
Quirk pm-utils to do VBE state/mode save/restore when using efifb or vesafb (already in place upstream; see wiki): DROPPED
Visual indication if we wind up on fbdev as a fallback (replacing old failsafe X): TODO
[cjwatson] Coordinate testing to ensure that GRUB can set a VBE mode on all supported hardware: INPROGRESS
[cjwatson] Once everything is working well so that it can be done attractively and discreetly, restore brief pause during GRUB startup to allow menu access: TODO
Anybody have thoughts on what triggers whitelist vs. blacklist mode? Probably don't want a new variable in /etc/default/grub, since that's hard to transition without a dpkg conffile conflict. Can the changeover be triggered on something else? apport is the obvious thing, but we turn off apport way later than we want to switch to whitelist mode. I'm also thinking that setting GRUB_GFXPAYLOAD
I figured we'd just switch it over in code. I agree with you on GRUB_GFXPAYLOAD
Just linked a branch with the stuff I've been working on in one place. I've also pushed a test build to https:/
I believe that we no longer need to fix Plymouth to cope with a framebuffer mode change, now that we've stopped temporarily loading vesafb during boot. -cjwatson