ok, I tested idle3-tools on my mybook live
install without subversion, from http://sourceforge.net/projects/idle3-tools/
MyBookLive:/shares/Public# tar xzvf ./idle3-tools-0.9.tgz
MyBookLive:/shares/Public# cd ./idle3-tools-0.9
# now edit Makefile, see post from Mieze above
MyBookLive:/shares/Public/idle3-tools-0.9# make
gcc -g -O2 -W -Wall -Wbad-function-cast -Wcast-align -Wpointer-arith -Wcast-qual -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -fkeep-inline-functions -Wwrite-strings -Waggregate-return -Wnested-externs -Wtrigraphs -c -o idle3ctl.o idle3ctl.c
idle3ctl.c:48: warning: function declaration isn't a prototype
idle3ctl.c:89: warning: function declaration isn't a prototype
idle3ctl.c:113: warning: function declaration isn't a prototype
idle3ctl.c:137: warning: no previous prototype for 'VSC_send_key'
idle3ctl.c:167: warning: function declaration isn't a prototype
idle3ctl.c:174: warning: function declaration isn't a prototype
idle3ctl.c:183: warning: no previous prototype for 'VSC_get_timer'
idle3ctl.c:214: warning: no previous prototype for 'VSC_set_timer'
idle3ctl.c:245: warning: no previous prototype for 'cleanup'
idle3ctl.c:253: warning: no previous prototype for 'show_version'
idle3ctl.c:259: warning: no previous prototype for 'show_usage'
gcc -g -O2 -W -Wall -Wbad-function-cast -Wcast-align -Wpointer-arith -Wcast-qual -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -fkeep-inline-functions -Wwrite-strings -Waggregate-return -Wnested-externs -Wtrigraphs -c -o sgio.o sgio.c
gcc -s -o idle3ctl idle3ctl.o sgio.o
#strip idle3ctl
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -h
idle3ctl v0.9 - Read, Set or disable the idle3 timer of Western Digital drives
Copyright (C) 2011 Christophe Bothamy
Usage: idle3ctl [options] device
Options:
-h : displat help
-V : show version and exit immediately
-v : version
--force : force even if no Western Digital HDD are detected
-g : get raw idle3 timer value
-g100 : get idle3 timer value as wdidle3 v1.00 value
-g103 : get idle3 timer value as wdidle3 v1.03 value
-d : disable idle3 timer
-s<value> : set idle3 timer raw value
I use this drive
MyBookLive:/shares/Public/idle3-tools-0.9# smartctl -i /dev/sda
smartctl version 5.38 [powerpc-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD15EADS-00P8B0
Serial Number: WD-WCAVU0378793
Firmware Version: 01.00A01
User Capacity: 1,500,301,910,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Mon May 2 08:24:27 2011 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
now I set (-s, -d) and checked (-g) the idle parameter and all works fine:
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -g /dev/sda
Idle3 timer set to 80 (0x50)
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -s 100 /dev/sda
Idle3 timer set to 100 (0x64)
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -g /dev/sda
Idle3 timer set to 100 (0x64)
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -d /dev/sda
Idle3 timer disabled
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -g /dev/sda
Idle3 timer is disabled
all looks fine, but let's wait …
smartctl -A /dev/sda|grep Load_Cycle_Count
193 Load_Cycle_Count 0x0032 158 158 000 Old_age Always - 127661
one minute later
# smartctl -A /dev/sda|grep Load_Cycle_Count
193 Load_Cycle_Count 0x0032 158 158 000 Old_age Always - 127663
bad
here some verbose output (wrong help message: -v is verbose output and -V is version!!)
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -d -v /dev/sda
Checking if Drive is a Western Digital Drive
outgoing cdb: 85 08 2e 00 00 00 00 00 00 00 00 00 00 40 ec 00
data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 ff 00 00 00 00 00 00 40 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 ff 00 00 00 00 00 00
ATA_16 stat=50 err=00 nsect=ff lbal=00 lbam=00 lbah=00 dev=40
Enabling Vendor Specific ATA commands
outgoing cdb: 85 06 20 00 45 00 00 00 00 00 44 00 57 a0 80 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 44 00 57 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 44 00 57
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=44 lbah=57 dev=a0
Sending WRITE key
outgoing cdb: 85 0a 26 00 d6 00 01 00 be 00 4f 00 c2 a0 b0 00
data: 2a 00 02 00 02 00 0d 00 16 00 01 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 01 00 00 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 01 00 00
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=01 lbah=00 dev=a0
Setting Idle3 timer value to 00
outgoing cdb: 85 0a 26 00 d6 00 01 00 bf 00 4f 00 c2 a0 b0 00
data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 01 00 bf 00 00 00 00 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 01 00 bf 00 00 00 00
ATA_16 stat=50 err=00 nsect=01 lbal=bf lbam=00 lbah=00 dev=a0
Idle3 timer disabled
Disabling Vendor Specific ATA commands
outgoing cdb: 85 06 20 00 44 00 00 00 00 00 44 00 57 a0 80 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 44 00 57 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 44 00 57
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=44 lbah=57 dev=a0
MyBookLive:/shares/Public/idle3-tools-0.9# ./idle3ctl -g -v /dev/sda
Checking if Drive is a Western Digital Drive
outgoing cdb: 85 08 2e 00 00 00 00 00 00 00 00 00 00 40 ec 00
data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 ff 00 00 00 00 00 00 40 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 ff 00 00 00 00 00 00
ATA_16 stat=50 err=00 nsect=ff lbal=00 lbam=00 lbah=00 dev=40
Enabling Vendor Specific ATA commands
outgoing cdb: 85 06 20 00 45 00 00 00 00 00 44 00 57 a0 80 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 44 00 57 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 44 00 57
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=44 lbah=57 dev=a0
Sending READ key
outgoing cdb: 85 0a 26 00 d6 00 01 00 be 00 4f 00 c2 a0 b0 00
data: 2a 00 01 00 02 00 0d 00 16 00 01 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 01 00 00 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 01 00 00
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=01 lbah=00 dev=a0
Getting Idle3 timer value
outgoing cdb: 85 08 2e 00 d5 00 01 00 bf 00 4f 00 c2 a0 b0 00
data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 bf 00 00 00 00 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 bf 00 00 00 00
ATA_16 stat=50 err=00 nsect=00 lbal=bf lbam=00 lbah=00 dev=a0
Idle3 timer is disabledDisabling Vendor Specific ATA commands
outgoing cdb: 85 06 20 00 44 00 00 00 00 00 44 00 57 a0 80 00
SG_IO: ATA_16 status=0x2, host_status=0x0, driver_status=0x8
SG_IO: sb[]: 72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 00 00 44 00 57 a0 50 00 00 00 00 00 00 00 00 00 00
SG_IO: desc[]: 09 0c 00 00 00 00 00 00 00 44 00 57
ATA_16 stat=50 err=00 nsect=00 lbal=00 lbam=44 lbah=57 dev=a0