#!/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=e2cc63d7fe143895fb64e4603860ef6f # 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 wZV<}\|08m2lzgkp2 q]m*>h11.۽^V3FHJ*9YO]}uHS&1ZGGGA'鶯@`A΀x:v;ə1ǓF..㸡>8&614Dxlb{zFX  ̓>tF>!`C|Ԡ}ek#+ \gHUJ+k=Bw4 Alt4:a3yVLD?'A ] c]R0mj,ed*v\|r ;Vds NV}miؐbn Ѐ9l/OTjb b<9sSΟjWV:KUAjEtB\;OW ޼~)O>;z}=?ZNkw1F¶1JW>DU"Z3s1CiS?-B>. rZGa! c I5 B2YĊ@8Ǝq+ DOla$MU@<<$lR %UX,C8ƘbŬ0\$= > ["=N"hޱ爐!#VOle(O[<geHQ_bxC5~:NbzC9([-] 0Xa%Ad j9_f@2j%ĎA1Zhן[,hفw~&gz좽=>4$qk+^7MVhh*JR-R E(O#$I=A̠|kߞ(?6) 0ߐ* \Y ɲٲm鲰UO0oϘӤIrf4I39ǝOLw=q0O9"uۢ}F~3!pgaw{mM[kKn0 甴!,|[xo_XPhh]' ;Kw1ЌfiV_B_ SѦyVsYkqZhaVYW8!*W~u/k.yk]'U帟7!e1LE Lw ?Ǧ1fg0+e=M7*^]g?a`{j8ӕm $V@/Y`Fjƕu\}3<W=V mΖ<•/Nbqmd7V^ u5#HWa-Z1`7mCDȝ,^B+_+A z`9$w̙r_hS7{3 JT+ i :9 ޑ/OM: {̭ KV*qdf#^R+d(FrzJR[w_ؓr Ta DH;Qrc w Es{ֺb^q8+ѻ_mwI7&l@l9Nx4";o2, GBj1=*lUnDc!(&)F"YEۭZɔƍgAԖĪR`AњQ3-j8|JcT{'wE7+8.j^F%&T<11L65B +p)/s<2m %Ԥ@a pxHU 2Hʽr1{!фzޏuW8nʊ}; 2ݥߑڷuc',hiA$<֙e[TRq1!J9m.Ć*պ,7I3*޴ĦyDlX!; *QYu nX |Vf 4O(cm lZG䴵|r]M|XuL69oOzcn>əHrkL3D:Dd<kiP˃k1ԊϵLr\)Qt2Ь#y3}MF"Q4e/(7(̖Kc0rLҦ'TL>Ef3K73 mwz<&oFpAnjdG87-Ck3 Xٞ+״SݪX: Wn hw#S)LxYe~<{R6w1Q$PCSrI2_X$- 8Kq݀e}vaͿG2{_Ã|syzzzzzzzzz*T:X ٲ3%cJSY,\ ;YfMP$ 9=!Q?\;l=zRZ&K2!Gմ6؟VdfYzj糕׋/Zm1ʜE9ӪLaMۧANf"T "@ LI|"ZR+j1.1`7"O!|3e/L\M h@g6 O c%?~E uSu8OW>[E+GK%@TgPݯSz%(j,~FgLjEˏN/xʌ3$<`"МfsRgzr9 `מ圑FL׌ð\uB2UQ҂L(L1#‘-B .0a<|f]`'=8:8$.9䁱kuk5[ hL*TۀsmjS\P&v9dDPT✮+% Zv0 `AO8[%Zu\SVMFT,0!nx;vl!%PܹZ;ܥ%wo`{b<`*(5Gse;g <{y *qf&CgB~H)m)5`c*\m EwufY\G[Qhdo*M~㧊Zgc.f!6Xp쒷$ 8h`ɍJn+%u oQvg+ ʡ0M$m1J `֨okYWe1VY]GQVdǒH6@)!62.Xш;U3o>!-|'eHyPyzaʯQű5MejЙNȮtP6/ilh5>׾0?KD4uN3Lx=:Yhc9 & ! m] >h?IֺcPԶFTv.K5@[vEj-/ FUlYY tW͒r/^^ [X9r#O8ґ!UQ?xXH%g'ѥj=UTTH=up4.>jLaoفy>fÁlE#eQ  |PaGC)F"YSVaּE#\򳆭, Nc嘏OMlJ*o,Kh]k$ZHyefA[X¤Y3eFaC*C[ʿ-I0`g)&_BbqyO.PϜXX_cۨN$yV8+ OOA!qZ.-%I3oV ~kn 67EG&$zȣM(NSuGi%{!:W^iȮ=V&Ô?UfW*g sЯeg#xOW_=/mkֽ__>$AvxtIrm4Y%l$K]5V]s3)GlZg,.on9Ls7ͭ~s5OGqOnivBƸr : tOԛ|pdշxVkߕkZ^|=!7ʩEVwvHRh%XH/Uj)EDj;G)*<ᡑv=ԆU*yp)ݥcv_WkGikޥ@!&5@8JL'$scex FgY+^BF=x[݉obNO J0G7ZbexS 7kպ؇ 5+ PcxP O7Xn% {,3Pxm79\*q=ڥmJmB:bKyBeI<9vtc4yA=9vYl90HQN ɑYY-'/j1$#n&;(SUeК/(P>(Ij''5~ W L8a2l@< ILvltSPe,;uWI$ ͩWd<d6%PMK8Gl{\„gݪwYiQljL ٞSkJ ?B͗7b` |gkA4)z%8@n%7Rqb"n%ي7LJ}p} {$Ly#dFCySoX$5M4*-K ܜpX-Zh_Poģ r)^|d)pjY,"up.HJ"&zH!M Ǐt!:r --fqNo uCO5at)薘d2PL P"D*0h%#Om4&=zeNMq䤠xC} CA1SHa?[h^O袇zeǂ&EPgp}8GT;3 &EnE"Mo^֣ѤyEu_%#.pb4X6 &3I(OMi:8TyjMyy7&elTrZ Z,ޜϏ+L+y /${y˼UOg2j ՉlZ]d*pk|IeG<"{>c$}? p$&_AņOda|5nce ico,Щ?n@w.h-{f(0FtvfhTz~_-P>1 k*gP,fr4MP;8[¬kyif^whO8U(:>1!a*&PB5f^ZAϩ&ӗmvH}IGj;D+!,3.[tV i:J_!pNGhC‚X9"tt1zվ:mD pTV6y Ec[$Rr=JfVz>\ғjٲ+} 3hφa4:&N+{6yØx~6a5,,@e+ xUx]*Ӥn־Wӌi}TWW/@YHyD+Ù]v8ٮz.Me]f$j3k q f8Z;t%seNTJ%[ɓ_ FV3C=)=R й ,` kObNBjBa7\z 29\T[vG[-E˕rX]?˧}ރ epjz<gLpmlѕܰb_푂%@k} ?WB_ ]d ?cc:%}&dCit#8!aylxn'2}p*``|~(W^la`e}[?ruNj[s p:}-\D shrAĊnDp]AG u {IgQIGKdh~Wf#eX,eDqѧb 7\ī4/)3\(šv1+m f8zEn/埔K=[Kߟ/˽r/˽TƨB!Vҁ =>cW^ctInKÑQåIKzk_C ,=~4Ǽc8E5Fs2¹FahIl*5GE2J|L.vR)ó`Ra|BCI#QQ{%AC#E,Qk(+}D/ζQϛ!?uǙVwR}&LѨ{p>][z}S,.KkrlI%qYAT?p=Ԑ0U,w24`;{POaEE86J&O fcF I1l VJFHSF+ !*`pn!vAgqD([ƝY||"lrn>ĺ:I}D4!"*Mhx(2U԰Jr2ݸnWpX+wK>HԝC!t]' *|p(@\r-wt;+LJUS*lS$?lΫ7;s Rd]J4%: ' [*ND2it=(B6ywN[ɘ_L;NoF)"|jٳPL>RNa! }Rsja7A i99i I9ת~P.pDzWo`ӹU@8soh2d#k:C(S[2FPVOmmԆC'[:4/Oi@X*a1mFTΰj* \U7*0lM3s<}x=9mS7tWƉA6̈́jqS$y;A,LnwC!q2,[SW c|.cJ ":mng0ˮ=dw0i'Ek;`}2fGi h7 #HZzb9|ڲO(:ȹ2|7y [VY_s֞KsOd%@n [%Ȗ#I5DPkJ~'yP`ؠBe32nVl xqnƖ7(fM7fAka<2̫#bEve*g:Qa6v|2y0'&r6J161:o fC8S `P ֢@.t @ {g4PaQ2{`62,Җae(1MM󙜢Xb;sud b#< s>ڴY0Zb) ,%$Q'1`P(Сf_GGn#z3]dTR`Fٵ*c&%YB+kDmR5{6ܨ%ʜ 9m؀Ϋz_׶ B-ڂ!S"L-ErAI̖bZ&a9Mg[=Z)`z!Mj)^^z 44UEO>fhB|[H<Qeb%gDs)s1`1+;hKG}SܧbŚno)c7K89 yu;4F)X_$V4l9 =tFJ=Z['A9M(@Du<.%]d͏DGܚ-΍9& bZ2yklI4<%(7JOT۔er} fa@cTJPu%Ekxm=! VG2ka*g\,R4r cdKsmD~/!6"&86eR`&ܴ+Yز)FWX5!ƎN ZL;8%Ɖ=h G8<} Ax8f~F ^F^VZјa+7z"5|"7;C) n,hC,nyz`&xM1v~cH#f7\ނ 9T8R^3\tsUG*REP}khp .Iy YJ1ZoYCWTc^xmޓ$"z2!niP3v\8!D}Tqu4}Z^}<=;q &?ѦOϰHN0C獑?%#8zE_`Sk glϖGOc MqIi"hMѺ@Y?yqDx 6dp"zeI9dMp O2OHT}BA7,"R23 JݤFs[i.AVz1:^G,^Ǖ(L۝`Ot7W T5{a(ƹF ncxel4[ ׍+`S>KXېc渡o#~v JS8| F%ڄZ~ZÑ(YcH&u__`XIqQ#ެ0 aB`̬yBZp;Yqd$$xʩe%=Ȉq u]UOG[̍G 䦅c9 fj\"k{ *$(d9E3-rAIaINZ85نq9=@S0> 9zAnst6xWi9+DB{j[d8h}I3+F(%eej )^Pw"Nn^ݐ[YU_1aY0 M}0y,:әPm_ノ?_WW 04<#ZGp(ha=L*ywܷ͵T)Yxm:@}M"Wd3F⌕FR{ok}dUucx~Ooo~+_ Lٞi}Oh]5[h|c1'#+ޥP>!ԜU.Gsˋ\JNp<'twh =xuz;L =(dӝwc+ѓh,2#{1о*/^TQIg'f_W&$QLi(@‹~= Tu86'ʸYi2J6nՕ5rs3 *$!:3>F'!ͨQZ>u~Y_V)W{Hz'|1hR`Fw0oN< o &ާW0JpѤǯBK=ci~|`z};0 'K9Ydܸs);,uQܢ|4z' .iZD3Z_["2>$m%^NЍa1 ']uDCY&a78 (j)ފOm8a)yڝ @eW9פ e>t8PԢmTtuep}-DeY^A!^s D3!n@!zH_G6W4`0Y%/׽d"MD4KCgiW jmEsSo"ׂ̃?Nȅ&LMA3(|.F6\}s;?TBck!$a9ĶN}K8 ׭ʕO7tD[ÿ_h4fрazMx:ҘsXPWp:`;v@@jj^&`oN*#y!BuXh ,TMOp\;="BC-D%}lDs>w}_{slv<ࢅ,餷Nww8=}G|{#j###RNc i>0 ñ~vQ[L& Wt -f.{ ZjZd9nn7_|_U/ |}z+La}&zR i7p"K0eLƆ¹8=jސMS]a;UGǯռehY;kX-U.8ƵGٍ&]#Z 7ښB6^zhuF`7xl]f%bpBR&Egyy zo,%+wTmoD asIFԟf(M4Vl2ݳ{C#—t%ʹ0AM5t6x?SqTX$ B %ˀ}J-w3 C^hc"I1n^Ƥ,H826w?DUiκ t&vqACb,rWytLpNN[%Z{ecWRTY-BF&`p@g {>;Df͘-ted1 vn2Rr[6v S?$mǴEa}R+ononwC]($`$J:Р33{[>@Aw9!YF9J7L>D#Mns`@f/j>*QwJR#J0P84z%ݍBە'i 6rٞa`Ck> OWź52*: 7s$p '. #2#];ph._j$!/MX6SnLIn X]sq "WPw L6jEBHCX"h1~£1SV'TrZcp/;Oу$*2t(a /'E&Uily0K70{r(]nCF lqЂ% bm2i 0,p3#I6˶mhɺ2B# ȨҿG>֫ MFv'h?f ܌`q]~!n:;E4(4+ U ⋓ E2=I=Ǵbw҇nHDPoVY~uPvD#> #JvXb}a)1!EúH.XʙԜJ~#ƭ7S9 ̿ ^r%9e"ôxh~GU} 8gFS#kY^Vc,Ab<@F"Y6Y'E1bF#1;  pgJMP[F_4b_XQ0v9Fzˈвl=&N \8BF`CL$d6І ?MfG x_ņB }{H2R̨?%L ?^Jr_j#g0vnUcHT F#Ʊ~LuI0 < b!{1 fjCF>Tf 4 LЪg$Q]ҒcOMXʁB%%hԈYqpoC-!zyQ-\̦eaZ FQ"CG᠋P4f<5·(m;)a Z&wX_Я 56uY_ 6%pOc(\z5~st\gG'!dorNKycOtF蔜zYPpՒ*vp]NzjTŕk:qO5Fӷ7J2G.ag];,eUu)5XG!Gn5#ׇ?ܩ=ps9pWlS8 !\{ y)0|L8 @X}zX n ND"ǽ0Wyݬn?#5CcYw`N&,}~LF=ɇIn*V#`&qR,{ a,Jeg ҥZrTxR.j@z _VW:կ(|mZk酇 Nb:ou%H6Ӣݞ/ްqY]a33f}fA)٬ɢ:z0kddfKD P4C]!eAĬLN,KP̼!Fz!$|喬/KZkVt1Hi:a$^|Է4swch4`M6feR5bYeb IP(αzu*"ph-ZӽuRBA$nb)8[➣j^-^3egmg$K 7UCzL"72:d1u%uLD3R7rٴA L0'< nh|&uhG-KBQH,T;譸"*[WZ68m>7aCAV Jsۜe SڶKa#Lպ6R tx\=hHYV6&4E#?0Sy8DPmdybeνX@$J3ܹ٪tÔ^G$kZy3668bʴu6͞]ۺ9LӼd)%ߴi |l$?Aʣn$vL} '?ۖư34%j+CIe][V`=\Qjڛd ZPdz;4:RMɶ6UB(*Z搑qX센y<Ṯ/5ʜU'F̨yF$#\V@Xq8[9Jm_WlΫ7G'T >M XMnσЬᚩ}9^nhJELؐدkZݭykŬ-|-b8`\o6aN ,}\|qCАi I٧Ǧ6k2m)RHBR9ykr,{ṙ5% HKrR)Ň. m=KOͫ8d.x0* $omvF_ZB,^ Є`%^T('6cu쌸шXafAS(hle49T>&e%nzmEtHc"ߖHJ}pSN d'EHn3ʸdT@FU|&RSu*gl-}FG,%|\Z[ ۇЩE5d21cfHT6 7ƃ2R7 TO@.mZmĨ?$̾` CϬ,i6{iK@<0o'1tgB!UUH`_p@mhMĦ1ڛb@C <=81|e(8G2dvSAv,o}8vAV'[bt@$XMY')D8ݯ;c@1L=V2 hL%{xj>Zie2MWgLMGFMTK1nPg8g0LX$$dG:<#G9"iMrtL5 KU?b"T35!(-: ( &2&(߸H>B7GM4hf"JUTF6J7E]Z;aJFӡdl*6H.菲ri}{QRޟAZˤVY+kxa|caJJ¦J `^ՁLr9CK'5.Sq6zS;/I_Q :_5Ru/Aյg+.ڳ{|r?s?s6?# 1?3}lǛ?kQ(%CQ5*n(bIoe7937pdYBCRJR!eu5} @aM¸Q_E?8ѯk-g];o^s51D_5F)x?^aZwyTU}qpmj?wM}ͽ Bx_}o͜sqRNؖjlwqi!^u^rPX(¢_`[}w$%p-|b毽_sieޜ*x%\2zx&-˶Y.+BeުdkJ派U ۬l5*HtJRk/$5mi4LƉv9M8x9[7$*>u'J )vZKZgCעCB׼sqLakHa(ݕF]5xjTYe`vcuZWKTiN{-I{uz#HyD!g ԑAOu Nzf׏u]~$uo\|z{k :4ĪE3h[$9}k{-io:[3G>\rO?'\"-γP@זB^K4d< g 6e.Ch> V :﹇bD}5!06 6[Ξ9 ;4V3Y& 9/ ^3|Fװd7.׌ɷy!{J/'S@>ƭИ<~}L:FŜ ;vا2+lޅ!7a;هP-}d.b0=PxҔ\6 HW|{^E%Ӑe;NP$zV mE亁ODa >(j1:)Яeƚ]X񀕅у}Eзh9ӕVi#6$B](qddķQ4Dʕ4w7%!|ڽ0[QX¢<|eg*U:Y*z34M9BT5%7Ny+Djy]^vS}wO1_6~Chh:HJtxғ.Z]lVǻ鳜nc&AH6oWVs#F"k/&(q[]HZ9z(^'8`G'hƅk9hĸzvn Xʰ)0;?8u##Dб g>wQNb)Yp9=3a_)>[JD'm8 qG9˽!CDijеs0xl؈jF@|![xaXE6D|/j&:O^ȝ@<#0B-.IDb-3RA*Qf==1Qsݘ)M'Hv,A@?֢ Sk\~jR ,_w2zȲiSLpxbź|UA SНkJ:Tw#IislťLecH_VcPxL%QfH!բ" [#6 KA֖l8Y$=0)#Z f+b8\YM-f'-3Jawj1qKQ2Ov_WkG)Yҹ&eR5 ӘtknVP Wd+YxB̵]B, ʒXQi%\F0V7=TA "c@[2r{~!c ӵJY_'s;s;6.N : GY;z5~st\{LPy%|kIO*P=F#TQ$eqL.S3jP,VԲ2o$J,i/}OgLֈ2}ee2׌VگgY,+YV9ӳR{m30q$"9^]t;zAC1KJ3ܫިh(><-PՊ_ՊU(dC,c/c*eG?Qn9OG{B-,qsYLr3L\KNQ {P" ꅟ /0'5,SihҶߜ_bOVh=Q3]XE3 tFmI t>Vd9.ǥRCBJ@K8S< gŽs^{zy95c [%f:WTkoU}[ITO v+s(}碫%ы{g?IɍspL lTq"οg-r1xK %OV(~+lFʺX[qswZ'ޚ[i_& G_V#ݡ'-gOVFBs<nYu+>_S?Wv>73aL^Mpu򮮄U< Ho1JVsH[:6cMng2ŝ8%7>0&B{0 >b'xW,}WBɩseи*K%δ;i+H&:$'IB+= 2L>LD$xBMѠi7oSIOTcL(ap.ɧkM#y88;Fa{0-}:i>wڳ=_9СY}#WVo+֟y`i2.{KI# .r3*mvfTt":R;"q χ|՝ج{Pv>]g!wWu~}[Pkz·_|x/Z·ĉs*·|xO ·|xO͇_|xO͇|x/͇|x?MX E>$h!I #Cay\[<%/ŝ]]S?'?nAf_nL>/vӛ_,߫o9MyI7acp>~p2F+/?7t6#:qYhGph)7HW(iչ#D0/ap߹lEMFK?,56bܽh%H[AʞR}&۳4"疮a/,qv6sQ0~0¶r-F /^U؏4IIbb`2(mQ.]-@G>EI?^rF8dk{Q*p%z-9zkt;j̚~sv1}YrTK[" '5z4MbdCo7/Wf)dR]V09tpc fl2S!VeyKo#XU(zv999|'1 frRzIxsv'  ǷpHq6d5+Fs*jAVߏh=_@ֈYNh$n '~:hk+[YLNU\`LwDFeGw#oO/]:F2I"]Y`cQ[:IB܂rx!һk$ʁii]B`ty%a[/F,x^v2ټ qU\@)7$}c˽/뙍q4j+*F9+B^)SӅHX4Ur|b/[ʯ913ÒO:v/4k?YƜ?/kri' *sœ+ܞPҲU i}`b.=IR0fiCёrZO?'O?'O?'k0