Summary

More hardware testing would be done if hardware testing was easier to do. Having a live (but modifiable) USB image specifically designed for hardware testing would make it much easier to test hardware without performing a full installation or risking data loss.

Release Note

There should be some mention of this in the release notes for alphas, betas, and such, but probably not in the final release notes.

Rationale

The developers don't have access to all hardware ever produced, so hardware that doesn't get tested tends to be the hardware that doesn't work. If testers could easily conduct hardware tests on essential machines without risking their existing installations, they would be more inclined to conduct such tests, and more hardware would work properly.

Use Cases

Sam wants to make sure the next release of Ubuntu properly supports his rare FooBar 7800FD graphics card, but he doesn't want to install an alpha release to do so. He downloads an image, puts it on a USB stick, and reports any regressions he finds. When a fixed driver is added to the repositories, Sam is able to update the USB stick installation to include it.

Assumptions

This idea won't work on machines that can't boot off a USB drive. It may be possible to make a live CD that allows booting off USB on such machines, much like a floppy disk can be made to allow booting a CD or via network on machines that don't support it in the BIOS.

Design

Here's the desired workflow:

  1. User downloads image to his hard disk.
  2. User runs a program that copies the image to his USB stick, making use of whatever space is available and doing whatever is needed to boot from it.
  3. User boots from the USB stick and reports bugs as necessary.
  4. User updates his USB stick installation via aptitude, apt-get, update-manager, etc.
  5. Later, User runs a program that patches the image on his hard disk to bring it up to date with the latest daily image. As this would only be necessary if the stick's installation gets messed up, rsync would probably be perfectly sufficient for this purpose.

By allowing the image to be updated, the user can easily replace his USB stick installation with a recent but pristine copy. By allowing updates to the USB stick installation via aptitude, apt-get, etc., the user can easily test non-free drivers like nvidia and fglrx.

Implementation

I'm not quite sure about the specifics, but the overall process for installing on the USB stick should probably be similar to installing with Ubiquity. rsync is probably best for the image file update.

UI Changes

Since we want to make this as simple as possible, a GUI would be nice. It might be based on Ubiquity, but automated. Alternatively, usb-creator could be modified to serve this purpose. It could detect things like time zone from the installed system. Security isn't much of a concern for this type of installation, so a well-known username and password probably wouldn't hurt. Of course, that doesn't mean it shouldn't have an option to specify username and password. We might also want an optional GUI for updating the image file. There should certainly be a CLI version for those who wish to put image file updates in their crontabs. If rsync is used for this purpose, then the crontab could call rsync directly.

Code Changes

If the USB stick installer is based on Ubiquity, it will need to be modified to ask only the necessary questions. If it is based on usb-creator, then additional options will be needed (like optional username and password and update).

Migration

No migration is necessary.

Test/Demo Plan

By its very nature, testing will be non-destructive and easy.

Unresolved issues

What do we do with systems that don't support booting from USB?

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec

HardwareTestingUSBImage (last edited 2010-05-10 19:00:53 by aegis)