diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3d01fb0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/smartmontools-6.5.tar.gz diff --git a/.smartmontools.metadata b/.smartmontools.metadata new file mode 100644 index 0000000..5e98631 --- /dev/null +++ b/.smartmontools.metadata @@ -0,0 +1 @@ +7e788b429534a4ae627858fbcc826b93402cee7e SOURCES/smartmontools-6.5.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/smartdnotify b/SOURCES/smartdnotify new file mode 100644 index 0000000..f82165b --- /dev/null +++ b/SOURCES/smartdnotify @@ -0,0 +1,30 @@ +#! /bin/sh + +# Send mail +echo "$SMARTD_MESSAGE" | mail -s "$SMARTD_FAILTYPE" "$SMARTD_ADDRESS" + +# Notify desktop user +MESSAGE="SMART Disk monitor:" +case "$SMARTD_FAILTYPE" in + "EmailTest"|"Health"|"Temperature"|"Usage") + ;; + *) +# "CurrentPendingSector", // 10 +# "OfflineUncorrectableSector", // 11 +# "FailedReadSmartErrorLog", // 7 +# "ErrorCount", // 4 +# "FailedReadSmartData", // 6 +# "FailedHealthCheck", // 5 +# "FailedOpenDevice", // 9 +# "SelfTest", // 3 +# "FailedReadSmartSelfTestLog", // 8 + exit 0 +esac + +# direct write to terminals, do not use 'wall', because we don't want its ugly header +for t in $(who | awk '{ print $2; }' | grep -e '^tty' -e '^pts/') +do + echo "$MESSAGE +$SMARTD_MESSAGE" >/dev/$t 2>/dev/null ||: +done + diff --git a/SOURCES/smartmontools-5.38-defaultconf.patch b/SOURCES/smartmontools-5.38-defaultconf.patch new file mode 100644 index 0000000..22121a6 --- /dev/null +++ b/SOURCES/smartmontools-5.38-defaultconf.patch @@ -0,0 +1,12 @@ +diff -up smartmontools-5.38/smartd.conf.defaultconf smartmontools-5.38/smartd.conf +--- smartmontools-5.38/smartd.conf.defaultconf 2008-08-07 12:21:53.000000000 +0200 ++++ smartmontools-5.38/smartd.conf 2008-08-07 12:24:26.000000000 +0200 +@@ -20,7 +20,7 @@ + # Directives listed below, which will be applied to all devices that + # are found. Most users should comment out DEVICESCAN and explicitly + # list the devices that they wish to monitor. +-DEVICESCAN ++DEVICESCAN -H -m root -M exec /usr/libexec/smartmontools/smartdnotify -n standby,10,q + + # Alternative setting to ignore temperature and power-on hours reports + # in syslog. diff --git a/SOURCES/smartmontools-6.2-up2datedrivedb.patch b/SOURCES/smartmontools-6.2-up2datedrivedb.patch new file mode 100644 index 0000000..661d2dc --- /dev/null +++ b/SOURCES/smartmontools-6.2-up2datedrivedb.patch @@ -0,0 +1,1368 @@ +diff -up smartmontools-6.5/drivedb.h.up2datedrivedb smartmontools-6.5/drivedb.h +--- smartmontools-6.5/drivedb.h.up2datedrivedb 2016-05-06 22:12:45.000000000 +0200 ++++ smartmontools-6.5/drivedb.h 2017-10-11 14:34:59.352831399 +0200 +@@ -4,7 +4,7 @@ + * Home page of code is: http://www.smartmontools.org + * + * Copyright (C) 2003-11 Philip Williams, Bruce Allen +- * Copyright (C) 2008-16 Christian Franke ++ * Copyright (C) 2008-17 Christian Franke + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -75,7 +75,7 @@ + /* + const drive_settings builtin_knowndrives[] = { + */ +- { "$Id: drivedb.h 4316 2016-05-06 20:12:45Z chrfranke $", ++ { "$Id$", + "-", "-", + "This is a dummy entry to hold the SVN-Id of drivedb.h", + "" +@@ -193,11 +193,10 @@ const drive_settings builtin_knowndrives + //"-v 199,raw48,UDMA_CRC_Error_Count " + //"-v 240,raw48,Unknown_SSD_Attribute " + }, +- { "Crucial/Micron RealSSD C300/M500", // Marvell 88SS91xx +- "C300-CTFDDA[AC](064|128|256)MAG|" // Marvell 88SS9174 BJP2, tested with C300-CTFDDAC128MAG/0002, ++ { "Crucial/Micron RealSSD C300/P300", // Marvell 88SS9174 ++ "C300-CTFDDA[AC](064|128|256)MAG|" // tested with C300-CTFDDAC128MAG/0002, + // C300-CTFDDAC064MAG/0006 +- "Crucial_CT(120|240|480)M500SSD[13]", // Marvell 88SS9187 BLD2, tested with Crucial_CT120M500SSD3/MU02, +- // Crucial_CT120M500SSD1/MU02, Crucial_CT240M500SSD1/MU03, Crucial_CT480M500SSD1/MU03 ++ "P300-MTFDDAC(050|100|200)SAL", // tested with P300-MTFDDAC100SAL/0003 + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " +@@ -222,16 +221,14 @@ const drive_settings builtin_knowndrives + //"-v 199,raw48,UDMA_CRC_Error_Count " + "-v 202,raw48,Percent_Lifetime_Used " + "-v 206,raw48,Write_Error_Rate " +- "-v 210,raw48,Success_RAIN_Recov_Cnt " +- "-v 246,raw48,Total_Host_Sector_Write " +- "-v 247,raw48,Host_Program_Page_Count " +- "-v 248,raw48,Bckgnd_Program_Page_Cnt" + }, + { "Crucial/Micron RealSSD m4/C400/P400", // Marvell 9176, fixed firmware + "C400-MTFDDA[ACK](064|128|256|512)MAM|" +- "M4-CT(064|128|256|512)M4SSD[123]|" // tested with M4-CT512M4SSD2/0309 +- "MTFDDAK(064|128|256|512|050|100|200|400)MA[MNR]-1[JKS]1.*", // tested with +- // MTFDDAK256MAR-1K1AA/MA52, MTFDDAK256MAM-1K12/08TH ++ // M4-CT032M4SSD3/04MH ++ "M4-CT(032|064|128|256|512)M4SSD[123]|" // tested with M4-CT512M4SSD2/0309 ++ "MTFDDA[AK](064|128|256|512|050|100|200|400)MA[MNR]-1[JKS]1.*", // tested with ++ // MTFDDAK256MAR-1K1AA/MA52, MTFDDAK256MAM-1K12/08TH, ++ // MTFDDAA064MAR-1J1AB 49Y5835 49Y5838IBM/MA49 (P400e) + "030[9-Z]|03[1-Z].|0[4-Z]..|[1-Z]....*", // >= "0309" + "", + //"-v 1,raw48,Raw_Read_Error_Rate " +@@ -256,11 +253,14 @@ const drive_settings builtin_knowndrives + //"-v 198,raw48,Offline_Uncorrectable " + //"-v 199,raw48,UDMA_CRC_Error_Count " + "-v 202,raw48,Perc_Rated_Life_Used " +- "-v 206,raw48,Write_Error_Rate" ++ "-v 206,raw48,Write_Error_Rate " ++ "-v 225,raw48,Unknown_Marvell_Attr " // P400e ++ "-v 231,raw48,Unknown_Marvell_Attr " // P400e ++ "-v 242,raw48,Host_Reads" // P400e: 2MiB? + }, + { "Crucial/Micron RealSSD m4/C400", // Marvell 9176, buggy or unknown firmware + "C400-MTFDDA[ACK](064|128|256|512)MAM|" // tested with C400-MTFDDAC256MAM/0002 +- "M4-CT(064|128|256|512)M4SSD[123]", // tested with M4-CT064M4SSD2/0002, ++ "M4-CT(032|064|128|256|512)M4SSD[123]", // tested with M4-CT064M4SSD2/0002, + // M4-CT064M4SSD2/0009, M4-CT256M4SSD3/000F + "", + "This drive may hang after 5184 hours of power-on time:\n" +@@ -279,23 +279,32 @@ const drive_settings builtin_knowndrives + "-v 202,raw48,Perc_Rated_Life_Used " + "-v 206,raw48,Write_Error_Rate" + }, +- { "Crucial/Micron MX100/MX200/M5x0/M600 Client SSDs", +- "Crucial_CT(128|256|512)MX100SSD1|"// tested with Crucial_CT256MX100SSD1/MU01 +- "Crucial_CT(200|250|256|500|512|1000|1024)MX200SSD[1346]|" // tested with Crucial_CT500MX200SSD1/MU01, +- // Crucial_CT1024MX200SSD1/MU01, Crucial_CT250MX200SSD3/MU01, Crucial_CT250MX200SSD1/MU03 +- "Crucial_CT(120|240|480|960)M500SSD[134]|" // tested with Crucial_CT960M500SSD1/MU03, +- // Crucial_CT240M500SSD4/MU05 +- "Crucial_CT(128|256|512|1024)M550SSD[13]|" // tested with Crucial_CT512M550SSD3/MU01, +- // Crucial_CT1024M550SSD1/MU01 ++ { "Crucial/Micron MX1/2/300, M5/600, 1100 Client SSDs", ++ "Crucial_CT(128|256|512)MX100SSD1|"// Marvell 88SS9189, tested with Crucial_CT256MX100SSD1/MU01 ++ "Crucial_CT(200|250|256|500|512|1000|1024)MX200SSD[1346]|" // Marvell 88SS9189, tested with ++ // Crucial_CT500MX200SSD1/MU01, Crucial_CT1024MX200SSD1/MU01, Crucial_CT250MX200SSD3/MU01, ++ // Crucial_CT250MX200SSD1/MU03 ++ "Crucial_CT(275|525|1050|2050)MX300SSD[14]|" // Marvell 88SS1074, tested with ++ // Crucial_CT525MX300SSD1/M0CR021, Crucial_CT2050MX300SSD1/M0CR031, Crucial_CT275MX300SSD1/M0CR040 ++ "Crucial_CT(120|240|480|960)M500SSD[134]|" // Marvell 88SS9187, tested with ++ // Crucial_CT120M500SSD1/MU02, Crucial_CT120M500SSD3/MU02, Crucial_CT240M500SSD1/MU03, ++ // Crucial_CT480M500SSD1/MU03, Crucial_CT960M500SSD1/MU03, Crucial_CT240M500SSD4/MU05 ++ "Crucial_CT(128|256|512|1024)M550SSD[134]|" // tested with Crucial_CT512M550SSD3/MU01, ++ // Crucial_CT1024M550SSD1/MU01, Crucial_CT128M550SSD4/MU02 + "Micron_M500_MTFDDA[KTV](120|240|480|960)MAV|"// tested with Micron_M500_MTFDDAK960MAV/MU05 + "(Micron_)?M510[_-]MTFDDA[KTV](128|256)MAZ|" // tested with M510-MTFDDAK256MAZ/MU01 + "(Micron_)?M550[_-]MTFDDA[KTV](064|128|256|512|1T0)MAY|" // tested with M550-MTFDDAK256MAY/MU01 +- "Micron_M600_(EE|MT)FDDA[KTV](128|256|512|1T0)MBF[25Z]?", // tested with Micron_M600_MTFDDAK1T0MBF/MU01 ++ "Micron_M600_(EE|MT)FDDA[KTV](128|256|512|1T0)MBF[25Z]?|" // tested with Micron_M600_MTFDDAK1T0MBF/MU01 ++ "Micron_M500DC_(EE|MT)FDDA[AK](120|240|480|800)MBB|" // tested with Micron_M500DC_EEFDDAA120MBB/129, Micron_M500DC_MTFDDAK800MBB/0129 ++ "Micron_1100_MTFDDA[KV](256|512|1T0|2T0)TBN|" // Marvell 88SS1074, tested Micron_1100_MTFDDAK256TBN/M0MU020 ++ "MICRON_M510DC_(EE|MT)FDDAK(120|240|480|800|960)MBP|" // Micron_M510DC_MTFDDAK240MBP/0005 ++ "Micron_5100_(EE|MT)FDDA[KV](240|480|960|1T9|3T8|7T6)T(BY|CB|CC)", // tested with Micron_5100_MTFDDAK1T9TBY + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + "-v 5,raw48,Reallocate_NAND_Blk_Cnt " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " ++ "-v 170,raw48,Reserved_Block_Count " + "-v 171,raw48,Program_Fail_Count " + "-v 172,raw48,Erase_Fail_Count " + "-v 173,raw48,Ave_Block-Erase_Count " +@@ -303,6 +312,7 @@ const drive_settings builtin_knowndrives + "-v 180,raw48,Unused_Reserve_NAND_Blk " + "-v 183,raw48,SATA_Interfac_Downshift " + "-v 184,raw48,Error_Correction_Count " ++ "-v 195,raw48,Cumulativ_Corrected_ECC " + //"-v 187,raw48,Reported_Uncorrect " + //"-v 194,tempminmax,Temperature_Celsius " + //"-v 196,raw16(raw16),Reallocated_Event_Count " +@@ -486,11 +496,30 @@ const drive_settings builtin_knowndrives + "-v 241,raw48,Lifetime_Writes_GiB " + "-v 242,raw48,Lifetime_Reads_GiB" + }, ++ { ++ "StorFly CFast SATA 6Gbps SSDs", ++ // http://datasheet.octopart.com/VSFCS2CC060G-100-Virtium-datasheet-82287733.pdf ++ // tested with StorFly VSFCS2CC060G-100/0409-000 ++ "StorFly VSFCS2C[CI](016|030|060|120|240)G-...", ++ // C - commercial, I industrial ++ "", "", ++ "-v 192,raw48,Unsafe_Shutdown_Count " ++ "-v 160,raw48,Uncorrectable_Error_Cnt " ++ // 0729 - remaining in block life. In 0828 remaining is normalized to 100% then decreases ++ "-v 161,raw48,Spares_Remaining " ++ "-v 241,raw48,Host_Writes_32MiB " ++ "-v 242,raw48,Host_Reads_32MiB " ++ "-v 169,raw48,Lifetime_Remaining% " ++ "-v 248,raw48,Lifetime_Remaining% " // later then 0409 FW. ++ "-v 249,raw48,Spares_Remaining_Perc " // later then 0409 FW. ++ }, + { "Phison Driven SSDs", // see MKP_521_Phison_SMART_attribute.pdf + "KINGSTON SUV300S37A(120|240|480)G|" // UV300 SSD, tested with KINGSTON SUV300S37A120G/SAFM11.K + "KINGSTON SKC310S3B?7A960G|" // SSDNow KC310, KINGSTON SKC310S37A960G/SAFM00.r + "KINGSTON SKC400S37(128G|256G|512G|1T)|" // SSDNow KC400, KINGSTON SKC400S37128G + "KINGSTON SV310S3(7A|D7|N7A|B7A)960G|" // SSDNow V310 ++ "GOODRAM|" // GOODRAM/SAFM12.2 (CX200), model name is missing in the SMART! ++ "PNY CS1311 (120|240|480|960)GB SSD|" // tested with PNY CS1311 120GB SSD/CS131122 + "KINGSTON SHSS3B?7A(120|240|480|960)G", // HyperX Savage + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " +@@ -651,8 +680,9 @@ const drive_settings builtin_knowndrives + "-v 251,raw48,Total_NAND_Read_Ct_GiB" + }, + { +- "OCZ Trion SSDs", +- "OCZ-TRION1[05]0", // tested with OCZ-TRION100/SAFM11.2A, TRION150/SAFZ72.2 ++ "OCZ/Toshiba Trion SSDs", ++ "OCZ-TRION1[05]0|" // tested with OCZ-TRION100/SAFM11.2A, TRION150/SAFZ72.2 ++ "TOSHIBA-TR150", // tested with TOSHIBA-TR150/SAFZ12.3 + "", "", + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " +@@ -688,8 +718,9 @@ const drive_settings builtin_knowndrives + "-v 236,raw48,Unstable_Power_Count " + "-v 240,raw48,Write_Head" + }, +- { "Innodisk 3ME SSDs", // tested with 2.5" SATA SSD 3ME/S140714 +- "((1\\.8|2\\.5)\"? SATA SSD|SATA Slim) 3ME", ++ { "Innodisk 1ME3/3ME/3SE SSDs", // tested with 2.5" SATA SSD 3ME/S140714, ++ // Mini PCIeDOM 1ME3/S15604, InnoDisk Corp. - mSATA 3SE/S130710 ++ "((1\\.8|2\\.5)\"? SATA SSD|InnoDisk Corp\\. - mSATA|Mini PCIeDOM|SATA Slim) (1ME3|3[MS]E)", + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 2,raw48,Throughput_Performance " +@@ -701,7 +732,7 @@ const drive_settings builtin_knowndrives + "-v 10,raw48,Spin_Retry_Count " // ? + //"-v 12,raw48,Power_Cycle_Count " + "-v 168,raw48,SATA_PHY_Error_Count " +- "-v 169,raw48,Unknown_Innodisk_Attr " ++ "-v 169,hex48,Unknown_Innodisk_Attr " + "-v 170,raw16,Bad_Block_Count " + "-v 173,raw16,Erase_Count " + "-v 175,raw48,Bad_Cluster_Table_Count " +@@ -715,10 +746,11 @@ const drive_settings builtin_knowndrives + "-v 236,raw48,Unstable_Power_Count " + "-v 240,raw48,Write_Head" + }, +- { "Innodisk 3IE2/3MG2/3SE2-P SSDs", // tested with 2.5" SATA SSD 3MG2-P/M140402, ++ { "Innodisk 3IE2/3ME2/3MG2/3SE2 SSDs", // tested with 2.5" SATA SSD 3MG2-P/M140402, + // 1.8 SATA SSD 3IE2-P/M150821, 2.5" SATA SSD 3IE2-P/M150821, +- // SATA Slim 3MG2-P/M141114, M.2 (S80) 3MG2-P/M141114, M.2 (S42) 3SE2-P/M150821 +- "((1\\.8|2\\.5)\"? SATA SSD|SATA Slim|M\\.2 \\(S(42|80)\\)) 3(IE|MG|SE)2-P", ++ // SATA Slim 3MG2-P/M141114, M.2 (S80) 3MG2-P/M141114, M.2 (S42) 3SE2-P/M150821, ++ // M.2 (S42) 3ME2/M151013 ++ "((1\\.8|2\\.5)\"? SATA SSD|SATA Slim|M\\.2 \\(S(42|80)\\)) 3(IE|ME|MG|SE)2(-P)?", + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " + //"-v 2,raw48,Throughput_Performance " +@@ -887,8 +919,9 @@ const drive_settings builtin_knowndrives + "-v 228,raw48,Workload_Minutes" + }, + { "Intel 311/313 Series SSDs", // tested with INTEL SSDSA2VP020G2/2CV102M5, +- // INTEL SSDSA2VP020G3/9CV10379, +- "INTEL SSDSA2VP(020|024)G[23]", // G3 = 313 Series ++ // INTEL SSDSA2VP020G3/9CV10379, INTEL SSDMAEXC024G3H/9CV10379 ++ "INTEL SSD(SA2VP|MAEXC)(020|024)G[23]H?", ++ // SA2VP = 2.5", MAEXC = mSATA, G2 = 311, G3 = 313 + "", "", + //"-v 3,raw16(avg16),Spin_Up_Time " + //"-v 4,raw48,Start_Stop_Count " +@@ -980,8 +1013,9 @@ const drive_settings builtin_knowndrives + //"-v 232,raw48,Available_Reservd_Space " + //"-v 233,raw48,Media_Wearout_Indicator" + }, +- { "Intel 520 Series SSDs", // tested with INTEL SSDSC2CW120A3/400i, SSDSC2BW480A3F/400i +- "INTEL SSDSC2[BC]W(060|120|180|240|480)A3F?", ++ { "Intel 520 Series SSDs", // tested with INTEL SSDSC2CW120A3/400i, SSDSC2BW480A3F/400i, ++ // INTEL SSDSC2BW180A3L/LB3i ++ "INTEL SSDSC2[BC]W(060|120|180|240|480)A3[FL]?", + "", "", + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + "-v 9,msec24hour32,Power_On_Hours_and_Msec " +@@ -1075,6 +1109,24 @@ const drive_settings builtin_knowndrives + "-v 242,raw48,Host_Reads_32MiB " + "-v 249,raw48,NAND_Writes_1GiB" + }, ++ // https://www.intel.com/content/www/us/en/solid-state-drives/ssd-540s-series-spec.html ++ // https://www.intel.com/content/www/us/en/solid-state-drives/ssd-540s-series-m2-spec.html ++ { "Intel 540 Series SSDs", // INTEL SSDSC2KW120H6/LSF036C, INTEL SSDSC2KW480H6/LSF036C ++ "INTEL SSDSC[K2]KW(120H|180H|240H|360H|480H|010X)6", ++ "", "", ++ "-v 9,msec24hour32,Power_On_Hours_and_Msec " ++ "-v 170,raw48,Available_Reservd_Space " ++ "-v 171,raw48,Program_Fail_Count " ++ "-v 172,raw48,Erase_Fail_Count " ++ "-v 174,raw48,Unexpect_Power_Loss_Ct " ++ "-v 183,raw48,SATA_Downshift_Count " ++ "-v 187,raw48,Uncorrectable_Error_Cnt " ++ "-v 225,raw48,Host_Writes_32MiB " ++ "-v 226,raw48,Workld_Media_Wear_Indic " ++ "-v 227,raw48,Workld_Host_Reads_Perc " ++ "-v 228,raw48,Workload_Minutes " ++ "-v 249,raw48,NAND_Writes_1GiB" ++ }, + { "Intel 730 and DC S35x0/3610/3700 Series SSDs", // tested with INTEL SSDSC2BP480G4, SSDSC2BB120G4/D2010355, + // INTEL SSDSC2BB800G4T, SSDSC2BA200G3/5DV10250, SSDSC2BB080G6/G2010130, SSDSC2BX200G4/G2010110, + // INTEL SSDSC2BB016T6/G2010140, SSDSC2BX016T4/G2010140 +@@ -1111,6 +1163,23 @@ const drive_settings builtin_knowndrives + "-v 243,raw48,NAND_Writes_32MiB " // S3510/3610 + "-F xerrorlba" // tested with SSDSC2BB600G4/D2010355 + }, ++ { "Intel 3710 Series SSDs", // INTEL SSDSC2BA200G4R/G201DL2B (dell) ++ "INTEL SSDSC2BA(200G|400G|800G|012T)4.?", ++ "", "", ++ "-v 9,msec24hour32,Power_On_Hours_and_Msec " ++ "-v 170,raw48,Available_Reservd_Space " ++ "-v 171,raw48,Program_Fail_Count " ++ "-v 172,raw48,Erase_Fail_Count " ++ "-v 174,raw48,Unexpect_Power_Loss_Ct " ++ "-v 183,raw48,SATA_Downshift_Count " ++ "-v 187,raw48,Uncorrectable_Error_Cnt " ++ "-v 225,raw48,Host_Writes_32MiB " ++ "-v 226,raw48,Workld_Media_Wear_Indic " ++ "-v 227,raw48,Workld_Host_Reads_Perc " ++ "-v 228,raw48,Workload_Minutes " ++ "-v 234,raw24/raw32:04321,Thermal_Throttle " ++ "-v 243,raw48,NAND_Writes_32MiB " ++ }, + { "Kingston branded X25-V SSDs", // fixed firmware + "KINGSTON SSDNow 40GB", + "2CV102(J[89A-Z]|[K-Z].)", // >= "2CV102J8" +@@ -1234,33 +1303,53 @@ const drive_settings builtin_knowndrives + { "Samsung based SSDs", + "SAMSUNG SSD PM800 .*GB|" // SAMSUNG PM800 SSDs, tested with SAMSUNG SSD PM800 TH 64GB/VBM25D1Q + "SAMSUNG SSD PM810 .*GB|" // SAMSUNG PM810 (470 series) SSDs, tested with SAMSUNG SSD PM810 2.5" 128GB/AXM06D1Q +- "SAMSUNG SSD PM851 (mSATA )?(128|256|512)GB|" // tested with SAMSUNG SSD PM851 mSATA 128GB ++ "SAMSUNG SSD PM851 (mSATA |M\\.2 )?(2280 )?(128|256|512)GB|" // tested with SAMSUNG SSD PM851 mSATA 128GB, ++ // SAMSUNG SSD PM851 M.2 2280 256GB/EXT25D0Q + "SAMSUNG SSD SM841N (mSATA )?(128|256|512)GB|" // tested with SAMSUNG SSD SM841N mSATA 256GB + "SAMSUNG 470 Series SSD|" // tested with SAMSUNG 470 Series SSD 64GB/AXM09B1Q ++ "Samsung SSD 750 EVO (120|250|500)GB|" // tested with Samsung SSD 750 EVO 250GB/MAT01B6Q + "SAMSUNG SSD 830 Series|" // tested with SAMSUNG SSD 830 Series 64GB/CXM03B1Q ++ "SAMSUNG SSD PM830 .*|" // SAMSUNG SSD PM830 2.5" 7mm 128GB/CXM03D1Q + "MZ7PC(512|256|128|064)HA(GH|FU|DR)-000.*|" // probably PM830, tested with SAMSUNG MZ7PC128HAFU-000L1/CXM04L1Q + "Samsung SSD 840 (PRO )?Series|" // tested with Samsung SSD 840 PRO Series 128GB/DXM04B0Q, + // Samsung SSD 840 Series/DXT06B0Q +- "Samsung SSD 8[45]0 EVO (mSATA |M\\.2 )?((120|250|500|750)G|1T)B( mSATA)?|" // tested with ++ "Samsung SSD 8[45]0 EVO .*|" // tested with + // Samsung SSD 840 EVO (120|250|500|750)GB/EXT0AB0Q, + // Samsung SSD 840 EVO (120|250)GB/EXT0BB6Q, 1TB/EXT0BB0Q, 120GB mSATA/EXT41B6Q, + // Samsung SSD 850 EVO 250GB/EMT01B6Q + // Samsung SSD 850 EVO M.2 250GB/EMT21B6Q + // Samsung SSD 850 EVO mSATA 120GB/EMT41B6Q ++ // Samsung SSD 850 EVO 2TB/EMT02B6Q + "Samsung SSD 850 PRO ((128|256|512)G|1T)B|" // tested with Samsung SSD 850 PRO 128GB/EXM01B6Q, + // Samsung SSD 850 PRO 1TB/EXM01B6Q ++ "SAMSUNG MZ7PA256HMDR-.*|" // PM810 (470 Series), tested with SAMSUNG MZ7PA256HMDR-010H1/AXM07H1Q ++ "Samsung SSD 845DC EVO .*|" // Samsung SSD 845DC EVO 960GB/EXT03X3Q ++ "SAMSUNG MZ[7M]PC(032|064|128|256|512)HBCD-.*|" // PM830, tested with SAMSUNG MZMPC032HBCD-000L1/CXM12L1Q ++ "SAMSUNG MZ7TD(128|256)HAFV-.*|" // 840 Series, tested with SAMSUNG MZ7TD256HAFV-000L7/DXT06L6Q + "SAMSUNG MZ7WD((120|240)H[AC]FV|480HAGM|960HAGP)-00003|" // SM843T Series, tested with + // SAMSUNG MZ7WD120HAFV-00003/DXM85W3Q, SAMSUNG MZ7WD120HCFV-00003/DXM9203Q ++ "SAMSUNG MZ[7N]TE(128|256|512)HMHP-.*|" // PM851, tested with SAMSUNG MZ7TE256HMHP-000L7/EXT09L6Q, ++ // SAMSUNG MZNTE256HMHP-000H1/EXT22H0Q + "SAMSUNG MZ7GE(240HMGR|(480|960)HMHP)-00003|" // SM853T Series, tested with + // SAMSUNG MZ7GE240HMGR-00003/EXT0303Q + "SAMSUNG MZ7LM(120|240|480|960|1T9|3T8)HC(JM|HP|GR|FD)-.*|" // PM863 Series, tested with + // SAMSUNG MZ7LM960HCHP-0E003/GXT3003Q + "SAMSUNG MZ7KM(120|240|480|960|1T9)HA(JM|HP|GR|FD|JM)-.*|" // SM863, tested with MZ7KM480HAHP-0E005/GXM1003Q +- "SAMSUNG MZ[7N]LN(128|256|512)HC(HP|GR|JH)-.*", // PM871 Series, tested with SAMSUNG MZ7LN128HCHP ++ "SAMSUNG MZN(LF|TY)(128|256)H[CD]HP-.*|" // CM871/871a, tested with SAMSUNG MZNLF128HCHP-000H1/FXT21H1Q, ++ // SAMSUNG MZNTY256HDHP-000/MAT21K0Q ++ "SAMSUNG MZ[7N]LN(128|256|512)H[CM](GR|HP|JH|JP)-.*|" // PM871/871a, tested with SAMSUNG MZ7LN128HCHP, ++ "SAMSUNG SSD PM871 .*|" // SAMSUNG SSD PM871 2.5 7mm 256GB/EMT02D0Q ++ // SAMSUNG MZ7LN256HMJP-00000/MAV0100Q, SAMSUNG MZ7LN512HMJP-00000/MAV0100Q ++ "SAMSUNG MZHPV(128|256|512)HDGL-.*", // SM951, tested with SAMSUNG MZHPV512HDGL-00000/BXW2500Q + "", "", + //"-v 5,raw16(raw16),Reallocated_Sector_Ct " + //"-v 9,raw24(raw8),Power_On_Hours " + //"-v 12,raw48,Power_Cycle_Count " ++ "-v 170,raw48,Unused_Rsvd_Blk_Ct_Chip " // CM871 ++ "-v 171,raw48,Program_Fail_Count_Chip " // CM871 ++ "-v 172,raw48,Erase_Fail_Count_Chip " // CM871 ++ "-v 173,raw48,Wear_Leveling_Count " // CM871 ++ "-v 174,raw48,Unexpect_Power_Loss_Ct " // CM871 + //"-v 175,raw48,Program_Fail_Count_Chip " + //"-v 176,raw48,Erase_Fail_Count_Chip " + //"-v 177,raw48,Wear_Leveling_Count " +@@ -1273,13 +1362,20 @@ const drive_settings builtin_knowndrives + //"-v 184,raw48,End-to-End_Error " // SM843T Series + "-v 187,raw48,Uncorrectable_Error_Cnt " + //"-v 190,tempminmax,Airflow_Temperature_Cel " // seems to be some sort of temperature value for 470 Series? ++ "-v 191,raw48,Unknown_Samsung_Attr " // PM810 + //"-v 194,tempminmax,Temperature_Celsius " + "-v 195,raw48,ECC_Error_Rate " ++ //"-v 196,raw16(raw16),Reallocated_Event_Count " + //"-v 198,raw48,Offline_Uncorrectable " + "-v 199,raw48,CRC_Error_Count " + "-v 201,raw48,Supercap_Status " + "-v 202,raw48,Exception_Mode_Status " +- "-v 235,raw48,POR_Recovery_Count " // 830/840/850 Series ++ //"-v 233,raw48,Media_Wearout_Indicator // PM851, 840 ++ "-v 234,raw48,Unknown_Samsung_Attr " // PM851, 840 ++ "-v 235,raw48,POR_Recovery_Count " // PM851, 830/840/850 ++ "-v 236,raw48,Unknown_Samsung_Attr " // PM851, 840 ++ "-v 237,raw48,Unknown_Samsung_Attr " // PM851, 840 ++ "-v 238,raw48,Unknown_Samsung_Attr " // PM851, 840 + //"-v 241,raw48,Total_LBAs_Written " + //"-v 242,raw48,Total_LBAs_Read " // PM851, SM841N + "-v 243,raw48,SATA_Downshift_Ct " // PM863 +@@ -1287,6 +1383,7 @@ const drive_settings builtin_knowndrives + "-v 245,raw48,Timed_Workld_Media_Wear " // PM863 + "-v 246,raw48,Timed_Workld_RdWr_Ratio " // PM863 + "-v 247,raw48,Timed_Workld_Timer " // PM863 ++ "-v 249,raw48,Unknown_Samsung_Attr " // CM871a + "-v 250,raw48,SATA_Iface_Downshift " // from the spec + "-v 251,raw48,NAND_Writes" // PM863 + }, +@@ -1294,9 +1391,12 @@ const drive_settings builtin_knowndrives + "SanDisk SD5SG2[0-9]*G1052E|" // X100 (88SS9174), tested with SanDisk SD5SG2256G1052E/10.04.01 + "SanDisk SD6S[BF][12]M[0-9]*G(1022I?)?|" // X110/X210 (88SS9175/187?), tested with SanDisk SD6SB1M064G1022I/X231600, + // SanDisk SD6SB1M256G1022I/X231600, SanDisk SD6SF1M128G1022/X231200, SanDisk SD6SB2M512G1022I/X210400 +- "SanDisk SD7SB6S(128|256|512)G1122|" // X300 (88SS9189?), tested with SanDisk SD7SB6S128G1122/X3310000 ++ "SanDisk SD7S[BN]6S-?(128|256|512)G(1122|-1006)|" // X300 (88SS9189?), tested with ++ // SanDisk SD7SB6S128G1122/X3310000, SanDisk SD7SN6S-512G-1006/X3511006 ++ "SanDisk SD8SB8U((128|256|512)G|1T00)1122|" // X400 (88SS1074), tested with SanDisk SD8SB8U128G1122/X4120000 + "SanDisk SDSSDHP[0-9]*G|" // Ultra Plus (88SS9175), tested with SanDisk SDSSDHP128G/X23[01]6RL +- "SanDisk SDSSDHII[0-9]*G|" // Ultra II (88SS9190/88SS9189), tested with SanDisk SDSSDHII120G/X31200RL ++ "SanDisk (SDSSDHII|Ultra II )[0-9]*GB?|" // Ultra II (88SS9190/88SS9189), tested with ++ // SanDisk SDSSDHII120G/X31200RL, SanDisk Ultra II 960GB/X41100RL + "SanDisk SDSSDXPS?[0-9]*G", // Extreme II/Pro (88SS9187), tested with SanDisk SDSSDXP480G/R1311, + // SanDisk SDSSDXPS480G/X21200RL + "", "", +@@ -1354,13 +1454,77 @@ const drive_settings builtin_knowndrives + //"-v 242,raw48,Total_LBAs_Read " + "-v 244,raw48,Thermal_Throttle " + }, ++ // SDLF1DAR-480G-1HAW/ZR07RE41 ++ // SDLF1DAR-480G-1JA1/RP41ZH06 ++ { "Sandisk SATA Cloudspeed Max and GEN2 ESS SSDs", ++ "SD[A-Z0-9]{2}[1-3][A-Z]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", ++ "","", ++ "-v 13,raw48,Lifetime_UECC_Ct " ++ "-v 32,raw48,Lifetime_Write_AmpFctr " ++ "-v 33,raw48,Write_AmpFctr " ++ "-v 170,raw48,Reserve_Erase_BlkCt " ++ "-v 171,raw48,Program_Fail_Ct " ++ "-v 172,raw48,Erase_Fail_Ct " ++ "-v 173,raw48,Percent_Life_Used " ++ "-v 174,raw48,Unexpect_Power_Loss " ++ "-v 175,raw48,Lifetime_Die_Failure_Ct " ++ "-v 177,raw48,Lifetime_Remaining% " ++ "-v 178,raw48,SSD_LifeLeft(0.01%) " ++ "-v 180,raw48,Undetected_Data_Err_Ct " ++ "-v 183,raw48,LT_Link_Rate_DwnGrd_Ct " ++ "-v 191,raw48,Clean_Shutdown_Ct " ++ "-v 192,raw48,Unclean_Shutdown_Ct " ++ "-v 196,raw48,Lifetime_Retried_Blk_Ct " ++ "-v 204,raw48,Average_Block-Erase_Ct " ++ "-v 205,raw48,Read_Retry_Enable_Ct " ++ "-v 206,raw48,Successful_RaidRecov_Ct " ++ "-v 207,raw48,Trimmed_Sector_Ct " ++ "-v 211,raw48,Read_Disturb_ReallocEvt " ++ "-v 233,raw48,Lifetime_Nand_Writes " ++ "-v 235,raw48,Capacitor_Health " ++ "-v 244,raw48,Therm_Throt_Activation " ++ "-v 245,raw48,Drive_Life_Remaining% " ++ "-v 253,raw48,SPI_Test_Remaining " ++ }, ++ { "Sandisk SATA CS1K GEN1 ESS SSDs", ++ "SD[A-Z0-9]{2}[NO][A-Z0-9]{3}-?[0-9]{3}[GT]-?1[A-Z0-9]{3}", ++ "","", ++ "-v 1,raw48,UECC_Ct " ++ "-v 2,raw48,Internal_File_Check " ++ "-v 5,raw16(raw16),Retried_Blk_Ct " ++ "-v 32,raw48,Write_Ampflication " ++ "-v 170,raw48,Reserve_Blk_Remaining " ++ "-v 171,raw48,Program_Fail_Ct " ++ "-v 172,raw48,Erase_Fail_Ct " ++ "-v 173,raw48,Drive_Life_Used% " ++ "-v 174,raw48,Unexpect_PwrLoss_Ct " ++ "-v 175,raw48,PwrLoss_ProtectionFail " ++ "-v 177,raw48,DriveLife_Remaining% " ++ "-v 178,raw48,SSD_Life_Left " ++ "-v 180,raw48,End_to_End_Err_Detect " ++ "-v 190,raw48,Drive_Temp_Warning " ++ "-v 195,raw48,Uncorrectable_Err_Ct " ++ "-v 202,raw48,Exception_Mode_Status " ++ "-v 233,raw48,Number_Of_Write_Ct " ++ "-v 245,raw48,DriveLife_Used% " ++ }, + { "SiliconMotion based SSDs", // SM2246EN (Transcend TS6500) ++ "R3SL(120|240|480|960)G|" // AMD Radeon Solid State Drives, + "CT(120|250|500|1000)BX100SSD1|" // Crucial BX100, tested with CT250BX100SSD1/MU02, + // CT500BX100SSD1/MU02, CT1000BX100SSD1/MU02 + "CT(240|480|960)BX200SSD1|" // Crucial BX200 Solid State Drive, tested with CT480BX200SSD1/MU02.6 + "TS((16|32|64|128|256|512)G|1T)(SSD|MSA)(370S?|420I?)|" // Transcend SSD370/420 SATA/mSATA, TS6500, + // tested with TS32GMSA370/20140402, TS16GMSA370/20140516, TS64GSSD370/20140516, + // TS256GSSD370/N0815B, TS256GSSD370S/N1114H, TS512GSSD370S/N1114H, TS32GSSD420I/N1114H ++ // TS256GMTS400 ++ "TS(16|32|64|128|512|256)GMTS400S?|" ++ "TS(120|240)GMTS420|" // Transcend MTS420, TS(120|240)GMTS420 ++ "TS(128G|256G|512G|1T)SSD230S|" // TS128GSSD230S/P1025F8 ++ "TS(120|240|480|960)GSSD220S|" // TS480GSSD220S/P0520AA ++ "TS(16G|32G|64G|128G|256G|512G|1T)MTS800S?|" // MTS800, tested with TS1TMTS800/O1225H1 ++ "TS(16|32|64)GMSA630|" // MSA630 mSATA SSD, tested with TS32GMSA630/N0113E1 ++ "MKNSSDRE(1TB|2TB|512GB|500GB|256GB|250GB)|" // MKNSSDRE256GB/N1007C ++ "MKNSSDTR(240|500|250|120|480|240)GB(-LT)?|" // MKNSSDTR500GB/O1126A + "ADATA SP550", // ADATA SP550/O0803B5a + "", "", + //"-v 1,raw48,Raw_Read_Error_Rate " +@@ -1402,6 +1566,39 @@ const drive_settings builtin_knowndrives + "-v 246,raw48,SLC_Writes_32MiB " + "-v 247,raw48,Raid_Recoverty_Ct" + }, ++ { "SMART Modular Technologies mSATA XL+ SLC SSDs", // tested with SH9MST6D16GJSI01 ++ "SH9MST6D[0-9]*GJSI?[0-9]*", // based on http://www.smartm.com/salesLiterature/embedded/mSATA_overview.pdf ++ "", "", // attributes info from http://www.mouser.com/ds/2/723/smartmodular_09302015_SH9MST6DxxxGJSxxx_rA[1]-770719.pdf ++ "-v 1,raw48,Uncorrectable_ECC_Cnt " ++ //"-v 5,raw16(raw16),Reallocated_Sector_Ct " ++ "-v 9,raw48,Power_On_Hours " // override default raw24(raw8) format ++ //"-v 12,raw48,Power_Cycle_Count " ++ "-v 14,raw48,Device_Capacity_LBAs " ++ "-v 15,raw48,User_Capacity_LBAs " // spec DecID is wrong, HexID is right ++ "-v 16,raw48,Init_Spare_Blocks_Avail " // spec DecID is wrong, HexID is right ++ "-v 17,raw48,Spare_Blocks_Remaining " // spec DecID is wrong, HexID is right ++ "-v 100,raw48,Total_Erase_Count " ++ "-v 168,raw48,SATA_PHY_Err_Ct " ++ "-v 170,raw48,Initial_Bad_Block_Count " ++ "-v 172,raw48,Erase_Fail_Count " ++ "-v 173,raw48,Max_Erase_Count " ++ "-v 174,raw48,Unexpect_Power_Loss_Ct " ++ "-v 175,raw48,Average_Erase_Count " ++ //"-v 181,raw48,Program_Fail_Cnt_Total " ++ //"-v 187,raw48,Reported_Uncorrect " ++ //"-v 194,tempminmax,Temperature_Celsius " ++ "-v 197,raw48,Not_In_Use " ++ "-v 198,raw48,Not_In_Use " ++ "-v 199,raw48,SATA_CRC_Error_Count " ++ "-v 202,raw48,Perc_Rated_Life_Used " ++ "-v 231,raw48,Perc_Rated_Life_Remain " ++ "-v 232,raw48,Read_Fail_Count " ++ "-v 234,raw48,Flash_Reads_LBAs " ++ "-v 235,raw48,Flash_Writes_LBAs " ++ "-v 241,raw48,Host_Writes_LBAs " ++ "-v 242,raw48,Host_Reads_LBAs" ++ // 247-248 Missing in specification from April 2015 ++ }, + { "Smart Storage Systems Xcel-10 SSDs", // based on http://www.smartm.com/files/salesLiterature/storage/xcel10.pdf + "SMART A25FD-(32|64|128)GI32N", // tested with SMART A25FD-128GI32N/B9F23D4K + "", +@@ -1874,7 +2071,8 @@ const drive_settings builtin_knowndrives + "SAMSUNG HN-M(320|500|750|101)XBB", + "", "", "" + }, +- { "Seagate Samsung SpinPoint M8U (USB)", // tested with ST1000LM025 HN-M101ABB/2AR10001 ++ { "Seagate Samsung SpinPoint M8U (USB)", // tested with ST1000LM025 HN-M101ABB/2AR10001, ++ // ST1000LM025 HN-M101ABB/2BA30003 (0x04e8:0x61b6) + "ST(250|320|500|640|750|1000)LM0[012][3459] HN-M[0-9]*ABB", + "", "", "" + }, +@@ -1883,6 +2081,17 @@ const drive_settings builtin_knowndrives + "ST(1500|2000)LM0(03|04|06|07|10) HN-M[0-9]*RAD", + "", "", "" + }, ++ // Flash accelerated, no SMART info in the specs ++ // ST1000LX015-1U7172/SDM1 ++ { "Seagate FireCuda 2.5", // ++ "ST(500|1000|2000)LX0(01|15|25)-.*", ++ "", "", "-v 240,msec24hour32 " ++ }, ++ // ST1000DX002/CC41 ++ { "Seagate FireCuda 3.5", // ST2000DX002-2DV164/CC41 ++ "ST[12]000DX002-.*", ++ "", "", "-v 240,msec24hour32 " ++ }, + { "Seagate Samsung SpinPoint M9TU (USB)", // tested with ST1500LM008 HN-M151AAD/2BC10001 + // (0x04e8:0x61b5), ST2000LM005 HN-M201AAD2BC10001 (0x04e8:0x61b4) + "ST(1500|2000)LM00[58] HN-M[0-9]*AAD", +@@ -1910,6 +2119,36 @@ const drive_settings builtin_knowndrives + "SAMSUNG HS(122H|2[05]YJ)Z", + "", "", "" + }, ++ { "SK hynix SATA SSDs", ++ "SK ?hynix SC(210|300|308|313).*|" // tested with ++ // SK hynix SC210 mSATA 256GB/20002L00, ++ // SKhynix SC300 HFS256G32MND-3210A/20131P00, ++ // SK hynix SC308 SATA 128GB/30001P10, ++ // SK hynix SC313 HFS256G32TNF-N3A0A/70000P10 ++ "HFS(128|256|512)G32MND-(2200|3210)A|" // HFS128G32MND-2200A/20200L00, ++ // HFS512G32MND-3210A/20100P00 ++ "HFS(120|250|500)G32TND-N1A2A", // HFS500G32TND-N1A2A/30000P10 ++ "", "", ++ "-v 5,raw48,Retired_Block_Count " ++ "-v 100,raw48,Total_Erase_Count " ++ "-v 168,raw48,Min_Erase_Count " ++ "-v 169,raw48,Max_Erase_Count " ++ "-v 171,raw48,Program_Fail_Count " ++ "-v 172,raw48,Erase_Fail_Count " ++ "-v 173,raw48,Wear_Leveling_Count " ++ "-v 174,raw48,Unexpect_Power_Loss_Ct " ++ "-v 176,raw48,Unused_Rsvd_Blk_Cnt_Tot " ++ "-v 180,raw48,Erase_Fail_Count " ++ "-v 181,raw48,Non4k_Aligned_Access " ++ "-v 183,raw48,SATA_Downshift_Count " ++ "-v 201,raw48,Percent_Lifetime_Remain " ++ "-v 212,raw48,Phy_Error_Count " ++ "-v 231,raw48,SSD_Life_Left " ++ "-v 241,raw48,Total_Writes_GiB " ++ "-v 242,raw48,Total_Reads_GiB " ++ "-v 243,raw48,Total_Media_Writes " ++ "-v 250,raw48,Read_Retry_Count " ++ }, + { "Maxtor Fireball 541DX", + "Maxtor 2B0(0[468]|1[05]|20)H1", + "", +@@ -2369,7 +2608,8 @@ const drive_settings builtin_knowndrives + "", "", "" + }, + { "HGST Travelstar 7K1000", // tested with HGST HTS721010A9E630/JB0OA3B0 +- "HGST HTS721010A9E630", ++ // HGST HTS721075A9E630/JB2OA3J0 ++ "HGST HT[ES]7210(10|75)A9E63[01]", + "", "", "" + }, + { "IBM Deskstar 14GXP and 16GP", +@@ -2396,6 +2636,10 @@ const drive_settings builtin_knowndrives + "Hitachi HCS5C32(25|32)SLA380", + "", "", "" + }, ++ { "Hitachi CinemaStar 5K1000", // Hitachi HCS5C1010CLA382/JC4OA3EA ++ "Hitachi HCS5C10(10|75|50|32|25|16)CLA382", ++ "", "", "" ++ }, + { "Hitachi Deskstar 5K3000", // tested with HDS5C3030ALA630/MEAOA5C0, + // Hitachi HDS5C3020BLE630/MZ4OAAB0 (OEM, Toshiba Canvio Desktop) + "(Hitachi )?HDS5C30(15|20|30)(ALA|BLE)63[02].*", +@@ -2466,12 +2710,14 @@ const drive_settings builtin_knowndrives + "Hitachi HDS722020ALA330", + "", "", "" + }, +- { "Hitachi Deskstar 7K3000", // tested with HDS723030ALA640/MKAOA3B0 +- "Hitachi HDS7230((15|20)BLA642|30ALA640)", ++ { "Hitachi Deskstar 7K3000", // tested with Hitachi HDS723030ALA640/MKAOA3B0, ++ // Hitachi HDS723030BLE640/MX6OAAB0 ++ "Hitachi HDS7230((15|20)BLA642|30ALA640|30BLE640)", + "", "", "" + }, +- { "Hitachi/HGST Deskstar 7K4000", // tested with Hitachi HDS724040ALE640/MJAOA250 +- "Hitachi HDS724040ALE640", ++ { "Hitachi/HGST Deskstar 7K4000", // tested with Hitachi HDS724040ALE640/MJAOA250, ++ // HGST HDS724040ALE640/MJAOA580 ++ "(Hitachi|HGST) HDS724040ALE640", + "", "", "" + }, + { "HGST Deskstar NAS", // tested with HGST HDN724040ALE640/MJAOA5E0, +@@ -2499,13 +2745,24 @@ const drive_settings builtin_knowndrives + "(Hitachi|HGST) HUS7240(20|30|40)AL[AE]64[01]", + "", "", "" + }, ++ { "HGST Ultrastar 7K6000", // tested with HGST HUS726060ALE614/APGNW517 ++ "HGST HUS7260[2456]0AL[AEN]61[014]", ++ "", "", "" ++ }, + { "HGST Ultrastar He6", // tested with HGST HUS726060ALA640/AHGNT1E2 + "HGST HUS726060ALA64[01]", +- "", "", "" ++ "", "", ++ "-v 22,raw48,Helium_Level" + }, + { "HGST Ultrastar He8", // tested with HGST HUH728060ALE600/GR2OA230 + "HGST HUH7280(60|80)AL[EN]60[014]", +- "", "", "" ++ "", "", ++ "-v 22,raw48,Helium_Level" ++ }, ++ { "HGST Ultrastar He10", // tested with HGST HUH7210100ALE600/0F27452 ++ "HGST HUH7210(08|10)AL[EN]60[014]", ++ "", "", ++ "-v 22,raw48,Helium_Level" + }, + { "HGST MegaScale 4000", // tested with HGST HMS5C4040ALE640/MPAOA580 + "HGST HMS5C4040[AB]LE64[01]", // B = DC 4000.B +@@ -2535,6 +2792,15 @@ const drive_settings builtin_knowndrives + "TOSHIBA MK8050GACY", + "", "", "" + }, ++ { "Toshiba 2.5\" HDD MK..34GSX", // tested with TOSHIBA MK8034GSX/AH301E ++ "TOSHIBA MK(80|12|10)34GSX", ++ "", "", "" ++ }, ++ // ++ { "Toshiba 2.5\" HDD MK..32GSX", // tested with TOSHIBA MK1032GSX/AS021G ++ "TOSHIBA MK(10|80|60|40)32GSX", ++ "", "", "" ++ }, + { "Toshiba 2.5\" HDD MK..51GSY", // tested with TOSHIBA MK1251GSY/LD101D + "TOSHIBA MK(80|12|16|25)51GSY", + "", +@@ -2606,7 +2872,8 @@ const drive_settings builtin_knowndrives + "TOSHIBA MQ01ABF(050|075|100)", + "", "", "" + }, +- { "Toshiba 2.5\" HDD MQ01UBB... (USB 3.0)", // tested with TOSHIBA MQ01UBB200/AY000U (0x0480:0xa100) ++ { "Toshiba 2.5\" HDD MQ01UBB... (USB 3.0)", // tested with TOSHIBA MQ01UBB200/AY000U (0x0480:0xa100), ++ // TOSHIBA MQ01UBB200/34MATMZ5T (0x05ac:0x8406) + "TOSHIBA MQ01UBB200", + "", "", "" + }, +@@ -2615,6 +2882,14 @@ const drive_settings builtin_knowndrives + "TOSHIBA MQ01UBD(050|075|100)", + "", "", "" + }, ++ { "Toshiba 2.5\" HDD MQ03ABB...", // tested with TOSHIBA MQ03ABB300 ++ "TOSHIBA MQ03ABB[23]00", ++ "", "", "" ++ }, ++ { "Toshiba 2.5\" HDD MQ03UBB...", // tested with TOSHIBA MQ03UBB200/37I7T0NJT ++ "TOSHIBA MQ03UBB(300|200|250)", ++ "", "", "" ++ }, + { "Toshiba 3.5\" HDD MK.002TSKB", // tested with TOSHIBA MK1002TSKB/MT1A + "TOSHIBA MK(10|20)02TSKB", + "", "", "" +@@ -2627,6 +2902,10 @@ const drive_settings builtin_knowndrives + "TOSHIBA MD04ACA[2345]00", + "", "", "" + }, ++ { "Toshiba 3.5\" MG04ACA... Enterprise HDD", // tested with TOSHIBA MG04ACA600A/FS2B ++ "TOSHIBA MG04ACA[23456]00[AE].?", ++ "", "", "" ++ }, + { "Toshiba 3.5\" DT01ABA... Desktop HDD", // tested with TOSHIBA DT01ABA300/MZ6OABB0 + "TOSHIBA DT01ABA(100|150|200|300)", + "", "", "" +@@ -2636,6 +2915,14 @@ const drive_settings builtin_knowndrives + "TOSHIBA DT01ACA(025|032|050|075|100|150|200|300)", + "", "", "" + }, ++ { "Toshiba X300", // tested with TOSHIBA HDWE160/FS2A ++ "TOSHIBA HDWE1[456]0", ++ "", "", "" ++ }, ++ { "Toshiba P300", // tested with TOSHIBA HDWD120/MX4OACF0 ++ "TOSHIBA HDWD1(30|20|10|05)", ++ "", "", "" ++ }, + { "Toshiba 1.8\" HDD", + "TOSHIBA MK[23468]00[4-9]GA[HL]", + "", "", "" +@@ -2648,6 +2935,17 @@ const drive_settings builtin_knowndrives + "TOSHIBA MK6022GAX", + "", "", "" + }, ++ { "Toshiba HG6 Series SSD", // TOSHIBA THNSNJ512GCST/JTRA0102 ++ // http://www.farnell.com/datasheets/1852757.pdf ++ // TOSHIBA THNSFJ256GCSU/JULA1102 ++ // TOSHIBA THNSFJ256GDNU A/JYLA1102 ++ "TOSHIBA THNS[NF]J(060|128|256|512)G[BCAM8VD][SCN][TU].*", ++ "", "", ++ "-v 167,raw48,SSD_Protect_Mode " ++ "-v 168,raw48,SATA_PHY_Error_Count " ++ "-v 169,raw48,Bad_Block_Count " ++ "-v 173,raw48,Erase_Count " ++ }, + { "", // TOSHIBA MK6409MAV + "TOSHIBA MK6409MAV", + "", "", "" +@@ -2763,9 +3061,9 @@ const drive_settings builtin_knowndrives + "ST(160|250|320)LT0(07|09|11|14)-.*", + "", "", "" + }, +- { "Seagate Laptop Thin HDD", // tested with ST500LT012-9WS142/0001SDM1, +- // ST500LM021-1KJ152/0002LIM1 +- "ST((250|320|500)LT0(12|15|25)|(320|500)LM0(10|21))-.*", ++ { "Seagate Laptop HDD", // tested with ST500LT012-9WS142/0001SDM1, ++ // ST500LM021-1KJ152/0002LIM1, ST4000LM016-1N2170/0003 ++ "ST((25|32|50)0LT0(12|15|25)|(32|50)0LM0(10|21)|[34]00LM016)-.*", + "", "", "" + }, + { "Seagate Laptop SSHD", // tested with ST500LM000-1EJ162/SM11 +@@ -2904,7 +3202,10 @@ const drive_settings builtin_knowndrives + }, + { "Seagate Barracuda 7200.12", // tested with ST3250312AS/JC45, ST31000524AS/JC45, + // ST3500413AS/JC4B, ST3750525AS/JC4B +- "ST3(160318|25031[128]|320418|50041[038]|750(518|52[358])|100052[348])AS", ++ // ST3160316AS/JC45 ++ // Possible options: ST31000524AS, ST3500413AS, ST3250312AS , ++ // ST3750525AS, ST3320413AS, ST3160316AS ++ "ST3(160318|25031[128]|320418|50041[038]|750(518|52[358])|100052[348]|320413|160316)AS", + "", "", "" + }, + { "Seagate Barracuda XT", // tested with ST32000641AS/CC13, +@@ -2946,13 +3247,22 @@ const drive_settings builtin_knowndrives + "", "", + "-v 188,raw16 -v 240,msec24hour32" + }, ++ // should be ST4000DM005, ST3000DM008,ST3000DM009,ST2000DM006,ST2000DM007 ++ // ST1000DM010, ST500DM009 ++ // tested: ST3000DM008-2DM166/CC26 ++ { "Seagate Barracuda 3.5", // tested on ST1000DM010-2EP102/Z9ACZM97 ++ "ST(4000DM00[45]|3000DM008|3000DM009|2000DM006|2000DM007|1000DM010|500DM009)-.*", ++ "", "", ++ "-v 188,raw16 -v 240,msec24hour32" ++ }, + { "Seagate Barracuda 7200.14 (AF)", // < 1TB, tested with ST250DM000-1BC141 + "ST(250|320|500|750)DM00[0-3]-.*", + "", "", + "-v 188,raw16 -v 240,msec24hour32" + }, +- { "Seagate Desktop HDD.15", // tested with ST4000DM000-1CD168/CC43, ST5000DM000-1FK178/CC44 +- "ST[45]000DM000-.*", ++ { "Seagate Desktop HDD.15", // tested with ST4000DM000-1CD168/CC43, ST5000DM000-1FK178/CC44, ++ // ST6000DM001-1XY17Z/CC48 ++ "ST[4568]000DM00[012]-.*", + "", "", + "-v 188,raw16 -v 240,msec24hour32" + }, +@@ -2994,6 +3304,13 @@ const drive_settings builtin_knowndrives + "ST3(250[68]2|32062|40062|50063|75064)0NS", + "", "", "" + }, ++ // ST5000LM000, ST4000LM024, ST3000LM024, ST2000LM015, ST1000LM048, ST500LM030 ++ { "Seagate Barracuda 2.5 5400", // ST2000LM015-2E8174/SDM1, ST4000LM024-2AN17V/0001 ++ "ST(5000LM000|[34]000LM024|2000LM015|1000LM048|500LM030)-.*", ++ "", ++ "", ++ "-v 183,raw48,SATA_Downshift_Count " ++ }, + { "Seagate Barracuda ES.2", // fixed firmware + "ST3(25031|50032|75033|100034)0NS", + "SN[01]6|" // http://knowledge.seagate.com/articles/en_US/FAQ/207963en +@@ -3023,12 +3340,16 @@ const drive_settings builtin_knowndrives + "ST9(160511|500530)NS", + "", "", "" + }, +- { "Seagate Constellation ES (SATA)", // tested with ST31000524NS/SN11 +- "ST3(50051|100052|200064)4NS", ++ { "Seagate Constellation ES (SATA)", // tested with ST31000524NS/SN11, ++ // MB0500EAMZD/HPG1 ++ "ST3(50051|100052|200064)4NS|" ++ "MB0500EAMZD", // HP OEM + "", "", "" + }, +- { "Seagate Constellation ES (SATA 6Gb/s)", // tested with ST1000NM0011/SN02 +- "ST(5|10|20)00NM0011", ++ { "Seagate Constellation ES (SATA 6Gb/s)", // tested with ST1000NM0011/SN02, ++ // MB1000GCEEK/HPG1 ++ "ST(5|10|20)00NM0011|" ++ "MB1000GCEEK", // HP OEM + "", "", "" + }, + { "Seagate Constellation ES.2 (SATA 6Gb/s)", // tested with ST32000645NS/0004, ST33000650NS, +@@ -3037,8 +3358,10 @@ const drive_settings builtin_knowndrives + "MB3000EBKAB", // HP OEM + "", "", "" + }, +- { "Seagate Constellation ES.3", // tested with ST1000NM0033-9ZM173/0001, ST4000NM0033-9ZM170/SN03 +- "ST[1234]000NM00[35]3-.*", ++ { "Seagate Constellation ES.3", // tested with ST1000NM0033-9ZM173/0001, ++ // ST4000NM0033-9ZM170/SN03, MB1000GCWCV/HPGC ++ "ST[1234]000NM00[35]3-.*|" ++ "MB1000GCWCV", // HP OEM + "", "", "" + }, + { "Seagate Constellation CS", // tested with ST3000NC000/CE02, ST3000NC002-1DY166/CN02 +@@ -3050,15 +3373,33 @@ const drive_settings builtin_knowndrives + "MM1000GBKAL", // HP OEM + "", "", "" + }, +- { "Seagate Enterprise Capacity 3.5 HDD", // tested with ST6000NM0024-1HT17Z/SN02 +- "ST[2456]000NM0[01][248]4-.*", // *[069]4 = 4Kn ++ // ST6000NM0004, ST6000NM0024, ST6000NM0044, ST6000NM0084, ST5000NM0024, ++ // ST5000NM0044, ST4000NM0024, ST4000NM0044, ST2000NM0024, ST2000NM0044 ++ // ST4000NM0035, ST3000NM0005, ST2000NM0055, ST1000NM0055, ST4000NM0045, ++ // ST3000NM0015, ST2000NM0065, ST1000NM0065, ST4000NM0105, ST3000NM0055 ++ { "Seagate Enterprise Capacity 3.5 HDD", // tested with ST6000NM0024-1HT17Z/SN02, ++ // ST10000NM0016-1TT101/SNB0 ++ // ST4000NM0085-1YY107/ZC11SXPH ++ // ST8000NM0045-1RL112/NN02 ++ // ST6000NM0004-1FT17Z/NN01 ++ // ST4000NM0035-1V4107/TNC3 ++ "ST([24568]|10)000NM0[01][01248][456]-.*", // *[069]4 = 4Kn + "", "", +- "-v 188,raw16" ++ "-v 188,raw16 -v 240,msec24hour32" + }, ++ // new models: ST8000VN0002, ST6000VN0021, ST4000VN000 ++ // ST8000VN0012, ST6000VN0031, ST4000VN003 ++ // tested with ST8000VN0002-1Z8112/ZA13YGNF + { "Seagate NAS HDD", // tested with ST2000VN000-1H3164/SC42, ST3000VN000-1H4167/SC43 +- "ST[234]000VN000-.*", ++ "ST([234]000VN000|[468]000VN00(02|21|12|31|3))-.*", + "", "", "" + }, ++ // ST10000VN0004, ST8000VN0022, ST6000VN0041, ST4000VN008, ST3000VN007, ++ // ST2000VN004, ST1000VN002 ++ { "Seagate IronWolf", // tested with ST6000VN0041-2EL11C/SC61 ++ "ST(10|8|6|4|3|2|1)000VN00(04|22|41|8|7|2|4)-.*", ++ "", "", "" ++ }, + { "Seagate Archive HDD", // tested with ST8000AS0002-1NA17Z/AR13 + "ST[568]000AS00[01][12]-.*", + "", "", "" +@@ -3099,8 +3440,12 @@ const drive_settings builtin_knowndrives + "ST3(250311|500410|1000525)SV", + "", "", "" + }, +- { "Seagate SV35", // tested with ST1000VX001-1HH162/CV11, ST2000VX000-9YW164/CV12 +- "ST([123]000VX00[012]|31000526SV|3500411SV)(-.*)?", ++ // ST6000VX0001,ST6000VX0011,ST5000VX0001,ST5000VX0011,ST4000VX000 ++ // ST4000VX002, ST3000VX002, ST2000VX003, ST1000VX001, ST1000VX002 ++ // ST3000VX000, ST3000VX004, ST2000VX000, ST2000VX004, ST1000VX000 ++ { "Seagate Surveillance", // tested with ST1000VX001-1HH162/CV11, ST2000VX000-9YW164/CV12, ++ // ST4000VX000-1F4168/CV14, ST2000VX003-1HH164/CV12 ++ "ST([1-6]000VX00[01234]1?|31000526SV|3500411SV)(-.*)?", + "", "", "" + }, + { "Seagate DB35", // tested with ST3250823ACE/3.03, ST3300831SCE/3.03 +@@ -3123,6 +3468,35 @@ const drive_settings builtin_knowndrives + "ST6[468]022CF", + "", "", "" + }, ++ { "WD Blue PC SSD", // tested with WDC WDS100T1B0A-00H9H0 ++ "WDC WDS...[TG]1B0[AB].*", ++ "", "", ++ //"-v 5,raw48,Reallocated_Sector_Ct " // Reassigned Block Count ++ //"-v 9,raw48,Power_On_Hours " ++ //"-v 12,raw48,Power_Cycle_Count " ++ "-v 165,raw48,Block_Erase_Count " ++ "-v 166,raw48,Minimum_PE_Cycles_TLC " ++ "-v 167,raw48,Max_Bad_Blocks_per_Die " ++ "-v 168,raw48,Maximum_PE_Cycles_TLC " ++ "-v 169,raw48,Total_Bad_Blocks " ++ "-v 170,raw48,Grown_Bad_Blocks " ++ "-v 171,raw48,Program_Fail_Count " ++ "-v 172,raw48,Erase_Fail_Count " ++ "-v 173,raw48,Average_PE_Cycles_TLC " ++ "-v 174,raw48,Unexpected_Power_Loss " ++ //"-v 184,raw48,End-to-end_Error " // Detection/Correction Count ++ //"-v 187,raw48,Reported_Uncorrect " // Uncorrectable Errors ++ //"-v 188,raw48,Command_Timeout ++ //"-v 194,tempminmax,Temperature_Celsius " ++ //"-v 199,raw48,UDMA_CRC_Error_Count // SATA CRC Errors ++ "-v 230,hex48,Media_Wearout_Indicator " // Maybe hex16 ++ //"-v 232,raw48,Available_Reserve_Space" ++ "-v 233,raw48,NAND_GB_Written_TLC " ++ "-v 234,raw48,NAND_GB_Written_SLC " ++ "-v 241,raw48,Total_Host_GB_Written " ++ "-v 242,raw48,Total_Host_GB_Read " ++ "-v 244,raw48,Temp_Throttle_Status " ++ }, + { "Western Digital Protege", + /* Western Digital drives with this comment all appear to use Attribute 9 in + * a non-standard manner. These entries may need to be updated when it +@@ -3244,7 +3618,8 @@ const drive_settings builtin_knowndrives + }, + { "Western Digital RE4", // tested with WDC WD2003FYYS-18W0B0/01.01D02, + // WDC WD1003FBYZ-010FB0/01.01V03 +- "WDC WD((25|50)03ABYX|1003FBY[XZ]|(15|20)03FYYS)-.*", ++ // WDC WD5003ABYZ-011FA0/01.01S03 ++ "WDC WD((25|50)03ABY[XZ]|1003FBY[XZ]|(15|20)03FYYS)-.*", + "", "", "" + }, + { "Western Digital RE4-GP", // tested with WDC WD2002FYPS-02W3B0/04.01G01, +@@ -3254,9 +3629,11 @@ const drive_settings builtin_knowndrives + }, + { "Western Digital Re", // tested with WDC WD1004FBYZ-01YCBB0/RR02, + // WDC WD2000FYYZ-01UL1B0/01.01K01, WDC WD2000FYYZ-01UL1B1/01.01K02, +- // WDC WD4000FYYZ-01UL1B2/01.01K03, WD2000FYYX/00.0D1K2 ++ // WDC WD4000FYYZ-01UL1B2/01.01K03, WD2000FYYX/00.0D1K2, ++ // WDC WD1004FBYZ-01YCBB1/RR04 + "WDC WD([12]004FBYZ|[1-6]00[01M]F[SXY]YZ)-.*|WD2000FYYX", +- "", "", "" ++ "", "", ++ "-v 16,raw48,Total_LBAs_Read" // WDC WD1004FBYZ-01YCBB1/RR04 + }, + { "Western Digital Se", // tested with WDC WD2000F9YZ-09N20L0/01.01A01 + "WDC WD(1002|2000|3000|4000)F9YZ-.*", +@@ -3290,12 +3667,12 @@ const drive_settings builtin_knowndrives + // WDC WD1003FZEX-00MK2A0/01.01A01, WDC WD3001FAEX-00MJRA0/01.01L01, + // WDC WD3003FZEX-00Z4SA0/01.01A01, WDC WD4001FAEX-00MJRA0/01.01L01 + // WDC WD4003FZEX-00Z4SA0/01.01A01, WDC WD5003AZEX-00RKKA0/80.00A80, +- "WDC WD(6001|2003|5001|1003|4003|5003|3003|3001)(FZW|FZE|AZE)X-.*|" // could be ++ // WDC WD4004FZWX-00GBGB0/81.H0A81 ++ "WDC WD(6001|2003|5001|1003|4003|4004|5003|3003|3001)(FZW|FZE|AZE)X-.*|" // could be + // new series WD6001FZWX WD2003FZEX WD5001FZWX WD1003FZEX +- // WD4003FZEX WD5003AZEX WD3003FZEX +- "WDC WD(4001|3001|2002|1002|5003|7500|5000|3200|2500|1600)(FAE|AZE|B[PE]K)[XT]-.*", ++ // WD4003FZEX WD5003AZEX WD3003FZEX WD4004FZWX ++ "WDC WD(4001|3001|2002|1002|5003|7500|5000|3200|2500|1600)(FAE|AZE)X-.*", + // old series: WD4001FAEX WD3001FAEX WD2002FAEX WD1002FAEX WD5003AZEX +- // WD7500BPKT WD5000BPKT WD3200BEKT WD2500BEKT WD1600BEKT + "", "", "" + }, + { "Western Digital AV ATA", // tested with WDC WD3200AVJB-63J5A0/01.03E01 +@@ -3366,9 +3743,11 @@ const drive_settings builtin_knowndrives + }, + { "Western Digital Red", // tested with WDC WD10EFRX-68JCSN0/01.01A01, + // WDC WD10JFCX-68N6GN0/01.01A01, WDC WD40EFRX-68WT0N0/80.00A80, +- // WDC WD60EFRX-68MYMN1/82.00A82 +- "WDC WD(7500BFC|10JFC|(10|20|30|40|50|60)EFR)X-.*", +- "", "", "" ++ // WDC WD60EFRX-68MYMN1/82.00A82, WDC WD80EFAX-68LHPN0/83.H0A83, ++ // WDC WD80EFZX-68UW8N0/83.H0A83 ++ "WDC WD(7500BFC|10JFC|[1-6]0EFR|80EF[AZ])X-.*", ++ "", "", ++ "-v 22,raw48,Helium_Level" // WD80EFZX + }, + { "Western Digital Red Pro", // tested with WDC WD2001FFSX-68JNUN0/81.00A81 + "WDC WD[234]001FFSX-.*", +@@ -3378,6 +3757,10 @@ const drive_settings builtin_knowndrives + "WDC WD[123456]0PURX-.*", + "", "", "" + }, ++ { "Western Digital Gold", // tested with WDC WD4002FYYZ-01B7CB0/01.01M02 ++ "WDC WD(101KR|[68]002FR|4002FY)YZ-.*", ++ "", "", "" ++ }, + { "Western Digital Blue Mobile", // tested with WDC WD5000LPVX-08V0TT2/03.01A03, + // WDC WD20NPVZ-00WFZT0/01.01A01 + "WDC WD((25|32|50|75)00[BLM]|10[JS]|20N)P[CV][TXZ]-.*", +@@ -3387,8 +3770,9 @@ const drive_settings builtin_knowndrives + "WDC WD(15|20)NPV[TX]-.*", + "", "", "" + }, +- { "Western Digital Black Mobile", // tested with WDC WD7500BPKX-22HPJT0/01.01A01 +- "WDC WD((16|25|32)00BE|(50|75)00BP)KX-.*", ++ { "Western Digital Black Mobile", // tested with WDC WD7500BPKX-22HPJT0/01.01A01, ++ // WDC WD10JPLX-00MBPT0/01.01H01 ++ "WDC WD((16|25|32)00BEK[TX]|(25|32|50|75)00(BPK|LPL)X|10JPLX)-.*", + "", "", "" + }, + { "Western Digital Elements / My Passport (USB)", // tested with WDC WD5000BMVW-11AMCS0/01.01A01 +@@ -3405,9 +3789,14 @@ const drive_settings builtin_knowndrives + // WDC WD10JMVW-11S5XS1/01.01A01, + // WDC WD10TMVW-11ZSMS5/01.01A01, + // WDC WD20NMVW-11AV3S2/01.01A01 (0x1058:0x0822), ++ // WDC WD20NMVW-11AV3S3/01.01A01 (0x1058:0x0837), ++ // WDC WD20NMVW-11EDZS6/01.01A01 (0x1058-0x259f), ++ // WDC WD20NMVW-11EDZS7/01.01A01 (0x1058:0x259d/25a1), + // WDC WD20NMVW-11W68S0/01.01A01, +- // WDC WD30NMVW-11C3NS4/01.01A01 +- "WDC WD(5000[LK]|7500[BK]|10[JT]|[23]0N)MV[VW]-.*", // *W-* = USB 3.0 ++ // WDC WD20NMVW-59AV3S3/01.01A01 (0x1058:0x107d), ++ // WDC WD30NMVW-11C3NS4/01.01A01, ++ // WDC WD40NMZW-11GX6S1/01.01A01 (0x1058:0x2599/25e2/25fa) ++ "WDC WD(5000[LK]|7500[BK]|10[JT]|[234]0N)M[VZ][VW]-.*", // *W-* = USB 3.0 + "", "", "" + }, + { "Quantum Bigfoot", // tested with TS10.0A/A21.0G00, TS12.7A/A21.0F00 +@@ -3510,20 +3899,9 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, +- { "USB: Buffalo MiniStation Stealth HD-PCTU2; ", +- "0x0411:0x01d9", +- "", // 0x0108 +- "", +- "-d sat" +- }, +- { "USB: Buffalo MiniStationHD-PCFU3; ", +- "0x0411:0x0240", +- "", +- "", +- "-d sat" +- }, +- { "USB: Buffalo MiniStation Safe HD-PNFU3; ", // 1TB +- "0x0411:0x0251", ++ { "USB: Buffalo MiniStation; ", ++ "0x0411:0x0(1[df]9|240|251)", // 0x01d9: HD-PCTU2 (0x0108), ++ // 0x01f9: HD-PZU3 (0x0100), 0x0240: HD-PCFU3, 0x0251: HD-PNFU3 + "", + "", + "-d sat" +@@ -3537,7 +3915,9 @@ const drive_settings builtin_knowndrives + }, + // Hitachi (?) + { "USB: ; Renesas uPD720231A", // USB2/3->SATA +- "0x045b:0x022a", // DeLock 62652 converter SATA 6GB/s > USB 3.0 ++ // 0x0229: Pi-102 Raspberry Pi USB to mSATA Converter Board ++ // 0x022a: DeLock 62652 converter SATA 6GB/s > USB 3.0 ++ "0x045b:0x022[9a]", + "", + "", + "-d sat" +@@ -3574,12 +3954,6 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, +- { "USB: Toshiba Canvio 3.0 Portable Hard Drive; ", // TOSHIBA MQ01UBD050 +- "0x0480:0xa007", +- "", // 0x0001 +- "", +- "-d sat" +- }, + { "USB: Toshiba Stor.E; ", + "0x0480:0xa00[9ace]", + "", // 0x0000 (0xa00e) +@@ -3587,8 +3961,10 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: Toshiba Canvio; ", +- "0x0480:0xa(100|20[0c])", // 0xa100: TOSHIBA MQ01UBB200, 0xa200: TOSHIBA MQ01UBD100, +- "", // 0xa20c: TOSHIBA MQ01ABB200 ++ "0x0480:0x(a(007|100|20[0c])|" // 0xa007 TOSHIBA MQ01UBD050, ++ "b207)", // 0xa100: TOSHIBA MQ01UBB200, 0xa200: TOSHIBA MQ01UBD100, ++ // 0xa20c: TOSHIBA MQ01ABB200, 0xb207: TOSHIBA MQ03UBB200 ++ "", // 0x0001 (0xa007) + "", + "-d sat" + }, +@@ -3749,7 +4125,8 @@ const drive_settings builtin_knowndrives + "-d usbsunplus" + }, + { "USB: Iomega; JMicron", +- "0x059b:0x0(47[05]|575)", // 0x0470: LPHD-UP, 0x0475: GDHDU2 (0x0100), 0x0575: LDHD-UP ++ "0x059b:0x0(47[05]|57[15])", // 0x0470: LPHD-UP, 0x0475: GDHDU2 (0x0100), ++ // 0x0575: LDHD-UP + "", + "", + "-d usbjmicron" +@@ -3767,6 +4144,12 @@ const drive_settings builtin_knowndrives + "", + "" // unsupported + }, ++ { "USB: LaCie d2 Quadra; Oxford OXUF934SSA-LQAG ", // USB+IEEE1394+eSATA->SATA ++ "0x059f:0x0828", ++ "", ++ "", ++ "-d sat" ++ }, + { "USB: LaCie hard disk; JMicron", + "0x059f:0x0951", + "", +@@ -3779,6 +4162,12 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, ++ { "USB: LaCie Desktop Hard Drive;", ++ "0x059f:0x1010", ++ "", ++ "", ++ "-d usbsunplus" ++ }, + { "USB: LaCie Desktop Hard Drive; ", + "0x059f:0x101[68]", // 0x1016: SAMSUNG HD103UJ + "", // 0x0001 +@@ -3815,6 +4204,12 @@ const drive_settings builtin_knowndrives + "", + "-d usbjmicron,x" + }, ++ { "USB: LaCie D2 USB2; LucidPort USB300 ", ++ "0x059f:0x103d", ++ "", ++ "", ++ "-d sat" ++ }, + { "USB: LaCie rikiki USB 3.0; ", + "0x059f:0x10(49|57)", + "", +@@ -3833,9 +4228,9 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, +- { "USB: LaCie; ", +- "0x059f:0x106f", +- "", // 0x0001 ++ { "USB: LaCie; ", // 0x1070: ASMedia 1053 ? ++ "0x059f:0x10(6f|7[05])", ++ "", // 6f/70=0x0001, 75=0x0000 + "", + "-d sat" + }, +@@ -3846,6 +4241,13 @@ const drive_settings builtin_knowndrives + "", + "-d usbcypress" + }, ++ // Apple ++ { "USB: Apple; ", ++ "0x05ac:0x8406", // TOSHIBA MQ01UBB200 ++ "", ++ "", ++ "-d sat" ++ }, + // Genesys Logic + { "USB: ; Genesys Logic GL881E", + "0x05e3:0x0702", +@@ -3918,6 +4320,12 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, ++ { "USB: Freecom Quattro 3.0; ", // USB3.0+IEEE1394+eSATA->SATA ++ "0x07ab:0xfc77", ++ "", ++ "", ++ "-d sat" ++ }, + { "USB: Freecom Mobile Drive XXS; JMicron", + "0x07ab:0xfc88", + "", // 0x0101 +@@ -4006,6 +4414,13 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, ++ // Neodio Technologies ++ { "USB: Neodio; Initio INIC-1810PL", ++ "0x0aec:0x3050", ++ "", // 0x0100 ++ "", ++ "-d sat" ++ }, + // Seagate + { "USB: Seagate External Drive; Cypress", + "0x0bc2:0x0503", +@@ -4026,8 +4441,8 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: Seagate Expansion Portable; ", +- "0x0bc2:0x23(00|12|20|21|22)", +- "", // 12=0x0219, 22=0x0000 ++ "0x0bc2:0x23(00|12|1a|20|21|22)", ++ "", // 12=0x0219, 1a=0x0707, 22=0x0000 + "", + "-d sat" + }, +@@ -4055,9 +4470,9 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, +- { "USB: Seagate Expansion External; ", +- "0x0bc2:0x33(00|12|20|21|32)", // 0x3321: Expansion Desktop 4TB +- "", ++ { "USB: Seagate Expansion Desktop; ", ++ "0x0bc2:0x33(00|1[2a]|2[012]|32)", // 1a=5TB, 21=4TB ++ "", // 1a=0x0909 + "", + "-d sat" + }, +@@ -4068,6 +4483,12 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: Seagate FreeAgent GoFlex USB 3.0; ", ++ "0x0bc2:0x5030", ++ "", // 0x0100 ++ "", ++ "-d sat" ++ }, ++ { "USB: Seagate FreeAgent GoFlex USB 3.0; ", + "0x0bc2:0x5031", + "", + "", +@@ -4097,9 +4518,17 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, +- { "USB: Seagate FreeAgent GoFlex Pro for Mac; ", +- "0x0bc2:0x6121", +- "", // 0x0148 ++ { "USB: Seagate FreeAgent GoFlex; ", ++ // 0x6121: Seagate FreeAgent GoFlex Pro for Mac (0x0148) ++ // 0x6126: Maxtor D3 Station 5TB (0x0209) ++ "0x0bc2:0x612[16]", ++ "", ++ "", ++ "-d sat" ++ }, ++ { "USB: Maxtor M3 Portable; ", ++ "0x0bc2:0x61b7", // Maxtor M3 Portable 4TB (0x0000) ++ "", + "", + "-d sat" + }, +@@ -4110,7 +4539,7 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: Seagate Backup Plus Desktop USB 3.0; ", +- "0x0bc2:0xa(0a[14]|b31)", // 4TB, 3TB (8 LBA/1 PBA offset), 5TB ++ "0x0bc2:0xa(0a[14]|b3[14])", // 4TB, 3TB (8 LBA/1 PBA offset), 5TB, ? + "", + "", + "-d sat" +@@ -4122,8 +4551,11 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: Seagate Backup Plus USB 3.0; ", +- "0x0bc2:0xab2[0145]", // 0xab24: Slim (ticket #443), 0xab25: Mac +- "", // 0x0100 ++ // 0xab24: Seagate Backup Plus Slim (0x0100) (ticket #443) ++ // 0xab25: Seagate Backup Plus for Mac (0x0100) ++ // 0xab38: Seagate Backup Plus 8TB (0x0100) (ticket #786) ++ "0x0bc2:0xab(2[01458]|38)", ++ "", + "", + "-d sat" + }, +@@ -4141,6 +4573,12 @@ const drive_settings builtin_knowndrives + "", + "-d usbcypress" + }, ++ { "USB: Dura Micro; Initio", ++ "0x0c0b:0xb136", ++ "", // 0x0108 ++ "", ++ "-d sat" ++ }, + { "USB: Dura Micro 509; Sunplus", + "0x0c0b:0xb159", + "", // 0x0103 +@@ -4225,39 +4663,28 @@ const drive_settings builtin_knowndrives + "", + "-d usbcypress" + }, +- { "USB: WD My Passport; ", +- "0x1058:0x0(70[245a]|71a|730|74[0128a]|7a[8e]|8(10|16|20|22|30))", +- "", // 822=0x1007 +- "", +- "-d sat" +- }, +- { "USB: WD My Book; ", +- "0x1058:0x09(00|06|10)", +- "", // 06=0x0012, 10=0x0106 +- "", +- "-d sat" +- }, + { "USB: WD Elements Desktop; ", + "0x1058:0x10(01|03|21|7c)", + "", // 01=0x0104, 03=0x0175, 21=0x2002, 7c=0x1065 + "", + "-d sat" + }, +- { "USB: WD Elements; ", +- "0x1058:0x10(10|23|42|48|a2|a8|b8)", +- "", // 10=0x0105, a8=0x1042, b8=0x1007 +- "", +- "-d sat" +- }, +- { "USB: WD My Book; ", +- "0x1058:0x11(00|01|02|04|05|10|30|40)", +- "", // 00/01=0x0165, 02=0x1028, 10=0x1030, 30=0x1012, 40=0x1003 ++ { "USB: WD Elements / My Passport; ", // 2.5" with integrated USB ++ "0x1058:0x(07(0[245a]|1a|30|4[0128a]|a[8e])|" ++ "08(1[06]|2[02]|3[37a])|" ++ "10(10|23|4[28]|7d|a[28]|b8)|" ++ "25(9[9df]|a[12]|e2|fa))", ++ "", // 0x0822=0x1007, 37=0x1072 ++ // 0x1010=0x0105, 7d=0x1073, a8=0x1042, b8=0x1007 ++ // 0x2599=0x1012, 9d/a1=0x1005, 9f/a2=0x1004 + "", + "-d sat" + }, +- { "USB: WD Elements; ", +- "0x1058:0x25a2", +- "", // 0x1004 ++ { "USB: WD My Book / Easystore; ", // 3.5" ++ "0x1058:0x(09(0[06]|10)|11(0[01245]|1[0d]|30|40)|1230|25(a3|fb))", ++ "", // 0x0906=0x0012, 10=0x0106 ++ // 0x1100/01=0x0165, 02=0x1028, 10=0x1030, 1d=0x1020, 30=0x1012, 40=0x1003 ++ // 0x1230=0x1065, 0x25a3=0x1013, 0x25fb=0x3004 + "", + "-d sat" + }, +@@ -4381,6 +4808,12 @@ const drive_settings builtin_knowndrives + "", // 0x0205, 2.05, Mediasonic ProBox HF2-SU3S2 Rev 3 (port multiplier, ticket #504) + "-d sat" + }, ++ { "USB: ; JMicron JMS578", // USB->SATA ++ "0x152d:0x0578", ++ "", // 0x0100 ++ "", ++ "-d sat" ++ }, + { "USB: OCZ THROTTLE OCZESATATHR8G; JMicron JMF601", + "0x152d:0x0602", + "", +@@ -4465,9 +4898,15 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, ++ { "USB: ; JMicron JMS561U", // USB3->2xSATA ++ "0x152d:0x8561", ++ "", // 0x0107 ++ "", ++ "-d sat" ++ }, + // ASMedia +- { "USB: ; ASMedia ASM1053/1153", +- "0x174c:0x1[01]53", ++ { "USB: ; ASMedia ASM1053/1153/1351", ++ "0x174c:0x1([01]53|351)", + "", + "", + "-d sat" +@@ -4595,10 +5034,10 @@ const drive_settings builtin_knowndrives + "-d sat" + }, + { "USB: ; Innostor IS888", // USB3->SATA +- "0x1f75:0x0888", // Sharkoon SATA QuickDeck Pro USB 3.0 +- "", // 0x0034 +- "", +- "" // unsupported ++ "0x1f75:0x0888", ++ "", // 0x0034, Sharkoon SATA QuickDeck Pro USB 3.0 (unsupported) ++ "", // 0x0036, works with -d sat (ticket #827) ++ "-d sat" + }, + // VIA Labs + { "USB: ; VIA VL701", // USB2/3->SATA +@@ -4627,6 +5066,13 @@ const drive_settings builtin_knowndrives + "", + "-d sat" + }, ++ // Power Quotient International ++ { "USB: PQI bridge; ", ++ "0x3538:0x0064", ++ "", ++ "", ++ "-d usbsunplus" ++ }, + // Sharkoon + { "USB: Sharkoon QuickPort XT USB 3.0; ", + "0x357d:0x7788", diff --git a/SOURCES/smartmontools.sysconf b/SOURCES/smartmontools.sysconf new file mode 100644 index 0000000..75d591c --- /dev/null +++ b/SOURCES/smartmontools.sysconf @@ -0,0 +1,4 @@ +# command line options for smartd +smartd_opts="-q never" +# autogenerated config file options +# smartd_conf_opts="-H -m root" diff --git a/SPECS/smartmontools.spec b/SPECS/smartmontools.spec new file mode 100644 index 0000000..3979984 --- /dev/null +++ b/SPECS/smartmontools.spec @@ -0,0 +1,444 @@ +Summary: Tools for monitoring SMART capable hard disks +Name: smartmontools +Version: 6.5 +Release: 1%{?dist} +Epoch: 1 +Group: System Environment/Base +License: GPLv2+ +URL: https://www.smartmontools.org/ +Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +Source2: smartmontools.sysconf +Source4: smartdnotify + +#fedora/rhel specific +Patch1: smartmontools-5.38-defaultconf.patch +Patch2: smartmontools-6.2-up2datedrivedb.patch + +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +Requires: fileutils mailx +#new rpm does not handle this (yet?) +#Requires(triggerun): systemd-units +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +BuildRequires: readline-devel ncurses-devel automake util-linux groff gettext +BuildRequires: libselinux-devel libcap-ng-devel +BuildRequires: systemd-units + +%description +The smartmontools package contains two utility programs (smartctl +and smartd) to control and monitor storage systems using the Self- +Monitoring, Analysis and Reporting Technology system (SMART) built +into most modern ATA/SATA, SCSI/SAS and NVMe disks. In many cases, +these utilities will provide advanced warning of disk degradation +and failure. + +%prep +%setup -q +%patch1 -p1 -b .defaultconf +%patch2 -p1 -b .up2datedrivedb + +# fix encoding +for fe in AUTHORS ChangeLog +do + iconv -f iso-8859-1 -t utf-8 <$fe >$fe.new + touch -r $fe $fe.new + mv -f $fe.new $fe +done + +%build +autoreconf -i +%configure --with-selinux --with-libcap-ng=yes --with-systemdsystemunitdir=%{_unitdir} --sysconfdir=%{_sysconfdir}/%name/ +%ifarch sparc64 +make CXXFLAGS="$RPM_OPT_FLAGS -fPIE" LDFLAGS="-pie -Wl,-z,relro,-z,now" +%else +make CXXFLAGS="$RPM_OPT_FLAGS -fpie" LDFLAGS="-pie -Wl,-z,relro,-z,now" +%endif + +sed -i 's|/etc/smartmontools/sysconfig|/etc/sysconfig|g' smartd.service + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install + +rm -f examplescripts/Makefile* +chmod a-x -R examplescripts/* +install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/smartmontools +install -D -p -m 755 %{SOURCE4} $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/smartdnotify +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/smartd_warning.d +rm -rf $RPM_BUILD_ROOT/etc/{rc.d,init.d} +rm -rf $RPM_BUILD_ROOT/%{_docdir}/%{name} + +%clean +rm -rf $RPM_BUILD_ROOT + +%preun +%systemd_preun smartd.service + +%pre +if [ $1 = 2 ] # only during update +then + # for Fedora 19-22 + if [ -f %{_sysconfdir}/smartd.conf -a ! -e %{_sysconfdir}/%name ] + then + mkdir -p %{_sysconfdir}/%{name} + cp -p %{_sysconfdir}/smartd.conf %{_sysconfdir}/%{name} + fi +fi + +%post +%systemd_post smartd.service + +%postun +%systemd_postun_with_restart smartd.service + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING INSTALL NEWS README +%doc TODO examplescripts smartd.conf +%dir %{_sysconfdir}/%name +%dir %{_sysconfdir}/%name/smartd_warning.d +%config(noreplace) %{_sysconfdir}/%{name}/smartd.conf +%config(noreplace) %{_sysconfdir}/%{name}/smartd_warning.sh +%config(noreplace) %{_sysconfdir}/sysconfig/smartmontools +%{_unitdir}/smartd.service +%{_sbindir}/smartd +%{_sbindir}/update-smart-drivedb +%{_sbindir}/smartctl +%{_mandir}/man?/smart*.* +%{_mandir}/man8/update-smart-drivedb.8* +%{_libexecdir}/%{name} +%{_datadir}/%{name} + +%changelog +* Wed Oct 11 2017 Michal Hlavinka - 1:6.5-1 +- smartmontools updated to 6.5 +- adds support for NVMe devices (#1369731) +- minor spec cleanup (#1463148) + +* Sun Mar 26 2017 Michal Hlavinka - 1:6.2-8 +- use up to date drivedb (#1388510) +- less scarry messages reported to users (#1340462) + +* Wed Sep 07 2016 Michal Hlavinka - 1:6.2-7 +- add update-smart-drivedb.8 man page (#1367237) +- fix drivedb update url (#1364830) + +* Thu May 05 2016 Michal Hlavinka - 1:6.2-6 +- allow to discover more devices (#1294999) + +* Mon May 02 2016 Michal Hlavinka - 1:6.2-5 +- do not leak file descriptor when calling mailx (#1212582) + +* Fri Jan 24 2014 Daniel Mach - 1:6.2-4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 1:6.2-3 +- Mass rebuild 2013-12-27 + +* Mon Sep 16 2013 Michal Hlavinka - 1:6.2-2 +- smartd service file wrong path to environment file (#1008516) + +* Tue Jul 30 2013 Michal Hlavinka - 1:6.2-1 +- smartmontools updated to 6.2 + +* Mon Jul 22 2013 Michal Hlavinka - 1:6.1-2 +- spec cleanup + +* Wed Mar 20 2013 Michal Hlavinka - 1:6.1-1 +- smartmontools updated to 6.1 + +* Fri Feb 15 2013 Fedora Release Engineering - 1:6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Oct 11 2012 Michal Hlavinka - 1:6.0-1 +- smartmontools updated to 6.0 + +* Tue Aug 21 2012 Michal Hlavinka - 1:5.43-3 +- use new systemd rpm macros (#850316) + +* Sat Jul 21 2012 Fedora Release Engineering - 1:5.43-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 02 2012 Michal Hlavinka - 1:5.43-1 +- smartmontools updated to 5.43 + +* Sat Jan 14 2012 Fedora Release Engineering - 1:5.42-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Dec 02 2011 Michal Hlavinka - 1:5.42-2 +- enable smartd after installation + +* Fri Oct 21 2011 Michal Hlavinka - 1:5.42-1 +- smartmontools updated to 5.42 + +* Mon Jun 13 2011 Michal Hlavinka - 1:5.41-2 +- make F-14 (sysv init) -> F-15 (systemd) transition more robust + +* Fri Jun 10 2011 Michal Hlavinka - 1:5.41-1 +- updated to 5.41 + +* Mon May 16 2011 Michal Hlavinka - 1:5.40-10 +- fix path to notify script (#675778) + +* Fri Mar 11 2011 Michal Hlavinka - 1:5.40-9 +- fix typos in man page + +* Fri Mar 04 2011 Michal Hlavinka - 1:5.40-8 +- don't call chkconfig add, we use systemd now + +* Thu Mar 03 2011 Michal Hlavinka - 1:5.40-7 +- own %%{_datadir}/%%{name} and %%{_libexecdir}/%%{name} dirs + +* Thu Feb 17 2011 Michal Hlavinka - 1:5.40-6 +- notify users when disk is failing + +* Wed Feb 09 2011 Michal Hlavinka - 1:5.40-5 +- move to systemd + +* Wed Feb 09 2011 Fedora Release Engineering - 1:5.40-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Nov 15 2010 Michal Hlavinka - 1:5.40-3 +- megaraid: Fix segfault on non-data commands (#577935) + +* Tue Nov 09 2010 Michal Hlavinka - 1:5.40-2 +- don't forget to restart smartd service after update (#651211) + +* Mon Oct 18 2010 Michal Hlavinka - 1:5.40-1 +- updated to 5.40 final + +* Mon Sep 27 2010 Michal Hlavinka - 1:5.39.1-2.r3169 +- updated to r3169 +- ddds riverdb support for new devices (#637171) + +* Fri Jan 29 2010 Michal Hlavinka - 1:5.39.1-1 +- updated to 5.39.1 +- Fix spin-up of SATA drive if '-n standby' is used. + +* Wed Jan 20 2010 Michal Hlavinka - 1:5.39-2 +- fix DEVICESCAN -d sat +- fix directive '-l selftest' +- fix option '-q, --quietmode' + +* Thu Dec 10 2009 Michal Hlavinka - 1:5.39-1 +- update to 5.39 + +* Wed Dec 02 2009 Michal Hlavinka - 1:5.39-0.1.rc1 +- update to 5.39-rc1 + +* Wed Nov 25 2009 Michal Hlavinka - 1:5.38-25.20091119svn +- spec cleanup + +* Mon Nov 23 2009 Michal Hlavinka - 1:5.38-24.20091119svn +- move powermode option from sysconfig to smartd.conf (#539760) + +* Thu Nov 19 2009 Michal Hlavinka - 1:5.38-23.20091119svn +- update to svn snapshot 2009-11-19 +- remove upstreamed patches + +* Mon Nov 02 2009 Michal Hlavinka - 1:5.38-22 +- spec cleanup + +* Mon Oct 12 2009 Michal Hlavinka - 1:5.38-21 +- warn about disabled mail only if capabilities are enabled + +* Fri Oct 09 2009 Michal Hlavinka - 1:5.38-20 +- fix init script for case when no action was specified + +* Fri Oct 09 2009 Michal Hlavinka - 1:5.38-19 +- make init script lsb compliant (#528016) + +* Mon Oct 05 2009 Michal Hlavinka - 1:5.38-18 +- bump release for rebuild + +* Mon Oct 05 2009 Michal Hlaivnka - 1:5.38-17 +- make capabilities optional +- fix capabilities for 3ware contollers (#526626) + +* Wed Aug 26 2009 Michal Hlavinka - 1:5.38-16 +- extend capability scanning devices + +* Wed Aug 26 2009 Michal Hlavinka - 1:5.38-15 +- updated patch for lower capabilities (#517728) +- added buildrequires libcap-ng-devel + +* Fri Aug 21 2009 Michal Hlavinka - 1:5.38-14 +- drop all unnecessary capabilities (#517728) + +* Sun Jul 26 2009 Fedora Release Engineering - 1:5.38-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jun 11 2009 Michal Hlavinka - 1:5.38-12 +- drop autogen call + +* Sat Apr 11 2009 Dennis Gilmore - 1:5.38-11 +- remove ExclusiveArch use -fPIE on sparc64 +- tested builds on sparcv9 sparc64 and s390x + +* Mon Mar 09 2009 Michal Hlavinka - 1:5.38-10 +- cleanup for merge review + +* Fri Feb 27 2009 Tom "spot" Callaway - 1:5.38-9 +- fix ExclusiveArch + +* Wed Feb 25 2009 Fedora Release Engineering - 1:5.38-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Aug 11 2008 Tomas Smetana - 1:5.38-7 +- fix #458549 - obsolete smartmontools-config +- change the default configuration file + +* Fri Aug 08 2008 Tomas Smetana - 1:5.38-6 +- correct CXXFLAGS so the PIE code is produced + +* Mon May 12 2008 Tomas Smetana - 1:5.38-5 +- remove config subpackage + +* Mon May 05 2008 Tomas Smetana - 1:5.38-4.1 +- add libselinux-devel to BR + +* Mon May 05 2008 Tomas Smetana - 1:5.38-4 +- fix #232218 character devices /dev/twa* for 3ware 9000 series RAID + controllers are not created + +* Thu Mar 27 2008 Tomas Smetana - 1:5.38-3 +- don't attempt to query DELL PERC controllers -- they'd go offline + +* Tue Mar 18 2008 Tomas Smetana - 1:5.38-2 +- fix FD_CLOEXEC on SCSI device file descriptors not being set + +* Mon Mar 10 2008 Tomas Smetana - 1:5.38-1 +- new upstream version + +* Tue Feb 12 2008 Tomas Smetana - 1:5.37-8.5 +- rebuild (gcc-4.3) + +* Tue Jan 15 2008 Tomas Smetana - 1:5.37-8.4 +- change '-d ata' to '-d sat' in the config script for SATA drives + +* Wed Dec 12 2007 Tomas Smetana - 1:5.37-8.3 +- fix #375791 - parameter warning for smartd in logwatch output + +* Wed Oct 31 2007 Tomas Smetana - 1:5.37-8.2 +- rebuild (one more error in autogen.sh) + +* Wed Oct 31 2007 Tomas Smetana - 1:5.37-8.1 +- fix build with new automake + +* Wed Oct 31 2007 Tomas Smetana - 1:5.37-8 +- fix #359561 - typo in smartd-conf.py causes smartd to skip all disks + +* Mon Oct 15 2007 Tomas Smetana - 1:5.37-7.1 +- improved patch for getaddrinfo + +* Fri Oct 12 2007 Tomas Smetana - 1:5.37-7 +- replace gethostbyname with getaddrinfo + +* Tue Sep 04 2007 Tomas Smetana - 1:5.37-6 +- fix #271741 - smartd-conf.py should allow customization of parameters +- fix #253753 - service starting by default, perhaps shouldn't +- update initscript (related #247058 - initscript review) + +* Mon Aug 20 2007 Tomas Smetana - 1:5.37-5 +- add support for 24 disks on 3ware RAID controllers (related #252055) +- fix #245442 - add %%{arm} to smartmontools's set of build archs +- update license tag + +* Thu Jun 21 2007 Tomas Smetana - 1:5.37-4 +- fix #241389 - smartd-conf.py pulls in a big dependency chain, so + build a separate config package + +* Tue Jun 05 2007 Tomas Smetana - 1:5.37-3 +- fix #241385 - smartmontools missing dependency on mailx +- fix #241388 - unneeded smartd-conf.py[co] installed in /usr/sbin + +* Wed Mar 7 2007 Vitezslav Crhonek - 1:5.37-2 +- re-add cloexec patch +- re-add one erased changelog entry +- compile with -fpie (instead of -fpic) + +* Tue Feb 27 2007 Vitezslav Crhonek - 1:5.37-1 +- new upstream version + +* Thu Feb 22 2007 Tomas Mraz - 1:5.36-8 +- enable SMART on disks when smartd-conf.py runs (fix + by Calvin Ostrum) (#214502) + +* Mon Feb 12 2007 Tomas Mraz - 1:5.36-7 +- redirect service script output to null (#224566) + +* Sun Feb 11 2007 Florian La Roche - 1:5.36-6 +- make sure the preun script does not fail + +* Tue Nov 7 2006 Tomas Mraz - 1:5.36-5 +- set cloexec on device descriptor so it doesn't leak to sendmail (#214182) +- fixed minor bug in initscript (#213683) +- backported SATA disk detection from upstream + +* Fri Aug 18 2006 Jesse Keating - 1:5.36-3 +- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc* + (#203001) + +* Wed Jul 12 2006 Jesse Keating - 1:5.36-2.1 +- rebuild + +* Tue Jun 27 2006 Tomas Mraz - 1:5.36-2 +- kudzu is deprecated, replace it with HAL (#195752) +- moved later in the boot process so haldaemon is already running + when drives are being detected + +* Thu May 11 2006 Tomas Mraz - 1:5.36-1 +- new upstream version +- included patch with support for cciss controllers (#191288) + +* Tue May 2 2006 Tomas Mraz - 1:5.33-8 +- regenerate smartd.conf on every startup if the config file + is autogenerated (#190065) + +* Fri Mar 24 2006 Tomas Mraz - 1:5.33-7 +- add missing quotes to /etc/sysconfig/smartmontools + +* Wed Mar 22 2006 Tomas Mraz - 1:5.33-6 +- test SATA drives correctly + +* Wed Mar 22 2006 Tomas Mraz - 1:5.33-5 +- add default /etc/sysconfig/smartmontools file +- ignore errors on startup (#186130) +- test drive for SMART support before adding it to smartd.conf + +* Fri Feb 10 2006 Jesse Keating - 1:5.33-4.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1:5.33-4.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 16 2005 Tomas Mraz 1:5.33-4 +- mail should be sent to root not root@localhost (#174252) + +* Fri Nov 25 2005 Tomas Mraz 1:5.33-3 +- add libata disks with -d ata if the libata version + is new enough otherwise do not add them (#145859, #174095) + +* Thu Nov 3 2005 Tomas Mraz 1:5.33-2 +- Spec file cleanup by Robert Scheck (#170959) +- manual release numbering +- remove bogus patch of non-installed file +- only non-removable drives should be added to smartd.conf +- smartd.conf should be owned (#171498) + +* Tue Oct 25 2005 Dave Jones +- Add comments to generated smartd.conf (#135397) + +* Thu Aug 04 2005 Karsten Hopp +- package all python files + +* Tue Mar 1 2005 Dave Jones +- Rebuild for gcc4 + +* Wed Feb 9 2005 Dave Jones +- Build on PPC32 too (#147090) + +* Sat Dec 18 2004 Dave Jones +- Initial packaging, based upon kernel-utils. +