Skip to content

Instantly share code, notes, and snippets.

@correabuscar
Last active July 7, 2024 07:32
Show Gist options
  • Save correabuscar/f5e8246f987be1ee089b8e621788380a to your computer and use it in GitHub Desktop.
Save correabuscar/f5e8246f987be1ee089b8e621788380a to your computer and use it in GitHub Desktop.
WDC WUH721818ALE6L4 firmware updated from PCGNW120 to PCGNW870
helium level shows as
22 Helium_Level PO---K 100 100 025 - 6553700
on PCGNW870 vs PCGNW120
thus needs to be raw16 or raw8, can't do raw24 or raw32 as I get "Syntax error in preset option string"
but "raw24/raw32" works but it's same as raw48, wrong value.
now it's once again:
22 Helium_Level PO---K 100 100 025 - 0 100 100
if you want it to be this:
22 Helium_Level PO---K 100 100 025 - 100 (0 100)
then use `raw16(raw16)` instead of just `raw16` there
Index: /var/tmp/portage/sys-apps/smartmontools-7.4-r1/work/smartmontools-7.4/drivedb.h
===================================================================
--- .orig/var/tmp/portage/sys-apps/smartmontools-7.4-r1/work/smartmontools-7.4/drivedb.h
+++ smartmontools-7.4/drivedb.h
@@ -3683,6 +3683,12 @@ const drive_settings builtin_knowndrives
{ "Western Digital Ultrastar DC HC550", // tested with WDC WUH721818ALE6L4/PCGNW110,
// WUH721818ALE6L4/PCGAW232, WDC WUH721818ALN6L4/PCGNW088
"(WDC ?)?WUH72181[68]AL[EN]6[0L][0146]",
+ "PCGNW870", "",
+ "-v 22,raw16,Helium_Level"
+ },
+ { "Western Digital Ultrastar DC HC550", // tested with WDC WUH721818ALE6L4/PCGNW110,
+ // WUH721818ALE6L4/PCGAW232, WDC WUH721818ALN6L4/PCGNW088
+ "(WDC ?)?WUH72181[68]AL[EN]6[0L][0146]",
"", "",
"-v 22,raw48,Helium_Level"
},
hdparm -I
hdparm - get/set hard disk parameters - version v9.65, by Mark Lord.
- Firmware Revision: PCGNW120
+ Firmware Revision: PCGNW870
- Logical Sector size: 512 bytes [ Supported: 4096 4160 4224 512 520 528 ]
+ Logical Sector size: 512 bytes [ Supported: 4096 512 ]
- 3138min for SECURITY ERASE UNIT.
+ 1570min for SECURITY ERASE UNIT.
smartctl -a
smartctl -x
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.9.1-gentoo-x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 22 Helium_Level 0x0023 100 100 025 Pre-fail Always - 100
+ 22 Helium_Level 0x0023 100 100 025 Pre-fail Always - 6553700
Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
-0x04 0x018 4 0 --- Physical Element Status Changed
SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
-0x0009 2 78 Transition from drive PhyRdy to drive PhyNRdy
-0x000a 2 3 Device-to-host register FISes sent due to a COMRESET
+0x0009 2 20 Transition from drive PhyRdy to drive PhyNRdy
+0x000a 2 5 Device-to-host register FISes sent due to a COMRESET
General Purpose Log Directory Version 1
SMART Log Directory Version 1 [multi-sector log support]
-0x0c GPL R/O 7501 Pending Defects log
+0x0c GPL R/O 30001 Pending Defects log
+0xa6 GPL VS 192 Device vendor specific log
+0xb7 SL VS 1 Device vendor specific log
+0xd8 GPL,SL VS 1 Device vendor specific log
https://files.hddguru.com/download/Firmware%20updates/Western%20Digital/PCGNW870.zip
d345e6005a157cc28008fc9269dc6871 PCGNW870.zip
05d91f1e54adfaf116caaaf8449e89f4a422954a PCGNW870.zip
ba5193541b58d4e1318306cd123ad8536fa26e34f9c51aff70ccb2d6af33e519 PCGNW870.zip
1d4a871d39c244a0522107db57306b5da874cfb990a4e9cae5c08d7c6a0d66454789786568a8436c7844d9c2aa8684e7bec78c04daedd14ed759197b68c57286 PCGNW870.zip
https://files.hddguru.com/download/Software/Western%20Digital/wdckit-2.21.0.zip
8cfe8b7368f782ec5883d2d29df4d7e6 wdckit-2.21.0.zip
4077878d61f6e99f1cd915657d731b4321d328b4 wdckit-2.21.0.zip
2aeccb72204533265b9ce7a6b162692556f309110534676a01705892aeb3f72e wdckit-2.21.0.zip
21ea2c420641f0584b3e15c4776faa5db42480330615e178063bfe43ca6d8ddbad208ef48c9c8fb460f0066f568774d7f82c1c167018ea52313e2f57ee21b6a8 wdckit-2.21.0.zip
@correabuscar
Copy link
Author

correabuscar commented Jun 3, 2024

