Package: hddtemp Version: 0.3-beta15-42 Severity: normal Tags: patch upstream
Hello, I came across a problem with current hddtemp and a SATA drive and collectd. It kept awaking the drive when polling the temperature levels. I could not observe the same behaviour with ATA disks therefore I checked the code and found that there is no similar check for being in stand-by mode like for ATA drives. A slight modification (copy&paste from ata.c to sata.c) solved the problem. Patch attached. Regards, Eduard. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.24 (PREEMPT) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages hddtemp depends on: ii debconf [debconf-2.0] 1.5.20 Debian configuration management sy ii libc6 2.7-9 GNU C Library: Shared libraries ii lsb-base 3.2-4 Linux Standard Base 3.2 init scrip hddtemp recommends no packages. -- debconf information: * hddtemp/SUID_bit: true * hddtemp/interface: 127.0.0.1 * hddtemp/syslog: 0 * hddtemp/daemon: true * hddtemp/port: 7634 -- <Tolimar> Statler: Durchsuch mal die fortunes nach Aqua ;) <Aqua> Tolimar, ich find nichts von den Sachen lustig <Aqua> ihr habt ja sogar das reingegeben als ich gefragt wurde welche Xfree version ich habe
--- /tmp/hddtemp-0.3-beta15/src/sata.c 2008-05-06 22:45:19.000000000 +0200 +++ ./src/sata.c 2008-05-06 22:40:47.000000000 +0200 @@ -123,6 +123,17 @@ dsk->fd = -1; return GETTEMP_NOSENSOR; } + + switch(ata_get_powermode(dsk->fd)) { + case PWM_STANDBY: + case PWM_SLEEPING: + if (!wakeup) + return GETTEMP_DRIVE_SLEEP; + case PWM_UNKNOWN: + case PWM_ACTIVE: /* active or idle */ + default: + break; + } /* get SMART values */ if(sata_enable_smart(dsk->fd) != 0) {