HardyBootloaderReview

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

The CD bootloader does most of what we need, but needs a review and polish. The progress bar is horribly clunky, and perhaps could be removed entirely. Font handling is dodgy. There are some outstanding suggestions to rearrange the flow of questions.

Release Note

The CD bootloader has been reviewed and simplified. On the desktop CD, "Try Ubuntu" and "Install Ubuntu" are now separate options. Many less-commonly-selected options have been moved to a menu on the F4 key.

Rationale

This is the first thing many Ubuntu users see, and as such should be as polished as we can make it. While the presentation in Ubuntu 7.10 is essentially acceptable, it has provoked a number of instances of confusion.

Use Cases

  • A user whose native language is not English easily discovers the bootloader option which allows the system to start up in his language right from the start.
  • A user without backups of his critical data was reluctant to use "Start or install Ubuntu" since it is not clear that it will not overwrite his data without his consent. The new menu wording gives him confidence to try the live session.
  • Fewer users select the "OEM install" option by mistake, since it is no longer presented at the same level as the "Install Ubuntu" option.
  • Users no longer end up with broken suspend/resume due to na├»vely selecting an alternative video mode in the CD bootloader.

Design

Following a review conducted at UDS-Boston, we propose the following specific improvements to the CD bootloader.

Language handling

The language selection menu should be presented up-front (bug 39888) in order that it is clear that you can and should select a language other than English. [done in gfxboot-theme-ubuntu 0.5.2]

It is somewhat confusing that the language selection menu offers languages where the corresponding language pack is not available on the CD. However, it may nevertheless be useful to select that language since it is used for such things as the default keyboard layout, the default language selection in the installer, the default date format and string collation order, and so on. Therefore, we will allow such languages to be selected, but present a warning.

Certain languages are not displayed correctly by gfxboot: Indic and Thai rendering is missing, and Dzongkha and Mongolian ought to be rendered vertically. Pango is inaccessible at this point, and while it might be possible to pre-render strings into saved images it would still be far from straightforward to implement. Full support for these languages will need to happen upstream; in the meantime, we will simply filter out translations for these languages. [done in gfxboot-theme-ubuntu 0.5.2]

We will expand the horizontal space available for menu options and (when displayed) boot parameters. There is no reason for it to be confined as it is, and it causes problems for some languages. The menu options should be centred based on the maximum length of string being displayed. [done in gfxboot-theme-ubuntu 0.5.3]

We will move the menu bar along the bottom of the screen up a little, and arrange for it to wrap onto two lines when necessary. (At present, it often overflows depending on the selected language.)

We will remove the video mode selector, which does more harm than good. (Selecting a different video mode only has a useful effect on the console, not on X; and doing so causes vesafb to be used, which breaks suspend/resume.) In its place (on F4), we will add a "Modes" menu, described in the "Menu options" section below. [done in gfxboot-theme-ubuntu 0.5.3]

On F6, we will offer a set of checkbox-semantic options to add common boot options which work around kernel bugs: the exact list is up to the implementor, but acpi=off, noapic, and nolapic have been suggested. If d-i is present, expert mode will continue to be offered here, but as a checkbox rather than as a "normal mode" or "expert mode" radio button. [done in gfxboot-theme-ubuntu 0.5.2]

"Start or install Ubuntu" has proven to be a confusing conflation of possibilities (bug 109064), and the secondary options beneath it do little to help this situation. The Ubuntu 7.10 desktop CD displays the following options:

  • Start or install Ubuntu
  • Start Ubuntu in safe graphics mode
  • Install with driver update CD
  • OEM install (for manufacturers)
  • Check CD for defects
  • Memory test
  • Boot from first hard disk

... while the Ubuntu 7.10 alternate CD displays the following (slightly different) options:

  • Install in text mode
  • OEM install (for manufacturers)
  • Install a command-line system
  • Check CD for defects
  • Rescue a broken system
  • Memory test
  • Boot from first hard disk

On the DVD, a combination of these options is available, since it has both the live filesystem and d-i.

We can reduce these to the following pool of top-level actions, as opposed to mere variations on a theme:

  • Try Ubuntu without any change to your computer
    • This is more explicit than "Start Ubuntu", and reassures users that it can be tried out safely.

  • Install Ubuntu
    • This replaces the "install" part of "Start or install Ubuntu", as well as "Install in text mode". When used with a live filesystem, it will use the only-ubiquity command-line option implemented in Ubuntu 7.10. On the DVD, the "Install in text mode" option remains necessary as both the live filesystem and d-i are available.

  • Rescue a broken system
    • Only available if d-i is present, or if an equivalent is implemented on the live system.

  • Test memory
    • Renamed from "Memory test" to have the verb at the start, for consistency with other menu options.

  • Boot from first hard disk
    • While not strictly required and not quite universally applicable, this is a very convenient escape hatch in the event that the user forgets to remove the CD before rebooting.

[All the above done in gfxboot-theme-ubuntu 0.5.3 and corresponding ubuntu-cdimage changes.]

"Check CD for defects" will be removed once media-integrity-check-by-default is implemented. The result will be four menu options on the desktop and alternate CDs.

As mentioned above, the F4 menu will become a menu of boot/installation modes, to include:

  • Normal
    • The default.

  • Safe graphics mode
  • Use driver update CD
    • Only available if a live filesystem is present.

  • OEM install (for manufacturers)
  • Install a command-line system
    • Only available if d-i is present.

  • Install a workstation
    • Only available in Edubuntu; though this may disappear per edubuntu-addon.

  • Install a server
    • Only available on DVDs.

  • Install an LTSP server
    • Only available in Xubuntu.

Since this causes a number of options to become less visible, the main menu will display text similar to "Press F4 to select alternative start-up and installation modes". [done in gfxboot-theme-ubuntu 0.5.3]

Some of these options are only applicable to certain top-level actions. The bootloader will only offer the options that make sense. If the selected action is changed to one that cannot support the selected installation mode, the bootloader will change the installation mode to a reasonable default. [done in gfxboot-theme-ubuntu 0.5.3]

Display bugs

There are some circumstances (particularly when changing language) where parts of previously-displayed text are not cleared from the screen. We will hunt and destroy these bugs.

We will experiment with removing the progress dialog as the kernel is being loaded to see if the resulting delay with no feedback is short enough to be acceptable. If that is not the case, we will make it follow the theme colours rather than remaining with its current Windows 3.1-ish appearance. [dialog removed in gfxboot-theme-ubuntu 0.6.3]

Implementation

gfxboot-theme-ubuntu will need to interpret several new keywords in gfxboot.cfg in order to implement this design. For example:

label xforcevesa=Safe graphics mode
append xforcevesa=xforcevesa
applies xforcevesa=live live-install

These identify, respectively, the human-readable label for the option, the string to append to the boot command line, and the labels in isolinux.cfg to which the option applies. A further keyword, replace, is also needed to cope with several existing options that need to remove an existing file= parameter from the boot command line and replace it with a different one.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD testing, and to show off after release.

This need not be added or completed until the specification is nearing beta.

BoF agenda and discussion

It was noted that the only-ubiquity option should start the accessibility framework if selected. This is out of scope for this specification and should be filed elsewhere as a bug.


CategorySpec

HardyBootloaderReview (last edited 2008-08-06 16:19:28 by localhost)