Quickstart-ACPI - ACPI Direct Application Launch driver for Linux

Vista(TM) calls this Hotstart(TM)

News

Yey! The driver was merged into the Linux tree :)
Source code is already available in Linux-2.6.35 and later.
To enable the driver enable CONFIG_ACPI_QUICKSTART or, in menuconfig, go to
Device Drivers --->
  [*] Staging drivers --->
    [ ] Exclude Staging drivers from being built
    [*] ACPI Quickstart key driver
you will also need CONFIG_ACPI and CONFIG_INPUT set.
16 Nov. 2007: The project was migrated to sourceforge.net. Please follow this link to go to the new project page.

What is it?

"The Windows Vista(TM) operating system provides built-in support for a fast system startup experience that boots or resumes directly into media or other applications. This support, called direct application launch, is possible on PCs that are running Windows Vista by making simple changes to platform firmware and underlying platform wake circuitry."

With the introduction of Vista Microsoft launched a new ACPI ¿specification? to allow computers in sleep/off states to boot directly into multimedia applications by only pressing hardware buttons.
This project provides support to these devices allowing userspace scripts to launch multimedia applications based on which button was pressed.

How it works?

When the system boots, the driver receives an ACPI event telling which button was used to power the system on. Then, the driver exports this information to sysfs allowing userspace scripts to know the button name. This also applies to memory suspend and other power saving states.

Why?

My HP dv6535ep laptop came with hardware support for such feature. Because Linux didn't support it at the time, I decided to develop a driver.

Example

File buttons shows a list of supported hot buttons.
$ cat /sys/devices/platform/quickstart/buttons
QBTN
DBTN
MUBN
PIBN
WEBN
LVBN
VOBN
File pressed_button shows the hot button name used to power/resume the system. You can also write "none" to it to reset.
$ cat /sys/devices/platform/quickstart/pressed_button
none

What for?

Mobile and Media Center Linux distributors could use this to enrich their Linux experience.
It's easy to make an alternate init script that checks if some button was pressed and launch the appropriate application without having to load the entire system.
Here are some ideas.. It's up to you!

References

Microsoft paper describing Direct App Launch on Vista