#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=0ca6835ca871a7decfc76d0362a804da # 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 P`Rnqѩ5/~UlQUW|QkV[QQ=~QUG/HG^+]B^xG?z,$gZ[:eRjzȶO.W-> 0PԣE15Y! m. bqgcZS`sUR}j-n[݇?˞ñM y-E~48Ӑ&1,ug]LBlǷ Z#shy{I`Rc[ l &$+ XtՂھ*@KO]K{ 3@ 2اm}A1Ӈ{R`#u\hx  9&Ripa5@,ce \<3IVF%5`y<XKY!\n$ܕ#tJ3~*H!~ZH>X c]G"}$E!=QʒR!rwE '_* 8; ɕ4\cLG6㹬qɰ=Rθx4(A溲+{Dz/U\{$fpݗFȀ*9YO]y$uT)^(C#-Dڣ"tW `d@=HBALQeuJb02+ܑS(LhcEBRm&$ 3"3}UCUˠkن]&Af6# F1ʂB/%hd( $QE0\żtѓ/~G⹖ j` 01PQI#0e$>CPl:R(-ۘSzk-}в!fǞZbQGI;gR7-*MԨ}bѤS}5Q {],wIy 9s 0iZD!ɝ[+ 㣣M^h G?nzYK֪6w_q!mS1U2XB!":1W)Ëao]ӠGia鸈2\hCX:g:\1L#A 2'SJ+SZPԎsʔq\}M]JdH4i0+Fq1gxrVP.:>`EL.M]p5HFt,ѻN؈s$H 3sfyNʭ$*X1x<]+ ͵^bzS5~<bX-LumD#$i%Bi(|Lw믹wijbedwwQ;5xA?施?`yā,~A>-{"grTGǭjUEiw"oJ$o8I`Y~9>C XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z$}73$ŀTib]ٞ5Yq UC>-^P-TM-6½*Ô06țbQB ѐڮ\ ii֎e2걐| LY(%L@c٘Se$F믤,Cql H-Z}/@v@D92"Î >i慤ET'$H*g{n4]<" ttOF'酖&%ig`ρ1 [ŤK[I}eUM_8JgBh$j46)e 9n_T 6Н5Ks 3 . Q888(@X`%a@xJ&5|]y1,|xJ8KկEr Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9x%'Caq3Jx酋N%Me[&D,rmBl,";jf̯bYf~A/"A4+V*jaD{EEp:?Ax)BڑQ;+Xgp5l1vY,u' }2?6 H /,c"k O6M1Ӧwb 6LD-WIq-"-M*X4OQT')K:IUR!VyyA6k}nFpN+V3+O.; |֠_\G$COwFgs"bRI"/^58N:}gaZx 0,ޙ<{U8F@qKG&\ˀlar6~Cn|ĺx0:'ФBH6F"JL ">h$D*\Z1 (-zچ|WYWƗiALြN 5@m/T;W7R|Z@R^Ϡ& : S1OW[Q &m,\[7(z Mf:WoZŵ;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)BvRt_k>P d$nW5LDɀU[yK'MZUf;)W 0hK>cjL R f Ld:' sxuOQSZO4?q?o$#ŗ"ޜ|Ι*@^ G#a_- k-hC,;#zk[lFffHAhYOVaHb.<|öO %TBjwO֬ =iぼ(a=c7OBg;~UhJ20M3/mSmȊMDJ9oٞ18TX$X0qhfm?8ɗ?砸 u/F<^>JTM{Ͻ=Yoy!߽h?{\h.>\ C> #( q'?=~0X(Q`'{>E37qL R`zoLO?ٟ=Tދx} YV9mdKޮg,cu5.:Zߺp̥O2<R Pm Gңn$gFR90n篸v?ng/k}JE'D 8 lI^Fj@h1x&֮n ;{ŽCwu-N:?/s56[pQ})kZBKTLС 'Cϯw¨QB&bX-s[mE'}h1ZEUxZ. ,xj%IU (h<8dx5J$" YfwehF9X6Jug,^^_F2GW,NgTtfW$x0ϳF:Q&%߿=dM7۲/A:l#8Ż @-z #P"]taI Jh=θz[xK} & 'J%Ѽ??@ rP`mQTQՐe XXT<%Y5+NH_Pḁs`w쉡Tx)wxM!2[Jɲ%PRf+yd*QO`7MiȒ[zѽ-0 H],p}!26Mٲ pZ>L [fkmGRdt%rX,8MW1uV"A\$.F LAFƂjlҘuzU(N8e(&TV2G+£(HD1A *oEYr@eEU +?P6DJQ'b)*c`GI J!Ni>nNngЌR2b{lu1z8CXo"==GM&tD2(5^k;ʟwzXޕj8A͘C뻪ov6S q O- ^$fb `1 #*״^ ~j4Tӈߩ|;xR  0&qnEU- xSۥel-FᴢY݌Zwbe%z0{ ~[4A\' d>ʷR",- 3Ɉjд ~ \a{5VQ[)E#̦P09i`e2<_Yj ]@5dlJnM&v6{eX`2(]' [QnxoHBPPiE@/&∖Ů-gV}ע۪EE :\4T% ,.s566FregF nJ 2+U0`vSU+s(0/=cyŭïQHdcΨ9QBU//D= kAiT}ٱ_`}(P.|U4-H̉ \_PLg*é_'ΞIbBN Պ& Dԭ*f|,Hf?X\Ji3=tAm?+Ch oϞɓ^.* (VsZu4:?kKZ/Ax=*kтuG0R_8*}+aiBO@Ȭ0U7 gbNiiO\ >5 h.Ⱥ}ϙQZZO3ua,d !Өm@X lˢZs΄5\.=FW@ ?IP{syLC^m7ђ7m 2gewR2%I);'䭔>N5}s:y;RGWU*'6%Y-2u&Ġ~ M|3*8QI?ʯQא;a:ݬƱ3_ Zt,+e,C(mKeE9:1C|<&d*mR#KՉLIy,I·褛bY[g=Qaj!96rD4c .mخۓT U!tC_UF5ac7fn *|"SK5~ygt-[ܐ6eN[Ξ; ̖2S:4 A~7wL72kUr&M?cD=eN]VdxPۏ" \7۬ H:=̗g{U`@zH/ZZ[UJލUeU۹;h`[Qyz' yIPb ºrK,<^46t]0+=Hy-KYw^ZDпp8*|-۰=#4(1EeVȏ<.U7) eS:8բ7rFTixQAL ހvU{1EÄZV 8N|O,kja8J;Q:#y;\)g;99!pt&ء1cC[8THJO-I8q "_3$t4ju 2ߛH6#e[Ԅ*zR'*^1#f,1/oM7uCo­v:߫I[ג.]׶r\]Z/'G.f3`*qS|vR" Z'Op"\vnNvɫ̘D㟵bXE$_¤QD b]Wy%ت]mB:-발 3m8i%:Ic#NJ)8s=iK.uvXid {I4߮ {7 (G ?_ÖɑX V,KC9*UR8%K>`zQ[/%Ub`j?4eM, V}ݹHpWkhLH5 0I\2nA+sc8"p28H%yTGȮPۼQ˘ٛٺ wĺx+grUuōΥƊFS\)!˼TkӱW XىA"9>9;tS#MuKw I6;ϰijfg6Aff:3HYy:&NH:gkZ:qZ-[2oh[EXtK//p#m<+65]J > ={r Ο6N=-WҜV} =;!_>П 㶇I 9o _AQ03Z)_&*aԤϝUm[uLiBv˾e[}ItޖS 6s(Ie71TeY *nۙT?^ PSZ.n棊k~eZmYRQi+GjhDw #5B.lLpBpIp h>}4q|16xLnto vNe*;@EH"F~Ws/je*fNTɄ Qq)ivݓ?'rj㴊 &t)APk#ܑStrRGr6eh3㥙r؜Mrs*UovFCq6qV+2!7+_)((l5` 0k*;u#Ҝ,mU<_`W\`$P j8_[>HBzG@Ѕׁ2GgϠ_8Sό^A _&8:" #BlE x\Q(j>pTǶDtNb;pDXŎ2ʥ) b~c)hmS߰Kn,}aŋGal]E(ޭYr6 } Qq g+ vo]:;딭]]ߚVn>kJFlU]3r0˛MD?`q[e?7J Ù#Gpc0)v6J&4mc.ֽx="(ո h觠½cÈ]mZl]k–0w H!"rc$["vkڈyw`[ \fD+DŽ,vlp*iEg:Y)y<^gީGӜ_¸YMr2nNd̽{9?k3O֌*ۦ[\1K L<+bAE"D;`>"R2J4DmtΙBU0PJEzBHy6PF~vz#^?@8`Ng*<"P(i}Cs< -˟k e_|zFKexxk9z+;$~UܣF{ ]pVrY8ݯ׏㝣ׇgV?;TSm+ _1̳-VXCwcc*uXv'<9HyհX/y;D8;;}4@5K谓6BAnۤo&W8 %+2F0,ͬo|DFe ޷#}҈Cm|NQqS`Peq|R}8GL&^,.b7>`p觅/ÜqRhcnneenJ  Ґ*4դ)|Obp>^GD&42@ec̏/]~8- N |_ԡܖgt=;v_ bۤΠrtwlLnv\q\&Px 8R4x, }ok*AF)•3ئS"zK0X4V^a+ >,t!\c,l XFIRbUɁClIsrpXOW \(iBQ RFšhBq'.d@vҦF{ %SYQ¤w*@y>[cE nÁb=;4GrC!6z(^3!ahF O~)RrdϔMϨ8ENGp,Ol/Z\\./ӁTzc1|.\@vVkZ-K7)bO_{/m2,kzW~ w-g 3?M=מ8,vd85UJ Qԟƛ.*E~9GV0m.B:斊iA2:s7UXK-kUqGI{/UBUi'W;Cl̡#o0t64pjNH1D3*o*Ed4nצL ѱIʊ_[N[S1kj8`OLd!FM54Z鮣h-Y`) ԲzW2 Z'ۢy9I5>C 8vN=-U<;6v߄<'!񱝖L"Z@f\nJU#b(SI2%B@7INR7Ȏ$^E' *(}s{)_~Nª$WmZy8Cb7ӕ}^zx1n^^Hu !eqsZccq36h;$,'TJ0)Ff\CW*=P7б]2iij'O@GnSCN̒yW-꬛|S']ZDmOU2iWttenF6-è>Myt]]!f́3F=$UKkQ#[.xv{5{SOpŽÞN{3jiy#kp7h0a9;åDF3rVqDKO|Ȅ\*4tݜk~Wy&юnhnkn;#>/h+4PMl\KV R"6Qo-Mhnz/z0gJ {6F<RawuȫGv_qVqW7U ԞTnLAޢˠ~~]\.Qy/CE(^Fӧ;5;5kE?Zr&Ӂx7tlC;WN:~#>O?|릎CLxQlLInkyo779c+Zy/Ȥ+MfZVjt#VM:jCǗ[b^HͭAz}p\kӼXgo.l)@E^ޠ(cHAxnrbh!g~ڤV.tv{տ]\4c;̖E!t ohXu7@gHԀ8x K2,Mgw^3/ආ ^XF_,4MiilQӂ%t7x탽`&kGhˬ!UJw|k&ӸbN,rbBҗ׷M'$[Ow:AL(8mHjy-%lLFc7Al)Tc<FQ 1z2鐿 {?>~SJ F>9D6j9:_?~UO\Ys5Y_y0]ydI@|1`Лi؛yyGb h>Oa9xw[[갠y I74'`sOӼxd?p%du衒gTcGe7{w;GB/rm9~tk}qil4yeSX(ƛti`XŏxfΡ:꠮UӨR^"zxܼxaAr[T$Q =Z G?nv"qXc$HW.rsRq FI7L`-(@8 Ow-yZJf'=Y%-' ܍@?<{ kѳHh]M/nk,rvJ j @*X tx]7Rɨ޽E\@V4A-[q{mOJnZMnf.))X)DFm'\R;M.&w.!XO'\&^ʔ+jqϢި۶n=vr.q1{s!ʰ'A} >PN΅ O+vk{xSR&#͍k_Y9}+W>.㦱=>]]Z,& fMuZQn#b>P' [JWRU J !yK$d GyCC2g!)M8m 6 ϚQ~]~eL1+ ?U&T:eg~pt2PƜXcw5-"IJX䂎q?[y6v-.u]g;/ [/bW=ߟ<\{=g3Ή37HA;?waߒiRBƻ=\˝>aBCxiu]HLvqrB6I&ZؚnX/sqq,'D1DR cN%cqFI['S(uy5^X .I-M˨~ŇIS;_3M5=^D uĨMĸ/y?J O1w? ?䕎?|VQ5I}}n.\Z([ z|O'%i ahZƿ UVP6 F(Q_lUhQ*:z)U".~3LPЙZ#$s^z9jUstNֶO%~ FX~sd)aƱv}`5!8~UIؠi 6x뼕 >{HiU`eҍÛ鶼.k\XD%%;>izI;GY9E[%Q=;XhW[q]wk*=I'S ggvު'g7. JTWp 9:)6g%䓳{p3<g'"vKnt7 4&ewQEi5aUgHEA["ӿE9K_+ JӬ}_ҹ瘎@Z4 ei8 Sn6k$o/x Չ ⽏=ղ?iYWAWf}iˠC X%yYN2Er+~<;;&=@M.1;= ɵ,Cw=vb2}?w-*>/K7 w4ށ|?7:l >;q)v`~8m.^ 9TY\4P@/&M Zր2{WP;@Zѧ>fYGdϖ|%$-=|nu%@tKag~,߰\&HUQ'- o[OFW%$D O lÊ.mZ$ >:R1^ u`gJUmluLlEλV}D|`kA }FhJt|EZZ,r%bD #A yXd H&Nsz'aFՂre8X،V %9*ii9ga%E.V=ee5W m!_T'pAx!s@`"St4H8U]y{+M:،G9)A"ЧϜȠԕ>`mq{&[@P ιfo{dr7LG|ThIʾ||cjWsz&NPh5 ౿VQNA=.#]Z HV/~pT_4{At xOde}^QO>/P C78@1iǜ%FzłFN fsy&ØM iRcu!ͫ&˜A`Jvtq[np#j)I@q|1682l4N eg69t~7 $nzmv_j~2Y~0\#1l7zn#&~]]%3q` 8\"1_42@Nwxܯ M9XΩUḠgTޅ)BՃ NiCP"7: [r wr-/\!`&`dqY %fRпv?uz {y¸+V4K݇G;;kR;?~FN$ŪK.qJg'?׏v~u_}v~XBgx'7WPvXx$CSrb|& {h uf f3K0,3K uj!/w 亦dwbvM%o?C~b NW΅AꉄI+DⰟϦFt䳼}mO9rU{Z#eD71ƇGs8}5_ GCr, @& pM$1VX. mX<' 3E6ue"jN6J%{KҳAjMqmƪe72%&[GK0ɕ],b>ȃj0M͒0"R,EU{|o>s5]>.2qv̒q$VE[ /VCòHCF(F 0h#ر jdآlp0T0zΩfO3!ROu!`(YGMi d5Pd>U*晠8-=Sٟ-ɧ6 =eʨd#밟(B@AAl9so!8;i.`}mbe%Wְh5~WNrnsCF`i΢0iY W'')MZAݓ?g#GlB/;מAKx^ ^ yAXM1xk>#g2K. Z6Ġ0c r ]PBw&j% gLr%^Cw+C`cB퐸0I Πq:eh,JBS@TkQdȦc4l bed+h@.PWM rxxsf\>& $"騌p{qP2l;P[p$4=%f&Qxiä喉W|"w" cxCL34 jHcYFj1E%$rUFwox;rV޵G(9\ÒBZ`O[ǽ5Ց?NC\kԂk?[WKa [ZuaWVn3U{OD~zL0',ξAAmPH5=ަU5TXYDaD< ~+XkD dxRʲmo}|4Ej e=N9 Q:+gn }θbI=ѩmTJ<ɚ=hMAjuc3#cG0] ˥ƅe-w5|e!D+ |GXB %dKE (O40FxF(w#tvрhr64hf'A'Q m>tp+ius#"F_S%)V B\{QgCJ XaI%kRgErrhieCu_/ŀщe2QC]2z )J+0tQua`X"-|B/A.уg^ecĐ]֢p49ZTįSKh\ى[Ȇ.J}`pKm2V@*(HVM}L{|iTߘ,ICh? . 6Tc$gAsK >a!`(jȂyU$-DjEk̀qޝ4rCt) ǡ#[Y5 u]BհI{TK 㩓&Q +Vr8EVe/ݹ El|Dy Mg)^:Q<xlo_{˓ߏ{py}ϼg^3{] ;˝TpnmPJo!,o'Ոн'3yЉ"O -r]v?J-A%@Po]8C YFՄ`jH,]$!ШmF?j$3 wU6S4^*5UOhEz\ r\A>u^F#`V)>."$"u%]?5HB! _e}5%_o=L`6j3Vn̝)CgVE)HaGu*huhp:$"ä]C!Lk0'ت;a ,ÉeXQ7g#ʵ0LrߟO,omG׽A d&޳ٵp>b[?" dWi}d@3bl* ^QrVEBIUf(`fO0VW*ԥ:n䅗-JX&̢"}Q fpȬ;II;p J{Br\K†,qD[U痰l`3ťqwr.T)aS:dak ]v<͵wX]}a@Jo?TH}+l$\4n[ɦV4H  I>} Md`~2o `fBY|V.BxguF3A sRܱ'6z(sdǮ;Zsц"9*"I,NpD%gI7ê.]#&o|۾jK%S[ F. %^{ŧ7)۵iT紭h{8*7G=+M-s5ޣdEA@4找׭\*O2GsPȴ-Q)Ȗ`W\-Sv S^O,^p.4\-Qc nƢ zcm*|Ptlc_G$RԱ~6?VVWkO?O뢛U@tHE-҇hc  $nHʩk=dx7:bBg?j=2C Bjw;n/wzpMex0&KҠ|>n㷻VjLMlKT_EjtM>FRwIw泽ӳ}|w)He.1]ꏥrY UQj GK/n~'Q6zdzgNrYBRۅ:E^V~`7ֈjN?aT[0acꏆ_ dOʓ''z%;~5Œj//W¤kܿ<[>:OW-쐋j-X9֨;p}ovY-#wz.o\C 7sݸswÅsnݿOwvߑ;r'NnݸV(h XJrtdATmoVea˔$^uY.ӳx-(LIuv^,ӳKzcӣ';utNS}\\FMbeKFkϖތ@DԊ[xfsڌ2~60lЈՔl LkM.nFMk=~|}K,"Xi!xx4}Iޥe<9z]X;GRH/M0Gue :V[λΕ;`֣>t̮ S;VFp | \1CDQV ?q<;;\^ZF(֩Q3얹f N4&Y LU|F--!Ҹ;a`IvQ]~eD T&4d::&p~ ^0iw`BYT`܍BVVP~$;5x;h{}oeZdy5ыLʞI3){&eϤ왔}+)=R`3|Si0:FKkdn,Pb(Z/Zx^J)]?=h 7й5di_$TJΑտ\믺ꨞ{[e{s_nu{v|6I#{H'ixt*d7#ΚX ET4^C[d!БLE\9t5^K&ɏga1ceugyѓk\l9iۂM?w\j@?匦nkniL=32~f?؊(0