ATAidle sets the idle timer on ATA hard drives, so they spin down when the period of inactivity has expired.
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.
What's New in This Release: [ read full changelog ]
· 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.