SSD temperature sensor readout with hddtemp

It seems hddtemp cannot detect the temperature sensor of my SSD (Samsung EVO 840) properly.This is the bash output when running hddtemp:

WARNING: Drive /dev/sda doesn't seem to have a temperature sensor.
WARNING: This doesn't mean it hasn't got one.
WARNING: If you are sure it has one, please contact me ([email protected]).
WARNING: See --help, --debug and --drivebase options.
/dev/sda: Samsung SSD 840 EVO 120G B              @:  no sensor

I looked in the most recent .db file posted on http://nongnu.mirrors.hostinginnederland.nl//hddtemp/hddtemp.db, but it doesn't seem to list any SSD drives at all.

Was anyone able to readout the temp-sensor of a SSD with hddtemp?


Sorry but I can't comment...anyway

Hddtemp usually reads field 194 from the smart data of the hard disk but in this case the info from the sensor is stored in field 190. With that command you tell hddtemp to read the value of field 190 for that particular model.

To check:

smartctl -a /device

hddtemp --debug /device

In both cases field 190 shows the temperature of the hard disk, (eg. 190 Airflow_Temperature_Cel)


Can confirm previous answers for Ubuntu 14.04.4 LTS also and "Samsung SSD 850 EVO 1TB". (but there is not the mentioned space needed in drive label)

So, what to do?

  1. In case the drive is unknown to hddtemp:

    check the drive's SMART data output for temperature sensor data and look for the field "ID#"

    $ sudo smartctl /dev/sdb -a | grep -i Temp

    190 Temperature_Celsius 0x0022 111 104 000 Old_age Always - 36

    The very first field is the sensors attribute id#, "190" in this case.

  2. add an entry into hddtemp's db, located at /etc/hddtemp.db

    $ sudo echo "Samsung SSD 850 EVO 1TB" 190 C "Label for SSD 1TB" >> /etc/hddtemp.db

    • field 1: use a string or regex matching the drive's display name (as reported by hddtemp output)
    • field 2: SMART data field number (190 in this case)
    • field 3: temperature unit (C|F)
    • field 4: label string / comment
  3. now hddtemp knows how to read the data

    $ sudo hddtemp /dev/sdb

    /dev/sdb: Samsung SSD 850 EVO 1TB: 40°C


root@elmo:/etc# hddtemp 
WARNING: Drive /dev/sda doesn't seem to have a temperature sensor. 
WARNING: This doesn't mean it hasn't got one. 
WARNING: If you are sure it has one, please contact me ([email protected]). 
WARNING: See --help, --debug and --drivebase options. 
/dev/sda: Samsung SSD 850 EVO 120G B              ▒@:  no sensor 

insert into /usr/share/misc/hddtemp.db this line:

"Samsung SSD 850 EVO 120G B"                            190  C  "Samsung SSD 850 EVO 120GB"

now hddtemp shows temperature

root@elmo:/etc# hddtemp
/dev/sda: Samsung SSD 850 EVO 120G B              ▒@: 47 C