Hello community,
here is the log from the commit of package hdparm for openSUSE:Factory checked in at 2012-01-09 16:22:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hdparm (Old)
and /work/SRC/openSUSE:Factory/.hdparm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hdparm", Maintainer is "PUzel@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hdparm/hdparm.changes 2011-10-04 18:11:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hdparm.new/hdparm.changes 2012-01-09 16:22:53.000000000 +0100
@@ -1,0 +2,8 @@
+Sun Jan 8 19:51:06 UTC 2012 - puzel@suse.com
+
+- update to hdparm-9.38
+ - updated wiper.sh to allow all SCSI_DISK major numbers
+ - updated handing for very long SECURITY-ERASE times
+ - added -J flag for wdidle3 set/get
+
+-------------------------------------------------------------------
Old:
----
hdparm-9.37.tar.gz
New:
----
hdparm-9.38.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hdparm.spec ++++++
--- /var/tmp/diff_new_pack.Sn1Viu/_old 2012-01-09 16:22:56.000000000 +0100
+++ /var/tmp/diff_new_pack.Sn1Viu/_new 2012-01-09 16:22:56.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package hdparm
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,18 +15,15 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: hdparm
-License: PERMISSIVE-OSI-COMPLIANT
-Group: Hardware/Other
PreReq: %insserv_prereq %fillup_prereq coreutils
Provides: base:/sbin/hdparm
-AutoReqProv: on
-Version: 9.37
-Release: 1
+Version: 9.38
+Release: 0
Summary: A Program to get and set hard disk parameters
+License: PERMISSIVE-OSI-COMPLIANT
+Group: Hardware/Other
Source: http://sourceforge.net/projects/hdparm/files/hdparm/%{name}-%{version}.tar.gz
Source1: 56-idedma.rules
Source2: sysconfig.ide
++++++ hdparm-9.37.tar.gz -> hdparm-9.38.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/Changelog new/hdparm-9.38/Changelog
--- old/hdparm-9.37/Changelog 2011-01-24 16:15:10.000000000 +0100
+++ new/hdparm-9.38/Changelog 2012-01-06 17:47:10.000000000 +0100
@@ -1,3 +1,7 @@
+9.37+
+ - updated wiper.sh to allow all SCSI_DISK major numbers
+ - updated handing for very long SECURITY-ERASE times
+ - added -J flag for wdidle3 set/get
hdparm-9.37
- handle raid1 start_lba values, and show -1 for indeterminte raid start_lba values
- abort --fibmap when start_lba is indeterminate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/Makefile new/hdparm-9.38/Makefile
--- old/hdparm-9.37/Makefile 2011-01-08 15:56:44.000000000 +0100
+++ new/hdparm-9.38/Makefile 2012-01-06 17:05:37.000000000 +0100
@@ -22,7 +22,7 @@
INSTALL_DIR = $(INSTALL) -m 755 -d
INSTALL_PROGRAM = $(INSTALL)
-OBJS = hdparm.o identify.o sgio.o sysfs.o geom.o fallocate.o fibmap.o fwdownload.o dvdspeed.o
+OBJS = hdparm.o identify.o sgio.o sysfs.o geom.o fallocate.o fibmap.o fwdownload.o dvdspeed.o wdidle3.o
all: hdparm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/contrib/wdidle3_trace.txt new/hdparm-9.38/contrib/wdidle3_trace.txt
--- old/hdparm-9.37/contrib/wdidle3_trace.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/hdparm-9.38/contrib/wdidle3_trace.txt 2012-01-07 21:52:53.000000000 +0100
@@ -0,0 +1,255 @@
+These are FIS (SATA Frame Information Structures) traces captured with a SATA analyser
+when using the WDIDLE3-1.03 program under DOS. I do not know the sequence that these
+four traces were done in, which may affect the exact actions/values used.
+
+
+----------------------------------------------------------------------------------------------------------------------------------------------------
+
+wdidle3-report.sata: report state of the idle3 timer:
+
+RESET_DEVICE:
+fis: 27 00 80 44 01 00 00 00 00 00 00 d5 01 00 00 06 00 00 00 00
+fis: 27 00 80 44 01 00 00 00 00 00 00 d5 01 00 00 02 00 00 00 00
+
+IDENTIFY_DEVICE:
+fis: 27 80 ec 44 01 00 00 a0 00 00 00 d5 01 00 00 02 00 00 00 00
+data_in:
+ 0: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00 00 00 00 00 20 20 20 20 57 20 2d 44 4d 57 56 41 30 35 32 33 35 36 36 38 00 00 ff ff 32 00 31 30
+ 48: 30 2e 41 30 31 30 44 57 20 43 44 57 30 35 30 30 41 41 53 44 30 2d 4d 30 42 32 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80
+ 96: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00 3f 00 10 fc fb 00 00 01 ff ff ff 0f 00 00 07 00 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00
+144: 00 00 00 00 00 00 1f 00 06 17 00 00 44 00 40 00 fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41 7f 40 4a 00 4a 00 00 00 fe ff 00 00 fe 80 00 00
+192: 00 00 00 00 00 00 00 00 30 60 38 3a 00 00 00 00 00 00 00 00 00 00 00 00 01 50 e0 4e 81 ac a1 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40
+240: 1c 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 ce 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
+288: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+336: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+384: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+432: 00 00 00 00 00 00 00 00 00 00 00 00 1e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 60
+
+VSC_ENABLE:
+fis: 27 80 80 45 01 44 57 a0 00 00 00 44 00 00 00 02 00 00 00 00
+
+SMART_WRITE_LOG:
+fis: 27 80 b0 d6 be 4f c2 a0 01 44 57 45 01 00 00 02 00 00 00 00
+data_out: 57 00 1a 00..
+
+SMART_READ_LOG:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 40 1f 00 00..
+
+SMART_WRITE_LOG:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d5 01 00 00 02 00 00 00 00
+data_out: 2a 00 01 00 02 00 0d 00 16 00 01 00..
+
+SMART_READ_LOG:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 50 00..
+
+VSC_DISABLE:
+fis: 27 80 80 44 bf 44 57 a0 00 00 00 d5 00 00 00 02 00 00 00 00
+
+----------------------------------------------------------------------------------------------------------------------------------------------------
+
+wdidle3-disable.sata: completely disable the idle3 timer:
+
+RESET,
+IDENTIFY:
+fis: 27 80 ec 44 01 00 00 a0 00 00 00 d5 01 00 00 02 00 00 00 00
+data_in:
+ 0: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00 00 00 00 00 20 20 20 20 57 20 2d 44 4d 57 56 41 30 35 32 33 35 36 36 38 00 00 ff ff 32 00 31 30
+ 48: 30 2e 41 30 31 30 44 57 20 43 44 57 30 35 30 30 41 41 53 44 30 2d 4d 30 42 32 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80
+ 96: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00 3f 00 10 fc fb 00 00 01 ff ff ff 0f 00 00 07 00 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00
+144: 00 00 00 00 00 00 1f 00 06 17 00 00 44 00 40 00 fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41 7f 40 4a 00 4a 00 00 00 fe ff 00 00 fe 80 00 00
+192: 00 00 00 00 00 00 00 00 30 60 38 3a 00 00 00 00 00 00 00 00 00 00 00 00 01 50 e0 4e 81 ac a1 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40
+240: 1c 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 ce 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
+288: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+336: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+384: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+432: 00 00 00 00 00 00 00 00 00 00 00 00 1e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 60
+
+vSC_ENABLE:
+fis: 27 80 80 45 01 44 57 a0 00 00 00 44 00 00 00 02 00 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 01 44 57 45 01 00 00 02 00 00 00 00
+data_out: 57 00 1b 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_out:
+ 0: 00 00 00 00 f2 0b 00 00 d3 de 43 00 ff ff ff ff 00 00 00 00 78 57 55 00 3c 2d 4c 00 60 70 4b 00 63 70 4b 00 00 00 00 00 00 00 00 00 f2 0b 00 00
+ 48: d4 2e 4c 00 60 70 4b 00 d0 67 4c 00 08 60 4c 00 6e 4f 44 00 63 70 4b 00 14 00 00 00 14 00 00 00 f2 0b 00 00 b2 80 43 00 64 00 00 00 a0 00 00 00
+ 96: 50 40 55 00 73 00 83 00 73 00 63 00 e8 06 00 00 d4 33 03 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 01 87 01 83 00 83 00 e8 06 00 00 38 00 00 00
+144: d4 2d 4c 00 a4 2d 4c 00 21 00 00 00 19 00 00 00 00 00 00 00 00 03 00 00 46 32 21 00 00 00 6e 0d 15 00 c3 00 22 04 00 00 00 00 00 00 73 00 af 01
+192: 73 00 63 00 0c 2e 4c 00 d4 33 03 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 01 00 00 af 01 d3 00 0c 2e 4c 00 00 00 00 00 0c 2e 4c 00 fc 2d 4c 00
+240: 21 00 00 00 21 00 00 00 00 00 4b 00 00 30 00 00 02 30 21 00 c2 55 6a 0d 08 00 c3 00 8a 3e 00 00 69 61 4c 00 00 00 00 00 00 00 00 00 e4 23 00 00
+288: 01 00 00 00 19 00 00 00 c2 55 4b 00 01 68 00 00 02 30 4c 00 00 00 00 00 00 00 00 00 4c 2e 00 24 01 31 00 00 b7 01 00 00 00 00 00 00 af 01 00 00
+336: af 01 00 00 00 32 00 00 00 00 00 00 12 2b 00 00 58 18 48 00 a7 01 00 00 5d 18 48 00 01 00 00 00 f0 a9 47 00 19 00 00 00 69 61 4c 00 86 00 00 00
+384: c2 55 4b 00 00 06 00 00 0a 00 00 00 05 9a 47 00 d7 80 4a 00 70 5c 47 00 44 2f 4c 00 00 0a 00 00 ac 2e 4c 00 7c 5c 47 00 73 2e 4c 00 05 9b 47 00
+432: c2 55 4b 00 f1 ff ff ff ff ff ff ff d0 67 4c 00 18 00 00 00 d0 73 20 00 d0 67 4c 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 51 43 00 ef 20 46 00 cd 01 00 00 f7 20 46 00 14 00 00 00 14 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 57 00 1a 00..
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 01 00..
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d5 01 00 00 02 00 00 00 00
+data_out: 2a 00 02 00 02 00 0d 00 16 00 01 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_out: fc 2c 4c 00 01
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 2a 00 01 00 02 00 0d 00 16 00 01 00..
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: fc 00..
+
+VSC_DISABLE:
+fis: 27 80 80 44 bf 44 57 a0 00 00 00 d5 00 00 00 02 00 00 00 00
+
+----------------------------------------------------------------------------------------------------------------------------------------------------
+
+wdidle3-300.sata: set idle3 timeout to 300 seconds.
+
+IDENTIFY:
+data_in:
+ 0: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00 00 00 00 00 20 20 20 20 57 20 2d 44 4d 57 56 41 30 35 32 33 35 36 36 38 00 00 ff ff 32 00 31 30
+ 48: 30 2e 41 30 31 30 44 57 20 43 44 57 30 35 30 30 41 41 53 44 30 2d 4d 30 42 32 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80
+ 96: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00 3f 00 10 fc fb 00 00 01 ff ff ff 0f 00 00 07 00 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00
+144: 00 00 00 00 00 00 1f 00 06 17 00 00 44 00 40 00 fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41 7f 40 4a 00 4a 00 00 00 fe ff 00 00 fe 80 00 00
+192: 00 00 00 00 00 00 00 00 30 60 38 3a 00 00 00 00 00 00 00 00 00 00 00 00 01 50 e0 4e 81 ac a1 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40
+240: 1c 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 ce 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
+288: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+336: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+384: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+432: 00 00 00 00 00 00 00 00 00 00 00 00 1e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 60
+
+VSC_ENABLE:
+fis: 27 80 80 45 01 44 57 a0 00 00 00 44 00 00 00 02 00 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 01 44 57 45 01 00 00 02 00 00 00 00
+data_out: 57 00 1b 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_out:
+ 0: e0 93 04 00 f2 0b 00 00 d3 de 43 00 ff ff ff ff 00 00 00 00 78 57 55 00 3c 2d 4c 00 60 70 4b 00 66 70 4b 00 00 00 00 00 00 00 00 00 f2 0b 00 00
+ 48: d4 2e 4c 00 60 70 4b 00 d8 67 4c 00 08 60 4c 00 6e 4f 44 00 66 70 4b 00 14 00 00 00 14 00 00 00 f2 0b 00 00 b2 80 43 00 64 00 00 00 a0 00 00 00
+ 96: 50 40 55 00 73 00 83 00 73 00 63 00 e8 06 00 00 d4 33 03 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 01 87 01 83 00 83 00 e8 06 00 00 38 00 00 00
+144: d4 2d 4c 00 a4 2d 4c 00 21 00 00 00 19 00 00 00 00 00 00 00 00 03 00 00 46 32 21 00 00 00 6e 0d 15 00 c3 00 22 04 00 00 00 00 00 00 00 00 46 32
+192: d8 2d 46 32 00 02 00 00 00 03 00 00 46 32 00 00 46 32 00 00 00 03 00 00 81 00 00 00 e8 06 00 00 71 61 4c 00 1c 2e 4c 00 f8 2d 4c 00 21 00 00 00
+240: 19 00 00 00 19 00 00 00 01 ff 00 00 b7 01 00 00 87 01 00 00 83 00 00 00 af 01 00 00 b6 05 00 00 37 01 00 00 00 32 00 00 c3 05 00 00 60 00 00 00
+288: 19 00 00 00 01 00 00 00 58 61 4c 00 3c 2e 4c 00 01 00 00 00 58 61 4c 00 19 00 00 00 19 00 00 00 b7 01 00 00 00 00 00 00 af 01 00 00 af 01 00 00
+336: 1f 01 48 00 a7 01 00 00 44 32 00 00 19 00 00 00 00 00 00 00 58 61 4c 00 19 00 00 00 c2 55 4b 00 59 a9 47 00 19 00 00 00 71 61 4c 00 86 00 00 00
+384: c2 55 4b 00 00 06 00 00 0a 00 00 00 05 9a 47 00 d7 80 4a 00 70 5c 47 00 44 2f 4c 00 00 0a 00 00 ac 2e 4c 00 7c 5c 47 00 73 2e 4c 00 05 9b 47 00
+432: c2 55 4b 00 f1 ff ff ff ff ff ff ff d8 67 4c 00 18 00 00 00 d8 73 20 00 d8 67 4c 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 51 43 00 ef 20 46 00 17 02 00 00 f7 20 46 00 14 00 00 00 14 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 57 00 1a 00..
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: e0 93 04 00..
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d5 01 00 00 02 00 00 00 00
+data_out: 2a 00 02 00 02 00 0d 00 16 00 01 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data: 8a 2c 4c 00 e0 93 04 00..
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 2a 00 01 00 02 00 0d 00 16 00 01 00
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 8a 00..
+
+VSC_DISABLE:
+fis: 27 80 80 44 bf 44 57 a0 00 00 00 d5 00 00 00 02 00 00 00 00
+
+----------------------------------------------------------------------------------------------------------------------------------------------------
+
+wdidle3-30.5.sata: change idle3 timeout to 30.5(?) seconds.
+
+IDENTIFY:
+fis: 27 80 ec 44 01 00 00 a0 00 00 00 d5 01 00 00 02 00 00 00 00
+data_in:
+ 0: 7a 42 ff 3f 37 c8 10 00 00 00 00 00 3f 00 00 00 00 00 00 00 20 20 20 20 57 20 2d 44 4d 57 56 41 30 35 32 33 35 36 36 38 00 00 ff ff 32 00 31 30
+ 48: 30 2e 41 30 31 30 44 57 20 43 44 57 30 35 30 30 41 41 53 44 30 2d 4d 30 42 32 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 10 80
+ 96: 00 00 00 2f 01 40 00 00 00 00 07 00 ff 3f 10 00 3f 00 10 fc fb 00 00 01 ff ff ff 0f 00 00 07 00 03 00 78 00 78 00 78 00 78 00 00 00 00 00 00 00
+144: 00 00 00 00 00 00 1f 00 06 17 00 00 44 00 40 00 fe 01 00 00 6b 74 61 7f 23 41 69 74 41 bc 23 41 7f 40 4a 00 4a 00 00 00 fe ff 00 00 fe 80 00 00
+192: 00 00 00 00 00 00 00 00 30 60 38 3a 00 00 00 00 00 00 00 00 00 00 00 00 01 50 e0 4e 81 ac a1 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40
+240: 1c 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 ce 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00
+288: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+336: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+384: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+432: 00 00 00 00 00 00 00 00 00 00 00 00 1e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 10 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5 60
+
+VSC_ENABLE:
+fis: 27 80 80 45 01 44 57 a0 00 00 00 44 00 00 00 02 00 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 01 44 57 45 01 00 00 02 00 00 00 00
+data_out: 57 00 1b 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_out:
+ 0: 24 77 00 00 f2 0b 00 00 d3 de 43 00 ff ff ff ff 00 00 00 00 78 57 55 00 3c 2d 4c 00 60 70 4b 00 67 70 4b 00 00 00 00 00 00 00 00 00 f2 0b 00 00
+ 48: d4 2e 4c 00 60 70 4b 00 d8 67 4c 00 08 60 4c 00 6e 4f 44 00 67 70 4b 00 14 00 00 00 14 00 00 00 f2 0b 00 00 b2 80 43 00 64 00 00 00 a0 00 00 00
+ 96: 50 40 55 00 73 00 83 00 73 00 63 00 e8 06 00 00 d4 33 03 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 01 87 01 83 00 83 00 e8 06 00 00 38 00 00 00
+144: d4 2d 4c 00 a4 2d 4c 00 21 00 00 00 19 00 00 00 00 00 00 00 00 03 00 00 46 32 21 00 00 00 6e 0d 15 00 c3 00 22 04 00 00 00 00 00 00 00 00 46 32
+192: d8 2d 46 32 00 02 00 00 00 03 00 00 46 32 00 00 46 32 00 00 00 03 00 00 81 00 00 00 e8 06 00 00 71 61 4c 00 1c 2e 4c 00 f8 2d 4c 00 21 00 00 00
+240: 19 00 00 00 19 00 00 00 01 ff 00 00 b7 01 00 00 87 01 00 00 83 00 00 00 af 01 00 00 b6 05 00 00 37 01 00 00 00 32 00 00 c3 05 00 00 60 00 00 00
+288: 19 00 00 00 01 00 00 00 58 61 4c 00 3c 2e 4c 00 01 00 00 00 58 61 4c 00 19 00 00 00 19 00 00 00 b7 01 00 00 00 00 00 00 af 01 00 00 af 01 00 00
+336: 1f 01 48 00 a7 01 00 00 44 32 00 00 19 00 00 00 00 00 00 00 58 61 4c 00 19 00 00 00 c2 55 4b 00 59 a9 47 00 19 00 00 00 71 61 4c 00 86 00 00 00
+384: c2 55 4b 00 00 06 00 00 0a 00 00 00 05 9a 47 00 d7 80 4a 00 70 5c 47 00 44 2f 4c 00 00 0a 00 00 ac 2e 4c 00 7c 5c 47 00 73 2e 4c 00 05 9b 47 00
+432: c2 55 4b 00 f1 ff ff ff ff ff ff ff d8 67 4c 00 18 00 00 00 d8 73 20 00 d8 67 4c 00 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 51 43 00 ef 20 46 00 4c 02 00 00 f7 20 46 00 14 00 00 00 14 00 00 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 57 00 1a 00..
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 24 77 00..
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d5 01 00 00 02 00 00 00 00
+data_out: 2A 00 02 00 02 00 0D 00 16 00 01 00..
+
+SMART:
+fis: 27 80 b0 d6 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_out: 81 2c 4c 00 24 77 00
+
+SMART:
+fis: 27 80 b0 d6 be 4f c2 a0 bf 00 00 d6 01 01 00 02 00 00 00 00
+data_out: 2a 00 01 00 02 00 0d 00 16 00 01 00..
+
+SMART:
+fis: 27 80 b0 d5 bf 4f c2 a0 00 01 00 d6 01 00 00 02 00 00 00 00
+data_in: 81 00..
+
+VSC_DISABLE:
+fis: 27 80 80 44 bf 44 57 a0 00 00 00 d5 00 00 00 02
+
+----------------------------------------------------------------------------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/hdparm.8 new/hdparm-9.38/hdparm.8
--- old/hdparm-9.37/hdparm.8 2010-11-11 15:35:57.000000000 +0100
+++ new/hdparm-9.38/hdparm.8 2012-01-07 22:58:56.000000000 +0100
@@ -1,4 +1,4 @@
-.TH HDPARM 8 "November 2010" "Version 9.36"
+.TH HDPARM 8 "January 2012" "Version 9.38"
.SH NAME
hdparm \- get/set SATA/IDE device parameters
@@ -308,6 +308,31 @@
.B --Istdin
option.
.TP
+.I -J
+Get/set the Western Digital (WD) Green Drive's "idle3" timeout value.
+This timeout controls how often the drive parks its heads and enters
+a low power consumption state. The factory default is eight (8) seconds,
+which is a very poor choice for use with Linux. Leaving it at the default
+will result in hundreds of thousands of head load/unload cycles in a very
+short period of time. The drive mechanism is only rated for 300,000 to 1,000,000
+cycles, so leaving it at the default could result in premature failure,
+not to mention the performance impact of the drive often having to wake-up
+before doing routine I/O.
+.IP
+WD supply a WDIDLE3.EXE DOS utility for tweaking this setting,
+and you should use that program instead of hdparm
+if at all possible. The reverse-engineered implementation in hdparm
+is not as complete as the original official program, even though it does
+seem to work on at a least a few drives. A full power cycle is required
+for any change in setting to take effect, regardless of which program is
+used to tweak things.
+.IP
+A setting of 30 seconds is recommended for Linux use.
+Permitted values are from 8 to 12 seconds, and from 30 to 300 seconds
+in 30-second increments.
+Specify a value of zero (0) to disable the WD idle3 timer completely
+(NOT RECOMMENDED!).
+.TP
.I -k
Get/set the "keep_settings_over_reset" flag for the drive.
When this flag is set, the drive will preserve the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/hdparm.c new/hdparm-9.38/hdparm.c
--- old/hdparm-9.37/hdparm.c 2011-01-24 16:15:17.000000000 +0100
+++ new/hdparm-9.38/hdparm.c 2012-01-07 22:57:24.000000000 +0100
@@ -35,7 +35,7 @@
extern const char *minor_str[];
-#define VERSION "v9.37"
+#define VERSION "v9.38"
#ifndef O_DIRECT
#define O_DIRECT 040000 /* direct disk access, not easily obtained from headers */
@@ -55,7 +55,7 @@
static int do_identity = 0, get_geom = 0, noisy = 1, quiet = 0;
static int do_flush_wcache = 0;
-//static int set_wdidle3 = 0;
+static int set_wdidle3 = 0, get_wdidle3 = 0, wdidle3 = 0;
static int set_timings_offset = 0;
static __u64 timings_offset = 0;
static int set_fsreadahead= 0, get_fsreadahead= 0, fsreadahead= 0;
@@ -706,15 +706,25 @@
if (id) {
timeout = id[idx];
if (timeout && timeout <= 0xff) {
- if (timeout == 0xff)
+ /*
+ * 0xff means "more than 254 2-minute intervals (508+ minutes),
+ * but we really want a better idea than that.
+ * Norman Diamond suggests allowing 1sec per 30MB of capacity.
+ */
+ if (timeout == 0xff) {
+ __u64 lba_limit = get_lba_capacity(id);
+ __u64 estimate = (lba_limit / 2048ULL) / 30ULL / 60;
timeout = 508 + 60; /* spec says > 508 minutes */
- else
+ if (timeout < estimate)
+ timeout = estimate;
+ } else {
timeout = (timeout * 2) + 5; /* Add on a 5min margin */
+ }
}
}
if (!timeout)
timeout = 2 * 60; /* default: two hours */
- timeout *= 60; /* secs */
+ timeout *= 60; /* convert minutes to seconds */
return timeout;
}
@@ -778,7 +788,7 @@
exit(EINVAL);
}
printf(" Issuing %s command, password=\"%s\", user=%s",
- description, security_password, data[0] ? "master" : "user");
+ description, security_password, (data[0] & 1) ? "master" : "user");
if (security_command == ATA_OP_SECURITY_SET_PASS)
printf(", mode=%s", data[1] ? "max" : "high");
printf("\n");
@@ -949,44 +959,6 @@
exit(EINVAL);
}
-#if 0
-static int do_wdidle3 (int fd, const char *devname)
-{
- struct ata_tf tf;
- int err = 0;
- const unsigned char vu_op = 0x8a;
-
- abort_if_not_full_device(fd, 0, devname, NULL);
- confirm_please_destroy_my_drive("--wdidle3", "This is not fully implemented yet, and could destroy the drive and/or all data on it.");
- printf("attempting to tweak Western Digital \"idle-3\" parameters\n");
- fflush(stdout);
-
- {
- unsigned char bits;
- for (bits = 0; bits <= 0x1f; ++bits) {
- tf_init(&tf, vu_op, 0, 0);
- tf.lob.feat = 'W';
- tf.lob.nsect = 'D';
- tf.lob.lbal = 'C';
- tf.lob.lbam = 0x00;
- tf.lob.lbah = 0x00;
- tf.dev = 0xa0 | (tf.dev & 0xb0) | (bits & 0xf);
- if (bits >= 0x10)
- tf.dev |= 0x40;
-
- /* This probably wants to transfer data, but.. ???? */
- if (sg16(fd, SG_WRITE, SG_PIO, &tf, NULL, 0, 5 /* seconds */)) {
- err = errno;
- perror("FAILED");
- } else {
- printf("succeeded\n");
- }
- }
- }
- return err;
-}
-#endif
-
static __u16 *get_dco_identify_data (int fd, int quietly)
{
static __u8 args[4+512];
@@ -1016,6 +988,9 @@
__u64 max = 0;
struct hdio_taskfile r;
+ get_identify_data(fd);
+ if (!id)
+ exit(EIO);
memset(&r, 0, sizeof(r));
r.cmd_req = TASKFILE_CMD_REQ_NODATA;
r.dphase = TASKFILE_DPHASE_NONE;
@@ -1027,9 +1002,6 @@
r.iflags.lob.lbah = 1;
r.lob.dev = 0x40;
- get_identify_data(fd);
- if (!id)
- exit(EIO);
if (((id[83] & 0xc400) == 0x4400) && (id[86] & 0x0400)) {
r.iflags.hob.lbal = 1;
r.iflags.hob.lbam = 1;
@@ -1466,6 +1438,7 @@
" -H Read temperature from drive (Hitachi only)\n"
" -i Display drive identification\n"
" -I Detailed/current information directly from drive\n"
+ " -J Get/set Western DIgital \"Idle3\" timeout for a WDC \"Green\" drive (DANGEROUS)\n"
" -k Get/set keep_settings_over_reset flag (0/1)\n"
" -K Set drive keep_features_over_reset flag (0/1)\n"
" -L Set drive doorlock (0/1) (removable harddisks only)\n"
@@ -1518,7 +1491,6 @@
" --trim-sector-ranges Tell SSD firmware to discard unneeded data sectors: lba:count ..\n"
" --trim-sector-ranges-stdin Same as above, but reads lba:count pairs from stdin\n"
" --verbose Display extra diagnostics from some commands\n"
- //" --wdidle3 Issue the Western Digitial \"Idle3\" command (EXTREMELY DANGEROUS)\n"
" --write-sector Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)\n"
"\n");
exit(rc);
@@ -1578,8 +1550,16 @@
exit(do_trim_from_stdin(fd, devname));
}
- //if (set_wdidle3)
- // do_wdidle3(fd, devname);
+ if (set_wdidle3) {
+ unsigned char timeout = wdidle3_msecs_to_timeout(wdidle3);
+ confirm_please_destroy_my_drive("-J", "This implementation is not as thorough as the official WDIDLE3.EXE. Use at your own risk!");
+ if (get_wdidle3) {
+ printf(" setting wdidle3 to ");
+ wdidle3_print_timeout(timeout);
+ putchar('\n');
+ }
+ err = wdidle3_set_timeout(fd, timeout);
+ }
if (set_fsreadahead) {
if (get_fsreadahead)
printf(" setting fs readahead to %d\n", fsreadahead);
@@ -2149,6 +2129,15 @@
printf("%lld\n", start_lba);
}
}
+ if (get_wdidle3) {
+ unsigned char timeout = 0;
+ err = wdidle3_get_timeout(fd, &timeout);
+ if (!err) {
+ printf(" wdidle3 = ");
+ wdidle3_print_timeout(timeout);
+ putchar('\n');
+ }
+ }
if (get_powermode) {
__u8 args[4] = {ATA_OP_CHECKPOWERMODE1,0,0,0};
const char *state = "unknown";
@@ -2670,8 +2659,6 @@
} else if (0 == strcasecmp(name, "read-sector")) {
read_sector = 1;
get_u64_parm(0, 0, NULL, &read_sector_addr, 0, lba_limit, name, lba_emsg);
- //} else if (0 == strcasecmp(name, "wdidle3")) {
- // set_wdidle3 = 1;
} else if (0 == strcasecmp(name, "Istdout")) {
do_IDentity = 2;
} else if (0 == strcasecmp(name, "security-mode")) {
@@ -2759,6 +2746,7 @@
case SET_FLAG('H',hitachi_temp);
case DO_FLAG('i',do_identity);
case DO_FLAG('I',do_IDentity);
+ case GET_SET_PARM('J',"WDC-idle3-timeout",wdidle3,0,300);
case GET_SET_PARM('k',"kernel-keep-settings",keep,0,1);
case SET_PARM('K',"drive-keep-settings",dkeep,0,1);
case SET_PARM('L',"door-lock",doorlock,0,1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/hdparm.h new/hdparm-9.38/hdparm.h
--- old/hdparm-9.37/hdparm.h 2010-11-24 22:54:19.000000000 +0100
+++ new/hdparm-9.38/hdparm.h 2012-01-06 17:38:59.000000000 +0100
@@ -25,6 +25,11 @@
int set_dvdspeed(int fd, int speed);
int fd_is_raid (int fd);
+int wdidle3_set_timeout (int fd, unsigned char timeout);
+int wdidle3_get_timeout (int fd, unsigned char *timeout);
+void wdidle3_print_timeout (unsigned char timeout);
+unsigned char wdidle3_msecs_to_timeout (unsigned int msecs);
+
extern const char *BuffType[4];
struct local_hd_big_geometry {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/hdparm.lsm new/hdparm-9.38/hdparm.lsm
--- old/hdparm-9.37/hdparm.lsm 2011-01-24 16:17:21.000000000 +0100
+++ new/hdparm-9.38/hdparm.lsm 2012-01-07 23:00:13.000000000 +0100
@@ -1,9 +1,10 @@
Begin4
Title: hdparm
-Version: 9.37
-Entered-date: 2011-01-24
+Version: 9.38
+Entered-date: 2012-01-07
Description: hdparm - get/set hard disk parameters for Linux SATA/IDE drives.
- v9.37 Enable --fibmap to work on RAID1; other tweaks.
+ v9.38 Added -J, fixed erase timeouts, updated wiper.sh
+ v9.37 Enable --fibmap to work on RAID1; other tweaks
v9.36 manpage updates, wiper.sh version 3.1
v9.35 Fixed CDB breakage from v9.34; -B works again now
v9.34 Fixed CDB transfer length bug that affected some commands
@@ -111,7 +112,7 @@
Maintained-by: mlord@pobox.com (Mark Lord)
Primary-site: http://sourceforge.net/projects/hdparm/
Alternate-site: http://www.ibiblio.org/pub/Linux/system/hardware
- 122K hdparm-9.37.tar.gz
+ 131K hdparm-9.38.tar.gz
4K hdparm.lsm
Platforms: Linux
Copying-policy: BSD License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/identify.c new/hdparm-9.38/identify.c
--- old/hdparm-9.37/identify.c 2010-09-24 01:24:50.000000000 +0200
+++ new/hdparm-9.38/identify.c 2011-12-04 23:49:22.000000000 +0100
@@ -1330,8 +1330,20 @@
kk = val[ENH_ERASE_TIME];
if((jj && jj <= 0x00ff) || (kk && kk <= 0x00ff)) {
printf("\t");
- if(jj) printf("%umin for SECURITY ERASE UNIT. ", (jj == 0xff) ? 508 : (jj * 2));
- if(kk) printf("%umin for ENHANCED SECURITY ERASE UNIT.", (kk == 0xff) ? 508 : (kk * 2));
+ if (jj) {
+ if (jj == 0xff)
+ printf("more than 508");
+ else
+ printf("%u", jj * 2);
+ printf("min for SECURITY ERASE UNIT. ");
+ }
+ if (kk) {
+ if (kk == 0xff)
+ printf("more than 508");
+ else
+ printf("%u", kk * 2);
+ printf("min for ENHANCED SECURITY ERASE UNIT. ");
+ }
printf("\n");
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/sgio.c new/hdparm-9.38/sgio.c
--- old/hdparm-9.37/sgio.c 2010-10-19 15:10:00.000000000 +0200
+++ new/hdparm-9.38/sgio.c 2012-01-06 17:06:03.000000000 +0100
@@ -95,6 +95,8 @@
return 1;
case ATA_OP_SECURITY_ERASE_PREPARE:
case ATA_OP_SECURITY_ERASE_UNIT:
+ case ATA_OP_VENDOR_SPECIFIC_0x80:
+ case ATA_OP_SMART:
return 0;
}
if (lba >= lba28_limit)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdparm-9.37/sgio.c.orig new/hdparm-9.38/sgio.c.orig
--- old/hdparm-9.37/sgio.c.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/hdparm-9.38/sgio.c.orig 2010-10-19 15:10:00.000000000 +0200
@@ -0,0 +1,580 @@
+/* sgio.c - by Mark Lord (C) 2007 -- freely distributable */
+#include