Section: Maintenance Commands (8)
Updated: July 21, 2003
hddtemp will give you the temperature of your hard drive by reading Self-Monitoring Analysis and Reporting Technology (S.M.A.R.T.) information on drives that support this feature. Only modern hard drives have a temperature sensor. hddtemp supports reading S.M.A.R.T. information from SCSI drives too. hddtemp can work as simple command line tool or as a daemon.
You can specify one or more device drive path, where each path can be prefixed with a type like PATA, SATA or SCSI to force hddtemp too use one of these type (because detection can fail).
The program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.
If you know your drive has a temperature sensor but it is being reported unsupported, tell me which model and which manufacturer it is, and/or just add a new entry in /etc/hddtemp.db. Each line of hddtemp.db is either a comment, a blank line or a line containing:
:- a value (ATTRIBUTE_ID from S.M.A.R.T.),
:- a C or an F to set the unit to Celsius or Fahrenheit,
:- a description.
Feedback is welcome (see the REPORT section below).
Example of type forcing:
To test hddtemp in daemon mode, start it like this:
and use telnet or netcat (which is known as nc on some systems) to get a reply:
The drive database is read only once at startup, so hddtemp must be restarted if the database is updated for the changes to take effect.
As I receive a lot of reports, things must be clarified. When running hddtemp with debug options, hddtemp will show sort of a dump of S.M.A.R.T. data. Each field corresponds to an information field. The standard field for drive temperature is 194. But this is not always the case (mostly for older drives). Even if your drive has S.M.A.R.T. capabilities, it doesn't necessarily mean that it can report its temperature. So, things must be determined through experimentation.
So, you can try to guess which field by is the good one by running hddtemp at regular intervals:
- just after starting up your PC/server/station,
- after opening a window (a physical window :),
- after opening the case,
- whatever you can think of...
and looking for a field's value that would increase or decrease depending on what effect you want to induce. Be careful, fields 4, 9, and 12 are often reported to match a temperature field but after some investigation they do not. But fields 194 (which is the standard field for temperature) and 231 are good candidates.
Then, you can send me a report with outputs from `hddtemp --debug ...', `smartctl' or `hdparm -i ...', and/or add an entry in hddtemp.db yourself.
If hddtemp crashes (yes, it might) for some unknown reasons, look for a file named hddtemp.backtrace.<PID>.XXXXXX (where XXXXXX is a random number generated at runtime) in /tmp. Then, you can then send me this file and the hddtemp binary. The backtrace functionality is currently supported on i386 architectures only.
Emmanuel Varagnat ([email protected]).
This manual page was originally written by Aurelien Jarno <[email protected]>, for the Debian GNU/Linux system (but may be used by others).
Tutoriais de Tecnologia Web