Well, there's some sound happening every second, as if it's a clock, but skips(like there's a 0.5sec pause, sometimes 2 sec) once every X times. Happens when drive is disabled in BIOS, but not when it's Enabled, apparently. Iirc, this never happened with prev. firmware. Looks like it stops after pretty much exactly 10 minutes after turned on PC (was at 10min uptime in linux). This 10mins seems to be pretty exact (I see it it's less than 10mins by enough seconds to be the amount it took to POST). And since it doesn't have any bads or relocateds, I see no reason that it would retry reading any that it thinks is unreadable.

So it's still doing that since after the update, but I somehow vaguely remember it doing it before, right after buying it(so with the old firmware too) and that it stopped after a while.
Anyway, here's it now (compared to after fw update) selective output:

-smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.9.1-gentoo-x86_64] (local build)
+smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.9.4-gentoo-x86_64] (local build)
-Firmware Version: PCGNW120
+Firmware Version: PCGNW870
-Device is:        In smartctl database 7.3/5610
+Device is:        In smartctl database 7.3/5528
-Local Time is:    Sun Jun  2 20:25:22 2024 CEST
+Local Time is:    Sun Jun 16 05:58:17 2024 CEST
@@ -65,17 +65,17 @@ Vendor Specific SMART Attributes with Th
 ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
   1 Raw_Read_Error_Rate     PO-R--   100   100   001    -    0
   2 Throughput_Performance  P-S---   136   136   054    -    96
-  3 Spin_Up_Time            POS---   083   083   001    -    345 (Average 345)
-  4 Start_Stop_Count        -O--C-   095   095   000    -    2307
+  3 Spin_Up_Time            POS---   083   083   001    -    346 (Average 346)
+  4 Start_Stop_Count        -O--C-   095   095   000    -    2338
   5 Reallocated_Sector_Ct   PO--CK   100   100   001    -    0
   7 Seek_Error_Rate         PO-R--   100   100   001    -    0
   8 Seek_Time_Performance   P-S---   140   140   020    -    15
-  9 Power_On_Hours          -O--C-   099   099   000    -    13927
+  9 Power_On_Hours          -O--C-   098   098   000    -    14104
  10 Spin_Retry_Count        PO--C-   100   100   001    -    0
- 12 Power_Cycle_Count       -O--CK   072   072   000    -    1911
- 22 Helium_Level            PO---K   100   100   025    -    100
-192 Power-Off_Retract_Count -O--CK   100   100   000    -    5466
-193 Load_Cycle_Count        -O--C-   100   100   000    -    5466
+ 12 Power_Cycle_Count       -O--CK   072   072   000    -    1941
+ 22 Helium_Level            PO---K   100   100   025    -    100 (0 100)
+192 Power-Off_Retract_Count -O--CK   100   100   000    -    5518
+193 Load_Cycle_Count        -O--C-   100   100   000    -    5518
 194 Temperature_Celsius     -O----   060   060   000    -    34 (Min/Max 21/39)
 196 Reallocated_Event_Count -O--CK   100   100   000    -    0
 197 Current_Pending_Sector  -O---K   100   100   000    -    0
 0x03  =====  =               =  ===  == Rotating Media Statistics (rev 1) ==
-0x03  0x008  4            6096  ---  Spindle Motor Power-on Hours
-0x03  0x010  4            6096  ---  Head Flying Hours
-0x03  0x018  4            5466  ---  Head Load Events
+0x03  0x008  4            6119  ---  Spindle Motor Power-on Hours
+0x03  0x010  4            6119  ---  Head Flying Hours
+0x03  0x018  4            5518  ---  Head Load Events
 0x03  0x020  4               0  ---  Number of Reallocated Logical Sectors
 0x03  0x028  4               1  ---  Read Recovery Attempts
 0x03  0x030  4               0  ---  Number of Mechanical Start Failures
 0x04  =====  =               =  ===  == General Errors Statistics (rev 1) ==
 0x04  0x008  4               0  ---  Number of Reported Uncorrectable Errors
 0x04  0x010  4               0  ---  Resets Between Cmd Acceptance and Completion
-0x04  0x018  4               0  ---  Physical Element Status Changed
 0x05  =====  =               =  ===  == Temperature Statistics (rev 1) ==
 0x05  0x008  1              34  ---  Current Temperature
-0x05  0x010  1              31  N--  Average Short Term Temperature
-0x05  0x018  1              29  N--  Average Long Term Temperature
+0x05  0x010  1              32  N--  Average Short Term Temperature
+0x05  0x018  1              31  N--  Average Long Term Temperature
 0x05  0x020  1              39  ---  Highest Temperature
 0x05  0x028  1              21  ---  Lowest Temperature
 0x05  0x030  1              37  N--  Highest Average Short Term Temperature
@@ -228,8 +234,8 @@ Page  Offset Size        Value Flags Des
 0x05  0x060  4               0  ---  Time in Under-Temperature
 0x05  0x068  1               0  ---  Specified Minimum Operating Temperature
 0x06  =====  =               =  ===  == Transport Statistics (rev 1) ==
-0x06  0x008  4            5591  ---  Number of Hardware Resets
-0x06  0x010  4            1696  ---  Number of ASR Events
+0x06  0x008  4            5718  ---  Number of Hardware Resets
+0x06  0x010  4            1780  ---  Number of ASR Events
 0x06  0x018  4               0  ---  Number of Interface CRC Errors
 0xff  =====  =               =  ===  == Vendor Specific Statistics (rev 1) ==
                                 |||_ C monitored condition met
@@ -249,8 +255,8 @@ ID      Size     Value  Description

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment