#!/usr/bin/env bash # # Copyright (C) 2011-2020 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=651cf64555539e1eff545cce6620b3df # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 A^\yw8Ͽҧ$yW%ۑ{viѵ"tgEB<<;ݷ MvNΎ(P 4-~:ѻN?{QUwv^un|KOG+AE?ooH]{* ~w~HN@-֮봉`Yģ>nѮ#ƌx"DB9 }JLn锕,LGlE> ]\:E45l3A֞{kP,\u l3)wa xEXmbUBN[@a 3t6“}J'O3R!@Dt̤2ɀZkV%?Le2i4J3aH"Ҹ?EOJ#IBeb9% gPR>%eOf#0S|(t>NdpIi$J+qRXYQə| gC;cWP -b_GЉ OUkdPIHjӟ2g")sE$ɀi\gWR_Op"3eY:\"f"MM0G)@Sd1#Nfu"/E(fT +Y2Rx1.q_ |d fd$X09Js" $d>" KѰa_FgS^7 au\ϴ,z]g}Q=gt754U8j[KcFP @ =w0{i ^\h}mmo&?*_^7R -Hz-z"II*yy(oS^:~0;:z)O1"%S<gx8v !lS0T4x/t "1B"g`b:݇SOۄ|\Aax Eݐs !YŊ1 t/Bh4 IҔ^E2@kOQGi 0nt q{ā2+,\߄"u TDg g-Α!9N]AR> %*+wMy6\~6YXyZ-QR.12Q ?$0ʴזy܃\غTj21eeD B4V g^L #C:`ZLN?5%vsc:hNxf!D[w؈sӱ0'ܓ]r&IQ=ԇ0-QtF,ЏG׏H2c@IRc $ V>=~n0?` G 9)r9y^-S/&dyD^$SIٹrA;?Yɖy~ 0//^"aBay~.%WD6 c|^}Vcx^c.!PYu.L%UGOT'*:h?0.5۫  +[R ڭ C]CVKJH1ph26%$}aGUˡB40Fp_ktI}qIiUX&W,l 2k:z}oqE5p })/[ d 9Vu܌4PeBgWjn%]sg"`yHhs$ѳE.W7@p{ lp.HC8$XPZ,rD{O*cJ"*֬kJP!LTb_JC*yu%smP*'q:_ k*qr+H򊃞@ G%˪,qtV u\ۯL\+%U"#ATmlA4F 0 zX0m9ȵ Qbnn2i[(Dx3fM6揰񏾧`qǨEp'YkInf5OZ%ܪh*nQCU͓]D:qx(q*wCv/zɪH ЇLR}|Rڐ7ǵCB,A*tn|b2M Cc%@NNr戟9۫qc-ϱTJ,~ ׼Dq-]6)ɵAqII U ևdТG6rkFL%UcC>NrHaK]'vA%"FcOf[l݃nac>h{=qpܞlO'ۓI$  t_VZ|Ђ/_4 7IUiuԮu*>ͯ! +l;Tѕ,M Uѝfwp%x*T|(N#w XJѨ_{jɻ~.5k=ٿq"7P5$KG﫮f\d'y ;uBhu+ d$k)NU:މkLTi$LT,у oWߨ`tPB PSHC]tz0K@X&^4`PH"@:8?(ޭk{̭]jq.Y1x!y9+qp]+^G_jFhFK) ɀnPG J_ΌB%̮AD-S_T_AyW=:Ѫ=!Ҟ`pmef}[\a &.1$U꼽ʦ5b/u5J3A*B$mf ڀ9eKP H+[zv>}U_>Oo2e=vZ̶vuxF!\(Xh\h~y'RזUff\3wW=6{y|z z,QdOOp&RJ30]}U8sS^C"DcnWͻ;ȭҒ\j_O rf_Ʈ2`qݩK8T~b ;txH~'o*jLw?pk.lCW/V'ikORjPa[j@j Bn2Gz ɛ7CkE gw뿓 7\A}h,7Xرӌqs0UX\7  `]9i YX<|".>9OEҧR{"*P>T bz*>['"5\ID0$ѮyTKDmI.rn(;sKpWcX|o6^E/G;xO3=?>r4?/򁧲xb?&'ĀFbJ6 X`B'𤥁mɩeJ6U}q;zXF檗Z\^7}5SPlՎw]{ّm}e|C}?b%L;;6jT9|"e.q.sG7~'5?u;tt诤AL,6[ =9>e7ۧL&so 3o!m7~[_vmYja ͐=\*Z{WԲ`^soQ~$ןO|6FIv@M2:}ۀfMaBviw7F OoSklCj_t edWyEvuZG=F=&w2~#T_kXByz6ٽ =mo፶o#:iZ]}qoW騿|zG8l?⳽[ (W,c,e+.gojgZ^ZPEƓU+X[!4\PRa@0:d ōv!h6ʋ{mDy(dJS[ڢRJ_ڢZ>*@]_og /&[OOoe]ٓ~0̢/1/ǵmǻQN}i_Ahj$DCtN;RT_(GO.Y-@XRa~Z)n>P5&MHBwȟ&eKq qw`Di0j0قr5iXY!@:]$piMD71sj̯Zd={-өPc<%btyFt)"h׭ȟN`+$v,;$]3FN݂TBt A1kW0qleʫ%mVFbƖN*ʎP:*R;a50mw$e:0Q<] $LpaJA4,~QWj8YeyY#ASRV74Q}v:DƟ[MNLzr"`3g@\QD|'A;b93̢bAoclj"S;d%2?OF$a3mfNTu3CIVK6l_SqHEL<`<,$o_!5A[߳-acOf^1]]˩S;;{R@Ֆe9jg8 aph\$2En ɀC`12qMP'fL3L5kTrh_ L؃miпD4DCqZ`_l$090u\VV_]T*|=Xs(hߣyz8a QpIMjд ~Ձ Xk/cuO3E8 %[}@#̆Xj\;2崹6ҶjxitNJ,B`H⪝[Ƶ,H~AvA9qNJ=E75 "(PTܽ 9!.{#8@@kZ'6D[{vbglaұFG4/ǩ߬xc1¸7"z zFW bJH5'\]SHeΩU\TU0gnvq `h:^Ӟ$y]ʗ̍u"YZE,t[ &҈YNڄ Gml߃ݸ#Ɗ2( =pPAFm]&KCh /^ȓ_n*~KNج\ %D7ekdF/=Jh:?`G~ԼRY% 6M`l 53׸1"On<(a{Fhw 2,Pt::eK R!G-+'Hie("[i9z'!o1 /ky{) piC:FhX}kԪSNpuv\wQ҉»P{ ddː` ,hk3o12lGvmKNG.W;]F~ifC~SNrZ{w8: Pgb'J^)%#L)&t7Vfmtvv_鵤K׵mk E-WrP JjՂ }>5:pH=8G'?$:r ŗ &uGv^捷S`v :P, 4:Z'}lDX29B-pwEڲsa`9q~\]q5N,6k:lI4^ܮ *:'B8.qer9r7łPªJNODE&x. M Z;*1rC02KUe>\*Z O!О`W||*[{sc8"p,28H%yTEȮPv2LyRj8'ٺ wĺx+g|q:P<+fC M#OIs L20+RN^=3`Wg'NCl-=@7-#e':r /ZgWUndc1(]1ev&4Фq-C2y2 "<2^Y/~Ft8lYֵ[IMkyDfp5 zWS٦q5ɽuk3}!OimSh+uHq`@%_yO&~N?׎Űc,%[=CNַ㏶Rfz~^2K^gd|;{&k@9ZQen &Y /~J9Jhm>!?:5`#}0G"_:Kk^UgFVTJ@нׁFƠb_8 IόAE_&8:" !hhijy]$tZM*a8pߕBTzYvΎ~J>h_IXc p;l6?!-':6"n{Mrz.~X?"T:dQrHԇx@IcQ3ŗcV{hɿv@)E`= YRna6LnZʩtv5jl&Z-}|&J +#xS,}'q 6?Y3g3 ?)Z Lҩо(5pfd!zAucfSQU]~7 Xɻxv{O*u{up)*8\uyc2GЂ] 98=w֪Y{Fz>.>t(K8,xO@Eh+ U_A؜n8۸zuw!nbhmDgVGЂ4OV|O[ `4h0X>n2nIXf+ MA~0+,ۼN}a?[Hc˸^  !Tc)"\ #7+ 1Z 5ckB̗rl+탙(Tf^nC(Srk>=bn9=@uqAFNfgܚ@4q^3zde: BI(*lFsi;0׿thk7c\]}bwwJzy< `F0C@JɁn$|L&(98襤"XOv法CsV!lhDs㳲* adOG_A<@:J\}tλX$'rQ$W.eD ; qzԠ,N*Y+oXpXG@m~aq Z{2HV_3(قJ 5( 0, 9D`$f $Ԧ TX*T  f,nD)Z2E:z1LO61֯4,w V"x E'5crYih 6`IJI4jBaq[ xk@SAU8òv"L S;/F"(X ^QBԭsg .osZ4}×Goz:5$[ɖ 7^x:>rA, km Eʑ\vx*"CK;zv7 V޼,ɣwgQŧ&#ؚl\\{ .s}Bhfl#8_Bl;׮l.%WhJm'_wµVz uОaV:p)UAY'VnYU'HG'1Z(x> j$LrE =xN&2 b RJ |CJJ 8&U&T PiwD!F=ŀ0 IaylEe;urAṊ̀.2]4*'ƴCJ;'_P]fk0FkܣƐsdyqkF~)@F۶c ‡И2ꪹLA(26s#;X깍MPzs]CpPʠ;=;b5c'5D8QCMvl&UJ晓NlI>i:|]P ]# 5cZms,QK8"o!`ykq.| n>N&] ͇:;a*w}q13%jX**RI2H Sywd(MrbZ1hs [Vc, WkejVϼSnjiYbvv=87:U9.ifܨUFLTtnSæ_Nz^v`0:5*nmeEV]&SAtϘTW29q%E(-D>閟%Ej8d*~~"'_8뵐zOZE㕂s5dle(dƒMAZP Rx#b3[Oz6xn֨Bc:Wv6kJ$n̞4%WT67("Bnyݐ ,WЙ9 -E0wv-UjAv$HSyebaB:Apȷ3H@fG,Hh`@K(4Fތ;=s*y&8A`?_0?ᆒ^)za'ǔM+FeIV$Ηl Jgq5@V,zI ~捈5Yw"eV4קd}cnw}w #5{IVlj@i L"OB~)v0-'hE һgwY%^d)rǡ߉i(k\YDLIX:IhOAR'f'w|Xy\YM,-di yWy.&FI]|vyv߄@t0 ݦhx?(˷c8ExDcB'ǔcև/FwUw}kg3ߙw;W *ksz@x^C~z] ]']DA=57`zK*b1;Cx Gʢ@@U37U59Ėj'V}c&HdSWb5~y…'SY_ooR(П?wK%NKs5ss5Gpp;?Fs~;Ή{oTt$a0@A\(~)J_ToXQч^vRRV7e pf q6.~2BMR\9.6Af}8CWξwQ\HɇVo<ҦYh,6i >ߖs~ko !l'n |,%:P"`Zo ؖj'Hgq\m0LZϖBn w7H>X͸Hg&JC>-^lJr*B0RC)7ӌ-I`f\ӵH2(d1#q].rIM,m  n;hwMbӊ)ýSG>Qj@3Y=i_ LG|L _Ax9i" dݝ={غ3U %2cm^_{GsFT>Q 2Փ̕ Zgw'6($Lߟ~}!t\.\NYޜOԯB (/?}}_5t9ȟpUSK,;,;{k{ֿZs0?R=, LgmgYn}U~fgffgffoϿ! eHh<8Jа1%c<^v'g:E o(KT!qWWZF R#ʢ{n%$D5ٴ{5x*)Oi[f4wF-oDweofC3xA ڰ\o`-^Z$MNfA|H R8D30{1_\ ߀IuUҸR;iT)cJ8Kc8,ޯ{JTSp$4DGp;! UDCz{;vNac,"4g[xsDF6HJ.Mj9ea,诌$O3)OJYM%]f!6- Uf,_s3g:VuTTHl?ߢDzNZ\>kK羫A %OC1FSҙ0{'!L"ΧZ'-5 ^>p+tBW+[Nrz*2%nF!\&Zx5}&lO -&be< V rTgGW*C+bMkρˈa `QJY*[>$\Ʌ8o;g`iMM % RYa@5Y T-'_gPS*^t}xtGBh)y1?'H :I5U+}eA *tKj/}1aC[ӋVW-LI lȁuMrajyh.HckAށ劌Iq8hL'c>OTx6A dpP4hD/ ׀K3AB1!8jj P竞Ҳ gK귡eˉf`"@WP`3'ȟA3'2h3qO-X5CrP ҒźJ=`8(b^GҲ %fzga@6')2zp6՜u:Amդ^[qJyz(PsU91 r_!IGZ̫y^H41 %JE$kFB28:Egܻ6 HYi,hᴡjI4^ư&[*+5;[K|FMa˹ h{9ɣi3MY`sXFyQ5f4sݞmaU ?Qx,};܌nBbDL@0qlwz@?H*F|4nb_MuvAGub!Q4*ɶuJۀ ~л(9](/F_l54SD#FsA(5p'Q -Y*֔-CԹU[jq#mBF`!,2y]vX&,{ԛlAR*T7\8~tsUUGYɒ"gXecMmkcU̴'\ ]ÓnӜ~2Q7<1_TI?#KROl+>a?^"guoFd'.OZ_`16K6K20SWL\jMaIд;>_P1ZRy?{IyD ϣ('kA,hL*Z3eE, @ Rv7:>1.R~BV4[Av%qѓq#MkHs܉l|} Fvp$fKF[K1TܠSq>"^z㋛:FB՛ܺ52nX=o3 @ 7yLJ_cOb"D[4_!*27B\E8s:cXP7=!8L#pPք6{CEPа ʒs (F#J۲io25IW)FIwTάvzsrvi=o9r>tNbpoel/LTU*߯3gY,w;SFt/[I{B= zwv7[^tG{oX= HAP昀V0F'#;6&/r*HQRXQ7TjJ>CCe!h5dQRO<6#GīzX}`+/똲O;8*`n)N y=UҔgKslĂ~*mΗM8>ȹXVhzt]'Cة21M$99g^ZEwie'g9{Qʓk2̟!۱Z4W!:V'$]Yhu+),!)%IvBB0:иn]'#RT8+n<%򰴪2q1Hv=NeT:uל|g9RꎮEy뵘 ؔ- ]{fK%-S"I4r2n&Ʋ݋'GIK˔X@k)gGI5Ge*O *j'U,/-ps4KOO 1S22\)e 2"9y0n, C"Y/$epBT;% 0Ā PG椋:aCNx;tkԷŁP!5 Qc__N.UgVTF y9vs2@jX@+$72%jQ'm]ҶSɀS < Gd'''xFi3īp~,dڰF}hWkwpKq];=8> ëerN_|{ Ǎ+=:ńҽdh_m#TĝE@dHNn.T>j2rDg+]v[fՄ r7 DF:| ~}(Bo;}a9#?˭&@V壐Im׽_E/0LNF P0ŴϹh p:'u)5F|;S# <݁8 -ɑ8k{N1C49-?8D+ 0T?|FKpT B@M2B`$90uh$J NƳM]v24%&֓NÞwI٤rmVEsc&-#($*l+w$#*̎^4ntUT%a0sT{ϼOQm?aX-ޓR>G"B?7yXRϾ ZS$ 6]ᦴ(>;?+~K^|rUThFer~㡕d~u;x$Ҽs%>р'MD+Sjno-?ĵd$x#tW'!M-v=s_1ȧ96mb> {;-LԜ-[on'^}aj %0>З%˧@Y,iwp@Pp|{x&$ A6<V& { - 2$v9}̨10MH9:OR:Xi<.y8٫U'^cz/#4?l{nSYd~b[߈]lJy"Ã#I1m.d|-9pϟacEiڐCHo͂I>R}t+M:=ģAs?;|>WJevu{O{ri97ڌicZ!XC";"7 gvٓħ T 14U>`9(< }Wu3eieVvmJI9I3J^Pnj8-!(*6OԼ [ at`rRt; iͮWGNg?^c?էO7R*Y3f?Y,g3?vQ}Yt@pC(O3WABh+ FU@!EV)bE?t$\V~N'ڎcw "{,OH 6p4hxJk 7n@5)..d^CJ|g8&y: 2mad IJh@T1Y@Q}5 i֭Z-TN&@2cˎ_9R x39ݍE#bۡW>nD ;Fq:UB+OXGf8oEv 2ZovH-l7uᢟK7IrL ̘b|' i'.~"tH]%7=6wF 3Pi|>d,b&KjyLܑ cUj:gy/a -JW~M R05/|I7l֒>iYd=ɺ@=2:xg kSrz&Dl?Iz!5-˩w,k !ՠx-tQYS34cdnmƽS(\؝r oBΉNG&rێ-iv3. 1vmE'do6TF&A7I$oaItҋNXUPzOAscP n1}ү̝Q}ZyCb7^ӕ_z1$И㺍td@$-?=]f3`1h'I5@ Jz5lF IWttnF6-09Myb\hysLLQOA#n-'(~Ω 9Ͳ={ԩ+߆ ;>cg{:iϐUI̫ޠ}7a2vK\O-CAb- aU!Yjq5lT4d7ZG$"_X/K'kf;%_ZJyxohE@ǧHz/z0cJ {x2+x[կ(VR޻4H! eIvm"?ZxʖIITn/u.WC'nT{Xn5~g3?{=y}ϼg^3?]: #b`5$/V)82kus;d0`UM;Yܻj WM(X!Ժ./0yBʃ7"'jS"; ! w;3X+9G296&yBkWm:hWl)y{ y ףITR͔ꆧ $i )<ր}1(8A>@̷q4/a4> $)e$28ϒPp-})tm듽ޅҜ19 AF,_Ypк:E$F7{h"2((@'IGWtO&=#q ,>U0Q~=<$W*8BC56rYYSM-ڹhSwyK.!P9M=EH2butfYY@|x{NEJήTD;owU*S[ FmD&6j!'ۑ^B F8^60TEƙ_+R6}{s&Ax8yݖ鼝I[akFDX43VU̎\f C 8k7%01 f$id&xU||Iw1a PE^o0[ʘ ebib twZEFL1Aێnh۽? &`ŏ[+mWW QϿ6s9f3O'` 5] V./;6bJ :gK ;݉_^PX}VM>~H?*Q,&qiK[% r[YS%RR @WOՂFR՟7JuzqpWXwėhC'zZ_5ZI`o<2cf*+aE\d]dmru)lmu.fs kmc=b3kU|?_ 29N0i'O#io猑j7e짷@|~~kjӔTBՁSGAձc-]V |u#ƌ>jzO_3&'Sw7Fŭ Cw~"uGe2ڬOO6Cg@`,YQC>ڭ]&1\jX uzOȟ/O ^V6h%۠wO3+߭WOKvJnUR]RM.>6 QiVj%jajxظ;`:;rW z:<\G?ǟA?.pqx7<~ ǟ?oqmx@ ƱBXС$!pd,l h}S+~)ѽiwz$ʏ+IwGoOvk.j"shPGsS.7^StVD!2Vۂ_dX!eq2܊(Z{ "gXgb>>CJ)/!:* -(Zxf^\\*ο}7GD_ʸkE絣WřNZ~ΙBΜb~.K|%X)-g3~f?g3~f??Cg0