#!/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=53cf475a612aa35bf53743a858ec1e6d # 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 :_GȗÞ WeI)鍻rLTѓ/eAMHgRu.}*dLV8`xdrgkp< s]Yԭ0+>H}(^/+\2 JN%}ړp2jWIy: @ W)POg<.p2>UTY9 L4 w$ Xn[m tLzr_FP( tapyGH'D`z( G(Y&6BuT fA"W1/sߑxdE*dd65:f2TY҈LD>#90&E x 6+ZK;lyDZ֬PPQG2xԍ[}F Jg$U%l r_ iözbWRT0ҡ1xC&.f7Ĝ"ޖ.&/E?5*A_P0T_!n^+$< Di4O-?PsWGG?V9D_`rx<ךt_kj mS1U2XB!":1W*ao]ӠG+\@0t\ .4!2ypV,3HA&ؑ Xty A)E)-(Sjrʔq\}M]JdH4i0+Fq1gxrVP.:`yLΩM]p5HFt,ѻN؈3$H 33fyNʍ$*,7m9 pe{f/0T!bTA@PD٦6\w:#T)al79= ”loڜ7oHKv,QՓ\aʽ=8bqS l̩2x#y4Ҕe8<itE_+طo%($R@dؑ'B>;4֝³ jYAo=v&l@{"48'O/<i-$M?Lc‡n^ -_REvBh\e\8+VJdNf0[NV)"Z˞:[Em鮽%Z-u-H 2"ch B1b^()l&%]w 9X/tڢ\54.Xrnz(F R S1Do aCgTLGx<>0u_|/9ZQK/\t*i:,7 f+ /dcR0D0c~ b5G zXa:RQ #+(+1ys LҎjY):a[b? 2?63H /,c"k O6M!Ӧwb 6LD-WIq-"-M*X4Oh$D*\Z1 (-zچ|WYWƗiALkN 5@m/T;W7R|Z@b^Ϡ& : S1OW[Q & ,\)"K۫3ݗ`Q 8T%<j?Q2vVY'?utGUG:R/ j*k}/)`OVi)u^, qČ#779H4H39n4v9އ;pߨcrZuZny5XvDlֶǍ",͐9|xn?\x$@JvџYf{d5gyQz2gLSv|se` &ʛf^j}f&60Q%sw 8cpH N0aBߺ;ۂ.&pc-vyV,sبJ vj3㨕<ʉc a889jfH555-mCQ!u$CY<_yiH/,S _4wf_KHFXw={,O1ř>@B:ŭBt\?To̫6AolP >`[$Z 4IΨ/Mo/X5Tn" `Bf|BylZ:sx(LY;Ny?`'Wohwnw~?/uˆ9xU! _Xzh:$3]܈ A<:!W;,`|^;qG%aG;mcO=ĶgKV%0v!xkf6=?qfp{5bGx+}T cvs7A=EN)^ `Fۘtrz\罌jc#WӹG=W/OCĝv^=̿'=XY;sqsZ kIe 0-{{czs~xQLղy_Ar5eY.Œ'!Fpҵ<-"zbmR&I)zME`7a~_* \MؕW2 arR$HPxg)#0!3fmRuokm {}4S>X;0~$bH7Iܒoa0dy8]pW-&Ms6M n6kV~e5xAQQ3Ƽ}<ķ_7d:i`lI Q'XLRF6SbNfwnLHUqJX*$o5l(BwřFQWd;"}pjRopVL0R)dm<7-Tț3ll=z3 ̜'lORB3 ٹeӦy&[:r8W)owօc.RxT+eb%AGHΆ= qR1ZGO ngv?n{|BԹq9KYðv׊hَ[KUd9Ӂd^ 8EWߣLbO?j`mΠ+wo/k~>E'D 8i lN&RjkZJ11Tݺ˹YʣhUj_&6Jl1P 5d<8dx5J$" YA2kY}B|꺀nb)//^p `+KQ*u:J+vc<UY#m ( ސp޿=dMɛmٗ6V]e ei?"[j.HR"#'wOF3?fR_$ĺC$vȷ@7C:*L  |#6yE 1+J87t,=1 /PrGxѴ-,Ї_lHvKBRN㡺 vC ȔV|(KnF`4.v94ud. { [nhG X/' 5A҄#T4rZ~K4i\YWLFoN 5P0 0C Ic}WhNQ/3xDy 5Aص~T"g)N0&];hzAE(Kn(JaڸۆHy!*D,^Ҵ` 24(IA)IW4Q_ T`Q*XW}7`4y.F/_| Mf߫5WS' x>J.R",-jд ~ \ah5VQʉFMP˳dx8|jؔ"NMlʰI]71dP#NҏKZ4_|{Oۑ… -90`kA@/&:- ZάZEU$tJ&|Cį; "h8T%O,qά56Y#Oag삛/ s*Dg;#M1rT-~UR\/2̺KuyqkYX3oTu{qDP nA`-(HP1NJ>[ G)܆wzaWlDƳQȐ%4 ZZzF! o">wLqƫa7NM|+OZV9^>{w=xa2 ߌd@z]@"0a\u}'U>Ŷ'v 8kn9Fl ݺL=-sTfY>k0ܲn)՞.vFÿTe;Cfyc"l(nJ`gkaԱE7mf*-|[wOs>$j'1 (SB= COQ`Fݣ[Ģ"/ wB=d"eopZC*OMWYJh'?p&k˱A3rP?iY*E(7u3+B#yn< '!nd( Pej$FlU?X]"c$!sӼR2#ୱd}*WvBT+΋ #Z8/ X0d[[Xfcgzcے*Ch %g{/BJ[B@'['duT&?oN9KqDOZ`]Ǐ?.5c"V&p. lZQRupYnqמNSـV;[X94wua, 8!ͨm@ X l4LsN5\.=VFWxH[lr'{@*h=0!+7y[]>[DCeYn/c]qdo3hSCjr耶 qi5!Si+nD>SIp='?E=O)y8hHҞ'o7>@y-LO;Ȱ(BJ%]6vcW ΛO-9u[n솴)-_=ǪzYel)SL#򻡾c˗jò@#M?cDֶ 1I/a#jԘEufթ JeқL!jZo PRkWmޮ'9UiE6gʓ<;IM u ƨ(Tɭ?,V ]d^GwND_~",&?xu6l07JL>Oy nUJ+CNBHcÈ6 /G9Y)pdCH^4L(5j%mDq: x{3yGQډAh ϡW ߥd$͆Hrmx+GS ̕8+Oa-NNNpUϨ^Uk4W~k1B9:%y7ᑰ.> U.NT½ cKAG(/-b ~DQ7AznHz^ݴNڊ|^s$mY+)joK4\>/I0;H>5::pFNw{plʌIYKA2 )LEaI6 ze7>VjCBC_Cnqnڈ"e .\-pwےe`=qAy`bOӢ->}yii= ƯH;p2.yyr\$(VM3tbLtwkdy\H+ /{IUirdrwSuR .-J/K V$u5{9@7:+fC M#OIs L:0,RN^=3`Wg'JvGr}rvGJJdɵm‹ݕAկx[+z JmL| 04i<ܱEːLL "+ʥKHw}r}Qu햟8H&kR}S;Z>.8a*tESنɽus-S#(k. 9 6D6*Leβ Vnٷl:ZߚrJay[2 ;XѲzv,uR/֛L6˲U"ZC|Vg[ʬJuma$Fx^٫*p-x~?܀P/"\\Z o(f_8^9Ө["Sr a}yE nutza(i2aGBjcn8}}Z]/=|=8_x!omB^R:u,/i:ry9EG.'u$ۢ3)x󙡵@)cNIM;{7n d,`PHFjedGյXO*a8 { Ni?TBڭya2Vg-MOGmDPG1|ؼr׊/Ca"<$dG?X@r:C]Y6ݘ{e;2)f1ly;qwjS(L!v&v|KhGBa7=9t^f U.vyonAm]C( Ulj(-ИQ={Ej_v:J.ãE@>= Y2na6LnZ`tv5jl&Z-}X$J"xS,}',/=yd5d}-~f3 ?g_Jte+vZ]Dk'ٗ_{ڠ?j7m G❟_"i^7ƗxATlZ}k0BZIG=}6Rjn(-jt)+0j  *L0FopURyĄoх _P⪠[Gyl6bFllGIƲ_u^{䱀Pt{]-f`j&4CJ,H$Zh LeT ƨF!M}&Ș ˕*9p-:Jū= < .Dc nttB`B5͸nK*t`A9ߞUU Ǯ6n~+^ZU][j"Qv?EDz@P2nלRBdZ,}}VEhǾZډ} #n&Nc>֮cyApيm۹kjLA4 nN߷#%ST``.^`OQhɹIid) P;lCsӟ[.͒ #ߍ|/R(FTt"H,Xִũ"j| whik<&Jcta*J dʤF.;$$cVHvzCJu|#ꏇW5E*Oщʨ9N10.CC\Dď7iiԚ[.<- ^leYԦxNbn>Nd R0MV?~4[J=XΧ43&)(lzEe!t y>8mg#0 %Q[Z@Hp⃵k{J1gBEC99\W!YTbTb*3_d-1,#^VL1⾀?:'>Jǚ.Th?K K,le/ᝯx?wxrLUYH:24%pp=2Fͫ#ZR !$l[4y'MY TYD dKԃ2!?H;=,#64"7W!y'CaQ˒<Vݜ࿈0tl0| HASUNJ@%EA҈5Grw y\{( s1jq4 ;YS(98*@JkDV:x˧@Y,+^ûӰ`dnI|"0mI*PYv6櫤VCDtR7%czgr4ܳT3tȯ^ "0ODxL (yD KgFBk&׹f,sm)B-]-Gp?TkpQ `֬H{*'k UcO_ 'w-gH?M=;,x85jS/MMD3AOrtD3d^ljO' LnwlApta)s)cc*}ks5EHJ.N]r@d'7w#_6(C/f`2,-mNї캺 ?Zƨ??^<fg1?fY,cU?>; ~ͫ$z:?k!=@0ei ^άajO$r"G@D^ ?z~'^y!* %I`;GuDf'fh1Z]Edj lTˌB'S*@cd2IW>HCQa3ZG~(8orrtfLԂ&r_8aJ iͷGCB6|v:;Ro$U%zmtǥ Ǚ x,Z{G!=lhGu)_[QѠR˒> 4:͍dN D86ipQHLw)H@ۂ$U:aNFTŀP:xWːjؚرKUaD68UgyVꖞqR`n#w7HyPGʇD;Fv:aSy"(q._>nXf{wtھQ}SLfQ3Z\zZ෾%jyIφf琭W2<#9\o ow^+yߠ*;V6l*YJK^&`ϗAD05 U T{h d]h'&$zrkfFNis젂bmSSohbTF Qg(I{?H; "?:6ޙ9t ' :i8IHc1DdTD )_2KE')+PR؂Huښ갦x|Lfr8Y@鳆5W|^+my$K`"4/U'^{fœmѼܤsʚ ߡ'v6Π;l>)aMȻN$diϑmG´ۄRՈuumN"Z݈Q;:mRU 2 ={ɮ JU߈p<7΄pLD\%Cxv,LGwQfd= ŔG7UN`b&A(6oS52[?š8p 9u͞=+3۞ ynZ%hdȼ &LXp)0=?8 ׾>8tQ3FPxK|{7ǾXKdBznE dX-_! 2ۆ[ΪZ~A8Has;$\Vͻd Zh3LAw;p:.Kd ;]EolBiK~fqCU)Yஷ bM+>FR:!xV* RbɦUWɀG=^c㍨Z#QC'^- P9ҟœf#XJWrV4ŕ)P1S\PpEFX+- jawb5qkь:^oԏs(e9&*~Gor&:A``{XAg;W"_n I+ו4HAˊ(Dj)>I[J&!N:mhx'~}4oIWl0,5,:yĝ&~fyss[\ Lz ʱ#4oFA֩of2?~V=C&!U>j9&ii7Ã# mBw_۽#) r~%fr=My`lRإ]ȾkݼWEKD|CAbw^B >cH%ZDUk6PpxY>\5bXߔK ȇpvkA#y\U<hCOGʴh|A⩜@ |evxO@[E=\$EVtҳĎ8۸zurB|38214N6-[c|E0nB/kfÀ4E֖-PB ֻq10Cn`ɶg#|k&TÅZR/l,CVx/?MEuis3ilQj:A&p`o'>;<:6Qքs--o5JI9ᚇIy}}i\N,l:/ oIUzOB,Fnk3RQ`ղ%I&Rns '2լ B6~M?Ey7A|t|J6=y#A#'d&MOsje^#v,&+\ϹL9Ӎ'szoݐxgCRSi4yRzY~Mp`d4MktgXXvyf:tUӨR^"ӏxܼxQp[~oSb @y=:tM]^}ƪ i'p* 0vU| ozԸLiAѵͨlQكvVnVgHUlttx"d%7ax~cIݹ\CTj?tFa F@ۋ ~ YI'VVVx`V  >X`gIa'IƱKA}I_EN;2Ɠ:0`30eDXCi=2 k*Fc LrQBfV!Q x#r+HU8òvp SZ;/ .F"(X9^88l;KPpP׮<_>?zMr^/̐ՌvƺƫǗY`ح[ƻ&%p,CW~'/.QlvA}Ӌ1cܐ HfGi2@`9٨s\\v 5szbJ%^WF$A㜓*x*rj޹v>}),EC&ZoWt Sw0EdAJʕ1yO($ʼnz|IF}ϯxZ˫Y]ȩ;Y(PnWp3+' 9ݫ\4ԘH=iF%R$XحPv0iTDJ3iuRY)E؅im'lR;M.&w.XzEZͧ.f/eJ za]ܝ (춭RD>Ic_9RcL$;Ŏ/ѭLC7t77= nOvsS%2lk7r+vW>-ӦqM5>]]ZL.5AZ9+FX(}堲F\"@T?%R%B RߡI(tL6/(Kސ*٢@xȁvJN# 鳾˫_olݒyaWN պhbBCs){Nwcմ *b :#= nZH!y^?~??y2?3ߙw;g3ߙ7g^y h C~Karhp/wv8E~ { ϥuM1}K$jakRVTdb9ȭqR(p,$is#cߨ7J:񰰬*.WNiWDJpIzm };(>Nx4|g'Y :SڔNZ?;\GA;2nWHsS?^J>(P_>҈.K-RS-=݊BV~$zO0\3^_q_~Ij*cyM.? &×4[QvJλ^iJPϓF`@;DӏUh+D+gbtob!i(0aڌ~D4@T$n6PӗX8WixnӧQeJuJc`Ml34DF 20ZU.TJq;^ajX 9]싶)0Ōjf] 'BMnH;ݜp:="mSV q L}@{wk3l128s(ٶ$;zIԀhk1x3泗Y% V,Xf q^ X[ "X,(5NkQqy/woCef1H}E[q]wk*=IU JS=9u8!MLli*1=):xwbffYI2\|P ֳZM%it7 4&ewQEi-a+Gޅ'Yi2|97Wx6kT-X kͰj) QOK3 )n&X\5B78%j>_ʯϤµΉDBrAb fk\ifO=h@?sƒ6S,YsͲ @Ƌ.n@?hnYZc B%4GnA>PW^oM";9+Hةg:"}ՀDs5&NPh5౿I*(o(P=Ph%GUMU@;o?"XBg* 6xKm?yC[tʕeLX>2pd6F ;)v8hXxE\a)ڀ_hڴ,mhGS"c4 Ɩh+9buQMquep"D){I4C 7nDh]: ׺`{avP_ƐL@jTuuː;)Y}9^nz,=mF8|odgX3y!p"XIVmmX"[oiz-PS3&+ܮ|j?ju(G9`ζF1 X>*`5g XO":+S|/*$}dUA(*s:œ}>k~Ř]hg`NGN__$ ̔&dꕳvZ8ctx>zhLJA0Tt2s;97ǻQKOo,Ar%S* JОدZG Hj)yw$dYE0|kUl9pRpS)x@(AZF{ڣEG֐u%mٸϩς#1èE [K1T\gu'[C+Co{|q`LhzҸ筑A'+:9=Uq ]1(J n~,{HoSRna.91,랐BPI2j(>z=?jLC<lo 0Xi>7?}+[M̜19W} Ը]5鯧K9fACK|$OKq2+bsv_pv?G9FߓKVeìd,˲`/h;[$Ӿ[y9 #AW[:i|fFHSqLtFfc`YxEr0=z{^}#^dz$!𚽷)EuˆszPʺ.:U{kR}O;ծյGO2=~Y,_#w;E΢~gQB>ދOH@:4.)ZB°F~>~/ۊ .ۛnRWsTs*] V@E*ׂU':=S87[xQJw/]wyۇOsHxҏ.T'kI|@Z_u)f;>݇G;;kR;?~F>$ŪK.qJg'֏v~u_}v~X°ygx'7WPv.Xx$CSrb& {HA82%;̜Q:o(*-:4l\HN ̛M0=Ǟ;^]/qd%79iR*lAGTWAUzR*j+ 5 &㣌A)NJ(-`"M3Md*Y`lu7qVn?XZ?3ϙ%`f Yf%`95g_ût @>vCU;TjXnT*Jd\SR) (pbg4@Xayʷ^.?&RHa`F Ls`6}@_(x4XmJ\wӥg1CԚٌU˒JFY$}hC+ pYGyPvFBIŸ)B4YUשAj`v2:o)JuRϪLE5~8d8"@|/=VCfCF(FCh%('X W+V QsF:9Pif84X.C1 CzɡzCw{25{.T#?foF2y&(>KT]:SS^| Ef2eT]u'!+ :Al8so!4i.`}(BǴ|uwUh5VWNmnsKFb8Th\0iY_ V&A)MZQA]?w#FDŽ^vx)t&k$Sl˫_M(D7}H7=EKSo w{-${-}^a6=0:,/\.\rвAs8PL<,p!S$T:}>aW[$KyHϼF~jk(D_ ͜x Z8#[F0N/˘¦"C@ oa;W/'{gu^ GS.vwjpKĻƛm4 Gh1Q&IGe[U+3̲ ^.NBSS| inEFz0WL]9ލ, { yNƗhpU,#?g5I9M(? R<&w%P?.ڽkPs4H j9@bdZU~j+:os ɢsf>L6SXGI %_kA?h ː2+Q-1Y(7,~ 6zQS$`gFsK1>al`(j@d!*ߋ"W ܃f@8OfyJq9qV C0S5u^7ܥ qCzIw꤆ʣ!p岃NGU vs.N)&_Q7:wf:+$JX]*=2>:8ݧ$cB'G>v kOyc7~\5\g^3{=y}{}'ri:x\dy[pI=ydxEY'3ykЉ"ϰ -"q?J-A%'o ,jBYZ0K$.zh6Dw5{IT^ (B]&spKVj3ipްHvkAV:"Ks,Ԓ*{ϧۄ%<^\]Ę!cR.\ɿP7!f>nvҚ7Ĉni05S+~A7Nܔ3":nFB8WghxQPI;jN2E6pbY!VMw#\ (kKMPFp${z9h|4 BfY=] !N#r Nvvo׸J9rg1 $mx5F*2-5W^ 6KNjq)nEyEB]VhH@^xҫa,*2я՟j 꺓Oc B̾8OP<ր3(Z6d&ڪoO%'mh-'k+I|eH\C$6O/7w?{6ژ bn}gݐu^ 'h E9sUDƓOֳ8u؇WTtl3ޚ~Hsr}-YLmj(1&9\ӶNŢ}'\Fvs8L^Pv4̍(GɊ"Y啾׭e\ҁxgu'YCD#9O(mdWWd>`W\-Sv Sit^{[Yp.4Ƨ9CF=S^`Pt3oe gshU "? ykQ(g[.Q +DT]SC^ml!7]DխB`oF"AL_xY/ϵZD.u._`gۭN R`dI]Tǭv|v7}Y-)wWuw\gH.3:i7"|wxz1|.e2KUQT_.5><ếB2QC3]~O" ^i<{攞+E!.]-\D @;\0)0i~k6cqpF^iN?Ơ fx?y8_yEf_ͿFW?Wfosx8X>ou<^C.nKk+k+?hFcQX:]x7oح;p{~f>o\q ޸/wZ ]8ݿ_wvn<ߑ/sGnn8ݿ#w[\.)`)ӝ34[s߭Ur~wS4vz݋e{wO0%yL>-w)ve9n>N^9]LiY I?CIbeKFkϖތB#f(e}6# ? 4"-**ϖ0̴rf޴FùǸĢ|wJ; wV.ë5ON.- mGTtsD($DY#\gn9Oĝ+wGK}]9OX}A | \2̵#w.˯쐨xʄ=LG<Ԥ6Rq_ &\9$/Ijef?X+smLXY]>37FBVk+sxSm Β~ j=j@匦nkniL=e3~f?g3~f?֐0