mirror of
https://github.com/ashaduri/gsmartcontrol.git
synced 2026-09-25 13:25:37 +00:00
Updated smartctl attributes from r3515 to r3587.
Added warnings for SSD lifetime attributes.
This commit is contained in:
+22
-36
@@ -20,16 +20,8 @@ with existing model, which should be unset.
|
||||
|
||||
|
||||
Bugs / patches:
|
||||
|
||||
Patch pangomm for Pango::strip_markup().
|
||||
|
||||
+ gtkmm bug: No Gtk::AboutDialog::set_logo(NULL);
|
||||
|
||||
+ Gtk::Main m(argc, argv, false);
|
||||
If gtk_get_option_group() and g_option_context_parse() were used before,
|
||||
this generates a warning:
|
||||
(gsmartcontrol:28241): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init()
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------
|
||||
@@ -41,14 +33,17 @@ Update the .spec and gsmartcontrol-root script according to Fedora package:
|
||||
https://admin.fedoraproject.org/pkgdb/applications/Gsmartcontrol
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=697247
|
||||
|
||||
|
||||
+Add an option to display the device and/or the S/N in the main icon list
|
||||
so that the 12x RAID list view looks a bit less generic.
|
||||
Add support for launching with consolehelper (from usermode package).
|
||||
Fedora uses this by default.
|
||||
Investigate Fedora selinux situation.
|
||||
usermode-gtk contains consolehelper-gtk, not sure about our package
|
||||
requirement. consolehelper-gtk is not supposed to be launched by user,
|
||||
but I think we can check it with "which".
|
||||
http://fedoranews.org/contributors/matt_hansen/nautilus/
|
||||
We have an experimental rpm.
|
||||
|
||||
|
||||
Don't issue warnings for attributes whose raw values are not numbers completely
|
||||
(e.g. they are space-separated numbers in some format)
|
||||
|
||||
Updated smartctl attributes from r3515 to 3587.
|
||||
|
||||
Add warnings for SSD lifetime attributes
|
||||
http://sourceforge.net/apps/trac/smartmontools/wiki/FAQ#TheSSD_Life_LeftAttributeofmynewSandForcebasedSSDreportszero
|
||||
@@ -69,14 +64,19 @@ Testing:
|
||||
may be stuck due to bad firmware, e.g. 3ware/windows).
|
||||
|
||||
|
||||
Add support for launching with consolehelper (from usermode package).
|
||||
Fedora uses this by default.
|
||||
Investigate Fedora selinux situation.
|
||||
usermode-gtk contains consolehelper-gtk, not sure about our package
|
||||
requirement. consolehelper-gtk is not supposed to be launched by user,
|
||||
but I think we can check it with "which".
|
||||
http://fedoranews.org/contributors/matt_hansen/nautilus/
|
||||
We have an experimental rpm.
|
||||
|
||||
48-bit ATA command support:
|
||||
'-l xerror' -> Extended Comprehensive Error log: An multi-sector and
|
||||
LBA48 capable version of '-l error'. Output is similar, except more
|
||||
entries can exists and the high bytes of the registers are also printed.
|
||||
Some newer drives (Samsung) only write to this log.
|
||||
|
||||
'-l xselftest' -> Extended Self Test Log: An multi-sector and LBA48
|
||||
capable version of '-l selftest'. Output will be similar, except more
|
||||
entries can exists and the LBA values can be somewhat longer.
|
||||
|
||||
"smartctl -l this_wont_exist" gives the list of supported logs - this
|
||||
is needed to detect xerror / xselftest support in smartctl.
|
||||
|
||||
|
||||
Rework drive properties UI:
|
||||
@@ -185,20 +185,6 @@ libdebug:
|
||||
use format_time() instead of ctime() and friends, with ISO formatting.
|
||||
|
||||
|
||||
48-bit ATA command support:
|
||||
'-l xerror' -> Extended Comprehensive Error log: An multi-sector and
|
||||
LBA48 capable version of '-l error'. Output is similar, except more
|
||||
entries can exists and the high bytes of the registers are also printed.
|
||||
Some newer drives (Samsung) only write to this log.
|
||||
|
||||
'-l xselftest' -> Extended Self Test Log: An multi-sector and LBA48
|
||||
capable version of '-l selftest'. Output will be similar, except more
|
||||
entries can exists and the LBA values can be somewhat longer.
|
||||
|
||||
"smartctl -l this_wont_exist" gives the list of supported logs - this
|
||||
is needed to detect xerror / xselftest support in smartctl.
|
||||
|
||||
|
||||
|
||||
'-l sataphy' -> SATA Phy event counters: Non-SMART feature, useful to detect SATA cabling problems.
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace {
|
||||
"Number of reallocated sectors (Raw value). Non-zero Raw value indicates a disk surface failure."
|
||||
"\n\n" + unc_text);
|
||||
// SandForce SSD: Retired_Block_Count (non-default)
|
||||
add(5, "Retired_Block_Count", "Retired Block Rate", "",
|
||||
add(5, "Retired_Block_Count", "Retired Block Rate", "ssd_life_left",
|
||||
"Indicates estimated remaining life of the drive. Normalized value is (100-100*RBC/MRB) where RBC is the number of retired blocks and MRB is the minimum required blocks.");
|
||||
// Read Channel Margin (default)
|
||||
add(6, "Read_Channel_Margin", "Read Channel Margin", "",
|
||||
@@ -108,8 +108,11 @@ namespace {
|
||||
// Power-On Hours (default) (Maxtor may use minutes, Fujitsu may use seconds, some even temperature?)
|
||||
add(9, "Power_On_Hours", "Power-On Time", "",
|
||||
"Number of hours in power-on state. Raw value shows total count of hours (or minutes, or half-minutes, or seconds, depending on manufacturer) in power-on state.");
|
||||
// SandForce SSD: Power_On_Hours_and_Msec (non-default) (description?)
|
||||
// SandForce, Intel SSD: Power_On_Hours_and_Msec (non-default) (description?)
|
||||
add(9, "Power_On_Hours_and_Msec");
|
||||
// Smart Storage Systems SSD (non-default)
|
||||
add(9, "Proprietary_9", "Internal Attribute", "",
|
||||
"This attribute has been reserved by vendor as internal.");
|
||||
// Spin-up Retry Count (default)
|
||||
add(10, "Spin_Retry_Count", "Spin-Up Retry Count", "spin_up_retry_count",
|
||||
"Number of retries of spin start attempts (Raw value). An increase of this attribute value is a sign of problems in the hard disk mechanical subsystem.");
|
||||
@@ -142,6 +145,9 @@ namespace {
|
||||
// STEC CF: Translation Table Rebuild (custom)
|
||||
add(103, "", "Translation Table Rebuild", "",
|
||||
"Indicates power backup fault or internal error resulting in loss of system unit tables.");
|
||||
// Smart Storage Systems SSD (non-default) (description?)
|
||||
add(130, "Minimum_Spares_All_Zs", "Minimum Spares All Zs", "",
|
||||
"");
|
||||
// Various SSDs: (non-default) (description?)
|
||||
add(168, "SATA_Phy_Error_Count", "SATA Physical Error Count", "",
|
||||
"");
|
||||
@@ -151,6 +157,9 @@ namespace {
|
||||
// Crucial / Marvell SSD: Grown Failing Block Count (non-default) (description?)
|
||||
add(170, "Grown_Failing_Block_Ct", "Grown Failing Block Count", "",
|
||||
"");
|
||||
// Intel SSD: (non-default) (description?)
|
||||
add(170, "Available_Reservd_Space", "Available Reservd Space", "",
|
||||
"");
|
||||
// Various SSDs: (non-default) (description?)
|
||||
add(170, "Bad_Block_Count", "Bad Block Count", "",
|
||||
"");
|
||||
@@ -230,7 +239,7 @@ namespace {
|
||||
// Reported Uncorrectable (default)
|
||||
add(187, "Reported_Uncorrect", "Reported Uncorrectable", "",
|
||||
"Number of errors that could not be recovered using hardware ECC (Error-Correcting Code).");
|
||||
// Samsung SSD: Reported Uncorrectable (non-default)
|
||||
// Samsung SSD, Intel SSD: Reported Uncorrectable (non-default)
|
||||
add(187, "Uncorrectable_Error_Cnt");
|
||||
// Command Timeout (default)
|
||||
add(188, "Command_Timeout", "Command Timeout", "",
|
||||
@@ -277,6 +286,9 @@ namespace {
|
||||
// Temperature Celsius x 10 (non-default)
|
||||
add(194, "Temperature_Celsius_x10", "Temperature (Celsius) x 10", "temperature_celsius_x10",
|
||||
"Drive temperature. The Raw value shows built-in heat sensor registrations (in Celsius * 10). Increases in average drive temperature often signal spindle motor problems (unless the increases are caused by environmental factors).");
|
||||
// Smart Storage Systems SSD (non-default)
|
||||
add(194, "Proprietary_194", "Internal Attribute", "",
|
||||
"This attribute has been reserved by vendor as internal.");
|
||||
// Hardware ECC Recovered (default)
|
||||
add(195, "Hardware_ECC_Recovered", "Hardware ECC Recovered", "",
|
||||
"Number of ECC on the fly errors (Raw value). Users are advised to ignore this attribute.");
|
||||
@@ -382,12 +394,12 @@ namespace {
|
||||
// Samsung SSD: (non-default) (description?)
|
||||
add(202, "Exception_Mode_Status", "Exception Mode Status", "",
|
||||
"");
|
||||
// Maxtor: ECC Errors (default) (description?)
|
||||
add(203, "Corr_Read_Errors_Tot_Ct", "ECC Errors", "",
|
||||
"Number of ECC errors.");
|
||||
// Run Out Cancel (non-default). (description?)
|
||||
// Run Out Cancel (default). (description?)
|
||||
add(203, "Run_Out_Cancel", "Run Out Cancel", "",
|
||||
"Number of ECC errors.");
|
||||
// Maxtor: ECC Errors (non-default) (description?)
|
||||
add(203, "Corr_Read_Errors_Tot_Ct", "ECC Errors", "",
|
||||
"Number of ECC errors.");
|
||||
// Indilinx Barefoot SSD: Corr_Read_Errors_Tot_Ct (non-default) (description?)
|
||||
add(203, "Corr_Read_Errors_Tot_Ct", "Total Corrected Read Errors", "",
|
||||
"Total cound of read sectors with correctable errors.");
|
||||
@@ -438,7 +450,7 @@ namespace {
|
||||
add(209, "Offline_Seek_Performnce", "Offline Seek Performance", "",
|
||||
"Seek performance during Offline Data Collection operations.");
|
||||
// Indilinx Barefoot SSD, OCZ SSD: Remaining_Lifetime_Perc (non-default) (description?)
|
||||
add(209, "Remaining_Lifetime_Perc", "Remaining Lifetime %", "",
|
||||
add(209, "Remaining_Lifetime_Perc", "Remaining Lifetime %", "ssd_life_left",
|
||||
"Remaining drive life in % (usually by erase count).");
|
||||
// Vibration During Write (custom). wikipedia says 211, but it's wrong. (description?)
|
||||
add(210, "", "Vibration During Write", "",
|
||||
@@ -519,12 +531,12 @@ namespace {
|
||||
"Amplitude of heads trembling (GMR-head) in running mode.");
|
||||
// Sandforce SSD: Life_Curve_Status (non-default) (description?)
|
||||
add(230, "Life_Curve_Status", "Life Curve Status", "",
|
||||
"");
|
||||
"Current state of drive operation based upon the Life Curve.");
|
||||
// Temperature (Some drives) (default)
|
||||
add(231, "Temperature_Celsius", "Temperature", "temperature_celsius",
|
||||
"Drive temperature. The Raw value shows built-in heat sensor registrations (in Celsius). Increases in average drive temperature often signal spindle motor problems (unless the increases are caused by environmental factors).");
|
||||
// Sandforce SSD: SSD_Life_Left
|
||||
add(231, "SSD_Life_Left", "SSD Life Left", "",
|
||||
add(231, "SSD_Life_Left", "SSD Life Left", "ssd_life_left",
|
||||
"A measure of drive's estimated life left. A Normalized value of 100 indicates a new drive. "
|
||||
"10 means there are reserved blocks left but Program / Erase cycles have been used. "
|
||||
"0 means insufficient reserved blocks, drive may be in read-only mode to allow recovery of the data.");
|
||||
@@ -538,7 +550,7 @@ namespace {
|
||||
add(232, "Firmware_Version_information", "Firmware Version Information", "",
|
||||
"Firmware version information (year, month, day, channels, banks).");
|
||||
// Intel SSD: Media_Wearout_Indicator (default) (description?)
|
||||
add(233, "Media_Wearout_Indicator", "Media Wear Out Indicator", "",
|
||||
add(233, "Media_Wearout_Indicator", "Media Wear Out Indicator", "ssd_life_left",
|
||||
"Number of cycles the NAND media has experienced. The Normalized value decreases linearly from 100 to 1 as the average erase cycle "
|
||||
"count increases from 0 to the maximum rated cycles.");
|
||||
// Sandforce SSD: SandForce_Internal (non-default) (description?)
|
||||
@@ -583,6 +595,9 @@ namespace {
|
||||
// Intel SSD: Host_Reads_32MiB (non-default) (description?)
|
||||
add(242, "Host_Reads_32MiB", "Host Reads (32 MiB)", "",
|
||||
"Total number of sectors written by the host system. The Raw value is increased by 1 for every 32 MiB read by the host.");
|
||||
// Intel SSD: NAND_Writes_1GiB (non-default) (description?)
|
||||
add(249, "NAND_Writes_1GiB", "NAND Writes (1GiB)", "",
|
||||
"");
|
||||
// Read Error Retry Rate (default) (description?)
|
||||
add(250, "Read_Error_Retry_Rate", "Read Error Retry Rate", "",
|
||||
"Number of errors found while reading.");
|
||||
@@ -956,6 +971,12 @@ StorageProperty::warning_t storage_property_autoset_warning(StorageProperty& p)
|
||||
w = StorageProperty::warning_notice;
|
||||
reason = "The drive has a non-zero Raw value, but there is no SMART warning yet. This could be an indication of future failures and/or potential data loss in bad sectors.";
|
||||
|
||||
// Current Pending Sector Count
|
||||
} else if ((attr_match(p, "ssd_life_left"))
|
||||
&& p.value_attribute.value.value() < 50) {
|
||||
w = StorageProperty::warning_notice;
|
||||
reason = "The drive has less than half of its life left.";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user