#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=b7a60c47c0052dba088a9329e571b18d # 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 (XZ;sȒ+;p0q^ű_0Ȏn1ǽ{aF_wχFB''~98ߝ7/~{k|5Lg~O/\}\ߤjnsgg ʜYʧϣOh`hbU1 Ij̟",$Z#N-W̏$äξ b) q0 F4W1gsA1]0O4̮(-fEE(,h0@+;2!$͢4:@ >DK剂IGS?yXALhHD@ܟC L* 8-B>K}h۰,S4$O Ɍbg~ȑ%52Z M$R`C hgW Mar&8bA% t $$*!%s>B%*_5$2?6Aӱ; tڬݿ2p> ه~c\u78',/[.}I]fخ_t@б:sze`ptsg~&^?k:/43li`/\]!smw[ιi0+?ڽ!s?SUjE>1AJ6`noEDS:r;0?yzUbww{g>?a7F?;;=f¶!J3 NEn"%ا FQxb#…ThA8LbLmC"٣kDi)oJ O\7ױ"csI#f * d@ cVCYAav{zx ҺX\[+Xc~xؘ܀di)4Yd sdr͹Hʯx 0O:HD~@ 5~91UΧ~Dca%˹ -j\&$g}4i蕆dbfD2yǷs`dlx? fo #(ehs1On7>{k㪑P09kAp|iRk~A и KX!Pj`Ƣ9ج$"kckܮVV僗B7n^f $C@rsl| t` I N vz~fG{гگjQ&#㶓zO +&31arrd_r'7U.M쫂[0coYV+F|li: 'D$$(4 =uHpi W+. MІZ5 ~#[BmjE@#R[YHN\ahc^H?m40;r Z ؐh)@F`5(68TMJ`6c~,|d@pl ; aAvLNФ0BFQtՔ|!h7wOLDK fA*%*S~!YIG %[ O8a4ϏuT{zsP 44 9CCH2H7\e]Swy5b0&'f׉V&b\婠يwk]jbfn~pR^ETH4r*!J9[QtDYΘ+#^vGԿNXg{^ؽtS\c͈W'>DRR^ŀYSuL;m`d.? -(Edl!κ9gz?d*(dPNU|Dc^>b{lj*/VVǠ(i?:5SpO"Ab6x*Е9 9eMYfĪkZʾ%0A5l%F%"S[\Ugz` q,}**X#k?qCiM1mi> TiA ԅefamQl#p\LAVHV&SnlٌM6:*F!Qo(]V*o`^-z f*1a@2GY@G"z)9Fz)2 :JCKDXM×h?.3eIWh'R}x  VbeXB] ?#lS{aYV*ClT&r7X/(O 2Q .v |OG^Jž0HF >6C4 \[ìK%r,nWoꕙY;AR[f))&u[9!B%jJ2&=wܶgvz} /Rjǚq=XJArmi}Ɉmarz|,[>8ò\Οc,K@\+i Ix~we d?~T {CjXmWY)@2p lΖAr-|K(Čmtۥjsnh&k疄GhRLӉx seY@x-rsά *#wR6|/GuQh!I|@@ .وJ0M& ef%JtJ2t )F1'bxdz 3wF :~5l 7䜒ᖚx%̪Yy\N29e^>gϝ̭i  Mi/ ȍU,i1$X;>$S_ǖN|H&TD%U5yDS^ew ]ԞPKYa;_Y.\VzhY f#qԦ eU;I-`іT$d禚\yHћ)Jи Y֥YT]a nxBBFy;6/ EV3^wB!BZS ,+5G%pgGjIŴI֐ei7ڃ4ROJ.T\')co=I]Z"|i~1ҜSVSvs<c*uъ:E1,2W|Zm#KEdW+@*Js/좦99}{Ám+’G*c_bޭdNv?e'Y3_>0.(FyK ߴܣ$/GbYOa/%v 3!(2ƝRG#6x9kxm0V$N\ (E[F[pp0սDڏL]?`E܏K{iHAs֕;V<4Daf`eT(\qv~u* CS{yO,j_ *w'!"C{(!SeGsʟ]1ZP_y8CjJbV.A:P0 W M=`~ 'IdkUzy=+Y=>q#"hAޛ5SSmv 8m=\wMLEX%T]>Ѩp؜V^؃sǥC9B9_; [ΝZ͝'ѝ$˺5clF§ VB 2sONjl[ kޗqeޯү(CBK`A8 oe#d0G+sV:1< h ")%hsЕھ&۸7oO%}! +< 5rޞgY5SS{ps*NqVД !>JQ_ְ!PSmR>y/kմ-|-b {{{BM&4lF0Oҧig7 Ԑ}zdjlh+gܟP_($$a&b7<7.[ 'P"V4p2~`}S:)؋hr%Y &;x#7ylÔpLJ5's'@A~|K\:fЂ͸Pҵ2\s*_[yah Ut?tB_Gi C@D;NK˫${#P2^I+ ^ucAa禰L"&!w=}ߴ={3}ñqwا.pn[Oc&\ԯh-5^2]Oȷ;"զ'v,f]aUV%3qMݿrL',:jfLnCb.s#`0K.pTBO:hⱆmb ;ֈfjp^y\< w/PM/Mnj hB bd( q&`͠[ * ,i&s4|Ky Dq[")%kw^(?&>T/JErMdD}U6cyMԅ;9#kLG(qp36퀖sUj\Z[ ۇЩUd21cHT6r3ƃR7rT'X-KXb^fi^gx5xh=n77B qD*iHA;'At߈Ԇx@IlQy/xO %exxk9(~6]pTՓpӟM]_PYclf*f#UwC磋ᐃ*{/h;O3T% ňHa;vTppXUw2 8zb{d*no^ 6{|Z,c$]162;7qK,qhCwD0ybҼ !;1t :lV+dQe^˷T35>(-: ( &2&(߸H!#&43*Y_*#ac[g7E]Z;aJFӡhyl*6H.eeQZ'*||{]h-Ze3571oJ0ړHUn#gO&ECrT .F~j%=;0˫A6 맯#V~_?Ϡgeq0~Xb~ ."ZС]k^GP4xW;$h|(lp#ީ#{Ac/&Y%kBeoR`\,ɽExDdrqݓӄnhH`=|&yRVͥuaB9)N$~Hء'pQQgB|_;)VgVsG*6J?>}T'@PYz r@0,Yaf80 FY18LP*s1[%HwC2+űc/]r|,o)& dLiYOWZg >l,ХCF{L(2Lr0] FXam)fiCsQc /ZP8~)CJqK5M,Rx|>.^( p7rp5؁%H &BeA&,\m=g.j.XnT`䄟q6O'܏X%7gNRκ:5+%UJF!`\Eq,]ݪ1$F l&G-L[XKtKK <|U"#jfA?vl5=GN(q ROsuZsCę&( 54_KP 6PGq NvA5$/?Sè_VY@".>qӒ=\y;0Ok-צ'GI@@\&{an/z}Rr65! ,~m6=sh5wDitpꝐe&¿3J5go"RMk Zc*ɗEZ BlĆUT5U,wkO~IwBlNF=pF1ٖ=uO 54-ЩOw!V1y5ꗓQ1ghʎ)6էͻ=6lqak'!?NLLE<*>g*LHU hCdy vN?( [݀C2[Ԥdp-]jae#\,LL8?zE "Fc?8|+ sP}[1~ip[Tû%Nx J|Kk H1:TQxp¥ս xrJ s(ଲ!tg4Q՜D:bpM>R@苈א5dUk0~K-)!9!rhQg].=5Og9?L1*l&vD*E%|@中.$N nd55?3 ncaFVo~0` +æč\-Cf c$؟`A9Fa"dЊ̘+}1 WT_Y,wmK9eaA.Z}t8$6ZŗhGlxC$M6UD|ݏX8Mt;0h ?D0B.IDFb-3RA*QF0 4?'&jyS4)ٞeYr+]Eg&,BQ×OI+ɻUNXoY4i nN1PO8pobj1(;aUb>z}Q)̫C9$6?jOW\tk\$?bf*5C0 ~ie%8$N()IO/L& 5oV!RX rR#7 *I1T*L^fa|6^y͊\Ovw `GD"[If}bgVĊEHK,y*C8`p%j- !2[/#7?W}L5_&Ῥ\q_^쿿'3;3;kH0 0I/3t4Ft3!_F+& |pr,ߗW;ЍÕ nc*ES9aۢHBWeUd'|S9zoVXW'CI؝bX8ڍ,D 2^߻oߜr5)Xg#~v+AB+ܡD*~rS0#pB2Kco LX1A~FX;o"~Czfd]E~cSpĵ|8SJ%p)|?wp3Keu?/ԴqL$H4 Jj2ٝL6y޼W_K(HrKWwW@!kAĹrLAsʒH36skv[5 _=W `șhPo||k7DžX.Qq(*䤙 {Z'7 |:3}{)FFrQx಼)޻)78ַ8EJ[W_}jY:U8F`)V4h5s/S SC Fq=-Pgu +[|2O?'dL2_[>;R0}n/ cc#RSآ`CڇIk+<@|_; Vv *֞'@4)*J]d j鉢DEh'q'E@+2uzk#PC:F;B\WaE@yrZڝ2' E>Y,Z TYܶT^S2Gʓ0 эQTZ͚^#> vɈzCd@OtPD/M "D~ʉytλV;`%i\G#P֠P)bB*pohcGq;!fP Ŋ! A9h]jpTȗpl4˖21=åKE]𺾘N1!|^2,Wp(ėӨ x_nzɲQfw[|RJY .ƒf4e&CTF#h]06?D)B3 ["h/, |i>8.e{c\N9e<@n֖!^iܐC@ ^EѕG^0б? ]l73s(^ s=X=-9uiP,2ulhcJ\:;B`z"§sb[)PA۽zsoߞ:o/z1Tcwj8 n.FPn󶞒P)@'40ǭBu%r !ϝ)+[]lP#[h˛y9ӺC,A"vϹ Te8fO_EZ"6c14dc?B㙜}rRlgn񯞾~#^L%mo& Y\KFfˍawct~Џ8!!!Z $^rV2SF0Hdк@YS{+E ֹ,%I4ȥ iav7%'m嬢VcdAD& .RQ]A.Y@y9HB [|OP͖2z8EXN@Q9Z-j<E{6ͪpxI sA\xoF5bF S@QI8f,-$ r]^sMYݥg"h "PZ6Xէy{kE:X| GN> `,v{Sy6MT,.[3_ qHarԕ<Ӛ9]b!q^}V+bao3}H+np6՜e:^iQ4Z[qLxrS= W!~O<':nvjL".x+|$h l12rw',QGQRڦ@-S7Cƣ QZ0Iph PmYg2)b6tb=]r5"A)7 D0p#hax96iQpӺwoga˦agC;1,n% ݣ8g(8.Q68lY'ăDzj%q% rөgq_g?D{`q܂!b) B hC,nyzϟ$).bz-C#k&+o|b?hS<"bP:62$K=Y[5t`{qpoPOfԱ" :KPz Dx|w2Q!ltrx>:>al>@n7==2'gMׯ0m+iV0e}RL|\`SkglϖGOb MqIi"h dd"x7r=i $3jPBp'Ud\,)]`,UP-ȓ,fiB!Հ6D* rlKDT?`2 =Hs hK165v`YW_ݍR&DKvս C1Zw@a=*TMpԘ5rTXzaE@>aM,#'+ F%؄["2K7 gNg '/͞IV [3fY1ؖP? aBSN853k^+gjy:O+ai3gLFa "^1jrzV+qz9GFchu "'np/ylR7U2`2lj\.GقB\3H;~ m7 YjiA 6N Kr Wrn-_8CCٛgf&b|[ TxR` >[m9Fp [yB'#fV 2yIeZ0C՝['#}7$qG*Cl|el\Qh. {T܇0Lg$hLeuEC/pÑz TXJ^[ wAWJ흹*E6 /^Ï_JcU ˀe"A6gt0rF~Z'쯪y>cvO+>_ח^_3oKf7ͼ~37ͼ~3t_EUn3jC ^GyZ/<:Fq#M_}m-dMȦ]oLqAQ,_Ȏ|8{rB {4z. \rʭi $dq3H=$2.xP&UXŤfa$TJiu % /lYE6kvj :xQ|d5`;(;1v*uRlNIۭX8h{}vt~r ,7a\ζEy{t<4 ++,$44oGɤQ4H i2}A_9l3ٙ/WRfg8m H'n,0܃'}r Gyz3C#֚nQ@|MwTe9ig I}T-qؿdɈ#ݒQ̙y,D#bG=j=̮^'{9&ҧvžJo3'qqed7ŅWM{A F8^bv0; !>Ϊ[)m(,2Q.[\Cbbu*=h- I,M䖗׭\`/G O`0[ <.cJ IDd{-2",n|K*]@o[@X.B/FDZzYBcm'|QBj> 0H-L->i2 ,2K ;Eo+ܟț %<@Ǥ4Vb M&`!B2D. 5`8[}FF쇣v6_./C,Kבq[+.n_4Tj F35 Gt?9[>'Yv+ E?  ㍆ KTEE՞aTDFk /fɯ+K fx2pZ Xk5=̌V&Ehy0j Vh?|PJڃS cwR`la\\c@8þe[US6 1!}8>O kLɈq<&P"Y3 Ql;mK"I)01)6E2,-l-L^nj&AYco!>kjL`dOuyC2u;}*.Jrc0I̔ dکM{볨5 Uh'BLExaZ`7O&ԴNͅJT#hR)  PAr8{uꓴ*⤓0$t$Nz-\bn:p8lbWE`}g M TT; N8(M$;’l1h6I1N?<G<-RfpK;tZJ"jxU8м=fNr.pƽY#O.PQF&N|l݇#rn.B2ϙEtNd1@בQ|&LN  )+ߑ< p\!uZ3dʕ6'#\HwoD+4kwGk1yN4i˘RF暴͋g ?,Q.望kS16S[}jS3*h˳N !P> +Q2<",^m#VTf7S&`pdlnLǘ#4oSz$<;}wÓ/. $L"=BY s7o㣂|>vI>=2It`[^]-;rf->offoffof%3."?aM{U0s-Fl" `_Q&]op8{t!%-8HcbRc:vKƵEz [*z|adϏr+˾H"9lYv+/+yo\PLa M#BKM[D|w  ڠ&W\$oe}®'H2^5T7UO!tX9) ۽`1;uGIwZ< W:,Ee^FR{מª4.H.upLZd8Dpl0VݖZb e`Seൊœ1Մ'el_#R)<oWo+*j|[q\?~E|qTcnTXLLE\A8ηp[xŇʰdꅽ#U;eI"]5v0Z8 #!V_:p NM2Qʇ񬣔;~Lb-1?䑵')b~9U-C wӠc3hˎUJ0~5@~CG%I'#R~oSo~FP#֟ (؏ Y_s5ohݺT#.M,:R~t2X 5 ?ʣ;Я k:pueBX\O!;h7+Ċmbo[R]?閫>Ĩ+bA ΍vt BT*A3c fgJ_3tmon/ ٥n?oE'2q/@!Õӷ0,]j-,ft1zkKh+,ְT,&Xmk=TH9mnR4X<|GIt[6.DWu5e@b) (vb*2vhZ] Ρcf^|qtٝp9A[' @9j+_-bR^,l;ԘlaNe50}"SF/ϧPDI}de?@g9><N>J|p>j[ zMc;~oԼ9lhKDIh@L5nz(\w m9oN4N;&[l|Y&8=ʝ{r8G7!M Z8;cūOKq]Z*<3hÚ[?qy5q"+2+2+Zq8X$(跞($ؚт1!f,5V}|PGTvO߇>-`:c%r\wf DADs` O 33 id+j vs΋wc+`2LH1_Goz?WE]ڕɦa= TՂW^UaE>l]s9YS+#*k>=7|FfJW#SV|2XHON|"*s\S>ÓI;~߅I< _xN:kٴ]s$BFpTI-M"-09T+‰Mzɂ?D^ew^\RP=|>'ai}@w `-Q 1 e{ yO Df09<+ ƌF7'hiT M.b e#%o4K g{hGw nvTLup}GeY^Nxs!~s [qX)D3!n ĿrK՝W \nTˈTzjPJXQ tiAG?uA-c XhF]-fJ&sR kNXgȹ-^0-J1(lRRW@(OGpk!iAɉm 30p@/fB #7іyOЖgљ H, :Kf  R6m ڼ͈DsWxDXacIiX-쁄۰, 1dF"6^7{'5ron U6w< ~4 yU ?c?,l"qi5Ned|m&A휜55} w*'|{:0G=. M_HaH S텱bL@pJS+INS$E ea$PV+ܖFfbŬ*2$~UOfDVX%4Ґι\dP沈1JQuphz\AyвV 02E pD_}qoI7rc 7ښ@2Zd:#< |׉HNHJԺ,//PA4b@ !6NvȬ И@6uU]pZ?߉ƊMF7یݐ%eoq$\iAxdQƊdO!fNV-:`0Cy,m2p˝X)m!/N|e hCAltƹ %Ś~9i(3jjp!y~tC9a}xi/ GIWDœHEO5GuaHc/֫<y < KsQ̾եV?e|s.hP9; Nallf yAB8:`$X!FW7xU!'psjpeoZx0Q[AB{[!R1{|OنƺY8*Sy38GN*# w⽥څ:@`Vpـc"¢MheTGkz;62r-Ln=EeQRXNz ךuIޚC&<co2Jd:i"`ek˄Ӊ+E6]`ݖRݽp/n4ۆmou{f&m}] GG3=tsO2\-Dv*;'PHb0Ba~ ?Bf`[.ϻio6F.fMsH+:v$ޤnkP14OJZ\}5 *h!)J߷kcMlhIۆszP|Է\YǏD/zD%?X^%^KT3{,"po@^ nm~' Bz B&3 (i=^ byyGп?T}٬g {enɌz N<_֪ߝWث[{/ׯWj<7]ZNb|%z[!pǜ}碫8UI'?KHnT&w-muIƓ\buY^9jO5wЏkߩ7>Ţ ֟䉷fV\n`+)I9ߊoxǍZ|?ҍ5dzXpeq+3W']5˳0M0D)t CwitJg"cMFX`벁G*̛3y/["z{8W =-q&5SPfMzuIN=OIly89%7 D_lDJ#cyӽ'z5/U5Zo[ dErZuDK4s4"iWq{Lɬ/"an=?*gmRǧ'&#q텧}ЗA8@D(tܴ{V!D5.x e8Tw%pmU 40._h'|3o7fLwJtJ;׭.Zk׃u|R-5Գ/ۉX?A?J#oS~yo#RІ;?#Iu-@ut#?4 Hd,]#h<؍ǘACkhq34OC!:t&)آmk0BZ`wpi`m7qGWc^:Dد&_RO*?$ƣS [&9E@(ʦjf$0g7jxz"XyѮ#8_6a$jA:`VMՀm$MF|mĘq`R%+Ƞ%e77W Wc/sV$zC:FƭI -F!t\TMY'SP$/ p7 @._ "3 BawۭPxVD)U46˲iI3'Й匡" ;x!KT읫gDmWGdѓTHl*EFŭԚ|. ۽݇_~=]Im׃o^sˈZ40L\D0Xr U،ي]`Ct)*ss3%ha yi {|\6zE|21CEMAkR]F]%#Fp|бR͹7'-- {+fON`eBJu;&7gkdhd={,VY&-toͼ ZۜT n6Yv$P 4LLN|%6!`L(F'upEx8,jb"'cqp&a^aM{]j#8d,.WƊ#@Xq'{G]u\TZE;`5=27z0dc>CA?ň0*Prng{g: |QJX:(x+[<1Pf}sSIBD.PxCb[\,AɈZtO@o1QX$ tEeਁH$xf͞ŤNrP.4^8GxDLK܊(}mZ07H'd梡yې#ٰkv4[U rG G4yeWRA }ȉQU!-]9 82!mzwr),w;0TwZ;~w^dj`;awX:7>?],| (yQ5/5L? s OIhܔXu@5֘xx,~Y,*MiWjgxn$He\Ja28u0 QeDmW4<'uМ`vWł$`\#Ji+a3 Vh\D t֖S4'ۜpI$Xz$Q?z(prMzx{,ѿ'4<~il@@bT쫼a=c 4MY-DWv 6xG?jy8IJ(9_~?vIH 'v`Qݟ1}|K5{3!#VE8tdfYmN6s5ϤI [L{?CAE+U`ǟL*]IQ9%(n2he3+hH h9H9h-'tC{ޫ\Ñt) sj;@  D댿 RC/g\cD]u:* Y9$d޴i]]ub A! BJV;}fkɘ-d}Yxq+Aa/yRy綄T-[v 2aTcB'ԕ=08#xǻDx~ʬ)7j٥2MfAO{5M&Guu%o0)O)xe8'>UϥKOXmB0Gc8RZ\['*%āIYQ̐@O RWv й ,`fMT{uRzQ$(&)]i29\ũ⏶3l ZpkA~/_$X~_QC- cW^tu >ϖEuo:? AaTC%.QO0Oo]-0?/us}/'pr.O0DO0D _0D O0$ O04 'd}O>'d}O>'d?,'Z<0