#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=4c9dad1f7fc3554207f50ac58adf7f61 # 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\=ksȲj~\g \2I`m`"qR*! XkXI{=Fl8{wυ4ӯf\tj¯j⿵㣪/ǵZy|jUϪqT$QoK3ov csq5IS"jBdۧsucWH{>' #.f8FԴ<ߵ&+$mGeYe-{2u܅W&_,8.Yd2\e,|d:k˄ F4ŲgplA a ddr"#4pL f|hEYcW -!x^^(Ԙւ DBBQsZ` BZPC>qBks/{x.}|0*POgSTY L4z'w$ Xn[m lLzr_FP(=Hl. 3eP&/%hd( $QE0\żtѓ/~Gy/+R &+ `1cΓF\fj%9iwH|ȁ0u.P(X1_ ZޡeC̜;=f2:vΖn3ZP:#y*as0P X@O?SB5q1!tS11)Q JIjq\&I J-i=&wo:mZ3r# P^p_5k] *aH,![ِU+}NΔŰCiPۣB@0t\ .4!2wV,3HA&ؑ XtuA)E)-,Ssʔq\}M]JdH4i0+Fq1gxrVP.:`EL.M]p5HFt,ѻNوs$H 3sfyNʍ$*X1x<] {Y ,kx%tM9*k[뮫=ә%FH,sJ0 P(Lr29&_sijbed[woo跷 d5T_s^UXQ1ܲX r&wHqtܪ^4=0-VWL+D7Ȁ jdɜ'(ﭓ7Pr;JCVb9@rW=A hb$OS2'̀軫tlDOS73p& <{ 9Zl{GQ}^E] |HU{X9XFL!n=Q+۳f6} s= z"6tS&_Do0L c(ygLl4d{+$zE_cz SaƑ3!ecNuɛ7,Cql H-Z~/@v@D9$2"Î >iޅET'FnQB@ zv ndO0Hgse4S88}|%Hfn iej'%s`XZaj@.c1VuR_YUKw$Τb/WMQ4 r,5Ԕ2/Ih LNT nZM'-B~._hNZZ[#>v+;!RcYZdY,F45 Ax]`lqwԹj5cMfi#fyqOz68hܤmˆkKӢ #O2I (dŅ҅NR(r|Ƞa^@Z[Q6\ʻьǭKbN$+5G0)>aǐӝQa#tٜyTȋDd`Md2N<@uYX(n=^+Ef!"L4gf#i7}e",nPQ%2 C\P1d02.^%lA<4i79 ,H/Zf4 J)6>gN:.'r 8< 5 &LZ[wb[pvO.OӊE}R=Nw昇+6=0︗?8򆝟Ww"o~DVhh^C?aW-5.?z=,>~r \R{I*KƝ=`<),|\iA Cy_8QyԮOY7q`G9Q^X|"!V! $tB{ 7G͌i>m(>ʐ2.?"PWu,zwK2t1TBW.Yc'7"]h+KOQn-OoFBęՁԢ8cվ3z=Jɍ,+m=9Y"79|ԖZd Z' Ř׋LuK!M MtV!]:7Utʠ~7/1O.V5)o3ꋱvۋ-zs{ կG9/.mEP&27 De`PI^` pi?(MwN6fF=wownw_k s?L CVdl1|gP7CѾuIlg8[ChxuCvX,v,.,UKtIÎvŞz?mΜ=:#J=`2C7/m{q6A/pWZx ޜ݋6^?cgx+umcśAwȧ[Nys2nd]NMP_Q#< 2" -w cۡ {?`Qd!i1lܯ$=D*PaV'ρ/?GٛR2V}>KșfyX Xľ_KR¥KזFh@譋I4&%^܄-]L'p5aW\ʄ+]PȁKp"A͟s$ÄW# ױ^JI Խ/}PZhO`9ty!T&!8rK򾉂ZmcDti]UD7mx4%٘f^v_[}E\e"~D\V`MpЧv3hϧG`3IL9}qcBoWsUW9x'yKddD+<4䌺"1KsvݮZ19QRvk _L:r:0kǿ{IR -t%5y+R/l.66$_Sq7#ad܃9̵-4: 糿qYY%ac̬؝6Te V˥ 29VdYȀba& ?l'Q&ëQr& _ͺ0+ڐ3VaKyyBL]_:RQ]b<Nÿ`0zIt%鿼$%|m9ؔ} ash5)%P\-_PPjKs!rI H@wW\D|DTv5 ³^Kp}4I8P*)-M&k,(f¢b)(iͪ^QuBB  $=K;{o ^KxrGxд-,Ї_lHvKBRN㡺 vC ȔV|(Kn9F6`4.gv94ud. { [nhG X/Gu5A҄#T4rZ~KXNq4b EH\GL`hƂjlҘuzU(N8e(6&V2G+£(HDp1A *oDYr@eEU +? 6D Q'b)T*c0GI JNiҧ>nNn#ЌR2軿`{lu1z{!7T}tUã:"V5 O;=ܖW8A͘C뻪ov6S q @O ^$fb `1 #*״^ ~j4Tӈߩ|;xR  0$%-]E|Q- 帮ҲdᴢYG-`;Ghg={^W[4A\' d>J.R", jд ~ \ah5VQ[D#L(l2/A,N5\ A26%S&mc;2,dREk cƒV+ow;R!58ql}}Ћ8e}tZ˙w_jĸkn7DjcN  "Uɻ`= B3k-%gMDg\DFw"ᣊ1,H}D4UK^TGj12<׋s}gkj^:D:V Ak`rUisrShGA`-(ܠb;*U0;go5pܥꝆ9_EiyTk+`\hn!==꽶T-ŕ{E;hk/' c7{xՖ't1G8;k`97Ρb0b>z輂y75ɘL;/Wx"f$p7+B=T.e4 ^b|ÄU%B=R I>WE#ȽJ9 JHڍ؆ҫðHπ]3)Cܳn^s\KGEO-*MBE CG#kl_ 70V`#T,{,\\,TQ[Ɋ~(Z+䧽ݳЍSO!DĊ6M$n@Pgm,%8gQe-ZGN`w1TQ*[ M|xg?Df-m_8?ukOv\S~V=[%5PK .웥st5!r zte):N^31#Yet,*g{(C _x<"8OA#T\G^rWC4K/I_e1YY@b(zq}mr=J'횾O9ȝV#G*zXG< hwPsL:b wZg`&U?T/ѤW}NW꫻ nV  J* v{3+ز}]@6w>54p&hDn O J0Qu"0OfJR39tlIdJ!?}ӌ1Ha#aNiORQ"W, }TAݘUuB 3K5~ygt [ܐ6e NᘭΞ ̖9:4/;;`&PpAަ1B|O1IAjsi$GϏ.SћM^$pP KJk2ŵ'0 = zH)GwFj{\UϝvZԩn v<O+h3F%~7ro12glGvmKNGW;]F~efC~SNrZ{s8: PAROD% R;<t2@e;?]hMz yzB{nWz-umZ!HQդlrb6'{?g';;#É(\=ۃS>~{t*3&љgP(d0{%끘zdixw.\eֱY - ҡW'U[{N)54?/sK1vL0րj!-|;ˁԋ&lՅe>V+UuH2x7:yLζ0YZ#Wd~ ס/ԋ׀V7Jn#}4Fd`TF~c-D_lwA>`Qkw?B[bFDznJELؑ/gƛo/6Own=zx9m_~F/衬6NH]1}o:{JaԱ@ڧgwԑ>=-E<)x;_B)6nM_}7o | !pؐL8+POO#k~\^v J֖ga .#3n5L`\bZܼkeq_ F ="oos@CX\:IuCHAݸPPҵq\y4toukѣ1N*Hү #.- rɚDZ]`.|KyX`0w6ght|W,Wh؇"BQ8F辭N^:}< |ss9 }8h?j!ހP={^'? h#$`k0Gҙ CL`u:Joi8Ig̘_'^ђ=^{J!@JB\,;;3+V-wMmD~6`ַ ]U9zyלe*ɩF#4zai'1rY'XKg-鮑I` ނ1nP\&luª{: vn&8C6]+l`Ҿ 8чJΊS-ۡN1AfG1SBa" k6-[y$wڣCe& Q%OKaVh/f:T8}yrRSx^e'Tr}E :3ِ%k&N,n46U.ai:PH7nWVpVilg԰2>u˒[PzҩϟKP}Wֲ ?g3 OοٽlU^$zZC?2@9]3g v? ; #+2KFOfl|DeA ޷#t.CmȢN׆Q6`Pe|R}8 GL&^ .Ay\:$D8: e" /n.mJ ~{GU52j:@J-wiUu-oebz8^ mśgG{[~Г D8=tTfݮ9 3n+9ѵXjЊ9TTLq9nU}.ƭ]8r..f:l^<9zK`Kvxڃ{J(6D73h -o5FtLQExV6z=K ܜpX- 4"j hy z>b7,pIÜ5hcnfe8-  Ґ*4Ť)|¼|1P8C G1Ǘ.{?AAEu>~ۆ/Pnó^} 0ap?_3+Non9=wl|RnNE5%jQ#4]9K;D.sH\õ3x\W`F79esa,ڢ΢O k$?ޥV26na7d bxxU^|:zҡ}AQ-W0tд5 M@E4$&2 Dg Avq29dۭctg.T4L_?Ɲ%t#=XΧl]4kzQF K18u?| (uNLA XNqzT;`뼍[/O߭ TA ŝ 9TĹ>2?~i6i(CH,=YİxgX2H|)C j̨d?Y(^_=9|Brr`MUY=24%pp=2Iͫ[ZRۘ"F$r[ِ(M} e&?H;=,#F4n2CN &&sx:2>n[0Axl̐9Rnp]!uۨӇRIQTz0mQ(ҮDʜȕ{0i,_U<58*0P~rw"ͫ>\YLв >cԑ`׫8# IA>]Hѯeo P*szcq̵]iym= T)jwsځ5"+Iqy2z(exr6brL:խMM*\R,;O+VRpsruR'%a]%pPiicpW1/]OIOWkMfQEou?XD GaP>]ț3n\Q1M @PD dY@X))oōsKzxsen3:죛Xe> :\bWH8;c͕e6Y~u_bghȀV/GJo'\H2>^{2!%kQ.FLd&3ok 5f<m)P-]-GvLـl]DO%ĐC]kыe:XY|`tME+ n#sQ jY%p#W\=靳6r5=+;ʆsJyue]ϵ'?&NM۷p%KxS]ӆdѠLsp[q{ګwL{-gMs ( 5YV3Iw&J;l op9Δ1gZٵ9{(I%V"O$gh/gE@K }ͻWA݂UGY3 USDf5⏎Zƨ?~ԋy,[f?Y,g3jg`A:N[U=ҟڐq@E2\4Aijl5QIZy|dYt@pC(O_欄+/D˙ l C,S*@^yR$+ FUqN!EV)bE?et.R :Q39 BƐ`yd~BDEtU@EȄaD#B>o%WNb~gTji6(jP*u6(㑑Sx,FCI=lhKu)'_[^Aou ,K2*4KBeشz#(3*U&A`#0o ' T9Q B1o_ .Cuk~ `.UMH^&q Z YU[zιT)(^>(#kZBq;*%E1N+T"gjz||]cmRqj&GM$I6V:ֺӺ.Q˕Ɇ~6?ǷڇLiرd] GsQW=Z{n53YN49fd)Oy1/\B>qߒb]ЉAIlz:xg kiuVh9ZyJ`Դ,U'@=3Lɶh^Nn9FeMF뵺Of.N͆7!DIMBm#mG´ۄRՈvZ;?D'o`nD(Et6I*ߞD˽d[EX%xotdO@V 9u͞=+3vӞ 9Z%hdȼ &LXp)0<8kWU#(:(_%2!LT @"4Z-_`Fc3F۾ȃpD +gI|jA*WQ=*Bф&mv;.K  s6SN n?Đ$xYɔQEK,pw$ tj,|ʮn`uToelVJeA["=]u9˭q H'9\52ڛ>Tբ #)J!F;v 귓pΛ}&9:٣ A朢ͭV僣;vJK /TnXLʇ ߺ袺Ļ;gzbB*p-zU *Hh?f7nbg?TQL2iw")kTEI^:vl^wҙlB[WN6~#>O?dS^?ydԘ$Zޛ'̛ XJd߈Vn $a+ <NyzE("NN`8@ݽ@3uOFwQ:V~KK>uD TQ>j9(U74֛x`8o"ae2ۯQ@ sU?&<0r)즮ӟdߵnޫe""B p lrBʱ< Dž,[I!uWQڀB)\G4Usopv wz ]|ujF̹p8Xr'⩜sՅ2z % <lO+ `5F!,Y^f:lQcpTOu=\N!FN PQnm{G'&^#\ >BZ Sn3\0pn0{Q6Il{HE k!$z^k&-z,Tm2ݪÁoA0OG_A<@:*|tgM$k%UN%_T* sV5v5dqCQӂkQكvVnVg UlttHyb%7x~cIݹ\F:CTj?tFa Fۋ $. YI'VVVx`V  f,,FsIXҞ#0Pf[C%N:+Ly" ,sqR3#e&lgpL+$r۸J+ة2h:ô0Uqe$^:#HU8òv. SZ;/“F"(X9^[f蛺u,A%£}No+~}5]ݓFU#qXxU\0 L[.jy֢Hqxȭ?=Mß-8 $*>5z֜ngzwGhws):-tb)5 4 |P6ε'KI.2ҷFӸ]$|UϚaV.jlwI}w-WXkUfW'Vn=Y' HG'1j='Eb/ctGe5wl(D^wuS[]98>m>\=  -2ݫ\4uǯPszu&`[A{JwN4n@m4vQ\ *"9PFAhxfD=%]j܅`o Jt¥L)UoW#L;Uݶu(p -3i>zR߽q/=g){Gz }aO` R3\DG3 =qo=b&ĕd cnmnyJ48d` +1oege dޕO@~T74g+XW&肪VAJC o+*PT@jTw}DJQ (37$() .s6y*rḝ҄AempNNLޫZ\eBP3Zp;G,cZ>Bv㮦E_AXV\1s+P@ަ76{N2m"hw-l_C Ux??}x-~f3ߙw;g3o,μ y h C~KfcJfoshp/wv8E~ { ԥ'Zb"+MI2()֤v*[s`?(p*jsc$7J: *.GXDJpIzm K;(>Nx4|g';ͽ)}F{ȋ2we8G)z7iC&*)esKjBeTJuMSz.|46.0!(U!!t }yX N  #$F% 4n2HhK|y}j~ _l<߫(7ӨY:31GqTI`"#X1D0ZUnTJJ%;.PjX y]݋$)ptݳ&Bć`MH;뜗%):KY#mM) J}@{4T#Sc zB GīJ qxHCdA&]$2{;1LYr2c4}ۦLzcm+<=ģd7;M>Pǫ%K0iܑ@ "PMx+1j8 | ;nRu/8FXagT`:\'#Wɡ:2! P%6Փ:?l,lƜ$OEό^[wh-an3B@ƖG˷\٭UQG*jNQZ(g,}0T%]|(K綫='^4eBi8 Sn5D dF1ՇҝjYʟ,@wPq+w_Pޡܸ,{"yYJJɯDT oHA+ >,1e쟻h2zkQ…o;O@>f6dJBBޓE%mS 5*0յk=)O$ZPHaY*,t&x8v ٶN%0'5y 3/ YTf! ԫŤS÷>qZy٨K+IMLWcm8h G@ulWB҂o@oVWVC波݃cڋfP[PM;?7#Tu=%ᐶJ59`l3D ,Rؙ_F57 #'<,W ReIKeDuXě䂪!/bwG@?HqGAgxXQVoJ'yg aՑʠuaŪLxFm>V*6=dfbCǿo.v޵83%⓮[ JV 5rCS+.Qa|g2{/)/DN؈wfb1 )v,_: Of p(, Q@:K T\ |Bf%3,V=ee5W Fm!_T;pAx! ؤs@`"St4H8U]y{+M:،8)A"ϜȠԕ>`mq^VѶx gKK}x[԰U2כySc#ߝ-|m(hөgQ/}|iciWs%NPh5᱿VQPTv=Jv3{OV<%Eθl~.G̑{w< 6쯮7cGb"·h!)fbӂgg梏M8nOW\I ֶȱt*ͿG^7%1"/Fg< $ H$|߸\TwvkAGubW(q 񕙴vꢗwSDoFs{,=hdF8|nRf rBD­Rۦkpك<ޙE&+./[T g*M>W&9]\U~:y<Ւ"2ʬ}ꈅ{ѹζ@1fw, rn3w ORqsɜ>VD_s뜪l|QAG'G&*Z(>a?It,rV}=0"K =qa}r 1&/ϰHӝXN_$ ̔&dꕳvZ$ctx>z04-N&eK*FK:)H]/{t?'Hg 9Q)C9kO W-#E$\B3eE, @ R,P*JA6/9"RpS ^(A9ZQ ڣEG֐u%ָ)#1èE/ d[K1T\p'XC+Co{|q`Ghzґ筑ɥ ';):l9/=Uq [A%#_!*27ӷ))0'MΜuOȯ?Uj(f,=j\C2l O k^}Fo4n&61K$)"kܺNvN6ONzqzDNchu*'ޥ_2]36sqVuBpQd *qgP~zR2 UZ0f Aa4;)l1,7 Ep9CgnQKf%h'Tq}KCBDVs'1e pFX1:-Ye[,-^v"'6/H}4sGjLt 6pa KB0qOg$h6'_t+ǻCS&[<{KRTlekJL2n#kZ5xc]ny;ծյG?OϿu,w;E΢~gQYKaZ%~yo A? лL*Dj > f݇G[[kR[?~FH$ŪK.qJg'9>)]{nW;% ww n f(~J_؁¤^L[ǯO@^`zw^?qy;07Ld'( w?Oa#t߹Kf O/,pj]r)Ůz0<ҸrZOLӐRFV[?h ɡ(7Gctʱ>wQ1d 5QsSLPoJ6AD0vV~G?jkdOZ?3ϙ%`f Yf%`95g_ût @HxDav; [&^]9މ,=<'K²&ߑ ai#~%XcD)<$w %"Z]{thr K j9T;mnmeVA۵=8ŎcmY'4nGpEIࢄƅe-w5|`e+  S_G\ k jDgu??!= G[]\'󴑠ETF65M :iZh돕\\­Psw С(;}1&0*Aa]`C:Bn" K*YP>+CK+<<.+ů.0֤h^ȼ>V5k7"z!N_ZN5}%+zx0,S򄖃cK K7ݍ܂ۇEᡥW*:_fNēs.躄P<6T7JŹ\PJC$)8h7"݉ܗ[Ѵ"_l%9uF![pwyJ"Բ˾J cfF-4hrn(Fr=Z=(+D4p@M8OOQ8}7>Ϊa(8NZ,nH4Z|Xy,\v`pY`ǔm{+"L#=bV +K_pt9ݧcB'ǷFm| IO֞><~kߙ_w;yμ~g^3ߙoo2,w:PIᷙC(E8dгKWD};rk8AN>4ڊ(mHe4{NU:Lnht 5dWTʨP"1ꑄRCz{RT+\>ДŸrUdNN4*k&k0Cr"r/Ruvyi4&y>[et5E ݕ"`w慭Hdoa|XuUz3L>;U*Sm,+4Ҁ_p'/xehc얶zEiݴw1D(T!ӽ𩛨`'0ݵ-:0*C'>;І{L E6(A.Ehhͷ?\&?n{T ;E*-҇h}x$nJi=dh7:bBh?j=bmv vf:_0p*aLAu|j7o#,r[Y/lځKhO7HZ(8i#|wxz1|.eRcʁW,Ճdp-50Pb-b1hiwi<+40A'Zz? w8Rj(_Qm0j ZӜ1acꏆ_ dO>?  R_]{?}:;{`]NdxU_o<8"~N&Ţ&Fu܁|o[wtӗ}/ux'N ]8;ݿ_wtn<ߑ/sGnN89ݿ#w[\.`)ӭ3}Wi[~S擒4z݋e}Oͳ60%zL>-)ve9.>N^lsӲ7^4$hC;`|_zD!2Vw?97z޴FùǸ zw8wV.ëfdSKxr x-&81b XS"2u:WU[λΕ;`~]e[.7|kc&cƘ[N+~n!F3h䧝(r"%-59jaؠ5V822[|*o=ȫoho;O]bWC_7T`WS( ]—f%tppg VA;Yo-Y^..2a_M.