DeviceTypeDetection
Launchpad Entry: packageselection-arm-n-device-type-detection
Created: 2010-10-22
Contributors: Emmet Hikory
Packages affected: laptop-detect, ubiquity
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?
Specs/DeviceTypeDetection (last edited 2010-11-15 18:42:51 by 82-69-40-219)