FreeBSD Bugzilla – Attachment 232236 Details for
Bug 262329
sysutils/smartmontools: Update to 7.3
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for smartmontools
smartmontools73.patch (text/plain), 45.24 KB, created by
Daniel Engberg
on 2022-03-03 23:01:30 UTC
(
hide
)
Description:
Patch for smartmontools
Filename:
MIME Type:
Creator:
Daniel Engberg
Created:
2022-03-03 23:01:30 UTC
Size:
45.24 KB
patch
obsolete
>diff --git a/sysutils/smartmontools/Makefile b/sysutils/smartmontools/Makefile >index 6600ade6e8fe..cfcfa0f210e1 100644 >--- a/sysutils/smartmontools/Makefile >+++ b/sysutils/smartmontools/Makefile >@@ -1,8 +1,7 @@ > # Created by: Eduard Martinescu > > PORTNAME= smartmontools >-DISTVERSION= 7.2 >-PORTREVISION= 3 >+DISTVERSION= 7.3 > CATEGORIES= sysutils > MASTER_SITES= SF > >@@ -12,7 +11,7 @@ COMMENT= S.M.A.R.T. disk monitoring tools > LICENSE= GPLv2+ > LICENSE_FILE= ${WRKSRC}/COPYING > >-USES= alias compiler:c++11-lib cpe shebangfix >+USES= compiler:c++11-lib cpe shebangfix > USE_RC_SUBR= smartd > > SHEBANG_FILES= examplescripts/Example5 >diff --git a/sysutils/smartmontools/distinfo b/sysutils/smartmontools/distinfo >index 3748618efe4f..1d3d0ad0e0cf 100644 >--- a/sysutils/smartmontools/distinfo >+++ b/sysutils/smartmontools/distinfo >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1609432285 >-SHA256 (smartmontools-7.2.tar.gz) = 5cd98a27e6393168bc6aaea070d9e1cd551b0f898c52f66b2ff2e5d274118cd6 >-SIZE (smartmontools-7.2.tar.gz) = 992256 >+TIMESTAMP = 1646298623 >+SHA256 (smartmontools-7.3.tar.gz) = a544f8808d0c58cfb0e7424ca1841cb858a974922b035d505d4e4c248be3a22b >+SIZE (smartmontools-7.3.tar.gz) = 1043932 >diff --git a/sysutils/smartmontools/files/patch-drivedb.h b/sysutils/smartmontools/files/patch-drivedb.h >deleted file mode 100644 >index 5871be08a5ca..000000000000 >--- a/sysutils/smartmontools/files/patch-drivedb.h >+++ /dev/null >@@ -1,408 +0,0 @@ >---- drivedb.h.orig 2021-10-19 20:02:57 UTC >-+++ drivedb.h >-@@ -4,7 +4,7 @@ >- * Home page of code is: https://www.smartmontools.org >- * >- * Copyright (C) 2003-11 Philip Williams, Bruce Allen >-- * Copyright (C) 2008-20 Christian Franke >-+ * Copyright (C) 2008-21 Christian Franke >- * >- * SPDX-License-Identifier: GPL-2.0-or-later >- */ >-@@ -68,9 +68,9 @@ >- /* >- const drive_settings builtin_knowndrives[] = { >- */ >-- { "$Id: drivedb.h 5150 2020-12-29 16:55:11Z chrfranke $", >-+ { "VERSION: 7.3 $Id: drivedb.h 5236 2021-09-14 13:17:47Z chrfranke $", >- "-", "-", >-- "This is a dummy entry to hold the SVN-Id of drivedb.h", >-+ "Version information", >- "" >- }, >- { "DEFAULT", >-@@ -441,8 +441,8 @@ const drive_settings builtin_knowndrives[] = { >- "(Micron_1100_)?MTFDDA[KV](256|512|1T0|2T0)TBN(-.*)?|" // Marvell 88SS1074, tested with >- // Micron_1100_MTFDDAK256TBN/M0MU020, MTFDDAK256TBN/M0MA020 (OEM), MTFDDAV256TBN-1AR15ABHA/HPC0T14 >- "Micron 1100 SATA (256G|512G|1T|2T)B|" // tested with Micron 1100 SATA 256GB/M0DL022 >-- "(Micron_1300_)?(EE|MT)FDDA[KV](256|512|1T0|2T0)TDL", // tested with Micron_1300_MTFDDAK256TDL/M5MU000, >-- // Micron_1300_MTFDDAK1T0TDL/M5MU000, MTFDDAK2T0TDL/M5MU030 >-+ "(Micron_1300_)?(EE|MT)FDDA[KV](256|512|1T0|2T0)TDL(-.*)?", // tested with Micron_1300_MTFDDAK256TDL/M5MU000, >-+ // Micron_1300_MTFDDAK1T0TDL/M5MU000, MTFDDAK2T0TDL/M5MU030, MTFDDAK256TDL-1AW1ZABFA/M5MA030 >- "", "", >- //"-v 1,raw48,Raw_Read_Error_Rate " >- "-v 5,raw48,Reallocate_NAND_Blk_Cnt " >-@@ -1070,18 +1070,19 @@ const drive_settings builtin_knowndrives[] = { >- "-v 248,raw48,Remaining_Life " >- "-v 249,raw48,Spare_Blocks_Remaining" >- }, >-- { "Innodisk 3IE3/3ME3/3ME4 SSDs", // tested with 2.5" SATA SSD 3ME3/S15A19, CFast 3ME3/S15A19 >-+ { "Innodisk 1IE3/3IE3/3ME3/3IE4/3ME4 SSDs", // tested with 2.5" SATA SSD 3ME3/S15A19, >- // InnoDisk Corp. - mSATA 3ME3/S15A19, mSATA mini 3ME3/S15A19, M.2 (S42) 3ME3, >- // SATA Slim 3ME3/S15A19, SATADOM-MH 3ME3/S15A19, SATADOM-ML 3ME3/S15A19, >- // SATADOM-MV 3ME3/S15A19, SATADOM-SL 3ME3/S15A19, SATADOM-SV 3ME3/S15A19, >- // SATADOM-SL 3IE3/S151019N, 2.5" SATA SSD 3IE3/S15C14i, CFast 3IE3/S15C14i, >-- // InnoDisk Corp. - mSATA 3IE3/S15C14i, Mini PCIeDOM 1IE3/S15C14i, >-+ // InnoDisk Corp. - mSATA 3IE3/S15C14i, Mini PCIeDOM 1IE3/S15C14i, CFast 3ME3/S15A19 >- // mSATA mini 3IE3/S15C14i, M.2 (S42) 3IE3/S15C14i, SATA Slim 3IE3/S15C14i, >- // SATADOM-SH 3IE3 V2/S15C14i, SATADOM-SL 3IE3 V2/S15A19i, SATADOM-SV 3IE3 V2/S15C14i >- // mSATA 3ME4/L16711, M.2 (S42) 3ME4/L16711, SATADOM-MH 3ME4/L16B01, >-- // SATADOM-SH 3ME4/L16B01, SATADOM-SH Type C 3ME4/L16B01, SATADOM-SH Type D 3ME4/L16B01 >-+ // SATADOM-SH 3ME4/L16B01, SATADOM-SH Type C 3ME4/L16B01, SATADOM-SH Type D 3ME4/L16B01, >-+ // mSATA 3IE4/L16B01Hi >- "(2.5\" SATA SSD|CFast|InnoDisk Corp\\. - mSATA|Mini PCIeDOM|mSATA( mini)?|" >-- "M\\.2 \\(S42\\)|SATA Slim|SATADOM-[MS][HLV]( Type [CD])?) 3([IM]E3|ME4)( V2)?", >-+ "M\\.2 \\(S42\\)|SATA Slim|SATADOM-[MS][HLV]( Type [CD])?) (1IE3|3[IM]E[34])( V2)?", >- "", "", >- //"-v 1,raw48,Raw_Read_Error_Rate " >- //"-v 2,raw48,Throughput_Performance " >-@@ -1828,7 +1829,7 @@ const drive_settings builtin_knowndrives[] = { >- "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[456]0 EVO (mSATA |M\\.2 )?((120|250|500|750)G|[124]T)B|" // tested with >-+ "Samsung SSD 8[4-7]0 EVO (mSATA |M\\.2 )?((120|250|500|750)G|[124]T)B|" // 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, >-@@ -1836,23 +1837,25 @@ const drive_settings builtin_knowndrives[] = { >- // Samsung SSD 860 EVO 250GB/RVT01B6Q, Samsung SSD 860 EVO mSATA 250GB/RVT41B6Q, >- // Samsung SSD 860 EVO 500GB/RVT01B6Q, Samsung SSD 860 EVO mSATA 500GB/RVT41B6Q, >- // Samsung SSD 860 EVO mSATA 1TB/RVT41B6Q, Samsung SSD 860 EVO 2TB/RVT01B6Q, >-- // Samsung SSD 860 EVO 4TB/RVT04B6Q >-+ // Samsung SSD 860 EVO 4TB/RVT04B6Q, Samsung SSD 870 EVO 1TB/SVT01B6Q >- "Samsung SSD 8[56]0 PRO ((128|256|512)G|[124]T)B|" // tested with Samsung SSD 850 PRO 128GB/EXM01B6Q, >- // Samsung SSD 850 PRO 1TB/EXM01B6Q, Samsung SSD 850 PRO 2TB/EXM02B6Q, >- // Samsung SSD 860 PRO 256GB/RVM01B6Q, Samsung SSD 860 PRO 512GB/RVM01B6Q, >- // Samsung SSD 860 PRO 1TB/RVM01B6Q >-- "Samsung SSD 883 DCT (240|480|960)GB|" // tested with Samsung SSD 883 DCT 480GB/HXT7404Q >-- "SAMSUNG MZ7PA256HMDR-.*|" // PM810 (470 Series), tested with SAMSUNG MZ7PA256HMDR-010H1/AXM07H1Q >-+ "Samsung SSD 8[67]0 QVO [1248]TB|" // tested with Samsung SSD 860 QVO 1TB/RVQ02B6Q, >-+ // Samsung SSD 860 QVO 2TB/RVQ01B6Q, Samsung SSD 870 QVO 4TB/SVQ01B6Q >-+ "Samsung SSD 883 DCT ((240|480|960)G|(1\\.92|3\\.84)T)B|" // tested with >-+ // Samsung SSD 883 DCT 480GB/HXT7404Q, Samsung SSD 883 DCT 3.84TB/HXT7404Q >- "Samsung SSD 845DC EVO .*|" // Samsung SSD 845DC EVO 960GB/EXT03X3Q >-- "Samsung SSD 870 QVO [1248]TB|" // tested with Samsung SSD 870 QVO 4TB/SVQ01B6Q >-+ "SAMSUNG MZ7PA256HMDR-.*|" // PM810 (470 Series), tested with SAMSUNG MZ7PA256HMDR-010H1/AXM07H1Q >- "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 MZMTD(128|256|512)HAGL-.*|" // PM841, tested with SAMSUNG MZMTD512HAGL-00000/DXT4200Q >-- "SAMSUNG MZ7TD512HAGM-.*|" // Another PM841, SAMSUNG MZ7TD512HAGM-000L1/DXT06L0Q >-+ "SAMSUNG MZ[7M]TD(128|256|512)HA[GF][LMV]-.*|" // PM841, tested with SAMSUNG MZMTD512HAGL-00000/DXT4200Q, >-+ // SAMSUNG MZ7TD512HAGM-000L1/DXT06L0Q, SAMSUNG MZMTD128HAFV-000L1/DXT43L0Q >- "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 MZ[7N]TE(128|256|512)HM(HP|JH)-.*|" // PM851, tested with SAMSUNG MZ7TE256HMHP-000L7/EXT09L6Q, >-+ // SAMSUNG MZNTE256HMHP-000H1/EXT22H0Q, SAMSUNG MZNTE512HMJH-000L2/EXT26L0Q >- "SAMSUNG MZMPF(032|064)HCFV-.*|" // CM851 mSATA, tested with SAMSUNG MZMPF032HCFV-000H1/FXM42H2Q >- "SAMSUNG MZ7GE(240HMGR|(480|960)HMHP)-00003|" // SM853T Series, tested with >- // SAMSUNG MZ7GE240HMGR-00003/EXT0303Q >-@@ -1865,8 +1868,8 @@ const drive_settings builtin_knowndrives[] = { >- // SAMSUNG MZ7KM960HMJP-00005/GXM5304Q, MZ7KM960HMJP0D3/GD53 (Dell) >- "SAMSUNG MZ7LH(240|480|960|1T9|3T8|7T6)H[AM](HQ|JR|LT|LA)-.*|" //PM883, tested with SAMSUNG MZ7LH960HAJR-00005 >- "SAMSUNG MZ7KH(240|480|960|1T9|3T8)HA(HQ|JR|LS)-.*|" //SM883 >-- "SAMSUNG MZN(LF|TY)(128|256)H[CD]HP-.*|" // CM871/871a, tested with SAMSUNG MZNLF128HCHP-000H1/FXT21H1Q, >-- // SAMSUNG MZNTY256HDHP-000/MAT21K0Q >-+ "SAMSUNG MZ[7N](LF|TY)(128|192|256)H[CD](GS|HP)-.*|" // CM871/871a, tested with SAMSUNG MZNLF128HCHP-000H1/FXT21H1Q, >-+ // SAMSUNG MZNTY256HDHP-000/MAT21K0Q, SAMSUNG MZ7LF192HCGS-000L1/FXT03L1Q >- "SAMSUNG MZ[7NY]LN(128|256|512|1T0)H[ACM](GR|HP|HQ|J[HPQ]|LR)-.*|" // PM871/871a/b, tested with >- // SAMSUNG MZ7LN128HCHP-00000/EMT0100Q, SAMSUNG MZ7LN256HAHQ-000H1/MVT03H6Q, >- // SAMSUNG MZNLN256HMHQ-000H1/MAV21H3Q, SAMSUNG MZYLN256HCHP-000L2/EMT63L0Q >-@@ -2079,7 +2082,7 @@ const drive_settings builtin_knowndrives[] = { >- "LITEON LMH-(128|256|512)V2M-.*|" // tested with LITEON LMH-256V2M-11 MSATA 256GB/FM8110C >- "LITEON LCH-(128|256V|512)2S-.*|" // tested with LITEON LCH-256V2S-HP/2C02 >- "MKNSSDRE(1TB|2TB|512GB|500GB|256GB|250GB)|" // tested with MKNSSDRE256GB/N1007C >-- "MKNSSDTR(240|500|250|120|480|240)GB(-LT)?|" // tested with MKNSSDTR500GB/O1126A >-+ "MKNSSD(S2|TR)(120|2[45]0|480|500)GB(-LT)?|" // tested with MKNSSDS2500GB/T0818A0, MKNSSDTR500GB/O1126A >- "NFN025SA31T-.*|"// Neo Forza (?), from HP Laptop, tested with NFN025SA31T-6000000/S0628A0 >- "OWC Envoy Pro|" // tested with OWC Envoy Pro/R0522A0 (0x1e91:0xa2a5) >- "Patriot P200 ((128|256|512)GB|[12]TB)|" // tested with Patriot P200 256GB/S1022A0 >-@@ -2110,6 +2113,7 @@ const drive_settings builtin_knowndrives[] = { >- "", "", >- //"-v 1,raw48,Raw_Read_Error_Rate " >- //"-v 2,raw48,Throughput_Performance " >-+ //"-v 5,raw16(raw16),Reallocated_Sector_Ct " >- //"-v 9,raw24(raw8),Power_On_Hours " >- //"-v 12,raw48,Power_Cycle_Count " >- "-v 148,raw48,Total_SLC_Erase_Ct " >-@@ -2282,7 +2286,8 @@ const drive_settings builtin_knowndrives[] = { >- //"-v 194,tempminmax,Temperature_Celsius" >- }, >- { "SSSTC ER2 GD/CD Series SSDs", // Marvel DEAN 2.1 >-- "SSSTC ER2-[CG]D(240|480|960|1920)", // tested with SSSTC ER2-GD480/E4N2302 >-+ "SSSTC ER2-[CG]D(240|480|960|1920)A?", // tested with SSSTC ER2-GD480/E4N2302l, >-+ // SSSTC ER2-CD1920A/E5MN401 >- "","", >- //"-v 5,raw16(raw16),Reallocated_Sector_Ct " >- //"-v 9,raw24(raw8),Power_On_Hours " >-@@ -2326,6 +2331,22 @@ const drive_settings builtin_knowndrives[] = { >- "-v 7,raw48,Unknown_Attribute " >- "-v 8,raw48,Unknown_Attribute" >- }, >-+ { "Xmore Industrial SATA SSDs", // tested with M2CA032GXAIMS-003Z/XP01.1GB >-+ "(CFAST|M2[AC]A|MSATA|SSD)[0-9]{3}[GT]XA[CEI][MT][MST]-[0-9]{3}[TZ]", >-+ "", "", >-+ //"-v 1,raw48,Raw_Read_Error_Rate " >-+ //"-v 9,raw24(raw8),Power_On_Hours " >-+ //"-v 12,raw48,Power_Cycle_Count " >-+ "-v 168,raw48,SATA_Phy_Error_Count " >-+ "-v 169,raw48,Bad_Block_Rate " >-+ "-v 170,raw24/raw24:z54z10,Bad_Blk_Ct_Lat/Erl " // Later bad block/Early bad block >-+ "-v 173,raw16(avg16),MaxAvgErase_Ct " >-+ "-v 192,raw48,Unexpect_Power_Loss_Ct " >-+ //"-v 194,tempminmax,Temperature_Celsius " // optional >-+ "-v 218,raw48,SATA_CRC_Error_Count " >-+ "-v 231,raw48,Percent_Lifetime_Remain " >-+ "-v 241,raw48,Host_Writes_GiB" >-+ }, >- { "Marvell SSD SD88SA024BA0 (SUN branded)", >- "MARVELL SD88SA024BA0 SUN24G 0902M0054V", >- "", "", "" >-@@ -3528,6 +3549,12 @@ const drive_settings builtin_knowndrives[] = { >- "", "", >- "-v 22,raw48,Helium_Level" >- }, >-+ { "Western Digital Ultrastar DC HC550", // tested with WDC WUH721818ALE6L4/PCGNW110, >-+ // WUH721818ALE6L4/PCGAW232 >-+ "(WDC ?)?WUH72181[68]ALE6L[14]", >-+ "", "", >-+ "-v 22,raw48,Helium_Level" >-+ }, >- { "HGST MegaScale 4000", // tested with HGST HMS5C4040ALE640/MPAOA580 >- "HGST HMS5C4040[AB]LE64[01]", // B = DC 4000.B >- "", "", "" >-@@ -3632,7 +3659,7 @@ const drive_settings builtin_knowndrives[] = { >- "", "", "" >- }, >- { "Toshiba 2.5\" HDD MQ01ABD...", // tested with TOSHIBA MQ01ABD100/AX001U, >-- // TOSHIBA MQ01ABD100V/AX001Q >-+ // TOSHIBA MQ01ABD100/AX1R4C, TOSHIBA MQ01ABD100V/AX001Q >- "TOSHIBA MQ01ABD(025|032|050|064|075|100)V?", >- "", "", "" >- }, >-@@ -3675,12 +3702,13 @@ const drive_settings builtin_knowndrives[] = { >- "TOSHIBA MG03ACA[1234]00Y?", >- "", "", "" >- }, >-- { "Toshiba 3.5\" MD04ACA... Enterprise HDD", // tested with TOSHIBA MD04ACA500/FP1A >-- "TOSHIBA MD04ACA[2345]00", >-+ { "Toshiba MG04ACA... Enterprise HDD", // tested with TOSHIBA MD04ACA500/FP1A, >-+ // TOSHIBA MG04ACA600A/FS2B, TOSHIBA MG04ACA400NY/FK5D (Dell) >-+ "TOSHIBA MG04ACA[23456]00([AEN].?)?", >- "", "", "" >- }, >-- { "Toshiba 3.5\" MG04ACA... Enterprise HDD", // tested with TOSHIBA MG04ACA600A/FS2B >-- "TOSHIBA MG04ACA[23456]00[AE].?", >-+ { "Toshiba MG05ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG05ACA800E/GX2A >-+ "TOSHIBA MG05ACA800[AE]", >- "", "", "" >- }, >- { "Toshiba MG06ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG06ACA800E/4303, >-@@ -3694,6 +3722,20 @@ const drive_settings builtin_knowndrives[] = { >- "-v 23,raw48,Helium_Condition_Lower " >- "-v 24,raw48,Helium_Condition_Upper" >- }, >-+ { "Toshiba MG08ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG08ACA14TE/0102, >-+ // TOSHIBA MG08ACA16TE/0102 >-+ "TOSHIBA MG08ACA1[46]T[AE]Y?", >-+ "", "", >-+ "-v 23,raw48,Helium_Condition_Lower " >-+ "-v 24,raw48,Helium_Condition_Upper" >-+ }, >-+ { "Toshiba MG09ACA... Enterprise Capacity HDD", // tested with TOSHIBA MG09ACA18TE/0102 >-+ "TOSHIBA MG09ACA1[68]T[AE]Y?", >-+ "", "", >-+ "-v 23,raw48,Helium_Condition_Lower " >-+ "-v 24,raw48,Helium_Condition_Upper " >-+ "-v 27,raw48,MAMR_Health_Monitor" >-+ }, >- { "Toshiba 3.5\" DT01ABA... Desktop HDD", // tested with TOSHIBA DT01ABA300/MZ6OABB0 >- "TOSHIBA DT01ABA(100|150|200|300)", >- "", "", "" >-@@ -3703,14 +3745,30 @@ 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 N300/MN NAS HDD", // tested with TOSHIBA HDWQ140/FJ1M, TOSHIBA HDWN160/FS1M, >-+ // TOSHIBA HDWN180/GX2M, TOSHIBA HDWG480/0601 (8TB), TOSHIBA HDWG11A/0603 (10TB), >-+ // TOSHIBA HDWG21C/0601 (12TB), TOSHIBA HDWG21E/0601 (14TB), >-+ // TOSHIBA MN07ACA12T/0601, TOSHIBA MN08ACA14T/0601 >-+ "TOSHIBA HDW([GNQ]1[468]0|G(480|11A|21[CE]|31G))|" // 31G: 16TB >-+ "TOSHIBA MN0(4ACA400|6ACA([68]00|10T)|7ACA1[24]T|8ACA1[46]T)", >-+ "", "", >-+ "-v 23,raw48,Helium_Condition_Lower " // ] >= 12TB >-+ "-v 24,raw48,Helium_Condition_Upper" // ] >-+ }, >-+ { "Toshiba P300 (CMR)", // tested with TOSHIBA HDWD120/MX4OACF0 >-+ "TOSHIBA HDWD1(05|10|20|30)", >- "", "", "" >- }, >-- { "Toshiba P300", // tested with TOSHIBA HDWD120/MX4OACF0 >-- "TOSHIBA HDWD1(30|20|10|05)", >-+ { "Toshiba P300 (SMR)", // tested with TOSHIBA HDWD240/KQ000A >-+ "TOSHIBA HDWD2[246]0", >- "", "", "" >- }, >-+ { "Toshiba X300", // tested with TOSHIBA HDWE160/FS2A, TOSHIBA HDWF180/GX0B >-+ "TOSHIBA HDW(E1[456]0|[FR]180|R(11A|21[CE]|31G))", // 11A:10TB, 21C:12TB, 21E:14TB, 31G: 16TB >-+ "", "", >-+ "-v 23,raw48,Helium_Condition_Lower " // ] >= 12TB >-+ "-v 24,raw48,Helium_Condition_Upper" // ] >-+ }, >- { "Toshiba L200 (CMR)", >- "TOSHIBA HDW[JK]1(05|10)", >- "", "", "" >-@@ -4056,16 +4114,23 @@ const drive_settings builtin_knowndrives[] = { >- "", "", >- "-v 188,raw16 -v 240,msec24hour32" >- }, >-- { "Seagate BarraCuda 3.5", // tested with ST1000DM010-2EP102/Z9ACZM97, >-- // ST2000DM008-2FR102/0001, ST3000DM008-2DM166/CC26, ST4000DM005-2DP166/0001, >-- // ST4000DM006-2G5107/DN02, ST8000DM004-2CX188/0001, ST10000DM0004-1ZC101/DN01, >-+ { "Seagate BarraCuda 3.5 (CMR)", // tested with ST1000DM010-2EP102/CC43, >-+ // ST3000DM008-2DM166/CC26, ST4000DM006-2G5107/DN02, ST10000DM0004-1ZC101/DN01, >- // ST12000DM0007-2GR116/DN01 >-- "ST(500DM009|1000DM010|2000DM00[5-9]|3000DM00[789]|4000DM00[456]|6000DM00[34]|" >-- "8000DM00[45]|10000DM0004|12000DM0007)-.*", >-+ "ST(500DM009|1000DM010|2000DM00[67]|3000DM00[89]|4000DM006|6000DM004|" >-+ "8000DM005|10000DM0004|12000DM0007)-.*", >- "", "", >- "-v 200,raw48,Pressure_Limit " >- "-v 188,raw16 -v 240,msec24hour32" >- }, >-+ { "Seagate BarraCuda 3.5 (SMR)", // tested with ST2000DM008-2FR102/0001, >-+ // ST4000DM004-2CV104/0001 (TRIM: no), ST4000DM005-2DP166/0001, ST8000DM004-2CX188/0001 >-+ "ST(2000DM00[589]|3000DM007|4000DM00[45]|6000DM003|8000DM004)-.*", >-+ "", "", >-+ "-v 9,msec24hour32 " // ST4000DM004-2CV104/0001 >-+ "-v 200,raw48,Pressure_Limit " >-+ "-v 188,raw16 -v 240,msec24hour32" >-+ }, >- { "Seagate Desktop HDD.15", // tested with ST4000DM000-1CD168/CC43, ST5000DM000-1FK178/CC44, >- // ST6000DM001-1XY17Z/CC48 >- "ST[4568]000DM00[012]-.*", >-@@ -4206,6 +4271,17 @@ const drive_settings builtin_knowndrives[] = { >- "", "", >- "-v 9,msec24hour32 -v 240,msec24hour32" >- }, >-+ // ST1000NM000A, ST1000NM002A, ST2000NM000A, ST2000NM001A, ST2000NM002A, >-+ // ST3000NM000A, ST3000NM004A, ST4000NM000A, ST4000NM001A, ST4000NM002A, >-+ // ST4000NM006A, ST4000NM010A, ST4000NM012A, ST4000NM013A, ST6000NM002A, >-+ // ST6000NM021A, ST6000NM022A, ST6000NM025A, ST6000NM026A, ST8000NM000A, >-+ // ST8000NM002A, ST8000NM004A, ST8000NM008A, ST8000NM009A, ST8000NM016A >-+ { "Seagate Exos 7E8", // tested with ST6000NM021A-2R7101/SN02, ST8000NM000A-2KE101/SN02 >-+ "ST[123468]000NM0(0[01234689]|1[0236]|2[1256])A-.*", >-+ "", "", >-+ "-v 18,raw48,Head_Health " >-+ "-v 240,msec24hour32" >-+ }, >- { "Seagate Exos X12", // tested with ST12000NM0007-2A1101/SN02 >- "ST12000NM00[01]7-.*", // *17 = SED >- "", "", >-@@ -4244,12 +4320,14 @@ const drive_settings builtin_knowndrives[] = { >- "", "", "" >- }, >- { "Seagate IronWolf", // tested with ST3000VN007-2E4166/SC60, ST4000VN008-2DR166/SC60, >-- // ST6000VN0033-2EE110/SC60, ST6000VN0041-2EL11C/SC61, ST8000VN0022-2EL112/SC61, >-- // ST10000VN0004-1ZD101/SC60, ST12000VN0007-2GS116/SC60, ST12000VN0008-2JH101/SC60 >-+ // ST6000VN001-2BB186/SC60, ST6000VN0033-2EE110/SC60, ST6000VN0041-2EL11C/SC61, >-+ // ST8000VN0022-2EL112/SC61, ST10000VN0004-1ZD101/SC60, >-+ // ST12000VN0007-2GS116/SC60, ST12000VN0008-2JH101/SC60 >- "ST(1|2|3|4|6|8|10|12)000VN00(0?[2478]|1|22|33|41)-.*", >- "", "", >- "-v 18,raw48,Head_Health " >-- "-v 200,raw48,Pressure_Limit" >-+ "-v 200,raw48,Pressure_Limit " >-+ "-v 240,msec24hour32" >- }, >- { "Seagate IronWolf Pro", // tested with ST4000NE0025-2EW107/EN02, >- // ST8000NE0004-1ZF11G/EN01, ST8000NE0021-2EN112/EN02, ST16000NE000-2RW103/EN02 >-@@ -4578,8 +4656,8 @@ const drive_settings builtin_knowndrives[] = { >- "(APPLE HDD )?WDC WD((25|32|50)00AAKX|5000AZ(LX|RZ)|7500A(AL|ZE)X|10E(AL|ZE)X|[1-6]0EZRZ)-.*", >- "", "", "" >- }, >-- { "Western Digital Blue (SMR)", // ticket #1313 >-- "WDC WD(20|60)EZAZ-.*", >-+ { "Western Digital Blue (SMR)", // tested with WDC WD40EZAZ-00SF3B0/80.00A80 (TRIM: zeroed) >-+ "WDC WD(20|40|60)EZAZ-.*", >- "", "", "" >- }, >- { "Western Digital RE Serial ATA", >-@@ -5261,8 +5339,8 @@ const drive_settings builtin_knowndrives[] = { >- "-d sat" >- }, >- { "USB: LaCie; ", // 0x1070: ASMedia 1053 ? >-- "0x059f:0x10(6f|7[05])", >-- "", // 6f/70=0x0001, 75=0x0000 >-+ "0x059f:0x10(6f|7[05]|b8)", // 0x0x10b8: d2 PROFESSIONAL >-+ "", // 6f/70/b8=0x0001, 75=0x0000 >- "", >- "-d sat" >- }, >-@@ -5511,6 +5589,18 @@ const drive_settings builtin_knowndrives[] = { >- "", >- "-d sntrealtek" >- }, >-+ { "USB: ; Realtek RTL9211", // USB->PCIe (NVMe) or SATA >-+ "0x(0bda|2eb9):0x9211", // 0x0bda: guessed, 0x2eb9: Sabrent EC-WPTF >-+ ".*", // fall through to next entry and report ambiguous result >-+ "", >-+ "-d sntrealtek" // NVMe or ... >-+ }, >-+ { "USB: ; Realtek RTL9211", >-+ "0x(0bda|2eb9):0x9211", >-+ "", >-+ "", >-+ "" // ... SATA (unsupported) >-+ }, >- // Addonics >- { "USB: Addonics HDMU3; ", // (ticket #609) >- "0x0bf6:0x1001", >-@@ -5637,9 +5727,10 @@ const drive_settings builtin_knowndrives[] = { >- }, >- // ADATA >- { "USB: ADATA; ", >-- "0x125f:0xa(11|13|15|31|35|37|75|83)a", // 0xa11a: Classic CH11 1TB, 0xa13a: NH13 1TB, >-- "", // 0xa15a: HD710 1TB, 0xa31a: HV620 2TB (0x0100), 0xa35a: HD650 2TB (0x6503), >-- "", // 0xa37a: Silverstone MS10 M.2 (0x3103), 0xa75a: HD710P 4TB, 0xa83a: HD330 (0x0100) >-+ "0x125f:0xa(11|13|15|21|31|35|37|75|83)a", // 0xa11a: Classic CH11 1TB, 0xa13a: NH13 1TB, >-+ "", // 0xa15a: HD710 1TB, 0xa21a: HV610 (0x4504), 0xa31a: HV620 2TB (0x0100), >-+ "", // 0xa35a: HD650 2TB (0x6503), 0xa37a: Silverstone MS10 M.2 (0x3103), 0xa75a: HD710P 4TB, >-+ // 0xa83a: HD330 (0x0100) >- "-d sat" >- }, >- { "USB: ADATA; Cypress", >-@@ -5755,7 +5846,7 @@ const drive_settings builtin_knowndrives[] = { >- "-d sat" >- }, >- { "USB: ; JMicron JMS576", // USB3.1->SATA >-- "0x152d:0x1576", >-+ "0x152d:0x[01]576", >- "", // 0x0204, ICY BOX IB-223U3a-B >- "", >- "-d sat" >-@@ -5858,6 +5949,12 @@ const drive_settings builtin_knowndrives[] = { >- "-d sat" >- }, >- // ASMedia >-+ { "USB: ; ASMedia ASM2362", // USB->PCIe (NVMe) >-+ "0x174c:0x2362", >-+ "", >-+ "", >-+ "-d sntasmedia" >-+ }, >- { "USB: ; ASMedia", >- "0x174c:0x....", >- "", >-@@ -6019,6 +6116,7 @@ const drive_settings builtin_knowndrives[] = { >- "", >- "-d sat" >- }, >-+ // 0x2eb9 (?): See Realtek (0x0bda) above >- // AKiTiO (?) >- { "USB: AkiTio NT2 U3.1C; ", >- "0x2ce5:0x0014", >diff --git a/sysutils/smartmontools/files/patch-os__freebsd.cpp b/sysutils/smartmontools/files/patch-os__freebsd.cpp >deleted file mode 100644 >index a4abc95ad6b5..000000000000 >--- a/sysutils/smartmontools/files/patch-os__freebsd.cpp >+++ /dev/null >@@ -1,450 +0,0 @@ >---- os_freebsd.cpp.orig 2020-12-12 21:36:48 UTC >-+++ os_freebsd.cpp >-@@ -26,6 +26,7 @@ >- #endif >- #include <sys/stat.h> >- #include <unistd.h> >-+#include <sys/uio.h> >- #include <glob.h> >- #include <stddef.h> >- #include <paths.h> >-@@ -199,6 +200,9 @@ static const char smartctl_examples[] = >- " smartctl -a --device=areca,3/1 /dev/arcmsr0\n" >- " (Prints all SMART information for 3rd disk in the 1st enclosure \n" >- " on first ARECA RAID controller)\n" >-+ " smartctl -a --device=megaraid,3 /dev/mrsas0\n" >-+ " (Prints all SMART information for 3rd disk\n" >-+ " on first LSI RAID controller)\n" >- >- ; >- >-@@ -761,7 +765,240 @@ bool freebsd_escalade_device::ata_pass_through(const a >- return true; >- } >- >-+///////////////////////////////////////////////////////////////////////////// >-+/// LSI MegaRAID support >- >-+class freebsd_megaraid_device >-+: public /* implements */ scsi_device, >-+ public /* extends */ freebsd_smart_device >-+{ >-+public: >-+ freebsd_megaraid_device(smart_interface *intf, const char *name, >-+ unsigned int tgt); >-+ >-+ virtual ~freebsd_megaraid_device(); >-+ >-+ virtual smart_device * autodetect_open() override; >-+ >-+ virtual bool open() override; >-+ virtual bool close() override; >-+ >-+ virtual bool scsi_pass_through(scsi_cmnd_io *iop) override; >-+ >-+private: >-+ unsigned int m_disknum; >-+ unsigned int m_hba; >-+ int m_fd; >-+ >-+ bool (freebsd_megaraid_device::*pt_cmd)(int cdblen, void *cdb, int dataLen, void *data, >-+ int senseLen, void *sense, int report, int direction, int timeout); >-+ bool megasas_cmd(int cdbLen, void *cdb, int dataLen, void *data, >-+ int senseLen, void *sense, int report, int direction, int timeout); >-+}; >-+ >-+freebsd_megaraid_device::freebsd_megaraid_device(smart_interface *intf, >-+ const char *dev_name, unsigned int tgt) >-+ : smart_device(intf, dev_name, "megaraid", "megaraid"), >-+ freebsd_smart_device(), >-+ m_disknum(tgt), m_hba(0), >-+ m_fd(-1), pt_cmd(0) >-+{ >-+ set_info().info_name = strprintf("%s [megaraid_disk_%02d]", dev_name, m_disknum); >-+ set_info().dev_type = strprintf("megaraid,%d", tgt); >-+} >-+ >-+freebsd_megaraid_device::~freebsd_megaraid_device() >-+{ >-+ if (m_fd >= 0) >-+ ::close(m_fd); >-+} >-+ >-+smart_device * freebsd_megaraid_device::autodetect_open() >-+{ >-+ int report = scsi_debugmode; >-+ >-+ // Open device >-+ if (!open()) >-+ return this; >-+ >-+ // The code below is based on smartd.cpp:SCSIFilterKnown() >-+ if (strcmp(get_req_type(), "megaraid")) >-+ return this; >-+ >-+ // Get INQUIRY >-+ unsigned char req_buff[64] = {0, }; >-+ int req_len = 36; >-+ if (scsiStdInquiry(this, req_buff, req_len)) { >-+ close(); >-+ set_err(EIO, "INQUIRY failed"); >-+ return this; >-+ } >-+ >-+ int avail_len = req_buff[4] + 5; >-+ int len = (avail_len < req_len ? avail_len : req_len); >-+ if (len < 36) >-+ return this; >-+ >-+ if (report) >-+ pout("Got MegaRAID inquiry.. %s\n", req_buff+8); >-+ >-+ // Use INQUIRY to detect type >-+ { >-+ // SAT? >-+ ata_device * newdev = smi()->autodetect_sat_device(this, req_buff, len); >-+ if (newdev) // NOTE: 'this' is now owned by '*newdev' >-+ return newdev; >-+ } >-+ >-+ // Nothing special found >-+ return this; >-+} >-+ >-+bool freebsd_megaraid_device::open() >-+{ >-+ /* Open Device IOCTL node */ >-+ if ((m_fd = ::open(get_dev_name(), O_RDWR)) >= 0) { >-+ pt_cmd = &freebsd_megaraid_device::megasas_cmd; >-+ } >-+ else { >-+ int err = errno; >-+ freebsd_smart_device::close(); >-+ return set_err(err, "cannot open %s",get_dev_name()); >-+ } >-+ set_fd(m_fd); >-+ return true; >-+} >-+ >-+bool freebsd_megaraid_device::close() >-+{ >-+ if (m_fd >= 0) >-+ ::close(m_fd); >-+ m_fd = -1; m_hba = 0; pt_cmd = 0; >-+ set_fd(m_fd); >-+ return true; >-+} >-+ >-+bool freebsd_megaraid_device::scsi_pass_through(scsi_cmnd_io *iop) >-+{ >-+ int report = scsi_debugmode; >-+ >-+ if (report > 0) { >-+ int k, j; >-+ const unsigned char * ucp = iop->cmnd; >-+ const char * np; >-+ char buff[256]; >-+ const int sz = (int)sizeof(buff); >-+ >-+ np = scsi_get_opcode_name(ucp[0]); >-+ j = snprintf(buff, sz, " [%s: ", np ? np : "<unknown opcode>"); >-+ for (k = 0; k < (int)iop->cmnd_len; ++k) >-+ j += snprintf(&buff[j], (sz > j ? (sz - j) : 0), "%02x ", ucp[k]); >-+ if ((report > 1) && >-+ (DXFER_TO_DEVICE == iop->dxfer_dir) && (iop->dxferp)) { >-+ int trunc = (iop->dxfer_len > 256) ? 1 : 0; >-+ >-+ snprintf(&buff[j], (sz > j ? (sz - j) : 0), "]\n Outgoing " >-+ "data, len=%d%s:\n", (int)iop->dxfer_len, >-+ (trunc ? " [only first 256 bytes shown]" : "")); >-+ dStrHex(iop->dxferp, (trunc ? 256 : iop->dxfer_len) , 1); >-+ } >-+ else >-+ snprintf(&buff[j], (sz > j ? (sz - j) : 0), "]\n"); >-+ pout("%s", buff); >-+ } >-+ >-+ // Controller rejects Test Unit Ready >-+ if (iop->cmnd[0] == 0x00) >-+ return true; >-+ >-+ if (iop->cmnd[0] == SAT_ATA_PASSTHROUGH_12 || iop->cmnd[0] == SAT_ATA_PASSTHROUGH_16) { >-+ // Controller does not return ATA output registers in SAT sense data >-+ if (iop->cmnd[2] & (1 << 5)) // chk_cond >-+ return set_err(ENOSYS, "ATA return descriptor not supported by controller firmware"); >-+ } >-+ // SMART WRITE LOG SECTOR causing media errors >-+ if ((iop->cmnd[0] == SAT_ATA_PASSTHROUGH_16 // SAT16 WRITE LOG >-+ && iop->cmnd[14] == ATA_SMART_CMD && iop->cmnd[3]==0 && iop->cmnd[4] == ATA_SMART_WRITE_LOG_SECTOR) || >-+ (iop->cmnd[0] == SAT_ATA_PASSTHROUGH_12 // SAT12 WRITE LOG >-+ && iop->cmnd[9] == ATA_SMART_CMD && iop->cmnd[3] == ATA_SMART_WRITE_LOG_SECTOR)) >-+ { >-+ if(!failuretest_permissive) >-+ return set_err(ENOSYS, "SMART WRITE LOG SECTOR may cause problems, try with -T permissive to force"); >-+ } >-+ if (pt_cmd == NULL) >-+ return false; >-+ return (this->*pt_cmd)(iop->cmnd_len, iop->cmnd, >-+ iop->dxfer_len, iop->dxferp, >-+ iop->max_sense_len, iop->sensep, report, iop->dxfer_dir, iop->timeout); >-+} >-+ >-+bool freebsd_megaraid_device::megasas_cmd(int cdbLen, void *cdb, >-+ int dataLen, void *data, >-+ int senseLen, void * sense, int /*report*/, int dxfer_dir, int timeout) >-+{ >-+ struct mfi_pass_frame * pthru; >-+ struct mfi_ioc_packet uio; >-+ >-+ pthru = (struct mfi_pass_frame *)&uio.mfi_frame.raw; >-+ memset(&uio, 0, sizeof(uio)); >-+ >-+ pthru->header.cmd = MFI_CMD_PD_SCSI_IO; >-+ pthru->header.cmd_status = 0; >-+ pthru->header.scsi_status = 0x0; >-+ pthru->header.target_id = m_disknum; >-+ pthru->header.lun_id = 0; // FIXME, should be bus number? >-+ >-+ pthru->header.sense_len = senseLen; >-+ pthru->sense_addr_lo = (uintptr_t)sense ; >-+ pthru->sense_addr_hi = (uintptr_t)((uint64_t)sense >> 32); >-+ >-+ pthru->header.cdb_len = cdbLen; >-+ pthru->header.timeout = timeout; >-+ switch (dxfer_dir) { >-+ case DXFER_FROM_DEVICE: >-+ pthru->header.flags = MFI_FRAME_DIR_READ; >-+ break; >-+ case DXFER_TO_DEVICE: >-+ pthru->header.flags = MFI_FRAME_DIR_WRITE; >-+ break; >-+ case DXFER_NONE: >-+ pthru->header.flags = MFI_FRAME_DIR_NONE; >-+ break; >-+ } >-+ >-+ if (dataLen > 0) { >-+ uio.mfi_sge_count = 1; >-+ uio.mfi_sgl_off = offsetof(struct mfi_pass_frame,sgl); >-+ uio.mfi_sgl[0].iov_base = data; >-+ uio.mfi_sgl[0].iov_len = dataLen; >-+ >-+ pthru->header.sg_count = 1; >-+ pthru->header.data_len = dataLen; >-+ // tested on amd64 kernel in native and 32bit mode >-+ pthru->sgl.sg64[0].addr = (intptr_t)data; >-+ pthru->sgl.sg64[0].len = (uint32_t)dataLen; >-+ } >-+ memcpy(pthru->cdb, cdb, cdbLen); >-+ >-+ uio.mfi_adapter_no = m_hba; >-+ uio.mfi_sense_len = senseLen; >-+ uio.mfi_sense_off = offsetof(struct mfi_pass_frame, sense_addr_lo); >-+ >-+ errno = 0; >-+ int rc = ioctl(m_fd, MFI_CMD, &uio); >-+ >-+ if (pthru->header.cmd_status || rc != 0) { >-+ if (pthru->header.cmd_status == 12) { >-+ return set_err(EIO, "megasas_cmd: Device %d does not exist\n", m_disknum); >-+ } >-+ return set_err((errno ? errno : EIO), "megasas_cmd result: %d.%d = %d/%d", >-+ m_hba, m_disknum, errno, >-+ pthru->header.cmd_status); >-+ } >-+ return true; >-+} >-+ >-+ >- ///////////////////////////////////////////////////////////////////////////// >- /// Implement Highpoint RAID support with old functions >- >-@@ -1401,6 +1638,15 @@ smart_device * freebsd_scsi_device::autodetect_open() >- return this; >- } >- >-+ // DELL? >-+ if (!memcmp(req_buff + 8, "DELL PERC", 12) || !memcmp(req_buff + 8, "MegaRAID", 8) >-+ || !memcmp(req_buff + 16, "PERC H", 6) || !memcmp(req_buff + 8, "LSI\0",4) >-+ ) { >-+ close(); >-+ set_err(EINVAL, "DELL or MegaRaid controller, use '-d megaraid,N'"); >-+ return this; >-+ } >-+ >- // SAT or USB, skip MFI controllers because of bugs >- { >- smart_device * newdev = smi()->autodetect_sat_device(this, req_buff, len); >-@@ -1453,6 +1699,10 @@ class freebsd_smart_interface (protected) >- virtual std::string get_valid_custom_dev_types_str(); >- private: >- bool get_nvme_devlist(smart_device_list & devlist, const char * type); >-+ bool get_dev_megaraid(smart_device_list & devlist); >-+ int megaraid_pd_add_list(const char * devname, smart_device_list & devlist); >-+ int megaraid_dcmd_cmd(const char * devname, uint32_t opcode, void *buf, >-+ size_t bufsize, uint8_t *mbox, size_t mboxlen, uint8_t *statusp); >- }; >- >- >-@@ -1775,6 +2025,9 @@ bool freebsd_smart_interface::scan_smart_devices(smart >- } >- } >- >-+ // add devices from LSI MegaRaid controllers >-+ get_dev_megaraid(devlist); >-+ >- if (scan_nvme) >- get_nvme_devlist(devlist, type); >- return true; >-@@ -1800,6 +2053,114 @@ bool freebsd_smart_interface::get_nvme_devlist(smart_d >- return true; >- } >- >-+// getting devices from LSI SAS MegaRaid, if available >-+bool freebsd_smart_interface::get_dev_megaraid(smart_device_list & devlist) >-+{ >-+ /* Scanning of disks on MegaRaid device */ >-+ char ctrlpath[64]; >-+ >-+ // trying to add devices on first 32 buses, same as StorCLI does >-+ for(unsigned i = 0; i <=32; i++) { >-+ sprintf(ctrlpath, "%s%u", MFI_CTRLR_PREFIX, i); >-+ megaraid_pd_add_list(ctrlpath, devlist); >-+ sprintf(ctrlpath, "%s%u", MRSAS_CTRLR_PREFIX, i); >-+ megaraid_pd_add_list(ctrlpath, devlist); >-+ } >-+ return true; >-+} >-+ >-+int >-+freebsd_smart_interface::megaraid_dcmd_cmd(const char * devname, uint32_t opcode, void *buf, >-+ size_t bufsize, uint8_t *mbox, size_t mboxlen, uint8_t *statusp) >-+{ >-+ struct mfi_ioc_packet ioc; >-+ struct mfi_dcmd_frame * dcmd; >-+ >-+ if ((mbox != NULL && (mboxlen == 0 || mboxlen > MFI_MBOX_SIZE)) || >-+ (mbox == NULL && mboxlen != 0)) >-+ { >-+ errno = EINVAL; >-+ return (-1); >-+ } >-+ >-+ memset(&ioc, 0, sizeof(ioc)); >-+ dcmd = (struct mfi_dcmd_frame *)&ioc.mfi_frame.raw; >-+ >-+ if (mbox) >-+ memcpy(dcmd->mbox, mbox, mboxlen); >-+ dcmd->header.cmd = MFI_CMD_DCMD; >-+ dcmd->header.data_len = bufsize; >-+ dcmd->opcode = opcode; >-+ >-+ if (bufsize > 0) { >-+ ioc.mfi_sge_count = 1; >-+ ioc.mfi_sgl_off = offsetof(struct mfi_dcmd_frame,sgl); >-+ ioc.mfi_sgl[0].iov_base = buf; >-+ ioc.mfi_sgl[0].iov_len = bufsize; >-+ dcmd->header.sg_count = 1; >-+ dcmd->header.data_len = bufsize; >-+ // tested on amd64 kernel in native and 32bit mode >-+ dcmd->sgl.sg64[0].addr = (intptr_t)buf; >-+ dcmd->sgl.sg64[0].len = (uint32_t)bufsize; >-+ } >-+ >-+ int fd; >-+ if ((fd = ::open(devname, O_RDWR)) < 0) { >-+ return (errno); >-+ } >-+ // We are using MFI_CMD as it seems to be supported by all LSI BSD drivers >-+ int r = ioctl(fd, MFI_CMD, &ioc); >-+ ::close(fd); >-+ if (r < 0) { >-+ return (r); >-+ } >-+ >-+ if (statusp != NULL) >-+ *statusp = dcmd->header.cmd_status; >-+ else if (dcmd->header.cmd_status != MFI_STAT_OK) { >-+ fprintf(stderr, "command %x returned error status %x\n", >-+ opcode, dcmd->header.cmd_status); >-+ errno = EIO; >-+ return (-1); >-+ } >-+ return (0); >-+} >-+ >-+int >-+freebsd_smart_interface::megaraid_pd_add_list(const char * devname, smart_device_list & devlist) >-+{ >-+ /* >-+ * Keep fetching the list in a loop until we have a large enough >-+ * buffer to hold the entire list. >-+ */ >-+ mfi_pd_list * list = 0; >-+ for (unsigned list_size = 1024; ; ) { >-+ list = reinterpret_cast<mfi_pd_list *>(realloc(list, list_size)); >-+ if (!list) >-+ throw std::bad_alloc(); >-+ memset(list, 0, list_size); >-+ if (megaraid_dcmd_cmd(devname, MFI_DCMD_PD_GET_LIST, list, list_size, NULL, 0, >-+ NULL) < 0) >-+ { >-+ free(list); >-+ return (-1); >-+ } >-+ if (list->size <= list_size) >-+ break; >-+ list_size = list->size; >-+ } >-+ >-+ // adding all SCSI devices >-+ for (unsigned i = 0; i < list->count; i++) { >-+ if(list->addr[i].scsi_dev_type) >-+ continue; /* non disk device found */ >-+ smart_device * dev = new freebsd_megaraid_device(this, devname, list->addr[i].device_id); >-+ devlist.push_back(dev); >-+ } >-+ free(list); >-+ return (0); >-+} >-+ >- #if (FREEBSDVER < 800000) // without this build fail on FreeBSD 8 >- static char done[USB_MAX_DEVICES]; >- >-@@ -2034,9 +2395,16 @@ smart_device * freebsd_smart_interface::autodetect_sma >- } >- } >- // device is LSI raid supported by mfi driver >-- if(!strncmp("/dev/mfid", test_name, strlen("/dev/mfid"))) >-- set_err(EINVAL, "To monitor disks on LSI RAID load mfip.ko module and run 'smartctl -a /dev/passX' to show SMART information"); >-+ if(!strncmp("/dev/mfid", test_name, strlen("/dev/mfid"))) { >-+ set_err(EINVAL, "To access disks on LSI RAID load mfip.ko and use /dev/passX or use -d 'megaraid,N' with /dev/mfiX devices"); >-+ return 0; >-+ } >- >-+ if(!strncmp(MFI_CTRLR_PREFIX, test_name, strlen(MFI_CTRLR_PREFIX)) || !strncmp(MRSAS_CTRLR_PREFIX, test_name, strlen(MRSAS_CTRLR_PREFIX))) { >-+ set_err(EINVAL, "To access disks on %s use '-d megaraid,N' device type", test_name); >-+ return 0; >-+ } >-+ >- // form /dev/nvme* or nvme* >- if(!strncmp("/dev/nvme", test_name, strlen("/dev/nvme"))) >- return new freebsd_nvme_device(this, name, "", 0 /* use default nsid */); >-@@ -2142,12 +2510,16 @@ smart_device * freebsd_smart_interface::get_custom_sma >- return new freebsd_areca_ata_device(this, name, disknum, encnum); >- } >- >-+ if (sscanf(type, "megaraid,%d", &disknum) == 1) { >-+ return new freebsd_megaraid_device(this, name, disknum); >-+ } >-+ >- return 0; >- } >- >- std::string freebsd_smart_interface::get_valid_custom_dev_types_str() >- { >-- return "3ware,N, hpt,L/M/N, cciss,N, areca,N/E" >-+ return "3ware,N, hpt,L/M/N, cciss,N, areca,N/E, megaraid,N" >- #if FREEBSDVER > 800100 >- ", atacam" >- #endif >diff --git a/sysutils/smartmontools/files/patch-os__freebsd.h b/sysutils/smartmontools/files/patch-os__freebsd.h >deleted file mode 100644 >index 7bace7bc234d..000000000000 >--- a/sysutils/smartmontools/files/patch-os__freebsd.h >+++ /dev/null >@@ -1,167 +0,0 @@ >---- os_freebsd.h.orig 2018-08-19 18:45:53 UTC >-+++ os_freebsd.h >-@@ -606,4 +606,164 @@ HPT_PASS_THROUGH_HEADER, *PHPT_PASS_THROUGH_HEADER; >- #define __unused __attribute__ ((__unused__)) >- #endif >- >-+// MFI definition from the kernel sources, see sys/dev/mfi >-+ >-+#define MFI_STAT_OK 0x00 >-+#define MFI_DCMD_PD_GET_LIST 0x02010000 >-+ >-+#define MFI_CTRLR_PREFIX "/dev/mfi" >-+#define MRSAS_CTRLR_PREFIX "/dev/mrsas" >-+ >-+/* >-+ * MFI Frame flags >-+ */ >-+#define MFI_FRAME_POST_IN_REPLY_QUEUE 0x0000 >-+#define MFI_FRAME_DONT_POST_IN_REPLY_QUEUE 0x0001 >-+#define MFI_FRAME_SGL32 0x0000 >-+#define MFI_FRAME_SGL64 0x0002 >-+#define MFI_FRAME_SENSE32 0x0000 >-+#define MFI_FRAME_SENSE64 0x0004 >-+#define MFI_FRAME_DIR_NONE 0x0000 >-+#define MFI_FRAME_DIR_WRITE 0x0008 >-+#define MFI_FRAME_DIR_READ 0x0010 >-+#define MFI_FRAME_DIR_BOTH 0x0018 >-+#define MFI_FRAME_IEEE_SGL 0x0020 >-+#define MFI_FRAME_FMT "\20" \ >-+ "\1NOPOST" \ >-+ "\2SGL64" \ >-+ "\3SENSE64" \ >-+ "\4WRITE" \ >-+ "\5READ" \ >-+ "\6IEEESGL" >-+ >-+/* MFI Commands */ >-+typedef enum { >-+ MFI_CMD_INIT = 0x00, >-+ MFI_CMD_LD_READ, >-+ MFI_CMD_LD_WRITE, >-+ MFI_CMD_LD_SCSI_IO, >-+ MFI_CMD_PD_SCSI_IO, >-+ MFI_CMD_DCMD, >-+ MFI_CMD_ABORT, >-+ MFI_CMD_SMP, >-+ MFI_CMD_STP >-+} mfi_cmd_t; >-+ >-+/* Scatter Gather elements */ >-+struct mfi_sg32 { >-+ uint32_t addr; >-+ uint32_t len; >-+} __packed; >-+ >-+struct mfi_sg64 { >-+ uint64_t addr; >-+ uint32_t len; >-+} __packed; >-+ >-+struct mfi_sg_skinny { >-+ uint64_t addr; >-+ uint32_t len; >-+ uint32_t flag; >-+} __packed; >-+ >-+union mfi_sgl { >-+ struct mfi_sg32 sg32[1]; >-+ struct mfi_sg64 sg64[1]; >-+ struct mfi_sg_skinny sg_skinny[1]; >-+} __packed; >-+ >-+/* Message frames. All messages have a common header */ >-+struct mfi_frame_header { >-+ uint8_t cmd; >-+ uint8_t sense_len; >-+ uint8_t cmd_status; >-+ uint8_t scsi_status; >-+ uint8_t target_id; >-+ uint8_t lun_id; >-+ uint8_t cdb_len; >-+ uint8_t sg_count; >-+ uint32_t context; >-+ /* >-+ * pad0 is MSI Specific. Not used by Driver. Zero the value before >-+ * sending the command to f/w. >-+ */ >-+ uint32_t pad0; >-+ uint16_t flags; >-+#define MFI_FRAME_DATAOUT 0x08 >-+#define MFI_FRAME_DATAIN 0x10 >-+ uint16_t timeout; >-+ uint32_t data_len; >-+} __packed; >-+ >-+#define MFI_PASS_FRAME_SIZE 48 >-+struct mfi_pass_frame { >-+ struct mfi_frame_header header; >-+ uint32_t sense_addr_lo; >-+ uint32_t sense_addr_hi; >-+ uint8_t cdb[16]; >-+ union mfi_sgl sgl; >-+} __packed; >-+ >-+#define MFI_DCMD_FRAME_SIZE 40 >-+#define MFI_MBOX_SIZE 12 >-+ >-+struct mfi_dcmd_frame { >-+ struct mfi_frame_header header; >-+ uint32_t opcode; >-+ uint8_t mbox[MFI_MBOX_SIZE]; >-+ union mfi_sgl sgl; >-+} __packed; >-+ >-+#define MAX_IOCTL_SGE 16 >-+struct mfi_ioc_packet { >-+ uint16_t mfi_adapter_no; >-+ uint16_t mfi_pad1; >-+ uint32_t mfi_sgl_off; >-+ uint32_t mfi_sge_count; >-+ uint32_t mfi_sense_off; >-+ uint32_t mfi_sense_len; >-+ union { >-+ uint8_t raw[128]; >-+ struct mfi_frame_header hdr; >-+ } mfi_frame; >-+ >-+ struct iovec mfi_sgl[MAX_IOCTL_SGE]; >-+} __packed; >-+ >-+#ifdef COMPAT_FREEBSD32 >-+struct mfi_ioc_packet32 { >-+ uint16_t mfi_adapter_no; >-+ uint16_t mfi_pad1; >-+ uint32_t mfi_sgl_off; >-+ uint32_t mfi_sge_count; >-+ uint32_t mfi_sense_off; >-+ uint32_t mfi_sense_len; >-+ union { >-+ uint8_t raw[128]; >-+ struct mfi_frame_header hdr; >-+ } mfi_frame; >-+ >-+ struct iovec32 mfi_sgl[MAX_IOCTL_SGE]; >-+} __packed; >-+#endif >-+ >-+struct mfi_pd_address { >-+ uint16_t device_id; >-+ uint16_t encl_device_id; >-+ uint8_t encl_index; >-+ uint8_t slot_number; >-+ uint8_t scsi_dev_type; /* 0 = disk */ >-+ uint8_t connect_port_bitmap; >-+ uint64_t sas_addr[2]; >-+} __packed; >-+ >-+#define MAX_SYS_PDS 240 >-+struct mfi_pd_list { >-+ uint32_t size; >-+ uint32_t count; >-+ struct mfi_pd_address addr[MAX_SYS_PDS]; >-+} __packed; >-+ >-+#define MFI_CMD _IOWR('M', 1, struct mfi_ioc_packet) >-+ >- #endif /* OS_FREEBSD_H_ */ >diff --git a/sysutils/smartmontools/files/patch-smartctl.8.in b/sysutils/smartmontools/files/patch-smartctl.8.in >deleted file mode 100644 >index cc0164ddc90a..000000000000 >--- a/sysutils/smartmontools/files/patch-smartctl.8.in >+++ /dev/null >@@ -1,47 +0,0 @@ >---- smartctl.8.in.orig 2020-12-21 18:34:31 UTC >-+++ smartctl.8.in >-@@ -478,24 +478,40 @@ this device type is for NVMe disks that are behind a R >- bridge. >- .Sp >- .\" %ENDIF NOT OS Darwin >--.\" %IF OS Linux >-+.\" %IF OS Linux FreeBSD >- .I marvell >- \- [Linux only] interact with SATA disks behind Marvell chip-set >- controllers (using the Marvell rather than libata driver). >- .Sp >- .I megaraid,N >--\- [Linux only] the device consists of one or more SCSI/SAS disks connected >-+\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks connected >- to a MegaRAID controller. The non-negative integer N (in the range of 0 to >--127 inclusive) denotes which disk on the controller is monitored. >-+127 inclusive) denotes which disk on the controller is monitored. This interface >-+will also work for Dell PERC controllers. >- Use syntax such as: >-+.\" %ENDIF OS Linux FreeBSD >-+.\" %IF OS ALL >-+FreeBSD: >-+.\" %ENDIF OS ALL >-+.\" %IF OS FreeBSD >- .br >-+\fBsmartctl \-a \-d megaraid,2 /dev/mfi0\fP >-+.br >-+\fBsmartctl \-a \-d megaraid,0 /dev/mrsas0\fP >-+.br >-+.Sp >-+.\" %ENDIF OS FreeBSD >-+.\" %IF OS ALL >-+Linux: >-+.\" %ENDIF OS ALL >-+.\" %IF OS Linux >-+.br >- \fBsmartctl \-a \-d megaraid,2 /dev/sda\fP >- .br >- \fBsmartctl \-a \-d megaraid,0 /dev/sdb\fP >- .br >- \fBsmartctl \-a \-d megaraid,0 /dev/bus/0\fP >- .br >--This interface will also work for Dell PERC controllers. >- It is possible to set RAID device name as /dev/bus/N, where N is a SCSI bus >- number. >- .Sp >diff --git a/sysutils/smartmontools/files/patch-smartd.conf.5.in b/sysutils/smartmontools/files/patch-smartd.conf.5.in >deleted file mode 100644 >index 3544992b45b4..000000000000 >--- a/sysutils/smartmontools/files/patch-smartd.conf.5.in >+++ /dev/null >@@ -1,56 +0,0 @@ >---- smartd.conf.5.in.orig 2020-11-23 18:25:16 UTC >-+++ smartd.conf.5.in >-@@ -116,15 +116,27 @@ Section below! >- # may become common with SATA disks in SAS and FC >- # environments. >- /dev/sda \-a \-d sat >--.\" %IF OS Linux >-+.\" %IF OS FreeBSD Linux >- # >--# Three disks connected to a MegaRAID controller >-+# Disks connected to a MegaRAID controller >- # Start short self\-tests daily between 1\-2, 2\-3, and >- # 3\-4 am. >-+.\" %ENDIF OS FreeBSD Linux >-+.\" %IF OS Linux >-+# Linux: >- /dev/sda \-d megaraid,0 \-a \-s S/../.././01 >- /dev/sda \-d megaraid,1 \-a \-s S/../.././02 >- /dev/sda \-d megaraid,2 \-a \-s S/../.././03 >- /dev/bus/0 \-d megaraid,2 \-a \-s S/../.././03 >-+.\" %ENDIF OS Linux >-+.\" %IF OS FreeBSD >-+# FreeBSD: >-+/dev/mfi0 \-d megaraid,0 \-a \-s S/../.././01 >-+/dev/mfi0 \-d megaraid,1 \-a \-s S/../.././02 >-+/dev/mfi0 \-d megaraid,2 \-a \-s S/../.././03 >-+/dev/mrsas0 \-d megaraid,2 \-a \-s S/../.././03 >-+.\" %ENDIF OS FreeBSD >-+.\" %IF OS Linux >- # >- # Three disks connected to an AacRaid controller >- # Start short self\-tests daily between 1\-2, 2\-3, and >-@@ -463,18 +475,19 @@ bridge. >- \- [Linux only] interact with SATA disks behind Marvell chip-set >- controllers (using the Marvell rather than libata driver). >- .Sp >-+.\" %ENDIF OS FreeBSD Linux >-+.\" %IF OS FreeBSD Linux >- .I megaraid,N >--\- [Linux only] the device consists of one or more SCSI/SAS disks connected >-+\- [Linux and FreeBSD only] the device consists of one or more SCSI/SAS disks connected >- to a MegaRAID controller. The non-negative integer N (in the range of 0 to >- 127 inclusive) denotes which disk on the controller is monitored. >- This interface will also work for Dell PERC controllers. >- In log files and email messages this disk will be identified as >- megaraid_disk_XXX with XXX in the range from 000 to 127 inclusive. >--It is possible to set RAID device name as /dev/bus/N, where N is a SCSI bus >--number. >-+ >- Please see the \fBsmartctl\fP(8) man page for further details. >- .Sp >--.\" %ENDIF OS Linux >-+.\" %ENDIF OS FreeBSD Linux >- .\" %IF OS Linux Windows Cygwin >- .I aacraid,H,L,ID >- \- [Linux, Windows and Cygwin only] the device consists of one or more
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 262329
: 232236