From 8600d3520c8917c24c1481fac37614c8f8ef26de Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:11:10 +1100 Subject: [PATCH 01/77] Add files via upload --- bin/DS1821+_synonvme | Bin 0 -> 17241 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bin/DS1821+_synonvme diff --git a/bin/DS1821+_synonvme b/bin/DS1821+_synonvme new file mode 100644 index 0000000000000000000000000000000000000000..2dc63b55f2cfc20dc364bbc39d2b16105db24799 GIT binary patch literal 17241 zcmeHOe{@vUoqq{G3<#O1werjI#KcBmLJ|lE5HukHA8x=%0$MAEVdhPkGMSm3nM9&& z4GmGIak|*L9=m(amTldh*6!)S{lP)@)Mf$Ewx=$&f>c`@S+O%B$YKSgh1t*NzI$h0 z9vSNCAA5GsnVWOxJKxX!e!us7zxT(xb93LL%bJ%L7ZqtLjnZz{$gQ7gA@!=jM(ec& z+CK!$rMUq~0r1 zPth_NPeoNc=_B(38BZszM;TMS_|!C~-e#%iq`H(>RK>pac-;5r)Yl^QA`30UPC8H4 zr>Ls$9_TSHpEk*E*H+8=^7Vrus#v(H zR+Q5(4h44KovYSp#l6}fF{NLm6$ySEFs5S3t8&WHNAlEXVi!nvv}^GFX5`Nx--PT! zz7cs6^5>AJBYzfICCX1lo`QTW@(g6oog0vyN!6in#+81sEy`a`hY83k(N{Ut6(q(G z+i^Yeb;za2Ix^E$$ZXGKGBQmBC8i^@KC3^sf|-=nqu-S`J~8bV=Bu4^51eCDMowtN zNQH01@JRT-=fVFX58jVjN3wG&58jZ+A3YELavnQh$b)z1@$^5E0**axiX$j&qyz)1dcPU=o!@OR|F zU(ZwTx;*$~#OE5!>fTnX618sE0-rHLy+4N?%5RtQoS!1KuV`D@?lYriM<5nAqiri2 zgW-_b=GhQ5wf6Ro&Tyzb7WYKs?d@9Y7gpW9vbNC^^{ov1%;247Toc+O>QZ>s+LdOL z+1(uWQdS|$1JTZgkgwH@20X#lrpK2pxi=b!n~fgtMzhr>-xP>#%2ue1w3(d|GwO+V zMNPZy6*1P?+S-)0+1d%`SA_gwyVz>8(-Q~H2YpBCwgd-)O5I?On*cJydRdpH#AL64#{y_?#-8#lH4J%J#ANHh?N z`-y0Nwl5Zs#=}7nU$_e$+>QsHR}KLN4TyKMr`;b2d4hq5P0i~G2E$%zc{?K-gkwFS zaHzY}A&=~E@68qODpT=Wow6z%!|RoSKK%&9d-8xldF0Z{+^DPzmB$miT6727bU*afxjy8 zK?nY}#D^UCyAszN>*fa%*B$sViPt;uv2ve!^lmE-+_T(deHEWWHeB^F3sN?mdoq;UhGpk%IG-shsdb-wGhKn8YJDd@!-h|4u^8^Z@F>V8-G{#vCyHr&4d zAGG22J^w2Vgdj&s}JdbqJ5y8(O&!e35dcjX2 z&m)|4i{P&%&m+flz2MKdHO;>RyhtCpK6jyEt&zO`aa6giX3$7ZoD7AAH4SZR5*J&I z#7D-~59-mKK4V~XMJ05M#J2JU0BQzPE*Lbt*SFMY+O3C;cEcaafGcY)etq16I z;^-IGH9XL;uHnJ`tginKS%wb()Vumm!9a7;S6*f$gXPs|Lc<;%>dlFF_L3TjQ>neu`yHsFIdKfN7^tOY zu;wjMQ)=%Y(dNYavRV``Msey{py}xtU$*M2Wu-kLz*c?PYWB-&L`xFy!_Ljas%fRc zS4G^i?NJ6RM>6;t6d3jASttx%z$ni7T}*?21%p@W*xzDevt!r5yYvhS{{*p2G?$M? zE^+n$P?XOyl5OQBMlxPL+DLqus)Xgle$?GR1$8$KG?kYOKm$&2eAd0-lAV-#^bfFl zf&KIvtQrXzarFn4$v8~H8slqO+l^Jn7zmb^G$$+8p)Dt-8Urh_+O0vqyr;T-7Hk>= zos*3IlU+l`z!n(k&$zZdg<4XNvdLe?x4w&`T>UqQiXJHuPF2I6F)+(Wz*!E6lGGVt zsI{!-EJj2BAY7?;J#{d(DeKM*=nsf?*Zm&rg>vAz3$VYXd_s|t9J3Sa3Z~NcNnA~b z(D-+3lD&{j{{i;;E*87`w~N+2Qqnwd^Ik4@HD^V9niIcE98A2F`VNE>X$(M7Phx)q z=4P_)Bo;P|_4%~)JS}mSOcs`=VydOqp%ICFediH@cZeqIf;k5;5ifoM#m!1_2vdi> z{RW$Gew1rl4S>G$qg~sI#g}5&w)ZeAjpUO1U$9mc;If6QJ^T}>zZ_7^oQ{I%+z9CoNc~{rr6Z=Gv=Cd0HM38i(0BIssAK2 zg^*Z(PUERNFE^Dhz(4NM zEqLmr{{>F@UEwjCIJfqgQQeFC4VqZnDX=8{bqK(fzqGt-qEYr2pjm)Ya|!$iYXN{M z0MK2j>BPPygz84yM&}!6fj?=u?rwxTy!^dyS>J8Dj@Nc`eK1JA*}cTcypVaHMP z6Ikwo(aiPj6`J;YaObek!0LCJWa0UEDK@0dD6%%BL;E3dSV+{p3i1L5t!CVM$@q^; zqm0C9;ydpmo1Sb5lKV z=HQqukSkiZe?PTO47jHELRKS#`hSD9J6+8Pa=+YX-yu_~kO~nfM4%9X|9=rE!rdmO z@oQq94s(&NZgq`!y8|&d?{~RlF`vGe-}DHsqus8L)4jY!rw9DHNB5cC0k5eCV)!m( zAPwDE$nB51aV^cENyHlt#iL=|CX4E=t8`Dur~7eJ@F7ps)T3s%8I1+PA(-go-NQU4 zL`}SFrVA-ZcZ+*;e^T5MqxD)hHvm_xrL(G5_xL;!T$dEPg=}SLg&UXQJaKp`THVgb z=yR;^A>7hKkl57tMg+|pF!fjvn-Vsal?skQ;*~{r0CyIJ-)z*C3<+_a;?Yh~HB3a+ z1xH*{_nW!q3p-ncMY?l4I;fppiyNTbmDO8nZq;MrT4sBwt8;@H&3T(OsMFx(HH2`9 z(rxvB&VugkisJsDpUsY%xT_iB;Gn2ARA45ayT|#d8f%k>b_Dx4cN{k`|Db>9 z$jM>ZrU^f9j1E)eJyP9*z2VMIj*@s-NKoDyYaP}+65V>czBm}}Xb<@0m!KJ<`**@0 z;FzQxrXEK4c{dXVE*t6Y4Lxo#C>M)QHL2O2kw?6~p~o7<6qQTda$G8&RHd}9LT%osOB7pPF)_K1;%krmau%Ok26IiHXfF z5yPYk_N-pl?H$Y;wx*Ab%(jEQaoIo^LGDWR&KCWtB0O8HAM9atct?C=m55gxRv0M} zz%qppWyb)9T_6Ov13pMn&eF>-Lxb#BOk4DQ)9egKd&X-mX4H#5 z=O|kfGksb^H&n!oX^mhFhrks=S*5Lrb3TN)99m3^4nsqbVCYT#?T-LMeKSIuauZUUZ zR)oCaXw>w^F%hGvgbxqPTdhXRUJ%#CP{cgYD=Nlot>G@j)Y7+Icn9Fq@q2AW2u5%X zyGmQOS$#t+FoU=(X=_58Lg9x(Rd7MSw{h7bx!BMpi?Xo3?7t*s&NNxCYPRmZ%>@&*=YM9 zFrLz4Rh7`u-JmrH-=KIJW zAz6aV1 z`a0<8)0s>Q=&t|HWClT*)ZNgchgWMwo6Cx(PPnRMN6}Sf#CebS8R*QQpiCpnYZ`w5 zQ@#>)5Ax8ev}}3lq`O>KKUC7I-7)31nRCm98R|D75B@HbDFIaprzhG2$SKsv?@aZ` z2%q*WWJ45QURw6G;?~kh$x%y7^(RI*lvX}Arm?iTZ|q&Ar;CgKZG35UV`*hWslK#y z($dnhrKKeeI6Nq%LIesC__PsF@13akOgNR9?zVo;@!x48t#|Nz7lsLEgI3Zlg2O|R zs%Kf0|4?L7@4HO3SWT@3>YWDl-V4_hCRL8}GLfFae-W5IzLW`*Mq~lkKcC=*aSJK^*9+dQmr0+?3R?@LIX(D}A(pw~*FX?hg*GlS_v|G~0Bz;=a z?@GE`(u0y7k<_Z~@=x_%ma{~?m*vFO_)_m@Im^{}RPSjy%hmi)?`t{B)%;NJZ8^); zd{OUjIm@q-K=wT@hkzR2>U}OparQlM^ Date: Wed, 18 Oct 2023 14:12:11 +1100 Subject: [PATCH 02/77] Create temp.txt --- lib/temp.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/temp.txt diff --git a/lib/temp.txt b/lib/temp.txt new file mode 100644 index 0000000..2d030d7 --- /dev/null +++ b/lib/temp.txt @@ -0,0 +1 @@ +delete me From eff49cba3dbe0a6feefef24a846b44320680bb15 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:12:57 +1100 Subject: [PATCH 03/77] Add files via upload --- lib/DS1821+_libsynonvme.so.1 | Bin 0 -> 54154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/DS1821+_libsynonvme.so.1 diff --git a/lib/DS1821+_libsynonvme.so.1 b/lib/DS1821+_libsynonvme.so.1 new file mode 100644 index 0000000000000000000000000000000000000000..1f97be2d5b43e3d68c45f780d3857d597862d842 GIT binary patch literal 54154 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 fG<~gV|683Oa+k^ Date: Wed, 18 Oct 2023 14:13:17 +1100 Subject: [PATCH 04/77] Delete lib/temp.txt --- lib/temp.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 lib/temp.txt diff --git a/lib/temp.txt b/lib/temp.txt deleted file mode 100644 index 2d030d7..0000000 --- a/lib/temp.txt +++ /dev/null @@ -1 +0,0 @@ -delete me From 59b8c273be28787ccca443d01a099436b575f57f Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 28 Oct 2023 16:54:44 +1100 Subject: [PATCH 05/77] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 208bea0..2df73a1 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,12 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following paypal donators and GitHub sponsors +- Mir Hekmat +- Joseph Skup +- Dirk Kurfuerst +- Gareth Locke +- Rory de Ruijter +- Nathan O'Farrell - Harry Bos - Mark-Philipp Wolfger - Filip Kraus From d07dbba7fb2d5b47402abb60a03d2647bf957621 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Tue, 31 Oct 2023 19:13:46 +1100 Subject: [PATCH 06/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2df73a1..1bb2e28 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following paypal donators and GitHub sponsors +- Peter Weißflog - Mir Hekmat - Joseph Skup - Dirk Kurfuerst From 37a430014ffc33e9e9f4fa8d679655a292d5ea4f Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 2 Nov 2023 12:49:50 +1100 Subject: [PATCH 07/77] Add files via upload --- lib/DS1823xs+_libsynonvme.so.1 | Bin 0 -> 54154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/DS1823xs+_libsynonvme.so.1 diff --git a/lib/DS1823xs+_libsynonvme.so.1 b/lib/DS1823xs+_libsynonvme.so.1 new file mode 100644 index 0000000000000000000000000000000000000000..1f97be2d5b43e3d68c45f780d3857d597862d842 GIT binary patch literal 54154 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 fG<~gV|683Oa+k^ Date: Thu, 2 Nov 2023 12:51:27 +1100 Subject: [PATCH 08/77] Add files via upload --- bin/DS1823xs+_synonvme | Bin 0 -> 17241 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bin/DS1823xs+_synonvme diff --git a/bin/DS1823xs+_synonvme b/bin/DS1823xs+_synonvme new file mode 100644 index 0000000000000000000000000000000000000000..2dc63b55f2cfc20dc364bbc39d2b16105db24799 GIT binary patch literal 17241 zcmeHOe{@vUoqq{G3<#O1werjI#KcBmLJ|lE5HukHA8x=%0$MAEVdhPkGMSm3nM9&& z4GmGIak|*L9=m(amTldh*6!)S{lP)@)Mf$Ewx=$&f>c`@S+O%B$YKSgh1t*NzI$h0 z9vSNCAA5GsnVWOxJKxX!e!us7zxT(xb93LL%bJ%L7ZqtLjnZz{$gQ7gA@!=jM(ec& z+CK!$rMUq~0r1 zPth_NPeoNc=_B(38BZszM;TMS_|!C~-e#%iq`H(>RK>pac-;5r)Yl^QA`30UPC8H4 zr>Ls$9_TSHpEk*E*H+8=^7Vrus#v(H zR+Q5(4h44KovYSp#l6}fF{NLm6$ySEFs5S3t8&WHNAlEXVi!nvv}^GFX5`Nx--PT! zz7cs6^5>AJBYzfICCX1lo`QTW@(g6oog0vyN!6in#+81sEy`a`hY83k(N{Ut6(q(G z+i^Yeb;za2Ix^E$$ZXGKGBQmBC8i^@KC3^sf|-=nqu-S`J~8bV=Bu4^51eCDMowtN zNQH01@JRT-=fVFX58jVjN3wG&58jZ+A3YELavnQh$b)z1@$^5E0**axiX$j&qyz)1dcPU=o!@OR|F zU(ZwTx;*$~#OE5!>fTnX618sE0-rHLy+4N?%5RtQoS!1KuV`D@?lYriM<5nAqiri2 zgW-_b=GhQ5wf6Ro&Tyzb7WYKs?d@9Y7gpW9vbNC^^{ov1%;247Toc+O>QZ>s+LdOL z+1(uWQdS|$1JTZgkgwH@20X#lrpK2pxi=b!n~fgtMzhr>-xP>#%2ue1w3(d|GwO+V zMNPZy6*1P?+S-)0+1d%`SA_gwyVz>8(-Q~H2YpBCwgd-)O5I?On*cJydRdpH#AL64#{y_?#-8#lH4J%J#ANHh?N z`-y0Nwl5Zs#=}7nU$_e$+>QsHR}KLN4TyKMr`;b2d4hq5P0i~G2E$%zc{?K-gkwFS zaHzY}A&=~E@68qODpT=Wow6z%!|RoSKK%&9d-8xldF0Z{+^DPzmB$miT6727bU*afxjy8 zK?nY}#D^UCyAszN>*fa%*B$sViPt;uv2ve!^lmE-+_T(deHEWWHeB^F3sN?mdoq;UhGpk%IG-shsdb-wGhKn8YJDd@!-h|4u^8^Z@F>V8-G{#vCyHr&4d zAGG22J^w2Vgdj&s}JdbqJ5y8(O&!e35dcjX2 z&m)|4i{P&%&m+flz2MKdHO;>RyhtCpK6jyEt&zO`aa6giX3$7ZoD7AAH4SZR5*J&I z#7D-~59-mKK4V~XMJ05M#J2JU0BQzPE*Lbt*SFMY+O3C;cEcaafGcY)etq16I z;^-IGH9XL;uHnJ`tginKS%wb()Vumm!9a7;S6*f$gXPs|Lc<;%>dlFF_L3TjQ>neu`yHsFIdKfN7^tOY zu;wjMQ)=%Y(dNYavRV``Msey{py}xtU$*M2Wu-kLz*c?PYWB-&L`xFy!_Ljas%fRc zS4G^i?NJ6RM>6;t6d3jASttx%z$ni7T}*?21%p@W*xzDevt!r5yYvhS{{*p2G?$M? zE^+n$P?XOyl5OQBMlxPL+DLqus)Xgle$?GR1$8$KG?kYOKm$&2eAd0-lAV-#^bfFl zf&KIvtQrXzarFn4$v8~H8slqO+l^Jn7zmb^G$$+8p)Dt-8Urh_+O0vqyr;T-7Hk>= zos*3IlU+l`z!n(k&$zZdg<4XNvdLe?x4w&`T>UqQiXJHuPF2I6F)+(Wz*!E6lGGVt zsI{!-EJj2BAY7?;J#{d(DeKM*=nsf?*Zm&rg>vAz3$VYXd_s|t9J3Sa3Z~NcNnA~b z(D-+3lD&{j{{i;;E*87`w~N+2Qqnwd^Ik4@HD^V9niIcE98A2F`VNE>X$(M7Phx)q z=4P_)Bo;P|_4%~)JS}mSOcs`=VydOqp%ICFediH@cZeqIf;k5;5ifoM#m!1_2vdi> z{RW$Gew1rl4S>G$qg~sI#g}5&w)ZeAjpUO1U$9mc;If6QJ^T}>zZ_7^oQ{I%+z9CoNc~{rr6Z=Gv=Cd0HM38i(0BIssAK2 zg^*Z(PUERNFE^Dhz(4NM zEqLmr{{>F@UEwjCIJfqgQQeFC4VqZnDX=8{bqK(fzqGt-qEYr2pjm)Ya|!$iYXN{M z0MK2j>BPPygz84yM&}!6fj?=u?rwxTy!^dyS>J8Dj@Nc`eK1JA*}cTcypVaHMP z6Ikwo(aiPj6`J;YaObek!0LCJWa0UEDK@0dD6%%BL;E3dSV+{p3i1L5t!CVM$@q^; zqm0C9;ydpmo1Sb5lKV z=HQqukSkiZe?PTO47jHELRKS#`hSD9J6+8Pa=+YX-yu_~kO~nfM4%9X|9=rE!rdmO z@oQq94s(&NZgq`!y8|&d?{~RlF`vGe-}DHsqus8L)4jY!rw9DHNB5cC0k5eCV)!m( zAPwDE$nB51aV^cENyHlt#iL=|CX4E=t8`Dur~7eJ@F7ps)T3s%8I1+PA(-go-NQU4 zL`}SFrVA-ZcZ+*;e^T5MqxD)hHvm_xrL(G5_xL;!T$dEPg=}SLg&UXQJaKp`THVgb z=yR;^A>7hKkl57tMg+|pF!fjvn-Vsal?skQ;*~{r0CyIJ-)z*C3<+_a;?Yh~HB3a+ z1xH*{_nW!q3p-ncMY?l4I;fppiyNTbmDO8nZq;MrT4sBwt8;@H&3T(OsMFx(HH2`9 z(rxvB&VugkisJsDpUsY%xT_iB;Gn2ARA45ayT|#d8f%k>b_Dx4cN{k`|Db>9 z$jM>ZrU^f9j1E)eJyP9*z2VMIj*@s-NKoDyYaP}+65V>czBm}}Xb<@0m!KJ<`**@0 z;FzQxrXEK4c{dXVE*t6Y4Lxo#C>M)QHL2O2kw?6~p~o7<6qQTda$G8&RHd}9LT%osOB7pPF)_K1;%krmau%Ok26IiHXfF z5yPYk_N-pl?H$Y;wx*Ab%(jEQaoIo^LGDWR&KCWtB0O8HAM9atct?C=m55gxRv0M} zz%qppWyb)9T_6Ov13pMn&eF>-Lxb#BOk4DQ)9egKd&X-mX4H#5 z=O|kfGksb^H&n!oX^mhFhrks=S*5Lrb3TN)99m3^4nsqbVCYT#?T-LMeKSIuauZUUZ zR)oCaXw>w^F%hGvgbxqPTdhXRUJ%#CP{cgYD=Nlot>G@j)Y7+Icn9Fq@q2AW2u5%X zyGmQOS$#t+FoU=(X=_58Lg9x(Rd7MSw{h7bx!BMpi?Xo3?7t*s&NNxCYPRmZ%>@&*=YM9 zFrLz4Rh7`u-JmrH-=KIJW zAz6aV1 z`a0<8)0s>Q=&t|HWClT*)ZNgchgWMwo6Cx(PPnRMN6}Sf#CebS8R*QQpiCpnYZ`w5 zQ@#>)5Ax8ev}}3lq`O>KKUC7I-7)31nRCm98R|D75B@HbDFIaprzhG2$SKsv?@aZ` z2%q*WWJ45QURw6G;?~kh$x%y7^(RI*lvX}Arm?iTZ|q&Ar;CgKZG35UV`*hWslK#y z($dnhrKKeeI6Nq%LIesC__PsF@13akOgNR9?zVo;@!x48t#|Nz7lsLEgI3Zlg2O|R zs%Kf0|4?L7@4HO3SWT@3>YWDl-V4_hCRL8}GLfFae-W5IzLW`*Mq~lkKcC=*aSJK^*9+dQmr0+?3R?@LIX(D}A(pw~*FX?hg*GlS_v|G~0Bz;=a z?@GE`(u0y7k<_Z~@=x_%ma{~?m*vFO_)_m@Im^{}RPSjy%hmi)?`t{B)%;NJZ8^); zd{OUjIm@q-K=wT@hkzR2>U}OparQlM^ Date: Thu, 2 Nov 2023 13:05:10 +1100 Subject: [PATCH 09/77] Delete bin/dtbpatch --- bin/dtbpatch | Bin 130840 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/dtbpatch diff --git a/bin/dtbpatch b/bin/dtbpatch deleted file mode 100644 index 0f314f2ae480c4c43c8bfcf2cfe2d7c1b08794aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130840 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žLD_7J0lT=~=9shO7KEq~1#+ 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 W=u~`2yZ@c9>HUXUfq8@XHTZuF*iQlg From e262638700ef3b863a0a19106d702b21e70264ea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:06:45 +1100 Subject: [PATCH 10/77] Delete dtb/DS1823+_model.dtb --- dtb/DS1823+_model.dtb | Bin 5762 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dtb/DS1823+_model.dtb diff --git a/dtb/DS1823+_model.dtb b/dtb/DS1823+_model.dtb deleted file mode 100644 index c04a562ca0adce991e9452d6b13b816ecddf1627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5762 zcmdT|y^rHW6dwb}aeJHqaRO1$(13tl+0G{HQXSHs&`NA|AR$p$6MHtXusuGH6Lu>k zL_tAw{{e`ang$`!P*YNXgb*MaDr!!=_h!aliL=>LB6OA}9zVa&-+S|BoF8x8|C_Pr zK4FXxW5A985mE)fXn#-=%4C&>(?<)kHY;L&hMOOGLe(>2K{-MUsr}6%stn2 z1Mk2eoT=A{3uPaJf%Z_J)%C)Z7f}!wcY%f%(w~I!5)9;j#0)FH56@4)z~?J4-YJWj zfID7Dy9$G+aahP4Nkl_EGZ@w`K7S75Z5USXS1|vz@%$ake}my1y+8EcfC*g4+ZX>+ z@UD(OIU&70gNEF)umIt?i%asrKa;^K4_Ub@=pVT^$(jqK?6(bXa-3 z*M49Y){h0_w0deC!%OLC)&lu*+jCERclTWl>&o0b3zq8K2+vJHur&Ed{UC%AH0fbZ zHcy-Ngn9kbb@$xY-2?oA8ToB%;UA@Xfb0yMGzI6#I#PUa(r8?WIrLlSab>%g&ck(}-Q;B|CfpmjIzdh+ zjvK)9qU*ltdV9lq1=alyv2FBb=Vf^O9cXA1uy;V~&L8F(S&tj@_h3#wCn5?ag%BAK z;6m9Q;0qBp8buF!`550Bu;X#_VjR(|03y+Q0#|R9-wN`zY^AYkAf4e>i ztqtKZ`rrD8*?ZQ)&;UVyl5#+M4 zUrmsd{xd~yPk>ym%K6S;=Dp4NGW%wmTxGxaO!L6@@qF1id%-uaJwsLdZQnVL&VpLL zI;%9~tNp20J`dv+_GvLwUT13DaFaRn@l0XRaAEzT%>?crz^KltAY(DL>v8Vywsh*% zQRi+xsNc8kYE6B1U%l8aDX==1*sb1M9v!dd?6ZsiU#yIGzmCTNJQnN@>-S_g_QL?6 zz19Bab3T6SNM>B8O`|fql{kCU;j!{!bD+c2%@H`V-Y-Pj#7)A^B%kun=sUXyWb@EM`#*(6}*Xj57fBphVWS3;L)0GVNm4?g` z{ETfK0qVhVEtF}_%Xpj!mdZ#ZY%U5F%Z%ZsKz|<6SDwn_Y?i}Upq%AwfdVTb;pdt@ zjUw1yJ`x46D{`VpBx`C{DUxwvkw_{-CU~jG(Kav`Ds7wR><-~mNJxyCgb-m`AK30s#EaLv+F{6UZV0sF0$49CIbue-vCg3jhEB From ebc92a6d9b478151473f6c92676b20085af8ced6 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 2 Nov 2023 21:32:53 +1100 Subject: [PATCH 11/77] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1bb2e28..63af5f6 100644 --- a/README.md +++ b/README.md @@ -105,8 +105,9 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits **Donators** -Thank you to the following paypal donators and GitHub sponsors +Thank you to the following PayPal donators and GitHub sponsors +- Andrew Tapp - Peter Weißflog - Mir Hekmat - Joseph Skup From 926707f4911c6b7179fe85e239a50f0cf3541796 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:43:56 +1100 Subject: [PATCH 12/77] Add files via upload --- bin/64570_synonvme | Bin 0 -> 17241 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bin/64570_synonvme diff --git a/bin/64570_synonvme b/bin/64570_synonvme new file mode 100644 index 0000000000000000000000000000000000000000..2dc63b55f2cfc20dc364bbc39d2b16105db24799 GIT binary patch literal 17241 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 Date: Tue, 7 Nov 2023 11:44:33 +1100 Subject: [PATCH 13/77] Add files via upload --- lib/64570_libsynonvme.so.1 | Bin 0 -> 54154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/64570_libsynonvme.so.1 diff --git a/lib/64570_libsynonvme.so.1 b/lib/64570_libsynonvme.so.1 new file mode 100644 index 0000000000000000000000000000000000000000..1f97be2d5b43e3d68c45f780d3857d597862d842 GIT binary patch literal 54154 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 fG<~gV|683Oa+k^ Date: Fri, 10 Nov 2023 20:51:22 +1100 Subject: [PATCH 14/77] Update CHANGES.txt v3.2.66 - Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. - Fixed bug where memory was shown in MB but with GB unit. --- CHANGES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index b427d11..0aa3746 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +v3.2.66 +- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. +- Fixed bug where memory was shown in MB but with GB unit. + v3.1.65 - Bug fix for NVMe drives with / in the model name for non-device tree Synology models. Issue #154 From cc23770b3fc577db088b230306f147f5dc3d3e1e Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 10 Nov 2023 21:00:57 +1100 Subject: [PATCH 15/77] Update syno_hdd_db.sh v3.2.66 - Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. - Fixed bug where memory was shown in MB but with GB unit. - Removed -i, --immutable option. --- syno_hdd_db.sh | 347 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 279 insertions(+), 68 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index df629a9..a3bccbb 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -29,7 +29,11 @@ # Change how synoinfo.conf is backed up and restored to prevent issue #73 # DONE -# Bug fix for NVMe drives with / in the model name for non-device tree Synology models. +# Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree, +# and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. +# +# Fixed bug where memory was shown in MB but with GB unit. +# # # Bug fix for script not updating itself if .sh file had been renamed. # @@ -54,6 +58,8 @@ # # Fixed enabling E10M20-T1, M2D20 and M2D18 cards in models that don't officially support them. # +# Enable NVMe drive use for models that do not have NVMe drives enabled. +# # Fixed bugs where the calculated amount of installed memory could be incorrect: # - If last memory socket was empty an invalid unit of bytes could be used. Issue #106 # - When dmidecode returned MB for one ram module and GB for another ram module. Issue #107 @@ -220,7 +226,7 @@ # Optionally disable "support_disk_compatibility". -scriptver="v3.1.65" +scriptver="v3.2.66" script=Synology_HDD_db repo="007revad/Synology_HDD_db" @@ -251,8 +257,6 @@ Options: -r, --ram Disable memory compatibility checking (DSM 7.x only), and sets max memory to the amount of installed memory -w, --wdda Disable WD WDDA - -i, --immutable Enable immutable snapshots on models older than - 20-series (DSM 7.2 and newer only). -e, --email Disable colored text in output scheduler emails. --restore Undo all changes made by the script --autoupdate=AGE Auto update script (useful when script is scheduled) @@ -307,7 +311,7 @@ if options="$(getopt -o abcdefghijklmnopqrstuvwxyz0123456789 -l \ ram=yes ;; -i|--immutable) # Enable "support_worm" (immutable snapshots) - immutable=yes + immutable=yes # Does not work for models without support_worm=yes already ;; -w|--wdda) # Disable "support_memory_compatibility" wdda=no @@ -791,6 +795,7 @@ getm2info(){ getcardmodel(){ # Get M.2 card model (if M.2 drives found) # $1 is /dev/nvme0n1 etc + isinm2card="" if [[ ${#nvmelist[@]} -gt "0" ]]; then cardmodel=$(synodisk --m2-card-model-get "$1") if [[ $cardmodel =~ M2D[0-9][0-9] ]]; then @@ -802,6 +807,7 @@ getcardmodel(){ m2carddblist+=("${model}_${cardmodel,,}.db") # M.2 card's db file fi m2cardlist+=("$cardmodel") # M.2 card + isinm2card="yes" elif [[ $cardmodel =~ E[0-9][0-9]+M.+ ]]; then # Ethernet + M2 adaptor card if [[ -f "${model}_${cardmodel,,}${version}.db" ]]; then @@ -811,13 +817,16 @@ getcardmodel(){ m2carddblist+=("${model}_${cardmodel,,}.db") # M.2 card's db file fi m2cardlist+=("$cardmodel") # M.2 card + isinm2card="yes" fi fi } m2_pool_support(){ - if [[ -f /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support ]]; then # GitHub issue #86, 87 - echo 1 > /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support + if [[ $isinm2card != "yes" ]]; then + if [[ -f /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support ]]; then # GitHub issue #86, 87 + echo 1 > /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support + fi fi } @@ -1161,8 +1170,7 @@ updatedb(){ # example: # {"success":1,"list":[{"model":"WD60EFRX-68MYMN1","firmware":"82.00A82","rec_intvl":[1]}, #if sed -i "s/$startstring/$startstring$string/" "$2"; then - #if sed -i "s/${startstring//\//\\/}/${startstring//\//\\/}$string/" "$2"; then - if sed -i "s/$startstring/$startstring${string//\//\\/}/" "$2"; then + if sed -i "s/${startstring//\//\\/}/${startstring//\//\\/}$string/" "$2"; then echo -e "Added ${Yellow}$hdmodel${Off} to ${Cyan}$(basename -- "$2")${Off}" else ding @@ -1257,69 +1265,241 @@ enable_card(){ fi } + +dts_m2_card(){ +# $1 is the card model +# $2 is the dts file + +# Remove last }; so we can append to dts file +sed -i '/^};/d' "$2" + +# Append PCIe M.2 card node to dts file +if [[ $1 == E10M20-T1 ]] || [[ $1 == M2D20 ]]; then + cat >> "$2" <> "$2" <; + }; + + nvme { + pcie_postfix = "00.0,04.0,00.0"; + port_type = "ssdcache"; + }; + }; + + m2_card@2 { + + ahci { + pcie_postfix = "00.0,03.0,00.0"; + ata_port = <0x01>; + }; + + nvme { + pcie_postfix = "00.0,05.0,00.0"; + port_type = "ssdcache"; + }; + }; + }; +}; +EOM2D18 + +fi +} + + +download_dtc(){ + # Download dtc from github + echo "Downloading dtc" >&2 + if cd /var/services/tmp; then + url="https://github.com/${repo}/raw/main/bin/dtc" + #if curl -kLJO -m 30 --connect-timeout 5 "$url"; then + if curl -kLO -m 30 --connect-timeout 5 "$url"; then + mv /var/services/tmp/dtc /usr/sbin/dtc + chmod 755 /usr/sbin/dtc + fi + else + echo -e "${Error}ERROR${Off} Failed to cd to /var/services/tmp!" >&2 + fi +} + + +edit_dts(){ + +#set -x # debug + + # $1 is M.2 card model + # Edit model.dts if needed + if ! grep "$1" "$dtb_file" >/dev/null; then + dts_m2_card "$1" "$dts_file" + #echo "Added $1 to model${hwrev}.dtb" >&2 + echo -e "Added ${Yellow}$1${Off} to ${Cyan}model${hwrev}.dtb${Off}" >&2 +# else + #echo "$1 already exists in model${hwrev}.dtb" >&2 +# echo -e "${Yellow}$1${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 + fi + +#set +x # debug + +} + + +set_pwr_limit(){ + if ! grep "$pwr_limit" "$dts_file" >/dev/null; then + # Save current power_limit + pwr_lmt_old=$(grep power_limit "$dts_file" | cut -d\" -f2) + + # Find line to insert power_limit + pwrlim_line=$(awk '! NF { print NR }' "$dts_file" | head -n 2 | tail -n 1) + + power_limit=" power_limit = \"$pwr_limit\";" + #echo "$power_limit" >&2 # debug + + if grep power_limit "$dts_file" >/dev/null; then + filehead=$(head -n $((pwrlim_line -2)) "$dts_file") + else + filehead=$(head -n $((pwrlim_line -1)) "$dts_file") + fi + #echo "$filehead" >&2 # debug + + filetail=$(tail -n +$((pwrlim_line +1)) "$dts_file") + #echo "$filetail" >&2 # debug + + echo "$filehead" > "$dts_file" + echo -e "$power_limit\n" >> "$dts_file" + echo "$filetail" >> "$dts_file" + + # Show result + echo -e "Updated power limit in ${Cyan}model${hwrev}.dtb${Off}" >&2 + echo " Old power_limit $pwr_lmt_old" >&2 + echo " New power_limit $pwr_limit" >&2 + fi +} + + check_modeldtb(){ # $1 is E10M20-T1 or M2D20 or M2D18 or M2D17 - if [[ -f /etc.defaults/model.dtb ]]; then - if ! grep --text "$1" /etc.defaults/model.dtb >/dev/null; then - if [[ $modelname == "DS1821+" ]] || [[ $modelname == "DS1621+" ]] ||\ - [[ $modelname == "DS1520+" ]] || [[ $modelname == "RS822rp+" ]] ||\ - [[ $modelname == "RS822+" ]] || [[ $modelname == "RS1221rp+" ]] ||\ - [[ $modelname == "RS1221+" ]]; - then - echo "" >&2 - if [[ -f ./dtb/${modelname}_model.dtb ]]; then - # Edited device tree blob exists in dtb folder with script - blob="./dtb/${modelname}_model.dtb" - elif [[ -f ./${modelname}_model.dtb ]]; then - # Edited device tree blob exists with script - blob="./${modelname}_model.dtb" - else - # Download edited device tree blob model.dtb from github - if cd /var/services/tmp; then - echo -e "Downloading ${modelname}_model.dtb" >&2 - repo=https://github.com/007revad/Synology_HDD_db - url=${repo}/raw/main/dtb/${modelname}_model.dtb - curl -LJO -m 30 --connect-timeout 5 "$url" - echo "" >&2 - cd "$scriptpath" || echo -e "${Error}ERROR${Off} Failed to cd to script location!" - else - echo -e "${Error}ERROR${Off} /var/services/tmp does not exist!" >&2 - fi + if [[ -f /etc.defaults/model.dtb ]]; then # Is device tree model + # Get syn_hw_revision, r1 or r2 etc (or just a linefeed if not a revision) + hwrevision=$(cat /proc/sys/kernel/syno_hw_revision) + + # If syno_hw_revision is r1 or r2 it's a real Synology, + # and I need to edit model_rN.dtb instead of model.dtb + if [[ $hwrevision =~ r[0-9] ]]; then + #echo "hwrevision: $hwrevision" >&2 # debug + hwrev="_$hwrevision" + fi - # Check we actually downloaded the file - if [[ -f /var/services/tmp/${modelname}_model.dtb ]]; then - blob="/var/services/tmp/${modelname}_model.dtb" - else - echo -e "${Error}ERROR${Off} Failed to download ${modelname}_model.dtb!" >&2 - fi - fi - if [[ -f $blob ]]; then - # Backup model.dtb - if ! backupdb "/etc.defaults/model.dtb"; then - echo -e "${Error}ERROR${Off} Failed to backup /etc.defaults/model.dtb!" >&2 - else - # Move and rename downloaded model.dtb - if mv "$blob" "/etc.defaults/model.dtb"; then - echo -e "Enabled ${Yellow}$1${Off} in ${Cyan}model.dtb${Off}" >&2 - else - echo -e "${Error}ERROR${Off} Failed to add support for ${1}" >&2 - fi - # Fix permissions if needed - octal=$(stat -c "%a %n" "/etc.defaults/model.dtb" | cut -d" " -f1) - if [[ ! $octal -eq 644 ]]; then - chmod 644 "/etc.defaults/model.dtb" - fi - fi - else - #echo -e "${Error}ERROR${Off} Missing file ${modelname}_model.dtb" >&2 - echo -e "${Error}ERROR${Off} Missing file $blob" >&2 + dtb_file="/etc.defaults/model${hwrev}.dtb" + dts_file="/etc.defaults/model${hwrev}.dts" + dtb2_file="/etc/model${hwrev}.dtb" + + + # NVMe power_limit + if grep power_limit /run/model.dtb >/dev/null; then + + if [ -f /sys/firmware/devicetree/base/power_limit ]; then + pwrval=$(cat /sys/firmware/devicetree/base/power_limit | cut -d"," -f1) + # Check pwrval is float or numeric + if [[ ! $pwrval =~ ^[0-9]+([.][0-9]+)?$ ]]; then + pwrval="100" fi else - echo -e "\n${Cyan}Contact 007revad to get an edited model.dtb file for your model.${Off}" >&2 + pwrval="100" + fi + + pwr_limit="" + nvme_drives=$(ls /sys/class/nvme | wc -w) + for i in $(seq 0 $((nvme_drives -1))); do + [ "$i" -eq 0 ] && pwr_limit="$pwrval" || pwr_limit="${pwr_limit},$pwrval" + done + + #echo "power_limit $pwr_limit" >&2 # debug + fi + + # Check power_limit and adapter card already in model.dtb + if grep "$pwr_limit" "$dtb_file" >/dev/null && grep "$1" "$dtb_file" >/dev/null + then + echo -e "${Yellow}$1${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 + return + fi + + + # Check if dtc exists and is executable + if [[ ! -x /usr/sbin/dtc ]]; then + if [[ -f ./bin/dtc ]]; then + cp -f ./bin/dtc /usr/sbin/dtc + chmod 755 /usr/sbin/dtc + else + download_dtc fi + fi + + # Check again if dtc exists and is executable + if [[ -x /usr/sbin/dtc ]]; then + + # Backup model.dtb + if ! backupdb "$dtb_file"; then + echo -e "${Error}ERROR${Off} Failed to backup ${dtb_file}!" >&2 + fi + + # Output model.dtb to model.dts + dtc -q -I dtb -O dts -o "$dts_file" "$dtb_file" # -q Suppress warnings + chmod 644 "$dts_file" + + # Edit model.dts + #edit_dts "E10M20-T1" # test + #edit_dts "M2D20" # test + #edit_dts "M2D18" # test + edit_dts "$1" + + [[ -n $pwr_limit ]] && set_pwr_limit + + # Compile model.dts to model.dtb + dtc -q -I dts -O dtb -o "$dtb_file" "$dts_file" # -q Suppress warnings + + # Set owner and permissions for model.dtb + chmod a+r "$dtb_file" + chown root:root "$dtb_file" + cp -pu "$dtb_file" "$dtb2_file" # Copy dtb file to /etc + + # Delete model.dts + rm "$dts_file" else - echo -e "${Yellow}$1${Off} already enabled in ${Cyan}model.dtb${Off}" >&2 + echo -e "${Error}ERROR${Off} Missing /usr/sbin/dtc or not executable!" >&2 fi fi } @@ -1334,7 +1514,7 @@ for c in "${m2cards[@]}"; do echo "" enable_card "$m2cardconf" E10M20-T1_sup_nic "E10M20-T1 NIC" enable_card "$m2cardconf" E10M20-T1_sup_nvme "E10M20-T1 NVMe" - enable_card "$m2cardconf" E10M20-T1_sup_sata "E10M20-T1 SATA" + #enable_card "$m2cardconf" E10M20-T1_sup_sata "E10M20-T1 SATA" check_modeldtb "$c" ;; M2D20) @@ -1429,7 +1609,7 @@ if [[ ${model:0:3} != "dva" ]]; then fi fi -# Optionally disable SynoMemCheck.service for DVA models +# Disable SynoMemCheck.service for DVA models if [[ ${model:0:3} == "dva" ]]; then memcheck="/usr/lib/systemd/system/SynoMemCheck.service" if [[ $(synogetkeyvalue "$memcheck" ExecStart) == "/usr/syno/bin/syno_mem_check" ]]; then @@ -1476,7 +1656,7 @@ if [[ $dsm -gt "6" ]]; then # DSM 6 as has no /proc/meminfo if [[ $ramtotal == "$setting" ]]; then #echo -e "\nSet max memory to $ramtotal MB." ramgb=$((ramtotal / 1024)) - echo -e "\nSet max memory to $ramtotal GB." + echo -e "\nSet max memory to $ramgb GB." else echo -e "\n${Error}ERROR${Off} Failed to change max memory!" fi @@ -1490,7 +1670,7 @@ if [[ $dsm -gt "6" ]]; then # DSM 6 as has no /proc/meminfo if [[ $settingbak == "$setting" ]]; then #echo -e "\nSet max memory to $ramtotal MB." ramgb=$((ramtotal / 1024)) - echo -e "\nRestored max memory to $ramtotal GB." + echo -e "\nRestored max memory to $ramgb GB." else echo -e "\n${Error}ERROR${Off} Failed to restore max memory!" fi @@ -1511,6 +1691,37 @@ if [[ $dsm -gt "6" ]]; then # DSM 6 as has no /proc/meminfo fi + +# Enable nvme support This probably should be before we look for NVMe drives. +# But it probably also needs a reboot after we change it. +if [[ $m2 != "no" ]]; then + # Check if nvme support is enabled + setting="$(get_key_value $synoinfo supportnvme)" + enabled="" + if [[ ! $setting ]]; then + # Add supportnvme="yes" + synosetkeyvalue "$synoinfo" supportnvme "yes" + enabled="yes" + elif [[ $setting == "no" ]]; then + # Change supportnvme="no" to "yes" + synosetkeyvalue "$synoinfo" supportnvme "yes" + enabled="yes" + elif [[ $setting == "yes" ]]; then + echo -e "\nNVMe support already enabled." + fi + + # Check if we enabled nvme support + setting="$(get_key_value $synoinfo supportnvme)" + if [[ $enabled == "yes" ]]; then + if [[ $setting == "yes" ]]; then + echo -e "\nEnabled NVMe support." + else + echo -e "\n${Error}ERROR${Off} Failed to enable NVMe support!" + fi + fi +fi + + # Enable m2 volume support if [[ $m2 != "no" ]]; then if [[ $m2exists == "yes" ]]; then From ab2bb13c80d1312dbbb7e3afe5c266ad4b5433fc Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 10 Nov 2023 21:52:02 +1100 Subject: [PATCH 16/77] Update CHANGES.txt --- CHANGES.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 0aa3746..fc4b478 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,7 @@ v3.2.66 - Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. -- Fixed bug where memory was shown in MB but with GB unit. +- Fixed bug where memory was shown in MB but with GB unit. +- Removed -i, --immutable option. v3.1.65 - Bug fix for NVMe drives with / in the model name for non-device tree Synology models. Issue #154 From 1d26a47c44fcd27b88161be412e6279eb5c82b57 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 10 Nov 2023 22:25:53 +1100 Subject: [PATCH 17/77] Update CHANGES.txt Removed 7.2.1 support --- CHANGES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index fc4b478..80319c5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,5 @@ v3.2.66 -- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. +- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2 and Update 3. - Fixed bug where memory was shown in MB but with GB unit. - Removed -i, --immutable option. From 07495d953b00bec753a28669c5989dd5963fa518 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Mon, 13 Nov 2023 07:02:52 +1100 Subject: [PATCH 18/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index a3bccbb..c3b581e 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -749,10 +749,8 @@ fixdrivemodel(){ getdriveinfo(){ # $1 is /sys/block/sata1 etc - - # Skip USB drives usb=$(grep "$(basename -- "$1")" /proc/mounts | grep "[Uu][Ss][Bb]" | cut -d" " -f1-2) - if [[ ! $usb ]]; then + if [[ ! $usb ]]; then # Skip USB drives # Get drive model hdmodel=$(cat "$1/device/model") From 7a0f5b688792bdc1fd6f664b034573b2a8c4be19 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 15:47:36 +1100 Subject: [PATCH 19/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index c3b581e..e2b8314 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -239,11 +239,11 @@ fi #echo -e "bash version: $(bash --version | head -1 | cut -d' ' -f4)\n" # debug -ding(){ +ding(){ printf \\a } -usage(){ +usage(){ cat < /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support @@ -1013,7 +1013,7 @@ fi # Don't check .db.new as new installs don't have a .db.new file -getdbtype(){ +getdbtype(){ # Detect drive db type if grep -F '{"disk_compatbility_info":' "$1" >/dev/null; then # DSM 7 drive db files start with {"disk_compatbility_info": @@ -1029,7 +1029,7 @@ getdbtype(){ } -backupdb(){ +backupdb(){ # Backup database file if needed if [[ ! -f "$1.bak" ]]; then if [[ $(basename "$1") == "synoinfo.conf" ]]; then @@ -1069,7 +1069,7 @@ done #------------------------------------------------------------------------------ # Edit db files -editcount(){ +editcount(){ # Count drives added to host db files if [[ $1 =~ .*\.db$ ]]; then db1Edits=$((db1Edits +1)) @@ -1079,7 +1079,7 @@ editcount(){ } -editdb7(){ +editdb7(){ if [[ $1 == "append" ]]; then # model not in db file #if sed -i "s/}}}/}},\"$hdmodel\":{$fwstrng$default/" "$2"; then # append if sed -i "s/}}}/}},\"${hdmodel//\//\\/}\":{$fwstrng$default/" "$2"; then # append @@ -1114,7 +1114,7 @@ editdb7(){ } -updatedb(){ +updatedb(){ hdmodel=$(printf "%s" "$1" | cut -d"," -f 1) fwrev=$(printf "%s" "$1" | cut -d"," -f 2) @@ -1239,7 +1239,7 @@ done # RS822RP+, RS822+, RS1221RP+ and RS1221+ with DSM older than 7.2 need # device tree blob file from DSM 7.2 to support M2D18 -enable_card(){ +enable_card(){ # $1 is the file # $2 is the section # $3 is the card model and mode @@ -1264,7 +1264,7 @@ enable_card(){ } -dts_m2_card(){ +dts_m2_card(){ # $1 is the card model # $2 is the dts file @@ -1338,7 +1338,7 @@ fi } -download_dtc(){ +download_dtc(){ # Download dtc from github echo "Downloading dtc" >&2 if cd /var/services/tmp; then @@ -1354,7 +1354,7 @@ download_dtc(){ } -edit_dts(){ +edit_dts(){ #set -x # debug @@ -1374,7 +1374,7 @@ edit_dts(){ } -set_pwr_limit(){ +set_pwr_limit(){ if ! grep "$pwr_limit" "$dts_file" >/dev/null; then # Save current power_limit pwr_lmt_old=$(grep power_limit "$dts_file" | cut -d\" -f2) @@ -1407,7 +1407,7 @@ set_pwr_limit(){ } -check_modeldtb(){ +check_modeldtb(){ # $1 is E10M20-T1 or M2D20 or M2D18 or M2D17 if [[ -f /etc.defaults/model.dtb ]]; then # Is device tree model # Get syn_hw_revision, r1 or r2 etc (or just a linefeed if not a revision) From d86afe7e4f9562142f0b5f0b3e070b4115aca1e6 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:36:10 +1100 Subject: [PATCH 20/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index e2b8314..df82798 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -745,7 +745,7 @@ fixdrivemodel(){ hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi -} +} getdriveinfo(){ # $1 is /sys/block/sata1 etc From 8c82cb3e90bb26130d7780dfccfb1df7bf58c909 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:37:36 +1100 Subject: [PATCH 21/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index df82798..eebd781 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -726,7 +726,8 @@ fi # Get list of installed SATA, SAS and M.2 NVMe/SATA drives, # PCIe M.2 cards and connected Expansion Units. -fixdrivemodel(){ +fixdrivemodel() +{ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') From 8a7255c9a547221fc82e50f332ba1104439ab0ea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:38:12 +1100 Subject: [PATCH 22/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index eebd781..93d9ec9 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -726,8 +726,8 @@ fi # Get list of installed SATA, SAS and M.2 NVMe/SATA drives, # PCIe M.2 cards and connected Expansion Units. -fixdrivemodel() -{ +fixdrivemodel(){ + echo # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') From 26a20a10297e9504e3cea8407ea6480c14525ee9 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:38:52 +1100 Subject: [PATCH 23/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 93d9ec9..76edd5f 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -727,7 +727,6 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ - echo # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') @@ -746,7 +745,8 @@ fixdrivemodel(){ hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi -} +} + getdriveinfo(){ # $1 is /sys/block/sata1 etc From ab8a84b4b997ce3b9efb96e073af72e72fc1aff2 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:45:19 +1100 Subject: [PATCH 24/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 76edd5f..399700a 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -727,12 +727,10 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ - # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi - # Brands that return "BRAND " and need "BRAND " removed. if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name From 62314ada6671e5aefd61e021a4fa2e829de96704 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:46:29 +1100 Subject: [PATCH 25/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 399700a..da6fa49 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -727,12 +727,14 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ + # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi + # Brands that return "BRAND " and need "BRAND " removed. if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - # See Smartmontools database in /var/lib/smartmontools/drivedb.db + # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name @@ -745,7 +747,6 @@ fixdrivemodel(){ fi } - getdriveinfo(){ # $1 is /sys/block/sata1 etc usb=$(grep "$(basename -- "$1")" /proc/mounts | grep "[Uu][Ss][Bb]" | cut -d" " -f1-2) From 2ba6330f6421ef94dce6eee9f97f3d97e0752521 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:47:20 +1100 Subject: [PATCH 26/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index da6fa49..bb906c5 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -726,26 +726,6 @@ fi # Get list of installed SATA, SAS and M.2 NVMe/SATA drives, # PCIe M.2 cards and connected Expansion Units. -fixdrivemodel(){ - # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; then - hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') - fi - - # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - # See Smartmontools database in /var/lib/smartmontools/drivedb.db - hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name - hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name - hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name - - # Old drive brands - hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name - hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name - hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name - hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name - fi -} getdriveinfo(){ # $1 is /sys/block/sata1 etc From b5914a4fdc4612f41dd5fcc799e711bc3af263ea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:51:23 +1100 Subject: [PATCH 27/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index bb906c5..da6fa49 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -726,6 +726,26 @@ fi # Get list of installed SATA, SAS and M.2 NVMe/SATA drives, # PCIe M.2 cards and connected Expansion Units. +fixdrivemodel(){ + # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 + if [[ $1 =~ MZ.*" 00Y" ]]; then + hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') + fi + + # Brands that return "BRAND " and need "BRAND " removed. + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + # See Smartmontools database in /var/lib/smartmontools/drivedb.db + hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name + hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name + hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name + + # Old drive brands + hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name + hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name + hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name + hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name + fi +} getdriveinfo(){ # $1 is /sys/block/sata1 etc From d2afbaae54e4be1dff044d35d47a5f20791b1e3b Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:51:49 +1100 Subject: [PATCH 28/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index da6fa49..eda7f5c 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -1,4 +1,28 @@ #!/usr/bin/env bash + +fixdrivemodel(){ + # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 + if [[ $1 =~ MZ.*" 00Y" ]]; then + hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') + fi + + # Brands that return "BRAND " and need "BRAND " removed. + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + # See Smartmontools database in /var/lib/smartmontools/drivedb.db + hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name + hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name + hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name + + # Old drive brands + hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name + hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name + hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name + hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name + fi +} + + + # shellcheck disable=SC1083,SC2054,SC2121,SC2207 #-------------------------------------------------------------------------------------------------- # Github: https://github.com/007revad/Synology_HDD_db From bd38a2fa12cff4d37dcfd14eb0c4f62d91dbf7ea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:52:45 +1100 Subject: [PATCH 29/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index eda7f5c..94fce8c 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -fixdrivemodel(){ +TEST_fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') From 358d0acff1bd1cdb3987ff83a72598ff2ab837f9 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:54:28 +1100 Subject: [PATCH 30/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 94fce8c..d8a96d3 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -1,28 +1,4 @@ #!/usr/bin/env bash - -TEST_fixdrivemodel(){ - # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; then - hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') - fi - - # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - # See Smartmontools database in /var/lib/smartmontools/drivedb.db - hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name - hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name - hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name - - # Old drive brands - hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name - hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name - hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name - hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name - fi -} - - - # shellcheck disable=SC1083,SC2054,SC2121,SC2207 #-------------------------------------------------------------------------------------------------- # Github: https://github.com/007revad/Synology_HDD_db @@ -751,19 +727,13 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ - # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi - - # Brands that return "BRAND " and need "BRAND " removed. if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name - - # Old drive brands hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name From b9a0379afe0849f159b1beb43860a2f6b5728dd1 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:55:19 +1100 Subject: [PATCH 31/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index d8a96d3..941f026 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -731,13 +731,7 @@ fixdrivemodel(){ hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name - hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name - hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name - hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name - hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name - hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name - hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name + echo fi } From f71e8a2674172bd5030600d24b54e580aa0d6ad0 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:56:11 +1100 Subject: [PATCH 32/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 941f026..7f4d96a 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,10 +728,10 @@ fi fixdrivemodel(){ if [[ $1 =~ MZ.*" 00Y" ]]; then - hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') + echo fi if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then - echo + echo fi } From f78468f447697005f7bbbdf0b8dcde1fb3e4e893 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:56:40 +1100 Subject: [PATCH 33/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 7f4d96a..932ac52 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -729,8 +729,8 @@ fi fixdrivemodel(){ if [[ $1 =~ MZ.*" 00Y" ]]; then echo - fi - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + #fi + #if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then echo fi } From 8fe84e5adb045bcbcd40d684202c6619b2dd354b Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:57:28 +1100 Subject: [PATCH 34/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 932ac52..6665713 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -727,10 +727,10 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ - if [[ $1 =~ MZ.*" 00Y" ]]; then + if [[ $1 ]]; then echo - #fi - #if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + fi + if [[ $1 ]]; then echo fi } From 215806eaac18fe702ee6411f358ee84fcaabf89a Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:58:24 +1100 Subject: [PATCH 35/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 6665713..9ad3b43 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -727,11 +727,24 @@ fi # PCIe M.2 cards and connected Expansion Units. fixdrivemodel(){ + # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 +# if [[ $1 =~ MZ.*" 00Y" ]]; then if [[ $1 ]]; then - echo + hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi - if [[ $1 ]]; then - echo + + # Brands that return "BRAND " and need "BRAND " removed. + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + # See Smartmontools database in /var/lib/smartmontools/drivedb.db + hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name + hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name + hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name + + # Old drive brands + hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name + hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name + hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name + hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi } From d28d28802a5f451ff6480a48dcf33f5e95b86f1e Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 18:59:38 +1100 Subject: [PATCH 36/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 9ad3b43..d0bc36c 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,13 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 -# if [[ $1 =~ MZ.*" 00Y" ]]; then - if [[ $1 ]]; then + if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + if [[ $1 ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From 55de717f8365748941d87bbcabf14437a80415ea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:00:10 +1100 Subject: [PATCH 37/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index d0bc36c..59f0559 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,7 +728,7 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; then + if [[ $1 ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi From 5f065e4fbc38e2c514976fb72b1a9ca73514df2b Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:00:43 +1100 Subject: [PATCH 38/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 59f0559..47c4503 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -733,7 +733,7 @@ fixdrivemodel(){ fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 ]]; then + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From 0cb726f168d298d831bb5b8b8c938ec09991cf92 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:01:24 +1100 Subject: [PATCH 39/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 47c4503..90394e6 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,12 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 ]]; then + if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + if [[ $1 ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name @@ -745,6 +745,7 @@ fixdrivemodel(){ hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi + fi } getdriveinfo(){ From a1a8590912c6e1527a8afbc9f47a11258058420b Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:01:55 +1100 Subject: [PATCH 40/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 90394e6..d0bc36c 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -745,7 +745,6 @@ fixdrivemodel(){ hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi - fi } getdriveinfo(){ From 74c465e1a9cd18cfee9a14125a80ff3a188bac61 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:02:32 +1100 Subject: [PATCH 41/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index d0bc36c..47c4503 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,12 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; then + if [[ $1 ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 ]]; then + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From 40507530b8be0b7c8ae5b3ba92c8eb620c85f522 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:03:03 +1100 Subject: [PATCH 42/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 47c4503..59f0559 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -733,7 +733,7 @@ fixdrivemodel(){ fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + if [[ $1 ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From 558b3ad2446332109e98d83024c00ec721f43af0 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:08:24 +1100 Subject: [PATCH 43/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 59f0559..0d8cd0e 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,12 +728,14 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 ]]; then + if [[ $1 =~ MZ.*" 00Y" ]]; + then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 ]]; then + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; + then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From e2c7c7eb3b14ac38b745590fea77567f8e28714b Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:08:55 +1100 Subject: [PATCH 44/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 0d8cd0e..6554a50 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,14 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; - then + if [[ $1 =~ MZ.*" 00Y" ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; - then + if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From c2bdf8b46720ec1be44ef8ab149496587196e144 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:11:06 +1100 Subject: [PATCH 45/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 6554a50..5a07c32 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,12 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.*" 00Y" ]]; then + if [[ $1 =~ MZ.* 00Y ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}" ".* ]]; then + if [[ $1 =~ ^[A-Za-z]{1,7} .* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From 707c82f006053e75420c9a7e53ff0e17a7332d30 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:20:53 +1100 Subject: [PATCH 46/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 5a07c32..263ea4a 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -728,12 +728,12 @@ fi fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 - if [[ $1 =~ MZ.* 00Y ]]; then + if [[ $1 =~ MZ.*' 00Y' ]]; then hdmodel=$(printf "%s" "$1" | sed 's/ 00Y.*//') fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7} .* ]]; then + if [[ $1 =~ ^[A-Za-z]{1,7}' '.* ]]; then # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name From f39eac58e83034495eb5364da609487ab916ce85 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 18 Nov 2023 08:05:54 +1100 Subject: [PATCH 47/77] Create Depreciated.txt These model.dtb files are no longer needed. --- dtb/Depreciated.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 dtb/Depreciated.txt diff --git a/dtb/Depreciated.txt b/dtb/Depreciated.txt new file mode 100644 index 0000000..4bbd93a --- /dev/null +++ b/dtb/Depreciated.txt @@ -0,0 +1 @@ +These model.dtb files are no longer needed. From 0d0ae9bf83e4dda83741cbfc171d833850f344a2 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 18 Nov 2023 08:06:09 +1100 Subject: [PATCH 48/77] Rename Depreciated.txt to _Depreciated.txt --- dtb/{Depreciated.txt => _Depreciated.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename dtb/{Depreciated.txt => _Depreciated.txt} (100%) diff --git a/dtb/Depreciated.txt b/dtb/_Depreciated.txt similarity index 100% rename from dtb/Depreciated.txt rename to dtb/_Depreciated.txt From 30808c43a3209c81093a415e7a19d9eb4561cf92 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 18 Nov 2023 08:06:42 +1100 Subject: [PATCH 49/77] Rename _Depreciated.txt to All_Depreciated.txt --- dtb/{_Depreciated.txt => All_Depreciated.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename dtb/{_Depreciated.txt => All_Depreciated.txt} (100%) diff --git a/dtb/_Depreciated.txt b/dtb/All_Depreciated.txt similarity index 100% rename from dtb/_Depreciated.txt rename to dtb/All_Depreciated.txt From dc8d0283bf3191417761b043da84099df69969d2 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Mon, 20 Nov 2023 00:32:40 +1100 Subject: [PATCH 50/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63af5f6..c4f6b49 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following PayPal donators and GitHub sponsors +- Mir Hekmat - Andrew Tapp - Peter Weißflog - Mir Hekmat From 85d4644eecf5e94dbb00083015c853170bcc1c51 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Tue, 21 Nov 2023 05:04:16 +1100 Subject: [PATCH 51/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c4f6b49..750d2b8 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following PayPal donators and GitHub sponsors +- bcollins - Mir Hekmat - Andrew Tapp - Peter Weißflog From 25897a9711e822489c92e3532834a3cd42ced3e6 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Tue, 21 Nov 2023 11:18:23 +1100 Subject: [PATCH 52/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 750d2b8..f3ceace 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following PayPal donators and GitHub sponsors +- Angel Scandinavia - bcollins - Mir Hekmat - Andrew Tapp From b97d1095b1f4fe0667c5f999bac62c03b94191f5 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Wed, 22 Nov 2023 11:11:09 +1100 Subject: [PATCH 53/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f3ceace..c3f61e1 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following PayPal donators and GitHub sponsors +- Kleissner Investments - Angel Scandinavia - bcollins - Mir Hekmat From 37ff5b603722eb0eef1c589cf0a5caa1bd0b21af Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 23 Nov 2023 07:17:46 +1100 Subject: [PATCH 54/77] Add files via upload --- bin/bc | Bin 0 -> 84960 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bin/bc diff --git a/bin/bc b/bin/bc new file mode 100644 index 0000000000000000000000000000000000000000..64b3cc9202030b52441e6e1785753434fdff5917 GIT binary patch literal 84960 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 literal 0 HcmV?d00001 From 4c12b1feddf97aab72a92c0197213eb49c0a0aea Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 23 Nov 2023 20:51:12 +1100 Subject: [PATCH 55/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3f61e1..755aaea 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits Thank you to the following PayPal donators and GitHub sponsors +- Neil Tapp - Kleissner Investments - Angel Scandinavia - bcollins From d8f178701060ab7994fd09069bed9f5f852c44a0 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 23 Nov 2023 21:17:59 +1100 Subject: [PATCH 56/77] Update README.md --- README.md | 54 ++++++++++++++---------------------------------------- 1 file changed, 14 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 755aaea..c01f41b 100644 --- a/README.md +++ b/README.md @@ -105,43 +105,17 @@ sudo -i /path-to-script/syno_hdd_db.sh -nr --showedits **Donators** -Thank you to the following PayPal donators and GitHub sponsors - -- Neil Tapp -- Kleissner Investments -- Angel Scandinavia -- bcollins -- Mir Hekmat -- Andrew Tapp -- Peter Weißflog -- Mir Hekmat -- Joseph Skup -- Dirk Kurfuerst -- Gareth Locke -- Rory de Ruijter -- Nathan O'Farrell -- Harry Bos -- Mark-Philipp Wolfger -- Filip Kraus -- John Pham -- Alejandro Bribian Rix -- Daniel Hofer -- Bogdan-Stefan Rotariu -- Kevin Boatswain -- anschluss-org -- Yemeth -- Patrick Thomas -- Manuel Marquez Corral -- Evrard Franck -- Chad Palmer -- 侯​永政 -- CHEN​HAN-YING -- Eric Wells -- Massimiliano Pesce -- JasonEMartin -- Gerrit Klussmann -- Alain Aube -- Robert Kraut -- Charles-Edouard Poisnel -- Oliver Busch -- And the anonymous donors and private sponsors +Thank you to the following PayPal donators, GitHub sponsors and hardware donators + +| | | | | +|--------------------|--------------------|----------------------|----------------------| +| Neil Tapp | zen1605 | Kleissner Investments | Angel Scandinavia | +| bcollins | Peter jackson | Mir Hekmat | Andrew Tapp | +| Peter Weißflog | Joseph Skup | Dirk Kurfuerst | Gareth Locke | +| Rory de Ruijter | Nathan O'Farrell | Harry Bos | Mark-Philipp Wolfger | +| Filip Kraus | John Pham | Alejandro Bribian Rix | Daniel Hofer | +| Bogdan-Stefan Rotariu | Kevin Boatswain | anschluss-org | Yemeth | +| Patrick Thomas | Manuel Marquez Corral | Evrard Franck | Chad Palmer | +| 侯​永政 | CHEN​HAN-YING | Eric Wells | Massimiliano Pesce | +| JasonEMartin | Gerrit Klussmann | Alain Aube | Robert Kraut | +| Charles-Edouard Poisnel | Oliver Busch | anonymous donors | private sponsors | From b9383b838adbb32cf7821ff7745716608141995f Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 25 Nov 2023 16:20:22 +1100 Subject: [PATCH 57/77] Update syno_hdd_db.sh v3.2.67 - Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree, - and are using DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. - Now edits model.dtb instead of downloading a pre-edited version. - Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161 - Now supports NVMe drives that show as Unknown brand in storage manager: Issue #161 - ADATA, Corsair, Gigabyte, HS/MAXIO, MSI, Netac, Phison, PNY - SK Hynix, Solidigm, SPCC/Lexar, TEAMGROUP, UMIS, ZHITAI - Fixed bug where memory was shown in MB but with GB unit. --- syno_hdd_db.sh | 505 ++++++++++++++++--------------------------------- 1 file changed, 162 insertions(+), 343 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 263ea4a..aff7000 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -4,12 +4,6 @@ # Github: https://github.com/007revad/Synology_HDD_db # Script verified at https://www.shellcheck.net/ # -# Easiest solution: -# Edit /etc.defaults/synoinfo.conf and change support_disk_compatibility="yes" to "no" and reboot. -# Then all drives can be used without error messages. -# -# But lets do this the proper way by adding our drive models to the appropriate .db file. -# # To run in task manager as root (manually or scheduled): # /volume1/scripts/syno_hdd_db.sh # replace /volume1/scripts/ with path to script # @@ -21,212 +15,22 @@ # sudo -i /volume1/scripts/syno_hdd_db.sh -force -showedits #-------------------------------------------------------------------------------------------------- -# TODO -# Maybe also edit the other disk compatibility db in synoboot, used during boot time. -# It's also parsed and checked and probably in some cases it could be more critical to patch that one instead. -# -# Solve issue of --restore option restoring files that were backed up with older DSM version. -# Change how synoinfo.conf is backed up and restored to prevent issue #73 - -# DONE +# CHANGES # Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree, -# and are using DSM 7.2 Update 2, Update 3, 7.2.1 and 7.2.1 Update 1. -# -# Fixed bug where memory was shown in MB but with GB unit. -# -# -# Bug fix for script not updating itself if .sh file had been renamed. -# -# Bug fix for missing executable permissions if .sh file had been renamed. -# -# Bug fix to prevent update loop if script's .tar.gz file already exists in /tmp. -# -# Bug fix to prevent update failing if script's temp folder already exists in /tmp. -# -# Now only copies CHANGES.txt to script location if script is located on a volume, -# to prevent putting CHANGES.txt on system partition (/usr/bin, /usr/sbin, /root etc.) -# -# Added -e --email option to disable coloured output to make task scheduler emails easier to read. -# -# -# Added support to disable unsupported memory warnings on DVA models. -# -# Fixed bug where newly connected expansion units weren't found until up to 24 hours later. #124 -# -# Added enabling E10M20-T1, M2D20 and M2D18 for DS1821+, DS1621+ and DS1520+. -# Added enabling M2D18 for RS822RP+, RS822+, RS1221RP+ and RS1221+ with older DSM version. -# -# Fixed enabling E10M20-T1, M2D20 and M2D18 cards in models that don't officially support them. -# -# Enable NVMe drive use for models that do not have NVMe drives enabled. -# -# Fixed bugs where the calculated amount of installed memory could be incorrect: -# - If last memory socket was empty an invalid unit of bytes could be used. Issue #106 -# - When dmidecode returned MB for one ram module and GB for another ram module. Issue #107 -# -# Fixed bug displaying the max memory setting if total installed memory was less than the max memory. Issue #107 -# -# Fixed bug where sata1 drive firmware version was wrong if there was a sata10 drive. -# -# Minor bug fix for checking amount of installed memory. -# -# Now enables any installed Synology M.2 PCIe cards for models that don't officially support them. -# -# Added -i, --immutable option to enable immutable snapshots on models older than '20 series running DSM 7.2. -# -# Changed help to show that -r, --ram also sets max memory to the amount of installed memory. -# -# Changed the "No M.2 cards found" to "No M.2 PCIe cards found" to make it clearer. -# -# Added "You may need to reboot" message when NVMe drives were detected. -# -# Fixed HDD/SSD firmware versions always being 4 characters long (for DSM 7.2 and 6.2.4 Update 7). -# -# Fixed detecting the amount of installed memory (for DSM 7.2 which now reports GB instead of MB). -# -# Fixed USB drives sometimes being detected as internal drives (for DSM 7.2). -# -# Fixed error if /run/synostorage/disks/nvme0n1/m2_pool_support doesn't exist yet (for DSM 7.2). -# -# Fixed drive db update still being disabled in /etc/synoinfo.conf after script run without -n or --noupdate option. -# -# Fixed drive db update still being disabled in /etc/synoinfo.conf after script run with --restore option. -# -# Fixed permissions on restored files being incorrect after script run with --restore option. -# -# Fixed permissions on backup files. -# -# Now skips checking the amount of installed memory in DSM 6 (because it was never working). -# -# Now the script reloads itself after updating. -# -# Added --autoupdate=AGE option to auto update synology_hdd_db x days after new version released. -# Autoupdate logs update success or errors to DSM system log. -# -# Added -w, --wdda option to disable WDDA -# https://kb.synology.com/en-us/DSM/tutorial/Which_Synology_NAS_supports_WDDA -# https://www.youtube.com/watch?v=cLGi8sPLkLY -# https://community.synology.com/enu/forum/1/post/159537 -# -# Added --restore info to --help -# -# Updated restore option to download the latest db files from Synology -# -# Now warns you if you try to run it in sh with "sh scriptname.sh" -# -# Fixed DSM 6 bug where the drives were being duplicated in the .db files each time the script was run. -# -# Fixed DSM 6 bug where the .db files were being duplicated as .dbr each time the db files were edited. -# -# Fixed bug where expansion units ending in RP or II were not detected. -# -# Added a --restore option to undo all changes. -# -# Now looks for and edits both v7 and non-v7 db files to solve issue #11 for RS '21 models running DSM 6.2.4. -# This will also ensure the script still works if: -# Synology append different numbers to the db file names in DSM 8 etc. -# The detected NAS model name does not match the .db files' model name. -# -# Now backs up the .db.new files (as well as the .db files). -# -# Now shows max memory in GB instead of MB. -# -# Now shows status of "Support disk compatibility" setting even if it wasn't changed. -# -# Now shows status of "Support memory compatibility" setting even if it wasn't changed. -# -# Improved shell output when editing max memory setting. -# -# Changed method of checking if drive is a USB drive to prevent ignoring internal drives on RS models. -# -# Changed to not run "synostgdisk --check-all-disks-compatibility" in DSM 6.2.3 (which has no synostgdisk). -# -# Now edits max supported memory to match the amount of memory installed, if greater than the current max memory setting. -# -# Now allows creating M.2 storage pool and volume all from Storage Manager -# -# Now always shows your drive entries in the host db file if -s or --showedits used, -# instead of only db file was edited during that run. -# -# Changed to show usage if invalid long option used instead of continuing. -# -# Fixed bug inserting firmware version for already existing model. -# -# Changed to add drives' firmware version to the db files (to support data deduplication). -# See https://github.com/007revad/Synology_enable_Deduplication -# -# Changed to be able to edit existing drive entries in the db files to add the firmware version. -# -# Now supports editing db files that don't currently have any drives listed. -# -# Fixed bug where the --noupdate option was coded as --nodbupdate. Now either will work. -# -# Fixed bug in re-enable drive db updates -# -# Fixed "download new version" failing if script was run via symlink or ./ -# -# Changed to show if no M.2 cards were found, if M.2 drives were found. -# -# Changed latest version check to download to /tmp and extract files to the script's location, -# replacing the existing .sh and readme.txt files. -# -# Added a timeouts when checking for newer script version in case github is down or slow. -# -# Added option to disable incompatible memory notifications. -# -# Now finds your expansion units' model numbers and adds your drives to their db files. -# -# Now adds your M.2 drives to your M.2 PCI cards db files (M2Dxx and E10M20-T1 and future models). -# -# Improved flags/options checking and added usage help. -# -# Can now download the latest script version for you (if you have user home service enabled in DSM). -# -# Now adds 'support_m2_pool="yes"' line for models that don't have support_m2_pool in synoinfo.conf -# to (hopefully) prevent losing your SSH created M2 volume when running this script on models -# that DSM 7.2 Beta does not list as supported for creating M2 volumes. -# -# Changed Synology model detection to be more reliable (for models that came in different variations). -# -# Changed checking drive_db_test_url setting to be more durable. -# -# Added removal of " 00Y" from end of Samsung/Lenovo SSDs to fix issue #13. -# -# Fixed bug where removable drives were being detected and added to drive database. -# -# Fixed bug where "M.2 volume support already enabled" message appeared when NAS had no M.2 drives. -# -# Added check that M.2 volume support is enabled (on supported models). -# -# Added support for M.2 SATA drives. -# -# Can now skip processing M.2 drives by running script with the -m2 flag. -# -# Changed method of getting drive and firmware version so script is faster and easier to maintain. -# - No longer using smartctl or hdparm. -# -# Changed SAS drive firmware version detection to support SAS drives that hdparm doesn't work with. -# -# Removed error message and aborting if *.db.new not found (clean DSM installs don't have a *.db.new). -# -# Force DSM to check disk compatibility so reboot not needed (DSM 6 may still need a reboot). -# -# Fixed DSM 6 issue when DSM 6 has the old db file format. -# -# Add support for SAS drives. -# -# Get HDD/SSD/SAS drive model number with smartctl instead of hdparm. +# and are using DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. # -# Check if there is a newer script version available. +# Now edits model.dtb instead of downloading a pre-edited version. # -# Add support for NVMe drives. +# Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161 # -# Prevent DSM auto updating the drive database. +# Now supports NVMe drives that show as Unknown brand in storage manager: Issue #161 +# - ADATA, Corsair, Gigabyte, HS/MAXIO, MSI, Netac, Phison, PNY +# - SK Hynix, Solidigm, SPCC/Lexar, TEAMGROUP, UMIS, ZHITAI # -# Optionally disable "support_disk_compatibility". +# Fixed bug where memory was shown in MB but with GB unit. -scriptver="v3.2.66" +scriptver="v3.2.67" script=Synology_HDD_db repo="007revad/Synology_HDD_db" @@ -310,9 +114,6 @@ if options="$(getopt -o abcdefghijklmnopqrstuvwxyz0123456789 -l \ -r|--ram) # Disable "support_memory_compatibility" ram=yes ;; - -i|--immutable) # Enable "support_worm" (immutable snapshots) - immutable=yes # Does not work for models without support_worm=yes already - ;; -w|--wdda) # Disable "support_memory_compatibility" wdda=no ;; @@ -391,11 +192,6 @@ if [[ $dsm -gt "6" ]]; then fi # Get Synology model - -# This doesn't work for drives migrated from different model -#model=$(find /var/lib/disk-compatibility -regextype egrep -regex ".*host(_v7)?\.db$" |\ -# cut -d"/" -f5 | cut -d"_" -f1 | uniq) - model=$(cat /proc/sys/kernel/syno_hw_version) modelname="$model" @@ -430,6 +226,13 @@ elif [[ $model =~ '-j'$ ]]; then # GitHub issue #2 echo -e "\nUsing model: $model" fi + +# Get StorageManager version +storagemgrver=$(synopkg version StorageManager) +# Show StorageManager version +if [[ $storagemgrver ]]; then echo -e "StorageManager $storagemgrver\n"; fi + + # Show options used echo "Using options: ${args[*]}" @@ -726,6 +529,68 @@ fi # Get list of installed SATA, SAS and M.2 NVMe/SATA drives, # PCIe M.2 cards and connected Expansion Units. +vendor_from_id(){ + # Vendor ids missing in /usr/syno/etc.defaults/pci_vendor_ids.conf + # $1 is vendor id + # https://devicehunt.com/all-pci-vendors + vendor="" + case "${1,,}" in + 0x10ec) vendor=TEAMGROUP ;; + 0x025e) vendor=Solidigm ;; + 0x1458) vendor=Gigabyte ;; + 0x1462) vendor=MSI ;; + 0x196e) vendor=PNY ;; + 0x1987) vendor=Phison ;; + 0x1b1c) vendor=Corsair ;; + 0x1c5c) vendor="SK Hynix" ;; + 0x1cc4) vendor=UMIS ;; + 0x1cfa) vendor=Corsair ;; # Memory only? + 0x1d97) vendor=SPCC/Lexar ;; # 2 brands with same vid + 0x1dbe) vendor=ADATA ;; + 0x1e49) vendor=ZHITAI ;; + 0x1e4b) vendor=HS/MAXIO ;; # 2 brands with same vid + 0x1f40) vendor=Netac ;; + *) + echo -e "\n${Error}WARNING{OFF} No vendor found for id $1" >&2 + echo -e "Contact 007revad to get your drive added.\n" >&2 + ;; + esac +} + +set_vendor(){ + # Add missing vendors to /usr/syno/etc.defaults/pci_vendor_ids.conf + if [[ $vendor ]]; then + if ! grep "$vid" "$vidfile" >/dev/null; then + synosetkeyvalue "$vidfile" "${vid,,}" "$vendor" + val=$(synogetkeyvalue "$vidfile" "${vid,,}") + if [[ $val == "${vendor}" ]]; then + echo "Added $vendor to pci_vendor_ids" >&2 + else + echo "Failed to add $vendor to pci_vendor_ids!" >&2 + fi + fi + if ! grep "$vid" "$vidfile2" >/dev/null; then + synosetkeyvalue "$vidfile2" "${vid,,}" "$vendor" + fi + fi +} + +get_vid(){ + # $1 is /dev/nvme0n1 etc + if [[ $1 ]]; then + vid=$(nvme id-ctrl "$1" | grep -E ^vid | awk '{print $NF}') + if [[ $vid ]]; then + val=$(synogetkeyvalue "$vidfile" "${vid,,}") + if [[ -z $val ]]; then + vendor_from_id "$vid" && set_vendor + fi + fi + fi +} + +vidfile="/usr/syno/etc.defaults/pci_vendor_ids.conf" +vidfile2="/usr/syno/etc/pci_vendor_ids.conf" + fixdrivemodel(){ # Remove " 00Y" from end of Samsung/Lenovo SSDs # Github issue #13 if [[ $1 =~ MZ.*' 00Y' ]]; then @@ -733,8 +598,8 @@ fixdrivemodel(){ fi # Brands that return "BRAND " and need "BRAND " removed. - if [[ $1 =~ ^[A-Za-z]{1,7}' '.* ]]; then - # See Smartmontools database in /var/lib/smartmontools/drivedb.db + if [[ $1 =~ ^[A-Za-z]{3,7}' '.* ]]; then + # See Smartmontools database in /var/lib/smartmontools/drivedb.db hdmodel=${hdmodel#"WDC "} # Remove "WDC " from start of model name hdmodel=${hdmodel#"HGST "} # Remove "HGST " from start of model name hdmodel=${hdmodel#"TOSHIBA "} # Remove "TOSHIBA " from start of model name @@ -743,14 +608,18 @@ fixdrivemodel(){ hdmodel=${hdmodel#"Hitachi "} # Remove "Hitachi " from start of model name hdmodel=${hdmodel#"SAMSUNG "} # Remove "SAMSUNG " from start of model name hdmodel=${hdmodel#"FUJISTU "} # Remove "FUJISTU " from start of model name + elif [[ $1 =~ ^'APPLE HDD '.* ]]; then + # Old drive brands hdmodel=${hdmodel#"APPLE HDD "} # Remove "APPLE HDD " from start of model name fi } getdriveinfo(){ # $1 is /sys/block/sata1 etc + + # Skip USB drives usb=$(grep "$(basename -- "$1")" /proc/mounts | grep "[Uu][Ss][Bb]" | cut -d" " -f1-2) - if [[ ! $usb ]]; then # Skip USB drives + if [[ ! $usb ]]; then # Get drive model hdmodel=$(cat "$1/device/model") @@ -821,6 +690,7 @@ getcardmodel(){ } m2_pool_support(){ + # M.2 drives in M2 adaptor card do not support storage pools if [[ $isinm2card != "yes" ]]; then if [[ -f /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support ]]; then # GitHub issue #86, 87 echo 1 > /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support @@ -846,6 +716,11 @@ for d in /sys/block/*; do nvme*) if [[ $d =~ nvme[0-9][0-9]?n[0-9][0-9]?$ ]]; then if [[ $m2 != "no" ]]; then + # Fix unknown vendor id if needed. GitHub issue #161 + # "Failed to get disk vendor" from synonvme --vendor-get + # causes "Unsupported firmware version" warning. + get_vid "/dev/$(basename -- "${d}")" + getm2info "$d" "nvme" # Get M.2 card model if in M.2 card getcardmodel "/dev/$(basename -- "${d}")" @@ -1139,17 +1014,18 @@ updatedb(){ default="$default":\"support\",\"fw_dsm_update_status_notify\":false,\"barebone_installable\":true}]}}} if grep '"disk_compatbility_info":{}' "$2" >/dev/null; then - # Replace "disk_compatbility_info":{} with "disk_compatbility_info":{"WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}}} + # Replace "disk_compatbility_info":{} with + # "disk_compatbility_info":{"WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}}} #echo "Edit empty db file:" # debug editdb7 "empty" "$2" elif grep '"'"$hdmodel"'":' "$2" >/dev/null; then - # Replace "WD40PURX-64GVNY0":{ with "WD40PURX-64GVNY0":{"80.00A80":{ ... }}}, + # Replace "WD40PURX-64GVNY0":{ with "WD40PURX-64GVNY0":{"80.00A80":{ ... }}}, #echo "Insert firmware version:" # debug editdb7 "insert" "$2" else - # Add "WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}} + # Add "WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}} #echo "Append drive and firmware:" # debug editdb7 "append" "$2" fi @@ -1168,7 +1044,8 @@ updatedb(){ # example: # {"success":1,"list":[{"model":"WD60EFRX-68MYMN1","firmware":"82.00A82","rec_intvl":[1]}, #if sed -i "s/$startstring/$startstring$string/" "$2"; then - if sed -i "s/${startstring//\//\\/}/${startstring//\//\\/}$string/" "$2"; then + #if sed -i "s/${startstring//\//\\/}/${startstring//\//\\/}$string/" "$2"; then + if sed -i "s/$startstring/$startstring${string//\//\\/}/" "$2"; then echo -e "Added ${Yellow}$hdmodel${Off} to ${Cyan}$(basename -- "$2")${Off}" else ding @@ -1234,11 +1111,6 @@ done #------------------------------------------------------------------------------ # Enable unsupported Synology M2 PCIe cards -# DS1821+, DS1621+ and DS1520+ also need edited device tree blob file -# /etc.defaults/model.dtb -# RS822RP+, RS822+, RS1221RP+ and RS1221+ with DSM older than 7.2 need -# device tree blob file from DSM 7.2 to support M2D18 - enable_card(){ # $1 is the file # $2 is the section @@ -1278,6 +1150,7 @@ if [[ $1 == E10M20-T1 ]] || [[ $1 == M2D20 ]]; then $1 { compatible = "Synology"; model = "synology_${1,,}"; + power_limit = "14.85,14.85"; m2_card@1 { @@ -1304,6 +1177,7 @@ elif [[ $1 == M2D18 ]]; then M2D18 { compatible = "Synology"; model = "synology_m2d18"; + power_limit = "9.9,9.9"; m2_card@1 { @@ -1338,26 +1212,58 @@ fi } -download_dtc(){ - # Download dtc from github - echo "Downloading dtc" >&2 - if cd /var/services/tmp; then - url="https://github.com/${repo}/raw/main/bin/dtc" - #if curl -kLJO -m 30 --connect-timeout 5 "$url"; then - if curl -kLO -m 30 --connect-timeout 5 "$url"; then - mv /var/services/tmp/dtc /usr/sbin/dtc - chmod 755 /usr/sbin/dtc - fi +install_binfile(){ + # install_binfile + # example: + # file_url="https://raw.githubusercontent.com/${repo}/main/bin/dtc" + # install_binfile dtc "$file_url" /usr/bin/bc a+x bin/dtc + + if [[ -f "${scriptpath}/$5" ]]; then + binfile="${scriptpath}/$5" + echo -e "\nInstalling ${1}" + elif [[ -f "${scriptpath}/$(basename -- "$5")" ]]; then + binfile="${scriptpath}/$(basename -- "$5")" + echo -e "\nInstalling ${1}" else - echo -e "${Error}ERROR${Off} Failed to cd to /var/services/tmp!" >&2 - fi -} + # Download binfile + if [[ $autoupdate == "yes" ]]; then + reply=y + else + echo -e "\nNeed to download ${1}" + echo -e "${Cyan}Do you want to download ${1}?${Off} [y/n]" + read -r -t 30 reply + fi + if [[ ${reply,,} == "y" ]]; then + echo -e "\nDownloading ${1}" + if ! curl -kLO -m 30 --connect-timeout 5 "$2" -o "/tmp/$1"; then + echo -e "${Error}ERROR${Off} Failed to download ${1}!" + return + fi + binfile="/tmp/${1}" + printf "Downloaded md5: " + md5sum -b "$binfile" | awk '{print $1}' -edit_dts(){ + md5=$(md5sum -b "$binfile" | awk '{print $1}') + if [[ $md5 != "$6" ]]; then + echo "Expected md5: $6" + echo -e "${Error}ERROR${Off} Downloaded $1 md5 hash does not match!" + exit 1 + fi + else + echo -e "${Error}ERROR${Off} Cannot add M2 PCIe card without ${1}!" + exit 1 + fi + fi -#set -x # debug + # Set binfile executable + chmod "$4" "$binfile" + # Copy binfile to destination + cp -p "$binfile" "$3" +} + +edit_dts(){ # $1 is M.2 card model # Edit model.dts if needed if ! grep "$1" "$dtb_file" >/dev/null; then @@ -1368,42 +1274,6 @@ edit_dts(){ #echo "$1 already exists in model${hwrev}.dtb" >&2 # echo -e "${Yellow}$1${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 fi - -#set +x # debug - -} - - -set_pwr_limit(){ - if ! grep "$pwr_limit" "$dts_file" >/dev/null; then - # Save current power_limit - pwr_lmt_old=$(grep power_limit "$dts_file" | cut -d\" -f2) - - # Find line to insert power_limit - pwrlim_line=$(awk '! NF { print NR }' "$dts_file" | head -n 2 | tail -n 1) - - power_limit=" power_limit = \"$pwr_limit\";" - #echo "$power_limit" >&2 # debug - - if grep power_limit "$dts_file" >/dev/null; then - filehead=$(head -n $((pwrlim_line -2)) "$dts_file") - else - filehead=$(head -n $((pwrlim_line -1)) "$dts_file") - fi - #echo "$filehead" >&2 # debug - - filetail=$(tail -n +$((pwrlim_line +1)) "$dts_file") - #echo "$filetail" >&2 # debug - - echo "$filehead" > "$dts_file" - echo -e "$power_limit\n" >> "$dts_file" - echo "$filetail" >> "$dts_file" - - # Show result - echo -e "Updated power limit in ${Cyan}model${hwrev}.dtb${Off}" >&2 - echo " Old power_limit $pwr_lmt_old" >&2 - echo " New power_limit $pwr_limit" >&2 - fi } @@ -1416,54 +1286,21 @@ check_modeldtb(){ # If syno_hw_revision is r1 or r2 it's a real Synology, # and I need to edit model_rN.dtb instead of model.dtb if [[ $hwrevision =~ r[0-9] ]]; then - #echo "hwrevision: $hwrevision" >&2 # debug + #echo "hwrevision: $hwrevision" # debug hwrev="_$hwrevision" fi - dtb_file="/etc.defaults/model${hwrev}.dtb" dts_file="/etc.defaults/model${hwrev}.dts" dtb2_file="/etc/model${hwrev}.dtb" - - # NVMe power_limit - if grep power_limit /run/model.dtb >/dev/null; then - - if [ -f /sys/firmware/devicetree/base/power_limit ]; then - pwrval=$(cat /sys/firmware/devicetree/base/power_limit | cut -d"," -f1) - # Check pwrval is float or numeric - if [[ ! $pwrval =~ ^[0-9]+([.][0-9]+)?$ ]]; then - pwrval="100" - fi - else - pwrval="100" - fi - - pwr_limit="" - nvme_drives=$(ls /sys/class/nvme | wc -w) - for i in $(seq 0 $((nvme_drives -1))); do - [ "$i" -eq 0 ] && pwr_limit="$pwrval" || pwr_limit="${pwr_limit},$pwrval" - done - - #echo "power_limit $pwr_limit" >&2 # debug - fi - - # Check power_limit and adapter card already in model.dtb - if grep "$pwr_limit" "$dtb_file" >/dev/null && grep "$1" "$dtb_file" >/dev/null - then - echo -e "${Yellow}$1${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 - return - fi - - # Check if dtc exists and is executable - if [[ ! -x /usr/sbin/dtc ]]; then - if [[ -f ./bin/dtc ]]; then - cp -f ./bin/dtc /usr/sbin/dtc - chmod 755 /usr/sbin/dtc - else - download_dtc - fi + if [[ ! -x $(which dtc) ]]; then + md5hash="01381dabbe86e13a2f4a8017b5552918" + branch="main" + file_url="https://raw.githubusercontent.com/${repo}/${branch}/bin/dtc" + # install_binfile + install_binfile dtc "$file_url" /usr/sbin/dtc "a+x" bin/dtc "$md5hash" fi # Check again if dtc exists and is executable @@ -1479,13 +1316,8 @@ check_modeldtb(){ chmod 644 "$dts_file" # Edit model.dts - #edit_dts "E10M20-T1" # test - #edit_dts "M2D20" # test - #edit_dts "M2D18" # test edit_dts "$1" - [[ -n $pwr_limit ]] && set_pwr_limit - # Compile model.dts to model.dtb dtc -q -I dts -O dtb -o "$dtb_file" "$dts_file" # -q Suppress warnings @@ -1493,9 +1325,6 @@ check_modeldtb(){ chmod a+r "$dtb_file" chown root:root "$dtb_file" cp -pu "$dtb_file" "$dtb2_file" # Copy dtb file to /etc - - # Delete model.dts - rm "$dts_file" else echo -e "${Error}ERROR${Off} Missing /usr/sbin/dtc or not executable!" >&2 fi @@ -1506,6 +1335,7 @@ check_modeldtb(){ for c in "${m2cards[@]}"; do #echo "" m2cardconf="/usr/syno/etc.defaults/adapter_cards.conf" + m2card2conf="/usr/syno/etc/adapter_cards.conf" case "$c" in E10M20-T1) backupdb "$m2cardconf" @@ -1513,12 +1343,16 @@ for c in "${m2cards[@]}"; do enable_card "$m2cardconf" E10M20-T1_sup_nic "E10M20-T1 NIC" enable_card "$m2cardconf" E10M20-T1_sup_nvme "E10M20-T1 NVMe" #enable_card "$m2cardconf" E10M20-T1_sup_sata "E10M20-T1 SATA" + enable_card "$m2card2conf" E10M20-T1_sup_nic "E10M20-T1 NIC" + enable_card "$m2card2conf" E10M20-T1_sup_nvme "E10M20-T1 NVMe" + #enable_card "$m2card2conf" E10M20-T1_sup_sata "E10M20-T1 SATA" check_modeldtb "$c" ;; M2D20) backupdb "$m2cardconf" echo "" enable_card "$m2cardconf" M2D20_sup_nvme "M2D20 NVMe" + enable_card "$m2card2conf" M2D20_sup_nvme "M2D20 NVMe" check_modeldtb "$c" ;; M2D18) @@ -1526,12 +1360,15 @@ for c in "${m2cards[@]}"; do echo "" enable_card "$m2cardconf" M2D18_sup_nvme "M2D18 NVMe" enable_card "$m2cardconf" M2D18_sup_sata "M2D18 SATA" + enable_card "$m2card2conf" M2D18_sup_nvme "M2D18 NVMe" + enable_card "$m2card2conf" M2D18_sup_sata "M2D18 SATA" check_modeldtb "$c" ;; M2D17) backupdb "$m2cardconf" echo "" enable_card "$m2cardconf" M2D17_sup_sata "M2D17 SATA" + enable_card "$m2card2conf" M2D17_sup_sata "M2D17 SATA" ;; *) echo "Unknown M2 card type: $c" @@ -1689,9 +1526,7 @@ if [[ $dsm -gt "6" ]]; then # DSM 6 as has no /proc/meminfo fi - -# Enable nvme support This probably should be before we look for NVMe drives. -# But it probably also needs a reboot after we change it. +# Enable nvme support if [[ $m2 != "no" ]]; then # Check if nvme support is enabled setting="$(get_key_value $synoinfo supportnvme)" @@ -1817,22 +1652,6 @@ if [[ $wdda == "no" ]]; then fi -# Optionally enable "support_worm" (immutable snapshots) -setting="$(get_key_value $synoinfo support_worm)" -if [[ $immutable == "yes" ]]; then - if [[ $setting != "yes" ]]; then - # Disable support_memory_compatibility - synosetkeyvalue "$synoinfo" support_worm "yes" - setting="$(get_key_value "$synoinfo" support_worm)" - if [[ $setting == "yes" ]]; then - echo -e "\nEnabled Immutable Snapshots." - fi - elif [[ $setting == "no" ]]; then - echo -e "\nImmutable Snapshots already enabled." - fi -fi - - #------------------------------------------------------------------------------ # Finished From 8248e4cc851d3c2715570f9cf6763730be443fa6 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 25 Nov 2023 16:23:10 +1100 Subject: [PATCH 58/77] Update CHANGES.txt --- CHANGES.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 80319c5..93c8fa7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,14 @@ -v3.2.66 -- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using DSM 7.2 Update 2 and Update 3. +v3.2.67-RC +- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using: + - DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. +- Now edits model.dtb instead of downloading a pre-edited version. +- Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161 +- Now supports NVMe drives that show as Unknown brand in storage manager: Issue #161 + - ADATA, Corsair, Gigabyte, HS/MAXIO, MSI, Netac, Phison, PNY + - SK Hynix, Solidigm, SPCC/Lexar, TEAMGROUP, UMIS, ZHITAI - Fixed bug where memory was shown in MB but with GB unit. - Removed -i, --immutable option. +- Minor bug fixes. v3.1.65 - Bug fix for NVMe drives with / in the model name for non-device tree Synology models. Issue #154 From 430d5a0653e97db049195f7c5e710eb30b1a0b90 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sun, 26 Nov 2023 04:21:42 +1100 Subject: [PATCH 59/77] Delete bin/bc --- bin/bc | Bin 84960 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/bc diff --git a/bin/bc b/bin/bc deleted file mode 100644 index 64b3cc9202030b52441e6e1785753434fdff5917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84960 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 From 9aa22be5eb88e775eb4d4d84cc512375bd7f9242 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sun, 26 Nov 2023 04:21:55 +1100 Subject: [PATCH 60/77] Delete bin/DS1823xs+_synonvme --- bin/DS1823xs+_synonvme | Bin 17241 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/DS1823xs+_synonvme diff --git a/bin/DS1823xs+_synonvme b/bin/DS1823xs+_synonvme deleted file mode 100644 index 2dc63b55f2cfc20dc364bbc39d2b16105db24799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17241 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 Date: Sun, 26 Nov 2023 04:22:06 +1100 Subject: [PATCH 61/77] Delete bin/DS1821+_synonvme --- bin/DS1821+_synonvme | Bin 17241 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/DS1821+_synonvme diff --git a/bin/DS1821+_synonvme b/bin/DS1821+_synonvme deleted file mode 100644 index 2dc63b55f2cfc20dc364bbc39d2b16105db24799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17241 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 Date: Sun, 26 Nov 2023 04:22:32 +1100 Subject: [PATCH 62/77] Delete lib/DS1823xs+_libsynonvme.so.1 --- lib/DS1823xs+_libsynonvme.so.1 | Bin 54154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/DS1823xs+_libsynonvme.so.1 diff --git a/lib/DS1823xs+_libsynonvme.so.1 b/lib/DS1823xs+_libsynonvme.so.1 deleted file mode 100644 index 1f97be2d5b43e3d68c45f780d3857d597862d842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54154 zcmeIb34ByV_CMO$AOh)*BWPUERvQInNmLY2#x!)GBLN~wFbWz%(t${l&U88$T%$>p zHbyfeqqxirZVZ2QM#eR`U;qVoaYq?7u5;UnqN9j1+VA^4Rk!deYt+T`wW^>h{dkT5k}lbiJtRb-f#(zADVvY&|+P z>m>t?^`6o7p3(KpG?NIp%rsqPMJD7kYpVhzritA)>lJ+xto)zUE7bMU?^o?5rvKD~ zYNqCxor!wv-+z1Q;j_)t?F}SPua=9MnmSdEhJv`y#XTQ)J#JIvc(l#MeF7hF<>H>r z2VAG(o{sxK+bB;1p5m*A$H$KpN*_u;tb;m*O$ zYclRLr}o7Ys_XX8Ev_cYuMxOx3nCGxize;4Ae#63YEHrq_3Mf!QMPWwwn z0_g0o;C}!s({*N8>U#9EIp${30{w6>(nE1q;0|cm{yH_2TJr%Zb?zvg-w)|oxX0+c zHJOD>qAni>*l(;zcphxYXIP&9+sEU8n4*zS*QraV$Le&6P8~>(z&#xIBHX-=REcdU z(gNJoxM`2aU3l~SbjML6*QPvp>E&-W-Tvy_AMd>Q^-^LFw z|KRp#n^J~9^XZ<9HqSjZ=k0&M6vC+gv^4`zw!sIP1ED7Ctcji04-Qb^O>zs!vb3Hkf_Fzh1m!@~68#uOIzw z^^6gBm5hFC_lsHSZ*A#)>=oY=AD+Fb^P(%?eJ-oyj_S`J-gaWi;uBY|du+-_oilHq z|F5@JG~fD(=Otg*^H|QUKi&J&wH}Yf9?B0q9H_ z0Dt}f^ved2^JxR%zdJyG=MO;VCCIT~`3%5kCY)D)_wow_`G-kKG9v9GeI|*J$8V0zaD_TYXJJ01Ms_<8rg$53@DvfOUwbxmCt}m~A%$OI$+V#5do}zt-R>d= z$hbO@=XIvYZJ2Gl4qkUCuq{)=J4+N`k>>Lfr28XM?*350w`=@Wn$O)jh`mz7>&^a7 zR)AdH?m;I1mn!%!jenZx)iB$d)e4ZW;g@Rs%s(i=XBz&!$RF}#pp5HJDzV+8<*?hW z0QAee*qz@X65l;hvJzYK>15sC-3(xGnR2*J(^;eGFxKJqK5n6-$M-6M+HB8h{O0Kj zFcp0B%GUfZx=iJJRbu-Be34Fet^)j4^BL0pvQd$6c|e!f$C{4wMwRFKhS!6peEz8N z*JwKTAxrw5noq`Nyl&9=ovT#-VwKo_qxqNM60q@_&fR)^n}Z6`l=JIaZcYYxxISdC zi)(?Vzg`PwFoRTF59@vv-m3DOH2ohnezWe^;TrxYjo&;^;oqean*-(SSMwk+iat5(Zlw_Y5C6xjBfmfM;e6u?|V z=4*Iivx1+e={%?DWa|aw7zT)!5H9l3=e@R(IQ+ZicbzON) z^@ToL(b;q6&Y3^km*2p@MMWN4Lok5<(OAQZh8q8pvWlh4qF6<~ipGF1FHqiqng#jO zrsp;JDr%y|Qczr7>znBdMuF3p`YM(cHP+Yr13`CPrP+*B*I>e;`1zH-x?pwHis`{X zO&p!t%6a7%OatSA6;^m&Q_xpeS>&s!D)u!5+4}72IwI7T*VOncY*hhYjQEV|KrNUk z@&&5PYv%dND{T#R^?~ZTU==$YEU#F`{+3mhSI2tgscu*{+h6I6d%S zC~;9VGpcJShgrTA^UG@*eYRR(ZG%ND9^di;e}%OpMK%6leqEIxu=yuM#R0rIimTj)xP|?N?((;rf_FsRr%|Ebtj*s#%IP7U$B8gTH~v;RaMmZF>uJ$Rn*oq4OA@U zNLM%bD<)4aYiOt_ud9l-TvQ7^%l8!fi=Ylm8ZMNPBaAII#G?VF*q<-TL(&D%NOxtW ztwId}TB>ZUw*~zkeT+M;4C}x_429*vrG)`sRdo|dqhr3tYLzZQT2|%@ z1nT@{81nL9wZBgFzmURMUSWge1HK00sVCNiVqpA54-2D`0TF+oEMS8@_%5hfkzd!~ z3j}?YCk84D(eo9esT|qq~2c18mVspwJhnfX$UJ@s%|AqP>|0NiNg+Xlo2s*Hl#o%S2>+sH%pSC~Ih3 zTnEdr5mM)CiUHW_3{Npyp|S`QDq9%9h(M4~7;q8gPBgfv-baI&w!#CQC58M3syppM zva?T^ULL57Gere5m6UZ9rI;yM+7`Q!Jjv!Y)>Xsa5=@DD21ixAqTVNtOVBy$GkhX= z89vkVEsvI-1?eiCu#T^Hdhu-J^Xq2$YL-{m#cU>8Fx^+vP~8|S(5*lUR{gbAEuk5k zLm6vK@bmzaCi49^CIyL&6~TYasA+6i8l_y|k5dc?Bfp{Kgy;Z>2T-2e^taKfak`ve zr!1rY(m6g~r4p{EIv|=(7gZjFwgNC6Iu?YxTvk~fpaqCUiW$+j&ut7s&zG^|D6bRc zGL41>#F@5&MyCXr7Z3+cfTj98UyUz1hq0`rj@qs(Mww9g{Hi(rpfX4?W`F&PV!y}N zK!2nfAsFKvb@esXiyPppD=|mZme-GO@Q=^2X&C&4kAPDMfZ0R~EBJJ>iB`9~R?u>6 z=-doXaaqpz6Kpft(Xtaz*L*r5_ITonQRqq0rxV6cj6R<@{v^f|$=G*I!p*<@Pd)Lk zdP+r_hTB>aduEM6x@<5~vm{+=Bw-I$l`GmT9b}8$Moy-w|qb{9Sh{yk`>dAG$-q zwUXs|&kMcLWM`Z|K zq8{b%q#l(aJXJl)-`pORA$*p4l)v5{l_A`GM?*+q5C1BD($u5;E$vYm;!}3!wWvou z5uU3aXAgo1db+pHTS4T(wQ5D+H5N=aC6U$#hn)T zPy+O|x<@^b&M*yQvZhC62-iz*0j#sYJqktsuD8Ig?+UvtaJvP++X8o3;Llj#^v~wC zy+=KfAL~2N9TvECf3e2`=X){pGJ4b#=^S7Jk?!tM8N!FFNBO(AM`Z{fp&r%W4`T2G zE%0;;{2&WF(*n=3z_TpygDr5U1%8MHKH383yJ7Rnw!jZFfk-D=;7cv=Tnl`p1@5)L z54XSzE$|~O@KOuhXMr!Wz?~NOQVaY@3%uR}Kgt4cvcO#yc(Vo0J$dt5X@QS2fk-SrhNJ_gc@Z&7_&sgAk%UVjeTj0lA z@ON0?V=eF=3;Zk#+_1pMS>U@Z@I@B*UJKmZlapdS@6#@(S@6>>@Cg=prUjmDfoECZ zITpCn0zbh5A8mn`Tj1Fic$Eb{$pSyo0?)O;OD%A(1umhqE-SRab?7D~r53o}G8OnD z3w)A={!$BkvISmmf&b0|Z?eFrSm4bTxZXmP(v=qYd<%Z31wPdRUu}W^)&l?a@mC4_ zDuG`m@T&xVmB6nO_*DY`f0ux_<@0oJd)gcK*=*jn?qG6cySL@3^es`bL?(WSqR6O^ z@z-%gE}oc|6<4??f@{<}%qO8jc)R3ZWj>ktZplB#JhwE$>m|RLd2U&R*GT?R=DGC{ z?v(uf%yY{j+${OKnP)g2u9y7n%yWw&yh!plGtVuAaG~V?z&y7I!nu;ant5&wgtH}o z1@qhz2s9AAsKl~keE|tTXlK+}{E|J4F$$!Q? zm&W1UKeGQHGVf%*NAmA5e|$p@Gp&%90Y=QBTn`Q87K@n@b(y>O4@&taZRyzq9(&tslTyKuMU z&tRTQwD5Y#Ph*}-u<#nmPhp-*uW+a2Phg%)u5h#Dk7NE6=IbSY6!Tnqg%?Tw5azk$ z3KvTLH_UTM70#9X5azj*3TI0`nR#wihMkiC;cv)u=@ibC{MXEL$rQFp{xjxJXMXoS z8Gq(;neUPOJIuS8-!A!AnV-gdx8$E=eme8(CBK<@Zn1^eNd8gg^O*0H{Qb<&V7^)M zcQZee`FhFU&b*iTMUuan`F!RJCI1KJ&tN`R@>erIi}`HHU%`9<^G?ZM$oy>PGbJBj zeh%|C$)C^sT;_NGAmh(`A@e$gqYexjEAVG)8pW7&?v^dA)!Sa>IHFbfV^(~ATO@e2w`1b8 z^HJ>})If`lKXyAF?iT+a#n0(>chMPnJ2GCWw%IlcyB#BT;Q2{9bz>)tqzm;Uy<0gy zkbZt>Z(h!`sPO`@a=N`8Bc5l~4MJw>Ry>C%!nHV#fEEzHi?hcTG^z7NUNCozH?+@~ zgAsrvPWOi12d_7vrm+k)7etxe66NkvHbL&B!AZy|{!RsdIo%7kIF4vWp|mIT=X*n6 zd)xK|=WO8nGEfhq3fsI8THn^)n7m+1e&}s?7d>^9ZpO((>KMVs6#0JwTe{B{z`wi8 zjtc1eFrY;1jaY{nQ&qSJ6?$Kc%9s5w@rHhUl3WyVWQ;I6?G0`5w(Sa*v!ksXIqF2{ zOXCR9cMzl-AUBR6e38=vnT@>#Xz5<7YcwQ~)14ps#vA%HKlFWm=tXbnyA5~;X>*Ke zb!BptwzawjBjv^Ck@|UStINU1e|ztl-S(`b^+`O>Zu{8L`mj9g3cco7)!p{0#Qy1JDzCIuD|~_K$cj2)%6hV9Lm^{0H*w9@p@HJNyN%RBy$%1)(p!9pi4ffc?Hk zm`c8SP59#7_&-*Z;VABlnlvT zOoodgLoXn(0d0p2fgqE`kXXzPoIX<~M}sRRzx&-?3~zvYavW|_RMy{N;2^*HJxYH4 zXmfV|5>zVPuLM=ElwQY4&e66P+(3Gc)-Ulu32sBDshxvh@|U0Hy6WJf`rz_{jypwW z9>*iYTpOG~&FL=aNLz;<@-Vz@BSBC=BmbL7Brm5s^fnZ;AoMBbpX-2Q+%7~f_4K2W zjWvJQvth>vp&~A!D zn}eKEc@NQUH=aP>tHztmJB|?l-;Y1K{PQl*+wcbf*xhvp;8D}b_&bIGBXN9G z#2;X+JJtAATE>sv!T4PU^l0S~>&nf6xrYja@uQ~&T4@~GxyY&UYbDz4G6Q$Uv2mpV;a1OA~mU{0SkDy_~ zQnnKFePb}1_jY(vBF&SA1V`rVq~*N!6=0mkcj#$A@rN3{??G?fT^vpks0ipWbOSUp zwk)O?M~p;EMj@K+eZaJ%EV9*+aXS!V#MfxB2-eTn1Gn~Kt(akRa`#vmce?^!%k?<+nt4wp`KCwV77?YLqG;E$#f zv18&I(uX8Q?xwy4CvSvY1yI8pfSdwn7WxpFWPz9|U;tLqhyn`8jOUs!N}bTS$=k9e zt@km;GhVp4juE|nR{8?o4=(C^w9)&ls1lcfu}%(Foh*-b(t$SAoN%k@GTdESj_*K& zqg6-jIL{Q!PK;&mbMCH@(y@#O;?TB6)&4=E-J#^yF%vz>T0R`{y$>quZI|G;6$F?` zI}@-FqKVYKTNJ*#xS)O1sem$2EXvv0J3Qvn(DNj3%f3T`hv&DS_D}TLcuqvx_^DDP zQ%(zVx+ygoKlfSmaqjt1y&r9f!#u7mPP?ft8Os;J62}t8Aa;>YFZimX^&x@3J3d# z$MiKE5|imGr+XtyjP_lu@uhJ9(7i2}u&L>p!R-8Ya2P7h$`2jpqF*d_WksE0<1!f1 zXk|w3^W0^S0cxFV>wUEf@o_1r!Y=-}$U2_s=bGa=6bjh#Or-Z-cNfN(n9JfYmqoSZ z1M1c5#yMYDrx@DD+h2G)W;)(ZdjY79hco~AY^d1v%}$RCf$e5*i;?u+X7A*;8b5h= zhdI6_STSw56s^g)s91UQAi8-=c$@_Q=fcNb&Sdgc?8@|NC-2?naiycW3Y1ZbiDpAC z^4`!}c$8S;`ZSK@w=$Af;aLI}*w@-JihrBY@}*2lZKtBl<9N6L)I*;XbX2<1bGkS1 zh>;2^_~h-l)y3btz;I20+-RMj^m4f0W_S_$(k%-*m|-z!8#jL*i6BNPaP1GoKD6AI zhxdohfYc-+|0$jh8bNC#j$+X~p##Pa=#LHvq!VjlJb@HN;A;$}vA;=R_y7d95$n)+ z0?J>F*u+XUEkX9v%IA!E&a=FH*=-SVdJC5W|k0&=+ksGDSeZ^96S7_Y$ zi{y4<+>PB~R0u`6qXvSzu&BhB#_gKiBEzf6iPX^5m^z`KzX$q8YL#(YJh}Z8xxZ<0 zMVef_@jbi!v$C5??&igl8=}YsG`UnE_qeMWVB@d9NU?Vz&}{J(xu=Z&PSh0dXDO_+ zlN3vSk>X9H_;({tg4~q`#oZ|4_%6~E*N|e$FH)RIiVNc@W+;k((-iHR;(Aj22SxC+ za{P7y(1yfQRNEUPYBa^iS&CkFlVaH~QoMr{yZ#l|Ylq_TSWWSKP!tUjb@8-cH%6P8N_IKio8q?L*@AL=tb1kqPl6_E#jnB8iV#ggGWZ8h6wG#-^Cd z5OdQ-$AYz1)aL%rEkY$@;yKp&r4}?*AaxI96ut!uauug>|K$c%BgL$NZZyp|@h_rG z+fQ>D_kXH`ld$aaeFO&edWPF&XJLZ{@fTv)-oYvk>h-pt%91pr6g9o=7csg;?hKX7 zRJqe6w=4_7HnRELwySXq<4{>h=OQw(te!lWSr{*$6^$LNdpehYUJ5hj6o&iRxVg)V zT{Ld(>O$1pwgm+8Cco}zy#m!AWz>#^!jnuz-sCR}tmkpN>L5&4QY~02n4vEe z;#Fv$h>u`C#Q2=bVJ_&%xDg6N{TTVt}BF6W?@FLW9wD~zR!x1e(`(CU=IgBuYRN1z2wB3%m z4Q5aZs3){LKHdWDwv}L4`t=z0Y;*QVmsE#NRvl`s;@Eej{q<}l5S`3ER3L;2mx3EA zLM{}+*!mF|=m@%UALUHZK8fPK9pZ)%ZbIF{^CRb@m)`aQm($(FARo~q8n-=pH2y#e z?*U21S5PPj$}PGY5H$C;JUOWi^tXtf40Q+(Gxw>j?0XQ;r5j&^C+rhnst02T>ZqZR zmcdO&#>T3kK1;&I=&txPrSkXS%%`PQ zk#aR)rj%dAvq;&4wkhE7z1Z)DT&?40oC4X^Chv)IS&Z6APITr=CzH8wLzHv=*;BR!wW`v%;+(!;3!8dqzY z;Wq51cMd4G2YULGTL+X9bX!3e;&T_D9|<1{Er~gCb~mP0Io*+g-wS;`0@W~( zqtRu;c^AN@vW-2oKS)z)pS%dv`}=u0yG#~e6`L&x8ICc<%4{78Jko4?A$xGR6V6!m zyb#h~i<}5t#6aPOr>Jo=iFYTuga_V_?>}i@r)XaWYFf#|283wQpJgaAO+Ue99z`D5 z{g5zYBoNh?p;$TE=*hRW1C{XM%N1Z5JZ3Ox_;XQgSl&4uCOBF9JIJa;hsfQ}ZcX zTs8j`8r4eeSIMe;X)I()S1%Wvwiw5PBg^|Cgf28fL?`EiC4?~u@$50Gt6|*0Sf94~SkI`jCvWucvKnh|U zNlIy5)PphGb6!Pb-p!#DS;F_;)`=Gfq9STHt)SyU7hlK~guXTwgSocuOE+OV=TR=M za`qTcf?^3odN^9ZTY$oRytM2X@pch~;O?3Uq?n+M+fiRyJ?CuCnBBc?rd}_hEITsZ zL9Lh_3JMq;cH2;Fdfq#q|6nNS^e!u+v$JyMW0Z zJ;6VMmQ? zY~#VbmuWvC!2FhNNd>0@r(x+C?WgVA$d^pUl$~e;JH{BU(j*3n2FmLy*H|D zexQ~DCuS_DROJ;bQf{dVqLX^z#bN{6l^w0fLd;N6t2J%YcjbvO9Lrw$=RnzombFI79W%kFi$$ zgNN*|gO$+^n(asX#~#J}*UY&l&-Z|)>fick|MsCYhU+dcaW4Zd`nUJ3SpNoGd&_%0 zeYT>s{}-8Fr}Aw-NKiHKB;M-E%@nsMYjr#dIeG?e{ht9ZP=G}|alD~d5E?XteZBPl z$=HX%z#Ou227P14$Xb-q7=r+tFU)#S#Mi~!jE&I9&=#V%0+t{87$Nu~)aX6TlxOHY z&U(i{5DIT0@Z?SQMs!A|v2)&34RYb}DEGVYYLnC3<~L;UHWt7oI4xB=(uSc0%v#2J zV8C(x2p{k6x)jyPNEXSYf(*R>s62&ufsn#_7{*3&xr&^2cF&_e$(1XtmCp(f-x)`O zv4YSZEUB^YZ=9%U91j|gp$%L3di=rrh)QIvmY$IgdNBBdkQkRhY?xV zUn!vG8$)^3;qJNs^x!}?!%AX0^$>_D`#K&Jl~7;d6NMkT=ci~qrd~!K^EwnS#JCyq z=>;WsS4fdvh76c%13gV$k$oLH8lD@YBW~|^X4g1TWMr$V=Oa;d*09dukcV*~grnyF zB8a_}h&YL5g8)ODB@$_SHRwZ0KuX>>J_SBX;96`bnT3*aUGjn|VaSY<9F!F5lKWK& zhZZFVq2zR3vKl3D#Rqq{^rXR6#ezM=OA_x{_q)85LkQDHoY&+M51r)e&sqdS%3(TM z%jNky<5S2}ZAP^o3f5Hc{eEoLmB3jhTK=gw=WM3y!7tNpoo?4@k4|^%lzSJ%%hah; zr=7Zd4N~LJl<3nPx!-Yn=gLdKUCWPYj@J46L5sdLvLOeumLGbG=X5e1`(vm}(~TXd zh2<3{Sx4)GKo#4i9c1UjvVWjlp++m5;Zsnk=j+gW+&HRZdt%>*u?cL}ex~jAJLC3O zmEDfQE|Q!+_|9-ZOz^i`ROQ=97{PDT1B^%txl<=wcj=+AuFyi4t008AzV|StH|-}O z|E2LG>!iA9$O}LhdlWKjo9!Co%toOGQu63v$OXDE1yh=F-7C`m1Dco<#AMW(Zu535 zbk&CsqfC!zMvbV8NOp6y-#3b-s-x{AA$P9~8)A!I%p{)BS8Siv=*y-66IS&KO59z? zfg+hbA6mg(OpX?+ZHiTM5(0OYq8eCvA~2t1AZToQjl(inhUHvDRNnTW3tJgo%`6OV zSJM3o==trZ!(`toWcy+4j0wU=WCL{D{{x9_&Tk*=-PX+3dChJ=J=DqhbX)UE`~{C7 z4u#0Sd>c_(Y)KyawJ(ipqk6saBG|s}sgwASNw?x5v>iq6E}nLQ7dS3I>N&vFNOV*= zgX__o-gTX;@dti#)}G+lNSe~)g7sbD=b1Qbn+L681-8x1W2mSEfu zfthc#YoRsT3i!V4J7^UcS&I-&1+*)_f%18vpXvFbFM1D#AMu2~VAsw?FEz>wf)e(I z-q9uzF|K=A4ca3Rm7dCQDkoxm_mb%4V+@MxJ)u~gj zDDdfoChKrlx-;LXrj$Ba$g!ZC~99}$>#3bpsAG#wN_I{N5-l- zrP?-b;Tj8sSI5ecz*c&CFa(z$8YFtUM7H8ZMGHbd885x4I$RA|%&3vx$a$%bj5}rkt7F6y zfW^&Y!@z9#aBRzHJ9l>-Al=Rgph9du^`V~9+no?<_|kpm{N?Vto9%aGOpC*x7{$Mb z_+Ov_aP$sv++7=0h5Z#r$0u@hAuBwA3hu6S#mc|(tgMiTVx^FnEkA%Xmt5|yQ-Lls z@588o&NiAXDfA z0=S*g;bCZ28|(koIV)iTWZ=NVy~9mT62zJOo&rA4o-ydT-}>p)!RS0HVeIfv@c! z8Wdg*Bl5`f8+t!4^o{Z9GXVY_Gb?#GTaD;-H=~2@uDy!f(W>1J(CM9r`5`ao<8UJ? z%*LK<7vFtF+sfGM78V~t4b|jQG^q?XoP~znUAK$KGhSAR?;(-ef{o?>q!|7oW)siE zHStGPvpCvB8mqLt6bT=X1~|^{u9MM7j4VXANLBh8m5evg$MAjdg2pUJ+}*XpBriMw z`9y{MG?CX4`BdTjD2*Q={+uFVdxWp zIP2GGk^Gt%gXIFFb%%?%@N)6~7JixU}un#*B)8gvMu9T||>%$8cSCtl}LJjj{sjmzs4|th4Fxf zo7k*ttFkNEuhQqk_hCP74e;ZXilILAod@g8^W*E_T|%271iG}gSDTLJ&KvP!d(fvr z7;6BDe)mMZeB0f15MUw$h^0sIGz5JR12Hl|H>bPzAI4RXw3b7k^>54$F8_R8Dz|Mv zj_x)=%Xh{zKU|o{@~s|b;TVHO6sIk`@w-YIf84bOB&xiQx@Wu{t*&NpN3+S6jb~t0 z0*j^F3qn1P1Bc$v>?p+Zf^lj)hY+^ikA*y$puDyV_@L9pI? zl8Lbw&B7P8m7)}1hMlHgeWp*Ms1SC7YQnqKzf9HdR>uJcXCT(nl<@+zs?+Gj#=Gi+ zyhJ}bjnZ#*t%l}U>^qm>%b!{YXnYt7f2H`~Sr*Lv!f4JO#pugm6g!GXqIK}w+Jjzk zOLGkvq(hFrQdX`8N@bi2ZoGKOMTZkTYx0zFGK7dgZrmx+7t8Lh$w0xenS_%jL7*7h zfX?novBFf2=V;X7cO8&FI2qw5^36aFpJuL8;tmj82X3$*GD{2iuTU)|UZIA!$sHMa zr@?xURphp#Tn<0X)a`pFf9q&nlm0LDzq_CQZ#7PaUc`=#9D#Nq*5@$L=6DN3 z=q@@HK&d|efm#+ZP%o@v;7di6h>9QiexyrIcQb&PZ@=ewYZx1s^zccCU2{t_V% z;>cf++a(+OmD_wM8mP_&Rfw+yr$!DFg~_$jLzLd5k7cP-uF!$4=rZkQRDX1zGJb+O zf$kS4Qu>sRc`RcK;!ruq@C*FD_(VVaK4q*`bZ-D%lj1U=XpVOaN~oJ^M3mMkE6F$j zFgfRO8*t!@4x!0oNWy>n0q1Sv2IM;QisQWvvek-o94d)f^Lz)XV{DW)DqRA>XK6zu zcm!nVHoq;r6`oHJ8N7~IJ=UCbZvnOr=2InVb#e5uTM>uqTFYE zE!x*Kg&#}DVqz6CfZow@{KTm5M76F6F8#gqVIUXnXT~mgIB@!#C^Pp09p4c}50#Ri zlF;s={qVaZpQlfaL~OPTj>p#|Wbx?9Z(ef5rcX0F4m(h0)X+P|Y*fdN@I(j^2RU#? zHTu2a^JppB?ucuUQ@uYGHH5$37x8Xk#Dge+V#t(T;_f=q)Me7Vk9Z2jM*c17? zd^2D4U%r)p!}lO;jIrPOv+)ssriAek*K?R~Uge|{7ax^oksCw?P4I#Fp*ImE>0k%} z1I#V-HH>T1XGd^3kUP6=kBYPqH0+c!Ry3YPXah(%SAwA7d4db^k@FbFN~`dw0-;RC z5eSX=V!!R|!8#f$!~-`lh~>s94u*C-eS(jOCZd;WJ>7N=vAC@L9?{Ji$CKe$z@s9a ze{GORXDq(RsX_3Dj~CD#1UjFLQ9+G_I8Xsgh~rct4wgv92DF9fW*W59jBd_@q>WcV zbsH;zlsa{L6KEj5X$4uM0qA&9VO%7fZZlGl_e|dBX!{y<8QfffiYjdR0>g>0WfO9= z=9>`wF}V31!U5C>E>u`LxH(i~4P^+lv+;Co_s35Vy^#Y(R$mOgxmo58=vEW^FftUmo97n9v?rE%Pb{g3^A1 z2?ez>zyjgC)ltu(Ai=)tGgh}r$8&-E^W*<;|NZ_E!+?Glg;T+g>@%o%>?8P*#POKN zIqq1n3ck`HAsLU0sor2GJWtK<)^RrcXq6Uy5KLYT^wbOxK|J=f(5I?NJXVV=z`N9{UPZ;>c%e^76_Td`ES+Z#*^(4G6z4&=AP))O`|a%lC=#-d`XE z>XQSsHQ_0!B<_guo^oA@@!s3ieG+^UB99*6YDKfchs1m9jxytsdw?DO3&&dK2X_}5 z0CyS1arp0!Ht{baz90C;SCEaw8$2#+J$~TfH=5W)pp9X^hysB3jrU@11DwqUXAs|HI^A6lA$)rTagppM#m9Q16y8K6D)j0m^3}#< zG>^`z@t1gsU$}-|>#r9$W@dIoPRhQDUt37u-gu^t2=lo|Dt+TbXk2!`bgYaW3vC|7 z;BnJuneGryqoqLX@m;NzuBuPRbD_7G87cSM(XH4x71Q_9T^cE19>&S;QWYS85HKyF z<49mhMG!d`MXK5hP$7hlPaD(0n~opl_d*8lulk_|)m?TTbZx5J^K`e*FuRRyK;yaf z(&@$RsV+Hy>c(_O0Z68wepe*)o6B&pd^dU;>-WOwdSoa%p!=QAAA!gPdK51sh*}WE z+NhZRiNWoC*(mvko`-)n9&SS45Dznkz`e8Y4my7qkH2E_pu`%olb*H=ZOI;BRlcL{ zCHjwgkby5l+<_qSIf#sUh}T3OS1BJ<@O!I}u*AIxei1?=oVgk+9v$n#C2lkFMWBwh zBf0U1(5#deTkJYazEj7q2~7M6!ZBJfo;bAWXnT&4RY%5tM=%)jGv-BXj+pl`V3E&F z(M>%sxlwU0!eU{?cma(e*ewAyGuYh^^N#WH-($fpHU`bDyqgY3*;+druPC7^ksjGZfs}=+<6u zs%t=Z`o7F`(1FFkfjixak%xvkbzEs28tsVe=lvUF#qg9PYY9)stMIf5(7yY5xjHWW zS7KZm0c}iL3&8>ha=k>w7rW}?f>NATW<+}Z-@q4kMHgAZQ9lHTX{74t=rrQ)LX4{% zyePTEUFh83fMVEm*TnxT%ovg-99>7`*Fal-aZ&m8xIkhXc(Lr`y^qO2O(sH4g3*8%!4=Emq z7R@PB_&_(&^9N9>qR%AVy6!$FKWq1+U(3CM8pi8rB0NO6YX%}LWB~s5-P4!9w=k~Y zuPD3_I;rHR74fkn`-#xu!4CJ3d3}R!nH#Si(EWsXZ0K+HgyBTDC z1m^U33^bm{_d{>6qW2wKq)F*|>1M7Lf5t~BqVg%pE49+`+NDS(UQ42^BF2RvCL_D! zhs1d8OSDbFe;13_t_ERISjKD0wiDyEF($!NAhc-wH5knb9}=&PL{3fU`=C2|f9@nS z6OHfQI>w4W4$Uh3=Yik*((KSzYI`tBGGi?&z`lBsD9qc4d8gVSR1!$B5hdedg&9PI zVq6TQ@Wpi1U;i(R#n10Itschtb(cB6#%(pN#3aeCrL6{a%&hLvS29tBp2rt^G86Os zVY6^>udA7E8xv|h@-|MqFA(_+F7cbuh`fhGN+8}cV>_4`N6ibC7j($J!Kqk^K}ByJ z^Sv=XsNt5F>_!u5 zJ3{Vw3W-Pp61MwyXz5XUQR@+hmY%n)EV2HSwpAqRW~m3BCg5HFnMqRj9r6kBn8 z+Kl3Dfa5@M^o1Y#ez9wjaU1x?Y=0b-JmGuvN6`E>^qs92bHi=oWn`ga>iGvkWzI$g zehpd9`q&ByLvh@AU#z}Ie;(dzfbY@QpyM>BNf-k;WqAq|QmQ3)4IO1gzduL$k3t8W&%*x|#u^ zE6oP$ViCwkql~AG{UCREXWOAs@25XZ$07kHs7xI#prsLcKr&XNLfnVxM2w+XK1}~D z(W%ej6mj^uaT5{0OV2dU0aqNHE7*eCZK;F)s$mhT5^$`-tZmMsH=zzWdKK zp2CRexdXEN+re=i&{102c1+h0q75y}7uo7V^?bC=T{Gzfmx26H9h(t~UEn)`ANQg9 zLFD!lbW-iV{LGL~9f;rIirKj+@87cNFR1B-nV}iiGAlFo(Ei zoVpnvMiTz}e6Kz#)*KszQ*|2e&YVQF;{=T-VILmdc~rjA9Es9^U|GB z8!za~Fn#MN#qJ2OtA0PX5M$y7A2JLaQ4x7KLq^j>Hh};pb`jE5D6P^wvokwoc3gtjGTb-t(Tn zpzVr(<4oIF>~COlKTZq=KNJ}E4d`&7MSp3K<0oeuuEz)?bbuw@2_|~qtLmiip#vhPLtm z;yBTO#xagZ?%`)5RhxFDwtSMrcUK?%Nyb=xpdWi->h8k4L1|qCZertH5|vjwDCX?y zeO&WH`NBuCM!s1Cop>d~?8E|c$KR($rR(sOiP_wGB~F=zBE3#m2!GJKV*Qx zhcHtkF54x^)C0kV@jIvtKZa^N)QkN({#;?I{E$xL39yCHJhr%n=Z$GJVEh2Hw_=au zkW+)UjEc9>_!#1qbBD$9D-ObM$B5I>96rFGx|Yr2N0V@v9Z%dZc3Kt#Xq+K$rOQsG z*FBgW>Z!uad!TVQlp(Z*pC%vOvNsYuIf2>PG~DQKOWO3O|9lg<>CdQ`XX|}QormN| zpdYiqKx~}bkW>A*1I_f_VH}2jSiZQE^$pmCbfQ0f7~S3$L1TOSc<$?@8c7&LhJ~x- zSL@?9dnbU)EdJhsWfdmvf};%#7w|*VNQ{x-0w%D@ScSne?Njz^2iRgac{odcA+`x_ zAFROF7!7bu6dS$(+yNx`mr63%dIvH&JKZh+Npk#o3uVdOcQx>iwh=PZK9w1hr@Lz* zDscS4UQBNM2Tk<&L&}e#=aF9VC-SSaUm6n;yr9V&@Y4Mqma z(#4tvv%YEnAcei^f3V-&LH11UakLhK^riWl?0cBL;NV+5Z0`=@p@9_=j8%Y)$)Eh@ z>Z<@N7N5bGhF749j)Md(FZ6+wLSiFN5eh+2fC5V8hX64;QSa>Y!l$FAk$OvPJa8;_ zoiP8y26%8p{881wIYCV%dOY?m1s8uD=bEflX zAqZ_TI#Ac5j%vMKv~d^531?(B-b8uu-v%&F#AEv;<6iJgX~Ww>;HBtBp>lCF+l;Bm zTLgX|l&n-X*Uynp;xVtte!2Netkz#si`TzaS33L?e#H9?{Dx z8_`wFao;_`)Tjkv=+$KY0D^o_F$}0&dXb%|A~(*10D1O2?zcvoK>)wsih(3Y*b&Lu z1=-96P-Jr?c!0>-kyu1@4bZ_z@3lrU1gzz6Yz36AGsvGuhFRy@j1vKJca?*h)P}IP zGZ+hP0?jhe%;{Fjcq*$(rDotNc^AtM=^EWA(gI9FV|e7d#?NGog9k>teDIAp+@yX! zx2ltl&Wn2B<-I7zcQq9`5uYl=HnmHp!M!hu}2AX-~2Z;hJ&Q>m5fc}V7NM-gp#*4lg;Ku#2XQefq^fOCh6k2u;61s9x4EMLA!yqegPVkL)_4}yxLEf=Cu{uv)? zu*o!O(h+(avjn&w1@1*!lYwY*&^nd^-M0$P^C_{8XCzA~2I$^1T$QRP$^5PW^O z{NhedcM&8IGbeY~72pRFc@Yg7+29e44L|!lNZHZ)1c*exchGdM0iB#~2$E;zR-=+h zPEk@?WS}#p=Y%goePba;%HlAi`;%IkUZf_yj@P{{pL;ES8~+Fd6%=po_$j@UZ{3_; zd@eh>01hl0A<1FrFboo|%iE6QfL|IXY55jlJaED#c$xgHjOdv9(P85XCE`|oQl0ax z=ooYl-&=!2Xz0q#kOX>v7&R=zSam(Noy>MxwxkzK-q*NF4gVzgwc!$(IoiS$U&~Wo z%kV3?TU*$HA;Cv@U6dhaH}3&ThG9fvBQAzO%~{vo^&H448Quw(QF;zVjd!f?u@#v> z7NBly_>4<|CE6;%4tk1oz zT7No5t_H1e0P;4jgHWWy=m(t27CirY{eN2mb<1mgWz`L3k~TC{j<2wdYM3&r(wSdZ z;SU6S6+vfxd7!-37xV>eKb3AO#^58g3dts1vo+L{<>hmUsK}? zm}tURRdt}Yth}zWticzkF0UyI_{u2>T&n&IwCW7{ol!b-=Fj#;iTMMn@0HaJ%gSo~ zl|Hj;LR+BAeRY+-fbMb8iaLLdf5{5lsH2-q?NYKt!31BhVtl2qs=To#*f62KqPmQA z{eiOT%7*b^ze?4J=L?c_Dl}&u#>(lhf*>?gzU5^QoNiiGE2&#n=f9xNSvWo4*-+yT zI)f|feOz~1`|GP@k4afjs_QuF!D@e-_XWy>jR7A3qej`> z%b~U+yCO8_OUyfqmj-<3M@^-z&=;tHsg*DBIZGN~UZcim7gX6iw5pQ2>R^L&9t^^o zKMNcLeRVdkzac1v&guTzT3Aqn0bATLmkkx{VOWi8XVs;rtpZ)E zWA~1tN)^PYhI+!2*LT%Ia$xmn`vB zmM!+doBGNs8*0lM>oI%z##58P;e_SofeC>|HKoeDTK3=6j!q0xzovSzRQ(^+PaGEr z975-$=&Vy#hnT=0z&OHiM#0=9Snwb`K%}5u^H?XG@^Z|T80=*}XJH8jOYk)zR1-A{ z_-f0m>A%Wqs;lCCenRxY;6sZ}w@B-Y1tt@Mwe`~3acps1eWRKwrIldJEox1TI(ryK z+2R$P9x>U=B(j*pFkw`~adoE47o}BhW(pV=)r|Jr-x#D9s`b_SVX>H@RFJZy#=jU& z$-j(~0R+X0%5dno5no)O{I-=JxNhx&%NpT=twm~HY^e9e&*D)Lh;%Bdef6AbM0upf z_{!j7EiKN!WKTK+W~%E@rw)v8YPVsug8mABO&P-g8)j!;S-=mtj>MwaHpGV&<%sZX zz9v=QhKU#QwbhqT`Hi-a*WK5~d5TF|2P?HWML^8sNqNbQqX07?B zeZ}IDs>-0u+T*b)+Lts-(Idz+xI(u8T3S#2aFI}G6`sN=RyXKqMK`DM3Lyh$UL&SH zCootAVUHOP3#*DA{4xu5XbOusuD+h#Aqu#Q_RKnytCnJX$NHt>5sq_p6{dIbM*ZQ5 zk~$e2nEi^$rwWoagDaE^2k@q4G8ht^OUMng9#`d4vBJ12+qmTlQ-cr&GcxC;+9w(9 zxjBM#3L4c3X9o!WLPDmRU%=TP8iDpSDMco#v0P1z*R)OFNup;>&$BAU(u!bh9D!Ir zIj2Qgs8p4NkxDEmP#EoVH*Lls({s11c-8#nz%kS15=T#QRx}1wZA55eoWEsT zvAkj|HlEPiO21Rsjt>qa-=+4*VGn?ynwXyO4KL(sz@X^#bz5F0zOjXYTzN= zdkyv)3BNWH8J&uMP5nC1MYNm44nQcMfwa*Kk@9|Ivn>}hjb+lO4{~A ze{p`BzfYR}2>3+Wv;n)Wgg**8NR3U{iyjL2W|Sk%+JgE>Cn4=d%HOlf#sLHVE>|hi z(ig!eQtwNV$abXb-atQbpr-3R)Wch{rSC@~JCLULp#A+J52V>hyFQ3S79w5wAr3wv zP5&qoxfki`kAa6x+N@8&C(ve!LwR!EC=MAx^p8>h>V!exT8z?`X0DTd@iqBU>A_(K67wO%L zdoS?MCN$5U*^*o?6qnl5ZBBq*z|u0pEHt5EJ9T8F zSuH6ZyR&JCJ!`r>(``?m23+>(Fvy{_1u{o!n_@i`J#(6BjxE^6;;uyfHL!(T(gELBCIhb}Wu|?#)J}d5ExV=V z8ADG33cuZ151V;Fw|foouVlL|sWa_sP-(j}`JExs9O|LDGlrgqdM^Nf5^QS-Y-~V& z3+z2dCO_GSUDh9ldg-vq@w(kU{q@+hlUq=Ax}~Qx)qt{}1*pFl^?%Fy`S#3flA$tJ zQnoFr$pO_#FiVr+>t)-;Y_A>d;h7iv-U*lsFuo3EAFfIEMrkawkbp!mSfBO`6-DedQpxeNxL{k9|?{>qG350Kq5%1EZ=&%`;T^ z8V(;+2w!CK)d~8e0jmLQ>LA5eNAjFRUD!S><-;U<&#)@{_F>h(kk;t(UrLjoP8ccE zekkw9!BZCA-IU|mc7{c-oXImyjmq1ym8GJCp98-X_>aH`QnuGopZk~5OnaBJz}`6~ zWoeRq^_Vm5YsM7W*Nw@yugBdvCb<;igEI6HUveF=rvZB!u%`jLhS+leEC#Sd1LqLf zn1Fc+fxaOc>Sk+0JqZ=rwhyrRAT}2m1!$oVuqwdjY8YFU2HYkslb5+duMl{psOvHD zN{E*aXr5+o_RtlHRTV3VVpxWXb5L=fuE=I_!oXGxf4LrWQHX-~+MAP-FA_gQ{jNuu z3ooDVVp+@=z($rw{f}p8P4w9fV<`pdI@G%r^&Z#yeQk1{J*$KIeGPrlm1!7`mO&6g zT5{(Qd$vd1kwvkS7u(mR&9bjgTY}ULG`5e6el?Xkjk61XB4Cz%O=|KY;g{KB+%A+i zqkIu;?7z~R?MJ5E4v*N6im*F!aelcNbXVfM$__%rpM(EYI(2$srRl`G6L`6Q?t`~j z;pGcS^7#Vr_5$x6@(GLnMg8u|g+{qkc9GZVebiZa<#@VaFU_|_B3Izq28Y{{oZL*u zQ;2LX%DzF_hvedyY^pgWWzV3WmkZ~eRiN34kCAG$y!-fJ&N~J6b>Mz`Zpy9TKF%Wx z-;~=wL8t4!NaQ9woAOP7y8*wj8-8Ig ztf%=n%!6Zs1N1F90OV;vo(AM;K=uJSxd6ao082EG6yPi3F&hZ<57AIJP|tuF_pRsy zY(9w11xA5php;)CMYbvpoMELU(4onNCd}mTjG@WX5@B9xH?hkVx{X4#JJW3AJOJmR z;d7C?(E*5+<57c{arMKI$d!0j<3T%{H5Bt2q7(wv9JmU2HpHA_kK!YyGhUcscR~<4 zQg9EgwT~{eXP+yEuHvZ|P;V*f;dn;$s)4`w81Q<){hTa+Nk=)pYjRSaO0uuZIn%yA zr^w!wlW*_Fy(TAlWxoUL9f|>7mjlm>y9;-Bj*r-I(K*EcmS`Y+r2<+pn*eMCVj&Pq zf#^YPL4=wrnr?Cc;l~prKR&?bquyL#6lfj^n*$j6CMUu-{BMjFp}IKfX1sMV9@C$UM0OERVjXLo zmz`X14e|1Z*4rl)+H=p9z(r!E$5Fov^?L`XkBF8LsR|MERJ+B{hi~v$-yMmZ_utz4 z`Z4h5_Ac0aH|+fx*!y&IZ8?AOO9R|6Sh#{CTL?U=OJk4c^lU@?Ft8b}J5#o{p= z2wXBmL)}1~g(2u$(FfRk5St5(0?iI#b2N)=RT^+xX%UKHo@v5N{$_E?k7tA$*SE(N zx`{$GJ5x77>Dw-bTnn(KYuXx#45t15H+Hsta!OOOeaGZ8?LCu=?8fAL`)=IZCl4H7 zT>$K9z@7$dIMm5C#6Aj9p}z881%6pwu+?#?MvZvpGU6;IC7?9LTu8&6B| z)<-T2P<0Nf&eK&%P{c3mtQYLCC#M4lopVwP(#npiW<Rik^Ubq$yCJ>Y{ z9@$QMuS6o(=s3~3cI5I63|Q$UpJAUg$DVt(I2FW*%#6B+Ps$4IS+nfUGJ6*60K$~LfEwVAek~H=zxYA>xR&b= zYYdAOS<9fA_VrFoIL?dg&p3;*(yhRAaxP-p>G3hGcW6E^W&mR;Fc`9briN`amhZqu-8(LdMj8@#vjWouHT&q zc%t($=64hq0{1E4dZMv1;`D1%^0*H5avh36xN?w(>(H6@!sHw5rE~3zO6{e{Tmo;} zcTGBDX!14o(%JS!mG)A%y>PxfFOuh_Xs;XX-T7uDvPsKS$Gp;BUbH>E?!`*v@qQbb zIkeQiGHJHGGiec0Hzs2xShDUewaC@1RwV#brUAWf;3s@$4V&R|)(ofnO!?|BM7an5f#hN2lgId^gv6xXk>^Z<2GJqIb#W4e2>WM+n*wSrrY&~rMYjp z6z{coVardhm6|{EozZkn(2PqM$MV7!xVm~&qMNa;*7b+$Vx6_&gDSa7`NcFY6Fyoq zZt|V233KVk%WUr_Y`ZYOS_>kg^Jcrdb^cy0nD2FdBrE;Dcs--XCy|AdvlV29PUq{i zN~ghxiqZq@0VI{j3qdvrP|N7Xw}r^o2@WS!2?>3p45>2$eHuhi)c zI$f*NhjqGDr*G=?Q=RV7>7WyI`#L>Frzh)lhEC_}v`VMTb$X>vZ_w#loj$D7tvY>E zr=RL{k4^`jsN2`+F*-e2r!#aqU#C?%U9QtBb;_T@=e1U+59@TRPT$n&r#juE(?NV$ zf$Kn>9;4Hfbvi?*^L1LK)8#t7Ql~fQbgfPw*6CKAzNynsb-G8VgS7uTP^ZV}^kki` z`B3pU(BEBms*;E9Q0enJ{ijYp*XbaQcbHDc>hyG-&eLg?PA}5wN}b-Q({(z1NT;vs fG<~gV|683Oa+k^ Date: Sun, 26 Nov 2023 04:22:43 +1100 Subject: [PATCH 63/77] Delete lib/DS1821+_libsynonvme.so.1 --- lib/DS1821+_libsynonvme.so.1 | Bin 54154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/DS1821+_libsynonvme.so.1 diff --git a/lib/DS1821+_libsynonvme.so.1 b/lib/DS1821+_libsynonvme.so.1 deleted file mode 100644 index 1f97be2d5b43e3d68c45f780d3857d597862d842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54154 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 fG<~gV|683Oa+k^ Date: Sun, 26 Nov 2023 04:23:08 +1100 Subject: [PATCH 64/77] Delete lib/64570_libsynonvme.so.1 --- lib/64570_libsynonvme.so.1 | Bin 54154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/64570_libsynonvme.so.1 diff --git a/lib/64570_libsynonvme.so.1 b/lib/64570_libsynonvme.so.1 deleted file mode 100644 index 1f97be2d5b43e3d68c45f780d3857d597862d842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54154 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 fG<~gV|683Oa+k^ Date: Sun, 26 Nov 2023 04:23:19 +1100 Subject: [PATCH 65/77] Delete bin/64570_synonvme --- bin/64570_synonvme | Bin 17241 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/64570_synonvme diff --git a/bin/64570_synonvme b/bin/64570_synonvme deleted file mode 100644 index 2dc63b55f2cfc20dc364bbc39d2b16105db24799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17241 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 Date: Sun, 26 Nov 2023 04:23:41 +1100 Subject: [PATCH 66/77] Delete dtb directory --- dtb/All_Depreciated.txt | 1 - dtb/DS1520+_model.dtb | Bin 3617 -> 0 bytes dtb/DS1621+_model.dtb | Bin 3834 -> 0 bytes dtb/DS1821+_model.dtb | Bin 4420 -> 0 bytes dtb/DS2422+_model.dtb | Bin 4923 -> 0 bytes dtb/RS1221+_model.dtb | Bin 3900 -> 0 bytes dtb/RS1221RP+_model.dtb | Bin 3904 -> 0 bytes dtb/RS2421+_model.dtb | Bin 5871 -> 0 bytes dtb/RS2421RP+_model.dtb | Bin 6225 -> 0 bytes dtb/RS2423+_model.dtb | Bin 9166 -> 0 bytes dtb/RS2821RP+_model.dtb | Bin 6918 -> 0 bytes dtb/RS822+_model.dtb | Bin 3617 -> 0 bytes dtb/RS822RP+_model.dtb | Bin 3617 -> 0 bytes 13 files changed, 1 deletion(-) delete mode 100644 dtb/All_Depreciated.txt delete mode 100644 dtb/DS1520+_model.dtb delete mode 100644 dtb/DS1621+_model.dtb delete mode 100644 dtb/DS1821+_model.dtb delete mode 100644 dtb/DS2422+_model.dtb delete mode 100644 dtb/RS1221+_model.dtb delete mode 100644 dtb/RS1221RP+_model.dtb delete mode 100644 dtb/RS2421+_model.dtb delete mode 100644 dtb/RS2421RP+_model.dtb delete mode 100644 dtb/RS2423+_model.dtb delete mode 100644 dtb/RS2821RP+_model.dtb delete mode 100644 dtb/RS822+_model.dtb delete mode 100644 dtb/RS822RP+_model.dtb diff --git a/dtb/All_Depreciated.txt b/dtb/All_Depreciated.txt deleted file mode 100644 index 4bbd93a..0000000 --- a/dtb/All_Depreciated.txt +++ /dev/null @@ -1 +0,0 @@ -These model.dtb files are no longer needed. diff --git a/dtb/DS1520+_model.dtb b/dtb/DS1520+_model.dtb deleted file mode 100644 index 5bce9d2f9169d9bcd84acafddecf237e72476549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3617 zcmd5nJd22qfrnCp?g3bt8JSPr6B5` z0>U%VCa&@98$c(3kf%w@qUtgbu1^EK$kG9YUmRLyALiZCn!~(bT7Q7~b0A}9zimB% z2@KS&!*UV!3M~GSRx*+(ad^nGXAmhEMi_M5%oTI(%SW*)eEX!3A*RldktE zIc$&O!TVg7Lmg{dro36Kl~RsN$GSdV|4)4daYobF4NHv+>kND853akHti7|q`w4Uv z2nWg`?+?&jAj}E!&cO6Un6$PxRsR{u?+WZMo90uiQgKputmZ=MJH3?B7!1Qe`{zJ^ z72gsEHdVev{!o^sZrqbMbWB#|1!aYN6}zZL)R~5T74~tUoW_0+=EsRWukBgb)%}?Z zyG%viSB)xmu{#U7~`vx|K#BhQtV>dwWpXPhexXqywx&G&^2zKbQm=zo4cS{r#Us(Y`+ zn_qH#L|>eRygGgKVaa1r;$}f7q$FZK4ap%*dB9>K9u}Si@gRYRhYgZ(jsx=UQ1bh} z4;A*7rXbGg8_Dz{#+{V*fa48P>U2Yw_a|?47|TX>;Bztz;)AXmgk*Q`WG>8ra9I}0PAxVWqQc$FVBAw;4H+L4c*LZzLuBPEP@IUDJ z2T;%=Axb1VDkKmy`?7r(JGq2NSlaVGX1|$lW_H&1Y30ukLN5Ozgsc&=@&VrWpk0G@ z6&gI&2F$;e{o1dkMyKJug#G8!l*Mc~t<2wq{xVnd-o&wO+jCZ3=Rrm04D?YS;vp7} zZ$Ud(8CT`c!u-=BA5(bagL^JO+bIHnz2EQaImC&fRdL_I_zpC!=Ntq4{|%b8 zxzl$ZLkAv|ZQ^$Y)=GZip5A0-N#^mG6;B+5AXXd={K6M~t^1=Gm9~6V<5Td)R${nf z<**pYcOIj=5Qg4gx1+ZZ2J+N6B^ME%L;C|`s4;{sTaLZ$+MO5Dt*x=S4tvYkP{&SS zW1-@axL)Arp$ZSN(n(UyCyeVC+kRv}wAb(ldN5Pw!gtQYzz;@xkG9d$xH4pIxV=Si z1@~=t(}6=;wPU|CSI^1B4b>)NoARCIkAg_T2|rdicV}(GIQ&$y!j@)#EyT;%r2TaS zn{>Xn#IQfh2hVd;47IOa8S>T~oAb5WWO!*`H~Z`V$*(9aXrB6UrEuXH#(Mjk>*^)X zz9S@2R>n6SoyuzhT=Ow)3c8o}RMSVJ?}t#WeJWIi)E~!hY!EUBvwz76Ji@X+u|gz zhf=mJPVyRP;v|s%0jJet=iVxiukvr>q`ntS4%FjhzDtgIo*FqBy$9uS4 z{Dpj-lkm<-#;Gm$ma8?wkwv13Q(aaT3F9w{#m&oDuD{j*_z3k(=ZUbPf~k&r8)jon zYnXV4%+zN1?$veH)PbhEP27)izo~6m;9xfHrjLy#ap`XDA!~ArZQ_kgdkTCA$bO@NiIH%rj z?DNt7O9RFVvbFteli+`+I7(jcf}4@WwEU7{TO3DDoG;H$iCt diff --git a/dtb/DS1821+_model.dtb b/dtb/DS1821+_model.dtb deleted file mode 100644 index c90ec426c8f28715833c111fb07f8f048c60df48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4420 zcmd5=&2G~`5Z(nUD5WY@#epL?RA^=Ar?f~&NTjMbR6>G7B@UKjyNQMEHU0_BnYZ9Q zxbY6~2ndM_5+^t#X7G5OJS(>RXaLMVIWV1Q*h}ng@O5@Ft{zprg7Rb_Ff3LHpXTL))ukx zOe2JanT$u+vK%{cWq1gUMqxR}Fs?rgW8b)M9O577al2(MP?DyuV>?5&M%hRet_WEZ zZf6->&i%C2GhyT6vv^L1Emtnmwn^Vnd+7KAj^mX$wrC1LTqj4#D1#UDT;)aoyfhatSAySoOr}n z$*E~SRqYf-VlhslNN7$T9zs^k5_PMF1gJlEYWE3d^ejwSlAADV&$0?8p7j%FDEz)q z=b^6Gb$1Ycj}hzjc~x4kYh&&D*zp_mb4>34JnfgvBy`lzQzQZp<_hY31n-y7^jQsS zl%G%r?}aDk9^X(3Q)FUs)}OSBc_mY#SF3k-zTOI#8G7}6Rj-h&;|uvZk1q#Mm^1Y1 zc_kzGirlZ$dt;v7cHu_~ahTHEDdtfxwsnVvv7Pz-z#}1Zy?~6oB=uQD_~j~%{V0#& z^2PFadc*>Gdo0F>t_wTwjhBFU>b;i2A!Lk&Q`tE7CdX{oj^RQ%J?ti4nu=j3WT};S z1Hg3h#Iw!=I~~rR>NA#!ncPk?3;y}Q^2{2cAy_M2~JXS|bqUH$uuvGu2nv0cX2{=oA-v^8kA zp}~j0gyCn|Kk?1;(PelpWB>Ie6uuZvD)V=szmnwh=2+J>%`|$3@t`7e1^TED@em8g zccI;=jH~iXF#jTrGZ&ut!97=@9R{8qiwLI*93T2s+z&7Ydy4gs(EnB$e}ew^e0&X_ zU!Wm2V(`5~-7pO3$^A_>qu)xKony6$M?qvJzDS?zgu#7pV5JuImEAvRRPy@?V_dtG zw-Q70I4_3UkIxcg2SzYHClB<2!YMI&tr%6`H`~&m2}5x>Y0JZzFs9q`s1*bCsdH+! z1+oY}O+Kw-OtK`(X}=nXvf*M=oF|;w$w4E+oDsTo)@EP3*zy8T{|$etv51d zh;vikt%H1-cdo7lurbYZEig>mik&?57!Sum_5E=R_WstiZEaKA#V_c=jPw!c<19%W z+p3$$@T+d&yX})?MCjU-GSlcn+k5Z@BSB?b(uo5*_>}WWwSN1 zJvvEwmX&kfshRs_e+y�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 Hg9zd;N)Y#q diff --git a/dtb/RS2421RP+_model.dtb b/dtb/RS2421RP+_model.dtb deleted file mode 100644 index 4b7d333a9f52fbd5be743d699ab9c77a2d8b5e1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6225 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 diff --git a/dtb/RS822+_model.dtb b/dtb/RS822+_model.dtb deleted file mode 100644 index caf3a9c1fa5c4fc67c49d4fe2a5b96ef3d60f078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3617 zcmd5DEbKurms0ED2RfR7OI-u&6!JNwo?i-MKj?aZ6^e(%q`d9(NP*0a9}x&0;~ zf&xfZ(BD0snJ1T>hb9dJWz;aQw+>tx7dJ9q?a;@l6x>e33B5xHboA z`nDHB-RFVO9^&Er7SL-z&jBGX@=*@eUI0Qle1BwhE8&e##CiUBRbVt0Q~3w;B(g#dUia zbDjDvAFZ+FvkSQnN?lwr*X#53|EaH{wo=!k95fxQckG3~nAmxItzfVF6$tABACyDh zKR_=5;hrGxCeSlsD>)O%KJ(3RweGe+{5oUr!%0i~ljil$)LkiaKGRax01OY>0DJTf z-UA#K!=AZ4L|LUpJ@cpZjBMB&ly&mU@wP7Km%=irBhyA=-{K?K_Z2!>))B}AT=#O9%=WuUd`zy@R^at?M#XnXn z{wnHa$7*E{Km+bMwc?O2%9XqS0b`h}+c3XUt&HR<;;qTm8-E5L(DbEqwGYzpba@@i z)w{i{lb6^$c%yXuk^#djeZK1f$#@SK)WG*sFcarc16ytI&)ICULay{Ns8!!*k{x&Q zom^|C12IAu)7E(R<37=kVSW#&JAHSQ6OIZ;+>X2y{s|^i9k?)bx7Y;0#5Zxm*;P zjGtQ$AHKzDrERutCVP|jm;gA(hn`BmWG9p8OJ_S^1ecsF^jcc2+%M=?z}O#RAP&-v zOjV7r#k7>9Qn@V2LTXc}nz&2EG)3JuaLK5)Im>}SN^$D>^E`*DekwJH8~KH2W|cBr z%NcO8R!e?d3Nt@{X{waRFOt2t1?x3wsVO?6do#|6UR3RZfzGjHDey+8Bj&EC&j&;BOl_M3!| z143?n1Mho4cYt02f`@(u{LkHR`G;H^!}mv4w-Vm?M6Aa!{%tTfF#bKvUxfG9 zK-YmB_M^wU2?UN0>aUCAWmxOu&?ixeHdVt-sqFm(AqXvtsj$M0qd(ueS?}L>VUF>+ z7(0yAty~rZ{XdH_*$5-*FZ;2(5eCM&g!3R_M=9I>)Td-LuXjPW&#O#W1&TK0vPyX- zbRJSmXuYV0dyRYY17kbv9d>{}Fmis!ef-gwJQLYG>O>!D#P#VO!`0yW zsx%Kuoo^v`RLrx&Mdj;f5c6c!H#{Fd1zG3I`h0B^SLajA*A;w@(jCSL<#I#IG~g<#`Yg=Kt0gcf&K_KaSr$PwZFm~O@9DCUHoIU z;;*7!cC1$R05ss9Q!5VXqFlNAA25cwx()Ly)yhb&BHo%@z42%80Zm^zSNk9hPnXxR zT)o@NI(doBgEvaYFBver(&xJ#kc{_$K@EIA1v7CDHL%qN|D4SxE96QagIe`{CfRW( z-^sORIuIjtF>Q@^KkgI#80PnYx-$qm;h1&yA0^xFyhO}!wEFe5Uym~0u18vD_pOWV zI)I3Ij@@qE$rNeEA;kO3cN_ie!=uB8j3t5X{04cNhd`HfL*K;QLrt&O4bD)snaf3y z$@sbD@ZnpWR@!FUX0kVVj|qTteCVn4OLj7ezI3(&MsUf=La(LO%Kd_V1&sY62I3&y z$W+w`TTDwyDwWHUETlGts)@TqOjFct1DA|yo3k7Uq!g!~KhJZh>ZekJxRGCYW>zV~ zwVVMbYqjLZr7-jJm!?WtztReAIsCm*t>v?(P~^eU!$X4K?qyLwA+DGkW$bZrLhu}M zd)i16PZepjvMN)hXFHcTMB$-wX=P^nIo=>n-Jxpq0a>+x4`5Tw@cz#cc_!<0l`$bk oT5e3n)$y@+-MNdW2>l`=YYILuazAKc&~Lssfpd}PS{g(C1sU@nqW}N^ From e0deaf8926fa7a8e80c383918876ecb4db6a1693 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:36:51 +1100 Subject: [PATCH 67/77] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c01f41b..654df74 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ Thank you to the following PayPal donators, GitHub sponsors and hardware donator | | | | | |--------------------|--------------------|----------------------|----------------------| +| | | | cpharada | | Neil Tapp | zen1605 | Kleissner Investments | Angel Scandinavia | | bcollins | Peter jackson | Mir Hekmat | Andrew Tapp | | Peter Weißflog | Joseph Skup | Dirk Kurfuerst | Gareth Locke | From a0a351ebe235fbd1345a737f87987aada6571b33 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Wed, 29 Nov 2023 06:44:47 +1100 Subject: [PATCH 68/77] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 654df74..b7b3805 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ Thank you to the following PayPal donators, GitHub sponsors and hardware donator | | | | | |--------------------|--------------------|----------------------|----------------------| -| | | | cpharada | +| | | Matthias Pfaff | cpharada | | Neil Tapp | zen1605 | Kleissner Investments | Angel Scandinavia | | bcollins | Peter jackson | Mir Hekmat | Andrew Tapp | | Peter Weißflog | Joseph Skup | Dirk Kurfuerst | Gareth Locke | From 77491ea0d91216f2ecef032ddb845f74ee312177 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 30 Nov 2023 07:28:57 +1100 Subject: [PATCH 69/77] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b7b3805..dc54161 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ Thank you to the following PayPal donators, GitHub sponsors and hardware donator | | | | | |--------------------|--------------------|----------------------|----------------------| -| | | Matthias Pfaff | cpharada | +| | Mikescher | Matthias Pfaff | cpharada | | Neil Tapp | zen1605 | Kleissner Investments | Angel Scandinavia | | bcollins | Peter jackson | Mir Hekmat | Andrew Tapp | | Peter Weißflog | Joseph Skup | Dirk Kurfuerst | Gareth Locke | From a53820d313ff307dcd00f7b0894c432c35d641f9 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:49:24 +1100 Subject: [PATCH 70/77] Update syno_hdd_db.sh Added M2D17 for devicetree models --- syno_hdd_db.sh | 205 ++++++++++++++++++++++++++++++------------------- 1 file changed, 126 insertions(+), 79 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index aff7000..bb8fb5d 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -30,7 +30,7 @@ # Fixed bug where memory was shown in MB but with GB unit. -scriptver="v3.2.67" +scriptver="v3.2.68" script=Synology_HDD_db repo="007revad/Synology_HDD_db" @@ -434,19 +434,40 @@ fi #------------------------------------------------------------------------------ -# Restore changes from backups +# Set file variables + +if [[ -f /etc.defaults/model.dtb ]]; then # Is device tree model + # Get syn_hw_revision, r1 or r2 etc (or just a linefeed if not a revision) + hwrevision=$(cat /proc/sys/kernel/syno_hw_revision) + + # If syno_hw_revision is r1 or r2 it's a real Synology, + # and I need to edit model_rN.dtb instead of model.dtb + if [[ $hwrevision =~ r[0-9] ]]; then + #echo "hwrevision: $hwrevision" # debug + hwrev="_$hwrevision" + fi + dtb_file="/etc.defaults/model${hwrev}.dtb" + dtb2_file="/etc/model${hwrev}.dtb" + #dts_file="/etc.defaults/model${hwrev}.dts" + dts_file="/tmp/model${hwrev}.dts" +fi + +adapter_cards="/usr/syno/etc.defaults/adapter_cards.conf" +adapter_cards2="/usr/syno/etc/adapter_cards.conf" dbpath=/var/lib/disk-compatibility/ synoinfo="/etc.defaults/synoinfo.conf" -adapter_cards="/usr/syno/etc.defaults/adapter_cards.conf" -modeldtb="/etc.defaults/model.dtb" + + +#------------------------------------------------------------------------------ +# Restore changes from backups if [[ $restore == "yes" ]]; then dbbakfiles=($(find $dbpath -maxdepth 1 \( -name "*.db.new.bak" -o -name "*.db.bak" \))) echo if [[ ${#dbbakfiles[@]} -gt "0" ]] || [[ -f ${synoinfo}.bak ]] ||\ - [[ -f ${modeldtb}.bak ]] || [[ -f ${adapter_cards}.bak ]] ; then + [[ -f ${dtb_file}.bak ]] || [[ -f ${adapter_cards}.bak ]] ; then # Restore synoinfo.conf from backup if [[ -f ${synoinfo}.bak ]]; then @@ -459,22 +480,40 @@ if [[ $restore == "yes" ]]; then fi # Restore adapter_cards.conf from backup + # /usr/syno/etc.defaults/adapter_cards.conf if [[ -f ${adapter_cards}.bak ]]; then if cp -p "${adapter_cards}.bak" "${adapter_cards}"; then - echo -e "Restored $(basename -- "$adapter_cards")\n" + echo -e "Restored ${adapter_cards}\n" else restoreerr=1 - echo -e "${Error}ERROR${Off} Failed to restore adapter_cards.conf!\n" + echo -e "${Error}ERROR${Off} Failed to restore ${adapter_cards}!\n" + fi + fi + # /usr/syno/etc/adapter_cards.conf + if [[ -f ${adapter_cards2}.bak ]]; then + if cp -p "${adapter_cards2}.bak" "${adapter_cards2}"; then + echo -e "Restored ${adapter_cards2}\n" + else + restoreerr=1 + echo -e "${Error}ERROR${Off} Failed to restore ${adapter_cards2}!\n" fi fi - # Restore modeldtb from backup - if [[ -f ${modeldtb}.bak ]]; then - if cp -p "${modeldtb}.bak" "${modeldtb}"; then - echo -e "Restored $(basename -- "$modeldtb")\n" + # Restore model.dtb from backup + if [[ -f ${dtb_file}.bak ]]; then + # /etc.default/model.dtb + if cp -p "${dtb_file}.bak" "${dtb_file}"; then + echo -e "Restored ${dtb_file}\n" + else + restoreerr=1 + echo -e "${Error}ERROR${Off} Failed to restore ${dtb_file}!\n" + fi + # Restore /etc/model.dtb from /etc.default/model.dtb + if cp -p "${dtb_file}.bak" "${dtb2_file}"; then + echo -e "Restored ${dtb2_file}\n" else restoreerr=1 - echo -e "${Error}ERROR${Off} Failed to restore model.dtb!\n" + echo -e "${Error}ERROR${Off} Failed to restore ${dtb2_file}!\n" fi fi @@ -519,7 +558,7 @@ if [[ $restore == "yes" ]]; then echo -e "\nRestore successful." fi else - echo "Nothing to restore." + echo -e "Nothing to restore." fi exit fi @@ -910,10 +949,15 @@ backupdb(){ if [[ $(basename "$1") == "synoinfo.conf" ]]; then echo "" >&2 # Formatting for stdout fi + if [[ $2 == "long" ]]; then + fname="$1" + else + fname=$(basename -- "${1}") + fi if cp -p "$1" "$1.bak"; then - echo -e "Backed up $(basename -- "${1}")" >&2 + echo -e "Backed up ${fname}" >&2 else - echo -e "${Error}ERROR 5${Off} Failed to backup $(basename -- "${1}")!" >&2 + echo -e "${Error}ERROR 5${Off} Failed to backup ${fname}!" >&2 return 1 fi fi @@ -984,7 +1028,6 @@ editdb7(){ echo -e "\n${Error}ERROR 6c${Off} Failed to update $(basename -- "$2")${Off}" #exit 6 fi - fi } @@ -1015,7 +1058,7 @@ updatedb(){ if grep '"disk_compatbility_info":{}' "$2" >/dev/null; then # Replace "disk_compatbility_info":{} with - # "disk_compatbility_info":{"WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}}} + # "disk_compatbility_info":{"WD40PURX-64GVNY0":{"80.00A80":{ ... }}},"default":{ ... }}}} #echo "Edit empty db file:" # debug editdb7 "empty" "$2" @@ -1116,16 +1159,29 @@ enable_card(){ # $2 is the section # $3 is the card model and mode if [[ -f $1 ]] && [[ -n $2 ]] && [[ -n $3 ]]; then + backupdb "$adapter_cards" long + backupdb "$adapter_cards2" long + # Check if section exists if ! grep '^\['"$2"'\]$' "$1" >/dev/null; then echo -e "Section [$2] not found in $(basename -- "$1")!" >&2 return fi # Check if already enabled - val=$(get_section_key_value "$1" "$2" "$modelname") + # + # No idea if "cat /proc/sys/kernel/syno_hw_version" returns upper or lower case RP + # "/usr/syno/etc.defaults/adapter_cards.conf" uses lower case rp but upper case RS + # So we'll convert RP to rp when needed. + # + modelrplowercase=${modelname//RP/rp} + val=$(get_section_key_value "$1" "$2" "$modelrplowercase") if [[ $val != "yes" ]]; then - if set_section_key_value "$1" "$2" "$modelname" yes; then + # /usr/syno/etc.defaults/adapter_cards.conf + if set_section_key_value "$1" "$2" "$modelrplowercase" yes; then + # /usr/syno/etc/adapter_cards.conf + set_section_key_value "$adapter_cards2" "$2" "$modelrplowercase" yes echo -e "Enabled ${Yellow}$3${Off} for ${Cyan}$modelname${Off}" >&2 + rebootmsg=yes else echo -e "${Error}ERROR 9${Off} Failed to enable $3 for ${modelname}!" >&2 fi @@ -1135,7 +1191,6 @@ enable_card(){ fi } - dts_m2_card(){ # $1 is the card model # $2 is the dts file @@ -1208,10 +1263,36 @@ elif [[ $1 == M2D18 ]]; then }; EOM2D18 +elif [[ $1 == M2D17 ]]; then + cat >> "$2" <; + }; + }; + + m2_card@2 { + + ahci { + pcie_postfix = "00.0,03.0,00.0"; + ata_port = <0x01>; + }; + }; + }; +}; +EOM2D17 + fi } - install_binfile(){ # install_binfile # example: @@ -1235,7 +1316,7 @@ install_binfile(){ fi if [[ ${reply,,} == "y" ]]; then echo -e "\nDownloading ${1}" - if ! curl -kLO -m 30 --connect-timeout 5 "$2" -o "/tmp/$1"; then + if ! curl -kL -m 30 --connect-timeout 5 "$2" -o "/tmp/$1"; then echo -e "${Error}ERROR${Off} Failed to download ${1}!" return fi @@ -1263,37 +1344,9 @@ install_binfile(){ cp -p "$binfile" "$3" } -edit_dts(){ - # $1 is M.2 card model - # Edit model.dts if needed - if ! grep "$1" "$dtb_file" >/dev/null; then - dts_m2_card "$1" "$dts_file" - #echo "Added $1 to model${hwrev}.dtb" >&2 - echo -e "Added ${Yellow}$1${Off} to ${Cyan}model${hwrev}.dtb${Off}" >&2 -# else - #echo "$1 already exists in model${hwrev}.dtb" >&2 -# echo -e "${Yellow}$1${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 - fi -} - - -check_modeldtb(){ +edit_modeldtb(){ # $1 is E10M20-T1 or M2D20 or M2D18 or M2D17 if [[ -f /etc.defaults/model.dtb ]]; then # Is device tree model - # Get syn_hw_revision, r1 or r2 etc (or just a linefeed if not a revision) - hwrevision=$(cat /proc/sys/kernel/syno_hw_revision) - - # If syno_hw_revision is r1 or r2 it's a real Synology, - # and I need to edit model_rN.dtb instead of model.dtb - if [[ $hwrevision =~ r[0-9] ]]; then - #echo "hwrevision: $hwrevision" # debug - hwrev="_$hwrevision" - fi - - dtb_file="/etc.defaults/model${hwrev}.dtb" - dts_file="/etc.defaults/model${hwrev}.dts" - dtb2_file="/etc/model${hwrev}.dtb" - # Check if dtc exists and is executable if [[ ! -x $(which dtc) ]]; then md5hash="01381dabbe86e13a2f4a8017b5552918" @@ -1307,16 +1360,22 @@ check_modeldtb(){ if [[ -x /usr/sbin/dtc ]]; then # Backup model.dtb - if ! backupdb "$dtb_file"; then - echo -e "${Error}ERROR${Off} Failed to backup ${dtb_file}!" >&2 - fi + backupdb "$dtb_file" long # Output model.dtb to model.dts dtc -q -I dtb -O dts -o "$dts_file" "$dtb_file" # -q Suppress warnings chmod 644 "$dts_file" # Edit model.dts - edit_dts "$1" + for c in "${cards[@]}"; do + # Edit model.dts if needed + if ! grep "$c" "$dtb_file" >/dev/null; then + dts_m2_card "$c" "$dts_file" + echo -e "Added ${Yellow}$c${Off} to ${Cyan}model${hwrev}.dtb${Off}" >&2 + else + echo -e "${Yellow}$c${Off} already exists in ${Cyan}model${hwrev}.dtb${Off}" >&2 + fi + done # Compile model.dts to model.dtb dtc -q -I dts -O dtb -o "$dtb_file" "$dts_file" # -q Suppress warnings @@ -1325,6 +1384,7 @@ check_modeldtb(){ chmod a+r "$dtb_file" chown root:root "$dtb_file" cp -pu "$dtb_file" "$dtb2_file" # Copy dtb file to /etc + rebootmsg=yes else echo -e "${Error}ERROR${Off} Missing /usr/sbin/dtc or not executable!" >&2 fi @@ -1333,42 +1393,29 @@ check_modeldtb(){ for c in "${m2cards[@]}"; do - #echo "" - m2cardconf="/usr/syno/etc.defaults/adapter_cards.conf" - m2card2conf="/usr/syno/etc/adapter_cards.conf" case "$c" in E10M20-T1) - backupdb "$m2cardconf" echo "" - enable_card "$m2cardconf" E10M20-T1_sup_nic "E10M20-T1 NIC" - enable_card "$m2cardconf" E10M20-T1_sup_nvme "E10M20-T1 NVMe" - #enable_card "$m2cardconf" E10M20-T1_sup_sata "E10M20-T1 SATA" - enable_card "$m2card2conf" E10M20-T1_sup_nic "E10M20-T1 NIC" - enable_card "$m2card2conf" E10M20-T1_sup_nvme "E10M20-T1 NVMe" - #enable_card "$m2card2conf" E10M20-T1_sup_sata "E10M20-T1 SATA" - check_modeldtb "$c" + enable_card "$adapter_cards" E10M20-T1_sup_nic "E10M20-T1 NIC" + enable_card "$adapter_cards" E10M20-T1_sup_nvme "E10M20-T1 NVMe" + #enable_card "$adapter_cards" E10M20-T1_sup_sata "E10M20-T1 SATA" + cards=(E10M20-T1) && edit_modeldtb ;; M2D20) - backupdb "$m2cardconf" echo "" - enable_card "$m2cardconf" M2D20_sup_nvme "M2D20 NVMe" - enable_card "$m2card2conf" M2D20_sup_nvme "M2D20 NVMe" - check_modeldtb "$c" + enable_card "$adapter_cards" M2D20_sup_nvme "M2D20 NVMe" + cards=(M2D20) && edit_modeldtb ;; M2D18) - backupdb "$m2cardconf" echo "" - enable_card "$m2cardconf" M2D18_sup_nvme "M2D18 NVMe" - enable_card "$m2cardconf" M2D18_sup_sata "M2D18 SATA" - enable_card "$m2card2conf" M2D18_sup_nvme "M2D18 NVMe" - enable_card "$m2card2conf" M2D18_sup_sata "M2D18 SATA" - check_modeldtb "$c" + enable_card "$adapter_cards" M2D18_sup_nvme "M2D18 NVMe" + enable_card "$adapter_cards" M2D18_sup_sata "M2D18 SATA" + cards=(M2D18) && edit_modeldtb ;; M2D17) - backupdb "$m2cardconf" echo "" - enable_card "$m2cardconf" M2D17_sup_sata "M2D17 SATA" - enable_card "$m2card2conf" M2D17_sup_sata "M2D17 SATA" + enable_card "$adapter_cards" M2D17_sup_sata "M2D17 SATA" + cards=(M2D17) && edit_modeldtb ;; *) echo "Unknown M2 card type: $c" From 79dd19149d42c7929d242bc5419cd93089e8fa95 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:50:59 +1100 Subject: [PATCH 71/77] Update CHANGES.txt --- CHANGES.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 93c8fa7..08d391b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,5 @@ -v3.2.67-RC -- Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree and are using: +v3.2.68 +- Updated so E10M20-T1, M2D20, M2D18 and M2D17 now work in models that use device tree and are using: - DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. - Now edits model.dtb instead of downloading a pre-edited version. - Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161 From 3a264a695b476ef795bd44d9851e9297ab4bc35e Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:23:06 +1100 Subject: [PATCH 72/77] Update syno_hdd_db.sh Bug fix to prevent enabling supportnvme and support_m2_pool on models with no M.2 slots or PCIe ports. --- syno_hdd_db.sh | 92 ++++++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 44 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index bb8fb5d..0a892a4 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -1574,61 +1574,65 @@ fi # Enable nvme support -if [[ $m2 != "no" ]]; then - # Check if nvme support is enabled - setting="$(get_key_value $synoinfo supportnvme)" - enabled="" - if [[ ! $setting ]]; then - # Add supportnvme="yes" - synosetkeyvalue "$synoinfo" supportnvme "yes" - enabled="yes" - elif [[ $setting == "no" ]]; then - # Change supportnvme="no" to "yes" - synosetkeyvalue "$synoinfo" supportnvme "yes" - enabled="yes" - elif [[ $setting == "yes" ]]; then - echo -e "\nNVMe support already enabled." - fi - - # Check if we enabled nvme support - setting="$(get_key_value $synoinfo supportnvme)" - if [[ $enabled == "yes" ]]; then - if [[ $setting == "yes" ]]; then - echo -e "\nEnabled NVMe support." - else - echo -e "\n${Error}ERROR${Off} Failed to enable NVMe support!" - fi - fi -fi - - -# Enable m2 volume support -if [[ $m2 != "no" ]]; then - if [[ $m2exists == "yes" ]]; then - # Check if m2 volume support is enabled - smp=support_m2_pool - setting="$(get_key_value $synoinfo ${smp})" +if ls /dev | grep nvme >/dev/null ; then + if [[ $m2 != "no" ]]; then + # Check if nvme support is enabled + setting="$(get_key_value $synoinfo supportnvme)" enabled="" if [[ ! $setting ]]; then - # Add support_m2_pool="yes" - #echo 'support_m2_pool="yes"' >> "$synoinfo" - synosetkeyvalue "$synoinfo" "$smp" "yes" + # Add supportnvme="yes" + synosetkeyvalue "$synoinfo" supportnvme "yes" enabled="yes" elif [[ $setting == "no" ]]; then - # Change support_m2_pool="no" to "yes" - synosetkeyvalue "$synoinfo" "$smp" "yes" + # Change supportnvme="no" to "yes" + synosetkeyvalue "$synoinfo" supportnvme "yes" enabled="yes" elif [[ $setting == "yes" ]]; then - echo -e "\nM.2 volume support already enabled." + echo -e "\nNVMe support already enabled." fi - # Check if we enabled m2 volume support - setting="$(get_key_value $synoinfo ${smp})" + # Check if we enabled nvme support + setting="$(get_key_value $synoinfo supportnvme)" if [[ $enabled == "yes" ]]; then if [[ $setting == "yes" ]]; then - echo -e "\nEnabled M.2 volume support." + echo -e "\nEnabled NVMe support." else - echo -e "\n${Error}ERROR${Off} Failed to enable m2 volume support!" + echo -e "\n${Error}ERROR${Off} Failed to enable NVMe support!" + fi + fi + fi +fi + + +# Enable m2 volume support +if ls /dev | grep nv[em] >/dev/null ; then + if [[ $m2 != "no" ]]; then + if [[ $m2exists == "yes" ]]; then + # Check if m2 volume support is enabled + smp=support_m2_pool + setting="$(get_key_value $synoinfo ${smp})" + enabled="" + if [[ ! $setting ]]; then + # Add support_m2_pool="yes" + #echo 'support_m2_pool="yes"' >> "$synoinfo" + synosetkeyvalue "$synoinfo" "$smp" "yes" + enabled="yes" + elif [[ $setting == "no" ]]; then + # Change support_m2_pool="no" to "yes" + synosetkeyvalue "$synoinfo" "$smp" "yes" + enabled="yes" + elif [[ $setting == "yes" ]]; then + echo -e "\nM.2 volume support already enabled." + fi + + # Check if we enabled m2 volume support + setting="$(get_key_value $synoinfo ${smp})" + if [[ $enabled == "yes" ]]; then + if [[ $setting == "yes" ]]; then + echo -e "\nEnabled M.2 volume support." + else + echo -e "\n${Error}ERROR${Off} Failed to enable m2 volume support!" + fi fi fi fi From 5c2c1d3d7746b9547b0241b9d3e1372807b90896 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:59:42 +1100 Subject: [PATCH 73/77] Update syno_hdd_db.sh Bug fix for M.2 drives in adapter cards --- syno_hdd_db.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 0a892a4..509cad5 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -30,7 +30,7 @@ # Fixed bug where memory was shown in MB but with GB unit. -scriptver="v3.2.68" +scriptver="v3.2.69" script=Synology_HDD_db repo="007revad/Synology_HDD_db" @@ -701,7 +701,6 @@ getm2info(){ getcardmodel(){ # Get M.2 card model (if M.2 drives found) # $1 is /dev/nvme0n1 etc - isinm2card="" if [[ ${#nvmelist[@]} -gt "0" ]]; then cardmodel=$(synodisk --m2-card-model-get "$1") if [[ $cardmodel =~ M2D[0-9][0-9] ]]; then @@ -713,7 +712,6 @@ getcardmodel(){ m2carddblist+=("${model}_${cardmodel,,}.db") # M.2 card's db file fi m2cardlist+=("$cardmodel") # M.2 card - isinm2card="yes" elif [[ $cardmodel =~ E[0-9][0-9]+M.+ ]]; then # Ethernet + M2 adaptor card if [[ -f "${model}_${cardmodel,,}${version}.db" ]]; then @@ -723,17 +721,14 @@ getcardmodel(){ m2carddblist+=("${model}_${cardmodel,,}.db") # M.2 card's db file fi m2cardlist+=("$cardmodel") # M.2 card - isinm2card="yes" fi fi } m2_pool_support(){ # M.2 drives in M2 adaptor card do not support storage pools - if [[ $isinm2card != "yes" ]]; then - if [[ -f /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support ]]; then # GitHub issue #86, 87 - echo 1 > /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support - fi + if [[ -f /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support ]]; then # GitHub issue #86, 87 + echo 1 > /run/synostorage/disks/"$(basename -- "$1")"/m2_pool_support fi } From ac0a3f3439e21cf666a9e50185d8e4d8b85d137f Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Fri, 1 Dec 2023 13:03:52 +1100 Subject: [PATCH 74/77] Update syno_hdd_db.sh --- syno_hdd_db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 509cad5..1833ee3 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -30,7 +30,7 @@ # Fixed bug where memory was shown in MB but with GB unit. -scriptver="v3.2.69" +scriptver="v3.2.68" script=Synology_HDD_db repo="007revad/Synology_HDD_db" From c79056a80c5100ce11855bc82010233fb3f3b896 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 2 Dec 2023 19:37:15 +1100 Subject: [PATCH 75/77] Update CHANGES.txt --- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.txt b/CHANGES.txt index 08d391b..4073d58 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,6 +2,7 @@ v3.2.68 - Updated so E10M20-T1, M2D20, M2D18 and M2D17 now work in models that use device tree and are using: - DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. - Now edits model.dtb instead of downloading a pre-edited version. +- Improvements to --restore option. - Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161 - Now supports NVMe drives that show as Unknown brand in storage manager: Issue #161 - ADATA, Corsair, Gigabyte, HS/MAXIO, MSI, Netac, Phison, PNY From b2e0b8ce7e7898e672e7c9016fa1dc3f184398f8 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 2 Dec 2023 19:44:51 +1100 Subject: [PATCH 76/77] Update syno_hdd_db.sh Improvements to --restore option. --- syno_hdd_db.sh | 62 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/syno_hdd_db.sh b/syno_hdd_db.sh index 1833ee3..c9e5a62 100644 --- a/syno_hdd_db.sh +++ b/syno_hdd_db.sh @@ -16,8 +16,8 @@ #-------------------------------------------------------------------------------------------------- # CHANGES -# Updated so E10M20-T1, M2D20 and M2D18 now work in models that use device tree, -# and are using DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. +# Updated so E10M20-T1, M2D20, M2D18 and M2D17 now work in models that use devicetree +# and are using DSM 7.2 Update 2 or 3, 7.2.1, 7.2.1 Update 1, 2 or 3. # # Now edits model.dtb instead of downloading a pre-edited version. # @@ -28,6 +28,8 @@ # - SK Hynix, Solidigm, SPCC/Lexar, TEAMGROUP, UMIS, ZHITAI # # Fixed bug where memory was shown in MB but with GB unit. +# +# Bug fixes and improvements to --restore option. scriptver="v3.2.68" @@ -463,54 +465,71 @@ synoinfo="/etc.defaults/synoinfo.conf" # Restore changes from backups if [[ $restore == "yes" ]]; then - dbbakfiles=($(find $dbpath -maxdepth 1 \( -name "*.db.new.bak" -o -name "*.db.bak" \))) - echo + dbbaklist=($(find $dbpath -maxdepth 1 \( -name "*.db.new.bak" -o -name "*.db.bak" \))) + # Sort array + IFS=$'\n' + dbbakfiles=($(sort <<<"${dbbaklist[*]}")) + unset IFS + echo "" if [[ ${#dbbakfiles[@]} -gt "0" ]] || [[ -f ${synoinfo}.bak ]] ||\ [[ -f ${dtb_file}.bak ]] || [[ -f ${adapter_cards}.bak ]] ; then # Restore synoinfo.conf from backup if [[ -f ${synoinfo}.bak ]]; then - if cp -p "${synoinfo}.bak" "${synoinfo}"; then - echo -e "Restored $(basename -- "$synoinfo")\n" - else - restoreerr=1 - echo -e "${Error}ERROR${Off} Failed to restore synoinfo.conf!\n" - fi + keyvalues=("support_disk_compatibility" "support_memory_compatibility") + keyvalues+=("mem_max_mb" "supportnvme" "support_m2_pool" "support_wdda") + for v in "${!keyvalues[@]}"; do + defaultval="$(get_key_value ${synoinfo}.bak "${keyvalues[v]}")" + currentval="$(get_key_value ${synoinfo} "${keyvalues[v]}")" + if [[ $currentval != "$defaultval" ]]; then + if synosetkeyvalue "$synoinfo" "${keyvalues[v]}" "$defaultval"; + then + echo "Restored ${keyvalues[v]} = $defaultval" + fi + fi + done fi + # Delete "drive_db_test_url=127.0.0.1" line (and line break) from synoinfo.conf + sed -i "/drive_db_test_url=*/d" "$synoinfo" + sed -i "/drive_db_test_url=*/d" /etc/synoinfo.conf + # Restore adapter_cards.conf from backup # /usr/syno/etc.defaults/adapter_cards.conf if [[ -f ${adapter_cards}.bak ]]; then if cp -p "${adapter_cards}.bak" "${adapter_cards}"; then - echo -e "Restored ${adapter_cards}\n" + echo "Restored ${adapter_cards}" else restoreerr=1 echo -e "${Error}ERROR${Off} Failed to restore ${adapter_cards}!\n" fi - fi - # /usr/syno/etc/adapter_cards.conf - if [[ -f ${adapter_cards2}.bak ]]; then - if cp -p "${adapter_cards2}.bak" "${adapter_cards2}"; then - echo -e "Restored ${adapter_cards2}\n" + # /usr/syno/etc/adapter_cards.conf + if cp -p "${adapter_cards}.bak" "${adapter_cards2}"; then + echo -e "Restored ${adapter_cards2}" else restoreerr=1 echo -e "${Error}ERROR${Off} Failed to restore ${adapter_cards2}!\n" fi + + # Make sure they don't lose E10M20-T1 network connection + modelrplowercase=${modelname//RP/rp} + set_section_key_value ${adapter_cards} E10M20-T1_sup_nic "$modelrplowercase" + set_section_key_value ${adapter_cards2} E10M20-T1_sup_nic "$modelrplowercase" fi # Restore model.dtb from backup if [[ -f ${dtb_file}.bak ]]; then # /etc.default/model.dtb if cp -p "${dtb_file}.bak" "${dtb_file}"; then - echo -e "Restored ${dtb_file}\n" + echo "Restored ${dtb_file}" else restoreerr=1 echo -e "${Error}ERROR${Off} Failed to restore ${dtb_file}!\n" fi # Restore /etc/model.dtb from /etc.default/model.dtb if cp -p "${dtb_file}.bak" "${dtb2_file}"; then - echo -e "Restored ${dtb2_file}\n" + echo -e "Restored ${dtb2_file}" else restoreerr=1 echo -e "${Error}ERROR${Off} Failed to restore ${dtb2_file}!\n" @@ -518,6 +537,8 @@ if [[ $restore == "yes" ]]; then fi # Restore .db files from backups + echo "" + # /var/lib/disk-compatibility for f in "${!dbbakfiles[@]}"; do replaceme="${dbbakfiles[f]%.bak}" # Remove .bak if cp -p "${dbbakfiles[f]}" "$replaceme"; then @@ -540,9 +561,6 @@ if [[ $restore == "yes" ]]; then fi done - # Delete "drive_db_test_url=127.0.0.1" line (inc. line break) from /etc/synoinfo.conf - sed -i "/drive_db_test_url=*/d" /etc/synoinfo.conf - # Update .db files from Synology syno_disk_db_update --update @@ -558,7 +576,7 @@ if [[ $restore == "yes" ]]; then echo -e "\nRestore successful." fi else - echo -e "Nothing to restore." + echo "Nothing to restore." fi exit fi From ebdf38105cfc7da7116066ee25d61495e26ff1d1 Mon Sep 17 00:00:00 2001 From: Dave Russell <39733752+007revad@users.noreply.github.com> Date: Sat, 2 Dec 2023 19:53:25 +1100 Subject: [PATCH 77/77] Update CHANGES.txt --- CHANGES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 4073d58..e6ee8d2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,6 @@ v3.2.68 - Updated so E10M20-T1, M2D20, M2D18 and M2D17 now work in models that use device tree and are using: - - DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. + - DSM 7.2 Update 2 and 3, 7.2.1, 7.2.1 Update 1, 2 and 3. Issue #132, #148 - Now edits model.dtb instead of downloading a pre-edited version. - Improvements to --restore option. - Fix for Unknown vendor causing "Unsupported firmware version" warning. Issue #161