Difference between revisions of "HDAPS"

From ThinkWiki
Jump to: navigation, search
m (Kernel patch (apply using 'patch -p1 -l < hdaps_xx.patch'): update to latest patches)
(Kernel patch: Cleanup (just moved text around))
Line 44: Line 44:
 
See [[How to protect the harddisk through APS]] for more information.
 
See [[How to protect the harddisk through APS]] for more information.
  
===== Kernel patch (apply using 'patch -p1 -l < hdaps_xx.patch') =====
+
===== Kernel patch =====
*[http://lwn.net/Articles/154923/ disk park patch] <tt>an experimental patch for parking the disk (Linux 2.6.14 for 2.6.15 see below)</tt>
+
Apply these using 'patch -p1 -l < hdaps_xx.patch'.
*[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.14.patch disk park patch adapted for the t41p model] <tt> kernel 2.6.14 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)</tt>
+
* New interface
*[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.15.patch disk park patch adapted for the t41p model] <tt> kernel 2.6.15 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)</tt>
+
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077 Latest sata/ide disk protection patch for 2.6.22.9 and 2.6.23-rc9]
*[http://www.dresco.co.uk/hdaps/hdaps_protect.20060118.patch sata/ide disk protection patch for 2.6.15]
+
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993 Latest sata/ide disk protection patch for 2.6.20 and 2.6.21]
*[http://www.dresco.co.uk/hdaps/hdaps_protect.20060430.patch Latest sata/ide disk protection patch for 2.6.16]
+
* Old interface
*[http://whoopie.gmxhome.de/linux/patches/2.6.16-tj/05-hdaps_protect-20060430-for-2.6.16-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.16.16 patches] - See [[How_to_hotswap_UltraBay_devices]]
+
**[http://www.nabble.com/attachment/9047418/0/hdaps_protect-2.6.20.patch.bz2 Latest sata/ide disk protection patch for 2.6.20]
*[http://whoopie.gmxhome.de/linux/patches/2.6.17.14-tj/03-hdaps_protect-20060430-for-2.6.17-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.17.4 patches] - See [[How_to_hotswap_UltraBay_devices]]
+
**[http://article.gmane.org/gmane.linux.kernel/470413 Latest sata/ide disk protection patch for 2.6.19-rc6]
*[http://exitzero.de/t41p-configs/hdaps_protect-2.6.17.1-20060625.patch Untested patch for 2.6.17.1]: see [http://thread.gmane.org/gmane.linux.drivers.hdaps.devel/708/focus=708]
+
**[http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch Latest sata/ide disk protection patch for 2.6.18.3]
*[http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch Latest sata/ide disk protection patch for 2.6.18.3]
+
**[http://exitzero.de/t41p-configs/hdaps_protect-2.6.17.1-20060625.patch Untested patch for 2.6.17.1]: see [http://thread.gmane.org/gmane.linux.drivers.hdaps.devel/708/focus=708]
*[http://article.gmane.org/gmane.linux.kernel/470413 Latest sata/ide disk protection patch for 2.6.19-rc6]
+
**[http://whoopie.gmxhome.de/linux/patches/2.6.17.14-tj/03-hdaps_protect-20060430-for-2.6.17-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.17.4 patches] - See [[How_to_hotswap_UltraBay_devices]]
*[http://www.nabble.com/attachment/9047418/0/hdaps_protect-2.6.20.patch.bz2 Latest sata/ide disk protection patch for 2.6.20] (old design)
+
**[http://whoopie.gmxhome.de/linux/patches/2.6.16-tj/05-hdaps_protect-20060430-for-2.6.16-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.16.16 patches] - See [[How_to_hotswap_UltraBay_devices]]
*[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993 Latest sata/ide disk protection patch for 2.6.20 and 2.6.21] (new design)
+
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060430.patch Latest sata/ide disk protection patch for 2.6.16]
*[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077 Latest sata/ide disk protection patch for 2.6.22.9 and 2.6.23-rc9] (new design)
+
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060118.patch sata/ide disk protection patch for 2.6.15]
 +
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.15.patch disk park patch adapted for the t41p model] <tt> kernel 2.6.15 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)</tt>
 +
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.14.patch disk park patch adapted for the t41p model] <tt> kernel 2.6.14 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)</tt>
 +
**[http://lwn.net/Articles/154923/ disk park patch] <tt>an experimental patch for parking the disk (Linux 2.6.14 for 2.6.15 see below)</tt>
  
 
===== Userspace daemon =====
 
===== Userspace daemon =====

Revision as of 16:08, 6 October 2007

HDAPS - IBM Active Protection System Linux Driver

This is the Linux driver for monitoring the accelerometer known as IBM Active Protection System.

The driver only enables reading of the acceleration data. It does not perform automatic disk head parking. But there are already some other useful applications for HDAPS, using the /sys interface it provides.

ATTENTION!
There are two versions of the hdaps driver, one in the Linux kernel mainline, and another provided by tp_smapi. Use of the tp_smapi version of hdaps is strongly recommended by the current hdaps developers.

Features

  • provides accelerometer values via sysfs
  • provides a joystick type input device

Project Homepage / Availability

  • Project Homepage
  • The driver is included in the 2.6-mm series of kernels since August, 26th 2005.
  • The driver is now in the mainline (2.6.14).
  • The tp_smapi package contains some patches to this driver. These are necessary for some recent models, and recommended for all.

Status

A driver is included in recent Linux kernels and is actively maintained, but it is very inferior to the driver in tp_smapi (which provides its own hdaps module).

How to install the driver

If you are using a version of the Linux kernel < 2.6.14, please upgrade. I struggled long and hard to get the driver working with an old version of the kernel, and it was a mess. I gave up, upgraded my kernel, and one recompile later, HDAPS was working.

For 2.6.18 kernel, T60 users have to edit hdaps_init() in drivers/hwmon/hdaps.c to include a HDAPS_DMI_MATCH_LENOVO("ThinkPad T60") line.

Install the tp_smapi module if you experience problems with hdaps always reading out constant values of (0,0) refer

Harddisk Protection

As mentioned above, the hdaps kernel driver is only responsible for reading the accelerometer data and exporting it through the sysfs interface. In order to use this information to protect the disk, some additional steps are required.

See How to protect the harddisk through APS.

Input device support

The hdaps driver in the lastest kernels (2.6.14 and later?) also exports a joystick type input device, which can be used by games.

Applications

Disk head parking

You will need the kernel patch and userspace daemon. The GUI monitoring is optional.

See How to protect the harddisk through APS for more information.

Kernel patch

Apply these using 'patch -p1 -l < hdaps_xx.patch'.

Userspace daemon
GUI monitoring

Security & safety

Tilt monitoring

  • gkhdaps a GKrellM applet displaying tilt data
  • gnome-tilt a gnome applet showing tilt data

Visualisation of ThinkPad orientation

Games

  • Neverball is quite fun with HDAPS. (You'll need to have the HDAPS joystick device)
  • Turn your ThinkPad into a Jedi Weapon (hey, it works for Mac laptops)

Other

  • smack.py - switch workspace by smacking your laptop, inspired by the SmackBook (uses EWMH)
    • an improved version adds stabilization (by comparing smacks to previous ones, uses EWMH)
    • another approach adds stabilization (by requiring a certain type of value deflection, uses xmacroplay)
    • GTollina is another smack program for use with compiz (video here).
  • xmms-smack.py - move through your xmms playlist by smacking, based on the two smack scripts above.
  • KnockBasedCommands - Execute commands by tapping your laptop.
  • rotate.py - rotate desktop by turning your laptop

Interesting links related to this project