ATAidle is a utility to set the power management features of ATA hard drives in FreeBSD and Linux.
To use it, you must be running FreeBSD with ATAng, so basically FreeBSD 5.1 or newer - alternatively, you can also run it on Linux - it's been tested with kernel 2.6.1, but should work with any recent kernel.
ATAidle will not work on architectures other than i386, since it doesn't yet handle endian issues. Also, it is limited to detecting the first 8 ATA channels.
To install ATAidle, run 'make' to build it, followed by 'make install' to install the binary into /usr/local/sbin, and install the man page into /usr/local/man/man8.
If you later want to remove ataidle, simply run 'make uninstall'. Alternatively, the binary can be copied and run from a more convenient location.
Linux Users: You may have to edit Makefile.Linux to set the compiler name - it's currently 'gcc-3.3' because a compiler which understands C99 must be used, and gcc 2.95 doesn't support it.
Some distributions such as gentoo use version 3.3 by default and thus don't have a 'gcc-3.3' executable. In this case, change 'gcc-3.3' to 'gcc' and run 'make'.
atacontrol [-h] [-l] [-s] [-i] [-I idle_mins] [-S standby_mins] [-A acoustic_level] [-P apm_level] channel device
-h shows usage information
-l lists installed devices
-I sets the idle level spindown timer
-i sets the drive into idle mode immediately
-S ets the standby level spindown timer
-s sets the drive into standby mode immediately
-A sets the acoustic level, value between 128 and 254
-P sets the power management level, value between 1 and 254
channel the channel of ata controller device the device of the ata controller (0 or 1)
You can find the correct channel and device by listing the installed devices with 'ataidle -l channel device'
Supplying channel and device numbers without any parameters will display information about the specified device.
In a hurry? Add it to your Download Basket!
What's New in version 2.6
- This version fixes a bug in FreeBSD support caused by setting CAM_OUT instead of CAM_NONE (causing the controller to expect data) for power management commands. It integrates write cache support and cleanups.