DeviceTypeDetection

Summary

The current installation tools set a default hostname based on some device detection. The current detection algorithm is based parsing dmidecode and falling back to laptop-detect if that doesn't work. This is confusing if folks have a phone, a handheld, a laptop, a desktop, a set-top box, and a NAS laying about, and want to ensure these all have distinct names.

The algorithm should be extended to attempt to detect several hardware components, or guess based on attributes of hardware components (a 2.5" 1024x600 screen is probably a phone and a 10" 1024x600 screen is probably a netbook), and generalised to work for all architectures, rather than relying on dmidecode.

Release Note

During install, Ubuntu now performs even more detailed analysis to determine the target device, and suggests a name tightly alligned with the expected use.

Rationale

The current installer is often able to correctly distinguish between "desktop" and "laptop" computers for i386 and amd64 architectures. It is sometimes able to do this correctly for powerpc and armel. Most of this relies on parsing of dmidecode, and the remainder on laptop-detect, which itself relies on dmidecode (with fallback to testing for battery presence). This is a narrow set of devices, and poorly suits someone with several computers who wishes to have distinct and useful names.

In order to provide a better experience for other form factors and other architectures, it would be nice to have a more comprehensive tool than laptop-detect, and not rely so heavily on dmidecode.

User stories

  • Alice installs Ubuntu on her i386 phone, and "alice-phone" is the suggested hostname.
  • Bob installs Ubuntu on his amd64 netbook, and "bob-netbook" is the suggested hostname.
  • Chris installs Ubuntu on an armel set top box, and "chris-settop" is the suggested hostname.
  • Dora installs Ubuntu on her powerpc desktop, and "dora-desktop" is the suggested hostname.
  • Everett installs Ubuntu on his armel handheld, and "ubuntu-handheld" is the suggested hostname.
  • Francis installs Ubuntu on an i386 NAS, and "ubuntu-server" is the suggested hostname.
  • Georgia installs Ubuntu on an amd64 tablet, and "ubuntu-tablet" is the suggested hostname.

Assumptions

  • There can exist a set of detectable criteria to categorise various system types
  • Those criteria can be detected in relatively short time from the install environment

Design

  • Document a set of form factor names
  • Determine discrimination criteria for each form factor
  • Determine detection routines for each discrimination criteria
  • Stuff them all in a script that spits out machine type

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

  • Initially, only migrate ubiquity to use the new name source

Test/Demo Plan

  • Installation testers with each appropriate form-factor need to be available to show that installation does the right thing

Unresolved issues

  • Appropriate software selection per form-factor
  • Suitability of a given flavour for a given form-factor
  • Integration with the Alternate Installer

BoF agenda and discussion

  • Document a set of form factor names
  • Determine discrimination criteria for each form factor
  • Determine detection routines for each discrimination criteria

Form Factors

  • Phone
  • Netbook
  • Set Top Box
  • Desktop
  • Laptop
  • Handheld
  • Server
  • Tablet
  • (more)

Detection Criteria

  • Screen Size
  • Resolution
  • Battery Presence
  • (more)

Detection Techniques

TBD

Determine output model (as API to be used)

  • What fits with ubiquity best?
  • Where else would this be used?


CategorySpec

Specs/DeviceTypeDetection (last edited 2010-11-15 18:42:51 by 82-69-40-219)