This spec deals with how we can ensure laptop hardware is well supported.


For totally rad laptop support to be achievable, high-quality support is required for a large range of laptops. This is made harder by the large amount of custom hardware present in most laptops. It is necessary to identify which hardware is supported, which is unsupported and how hardware can be moved from the latter category to the former.


Full support should include:

  • ACPI (Reading hardware, suspend to RAM and disk and smart battery support)
  • Hotkeys (including sleep, wireless, brightness and CRT out)
  • Bluetooth (See BluetoothSupport)

  • Infra-Red
  • Modem
  • Docking stations
  • Video and TV out
  • Flash readers
  • Touch screens (Tablet PC support)
  • Wireless radio switch (Various machines have software-based switches)
  • Support for hard drive motion/tilt sensors (related to Tablet 'tilt' sensors)
  • Audio without feedback noise (Echo cancellation, also applies to iMac)
  • Input device configuration (TrackPoint / Synaptics)

Implementation Plan

The issue can be split into two sub-problems:

  1. Initial support. Laptop manufacturers tend to keep hardware fairly homogeneous within ranges, as this reduces support burden and makes it possible to provide single deployment images. As a result, implementation of hardware support can be performed using a moderately small amount of hardware (one machine per range), additionally similarity can be found across different ranges manufactured under contract (eg. Acer). Implementation will mostly take the form of driver authoring and modification, but may also require some work on ensuring installer support and automatic configuration. Most tier-one vendors have well-specified hardware/userspace interfaces, and so it should not require significant effort to ensure continued support as new hardware appears.
  2. Testing. During the development cycle, it will be necessary to test the distribution on as wide a range of supported hardware as possible in order to ensure that support has not regressed. This is a moderately high support load, and as a result the best solution may be to spread test hardware throughout a larger number of people.

Outstanding Issues

  • Modems - Most modern hardware includes winmodems. Most are AC97 codecs attached to the southbridge and can be driven with the slmodem driver. IBM is a notable exception - modern IBM hardware uses a Connexant HSF codec that requires the payware Linuxant driver (maybe non-payware 14.4k one?)
  • Docking stations - some require ACPI enumeration, which is currently not supported by the kernel
  • Video and TV out - see TVandExternalVGA for the issues involved
  • Flash readers - Blocked mostly on lack of documentation. Some Winbond devices are supported, TI, Ricoh and O2 parts aren't. Reverse engineering is the only real chance here.
  • Serial UART for IR - Interrupts are not always set up correctly. This needs to be addressed.
  • Battery support - Need smart battery support in kernel and HAL.
  • Wireless radio switch - Need to figure out how to detect the presence of the appropriate hardware and autoload it.
  • Accelerometer / Hard drive 'Airbag'. IBM ThinkPad, Apple Powerbook and Toshiba so far. Toshiba Tablet use tilt sensor to flip the display (xrandr). Initial investigation.

  • Calibration and configuration of input/pointing devices. Eg. TrackPoint, Synaptics pad and Wacom/Pens. Allow separation/disabling of nipple or pad.

Would like to help testing

CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/LaptopHardwareSupport (last edited 2008-08-06 16:31:38 by localhost)