#!/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=c4bb6269d5f66156768c6d175ac6b668 # 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 b<^GȗÞ ˒R"rӛty GO8dpF.QۧrOb3>v66Gc3Gd8 DtzmRꖁH(^/+|K#d@dJ@g'dծ<:c)^ (C#-DڣO%"tۗs`d@=HDATX"AI\F厤@aB(mlr@2?(2Kd8"(Hl. 3OeP".$hd( $`0#x%}'KAV"MV@fS)8 (CEōJ3x A}a\gK!7-}Oꎹ#ӂXtlkfye0u$-7+M4tFp|^+`=u_Е1H^y<Db`N G?bÉt7>90H8O Q$cn&IhS1|O/nZ?+תnOM4gk_G_6$?/H$*@((_?>C{_垺ժz5ߏ䐌1Ui`b hXk rt·M,LZ.-Zdbv#d Жȝf&csE>@8`8w"Y=yʂҔeF҇g\7sG["c30!tH5K$4KF!hcʣΒ"R9O9qֈ"6 q)ĂYe ~^Q*pb zQ"h> LT}: btC9*sZG; G'3K !VP( ”-3n`uCM[{Ž2j͍Mƴf eo´ַeG(-qfZ L r*wH|٪^4u=juykD+*DrWwK$=Aayl| )ߞ(j0SyDϕl>"Y}lGt﫞 ah1$O2DO3ܜhFT FETzgwPlU]׌oS6+˙zeV+LtZP23!HeMm,p!8uL E(}y*Cv8Wd$i4et//c0x0潤Y tu'H{>vv kFU/N9zM5E #9 oOZ/ZWg mLHxAGmr'tBXb-$/(JG .Â=؃DP pmbuO`B Bo1;"oet`ߨcS+ ܋P fA^gs9z ”ڱ8 _:docVrU)s9qbf@cY_Pa$F-')KQ1E0Rr}tUodK֗@Q`Ha7n]Z\RED' W?V# A8L̲-!ERcвXH Ib@PrsjD`vk)\OD=끣[W[Ո(ߵIL- İY6YBUElƕ(]KӣFaA7tQbT"%lr ›v@^W۟W_‡t Bg)xX4+& lqX q`rp{tj1Β1 n :]c&hMkfAwEUs"h wE;c +އ6,DcaSV %%މΒ֮9T n½j`\`҂QHG$zcp>7 8B2 r3hCC4^z|܌b^zSIaZ9]ip&xJźh08$H6F,JL@CRѶbseԧc=z]Y]_fJeV\qKʳ7 >AqLTs:=XCUpep"3چ^ɘGRN G.QO㨧q'qUmf!՟[Q䢑PCH1c== ]!l `+!]'Ik ݳڣ(f=3'&ij=sxY ]f`i&vikb_5+/J'Lw"P+qBu"np2?hc#9gGӅK=(G_z|ŽCKęu\>-I E6B܂ƃ+RAJ~ CV|>{u">(RgzU|~> _{ EQ:.M ʡ^B#[4EօDӢ \15av[,)Mٝw:3awP8bJ? $u 0%ƿF@o"5@o$š՜=,T?O1,иJ$G@nIb7P0ly0]pW& c޶M n6k;x 5siۗC6ę}j7lx>W'"$\ɑLUIN`2emgErF]%=L5`L$_M ?%[-h ԜO'k8E߿ҧhㄑ0$ 32G?=f6REs,wuK2ęt;1ԩSJD3k \??OK}hAͫyik `GN5^pbU ;4=s:E8S`4o߯?ci'l67sxro7\s￷tp;2WҴ^{ц~9ZFOU܊;0 '}owYTr2!(OBa- ^.Nkuik9XGUX\,xIXZ%iQlF;ht; !kְ33ʤBw$0S2M\w3s.^"F G,nwPvfGppG1gxD{ Jv }F;| &=} akdt)ޣYi#,:(Z&. DC5\2GucVn6';K 'JEk{M[`=,1% i&ĢbW1iŭf^QtJLMz:VjӷpH4DxNi[`{fMi Y4C)z+G[Bnu!E(h!V|$PnemO`T ,f9md@Ʈi {fa`>BvA8;U|Sſȵ0J-Cqq.s-`RFbHSGې:2 LTg9At̶%^o,(&:N M d3JdPSv4GKFr‰K'M$MV` 5c?+\{5@BTb3@7nҫu*]LBg@% ǦƈMDfĝ/6"ᣊc"-r 3#e)Q ~U:`.2j+aP¬mQcUSP4\G6Wo |M.} &KAi\*}ɱQ $ѩ4Gk&k"F8hbcM&*Qu)t=?: ޝ?jD$9=C+*nȞ#ns?( '_H;CYhR[2(c<~#gQNc(Jaq"7Ԣ PFl/ ]`[_)t0jr\Zg[Tn ]hgd6Eªz3j0pփ}r`C0Q$w}!|D3@%VLQ>p[q>f *[$QtY?B#@m݃E} km?bYۘb8xyzxQ{ CqAGoSQ)ka7:@O[)˞xgb-jԔhLe!ڿxW`7575Ʒ5޸%v9nwUuNGm~ R3I84dnj1y[mB&nU0& DL_!M0R!nDD5Hf4ɔHm%JenUM-}Ѱ)F qB(rOlXIX#EܖүȧPWH X\#1;<q7C vK0%k,szY<zd68m!Pʎvax2(-܊?/ w)CN|oO3NWIET@)) X2]CLůMkBC_ ƮoU|/Jc'^qt]30!jؒ4M_$TzX1d@' "_ĴݜTĜ<0̄FaKI#!, U 3g'.Frj!Bò{0цFa'ylXe2H-8;s4uɊ;f{d5!v$ֳXq3li GQ`A{ܣK_<9*bA(E}a4%K JlO}DE*dВV̋-u C%k!͊\aUzw.S:M5ȱSkjU$6>kӭ{5VHXH8K /xU֋|9BnfP4 [BQݺQc^x 5ijJiѶ<^gFuGC*P` E>l`w5^V'of/ #ƩI}tt$Tה5ȍ,⁼a 7BǦ6F[O_($$[cWKǛEΡ+_B(ҩyoHi(0~`G@Sʆ"S4umPx%ykK0&Lv7q~1S0X.1z9f50e28ӯfjz͉PWÙq|3K0jI #迟 <J[kN ߽ EW0v=.W+d7 $,Y,x޽45auKw/SލǒQc^L%a+fLxC !!⻞oGX biS8Tehk].@IXSѹo bufZ%|V;ޜ^2TW.]~**T`oNW; ) ] dU{Ay՜*IiFGX:q<b:qed,PXΆ {Mm%`KBG5B1qL(ٹw]Gw1TnQY&O,>$dG?XBr6EI6]{E2(f2HoyW[IofU(,2&v|ҸBn=Z94^fIUTv#p ue킆,"CfqjO[TX*#ͷ;crEk!;lى*lG]Q<L`II V7V"3UNt):7Ujt39M2~k%[=0+E1-?66_7#lēcsm*O#?yTzĭ!hҏ='}7FϛBeG) ~xsv,nR>TfР{1rRW~G:%$Tmt+KP@)鰓QP;0&Bd>>Qk LM£q҅ _3B*)'ۀ A)/;pz}蓡Z Eg0 oAMw\Xϴd1'ĴkۻLnFYc^ 1ʁ3d׌D!ާ5Ȧ3a{P ئe ` \D D5. e"U&N}XzqIe\{?YʺZf"2l$Iuz8#N2jEu'el-3 GpT+,%Dc] Աyc׋Mgn_lcuIroV7a+5+(^]`qcY6=>D[avDf>EM4S1< ivsLWE$gih8RyHA#{#wxʺPRvO؊6BҤgke:km8⡬X2!5㗓 mӭ| ]žYl>ȉ$ :;+~<`a Y>~_ԡܞc=`[-S,= e}V͜A5C?ٹAulTMt*BObHq~-|䗞j'8TW`F7ek>}XPcLGYoPEU=5#6 m+h_e(+0Xh0Vx0T W/4Vi _FZC M &*.⨉%7q*&#u6ⷈd'M4^p>6vBa>NLe~|7ރthQCgl4QB_sS/LH pynSH1F|)B(NqϨ@o9f vsW&ODŝM/kpȈ$>^CKiG`ҨA(euQ*QG`2DŽ f܉=KxKp%OHoXWV?=2$p M:N2bӤG&oyA@lgC ½1P (w#HAnH7WCyO L?G \x|n飿;'?eҝpY= eSɻ|qwt 6 A>Oے)wQ?Wzyn pU&'# ]S.ڴTMvrvxҿ((6X♓O‹cK?C3qo&#<.N~ Q"=A_ ꐸ8kS0O㳃G:8"0IRyzQ eɉl N 2Աn^znWLBe`V_т m0w'N{Iܰn#8Cz)%{,qx:XvH8֌zxlOjmj$ou%r#X8sXBښA]j5@7Ao<B qyBvB)T'g6;>IbNeq<)ltʶ*l%#9VE{?m϶ӚS=.WWHMY[sUVVvgNJvm9dqƓ{x|;woo}}'r/r/]kL6h[(x1ʈ^~y.؈Q:fzԫZiZq Fnx I[ ݸ(a˽.lMV9H:D1Y=9H&fn}U9)GY)&pHC5`FO&a;"ѰKt R`(š{ ȕIa#~:uRշ5l Zk,Rl=NK9E>V > eȬDpS}]c37CRq l*GM$gm,7Xl[kͥu ]"++VVpq~=M=NkH1U͉C/k"v\& 0ԙ RN&җ \0úJd2׆n>hI^ ESPHroz X!&$0RZf"{&E?ICqL# :.\q7OdFGd̑op\ߓ"g3SBZ%o%Q&FjD ^[7bzqeؔ!6"[}Dc~?)Ӆ, NFhØ|԰咛YL`5HyF$zPT/'@?=D${wighG7AeàQ ]c4`QaP.j &'8][Atg,O"_٫à *B^KlfFӔUy>l_$@_ŤݸZ4X;3qNFtҶ@&s!n|{rfQzf&G+T, CAH6oܗ!hW HHV Y]\=[\KvӞ %hĺzv>NYaC`v~p*!W* >+[1F!p~/þ(2M\~Åxc+hpJrD~+4, ܾiЉxz*o8ӆ h18DZ>\ `a]Y[ =t4.zus#/ֿWU,5!+ՄQ^ûvtl'U |Y=}q U{oˮrC ud{Ka+FFڗ-kLr ʡ_ߏP'@M:?oo( S%ť$<\<9^ju ?F| ȔQB}#3M+7.u):.R$+oOӓy >= V2߇oNY] r7n@&9 T*nh䞹 ~7-> niu OTnMƣKiP /o5_*[+i|ؼm&!..~TˑbGۺ6Ƹp#gv=(Qb3d߻Ξ@ % 0Z<.5-e{X\O 6FqB2 Bwojg7QlĢ/0Ơe7 FaNxCVwx#5 &P(j0Y"6X@Qe?+TLZ'kU kAgȅ=~_.~Uӕ!abP -+4ڽRRv03Zt2>" m(4/Ȅ>z5moA)lKY)!WcាӚP_}fya_mJ\6 /@bH* I;`-n&hxBol!IsbƿHX,ҫ ZI0[Ё`El{+'4.Li'5^Pa텶aт/R F9GvtTVtS3.VU{6tȞLc&S[d@B2R x2~Ɓ¹d^5kPtc7hlj~LAsxkk0v 'u쫍pÑ=l}ct{cOܹ1HQ MUњ5n6⵽.+"#0KTԺ |x`F&,, N0[Qo@0KC%M Vʯ\i׳d\,5p _Qq335wBz=PrF 魩]q XԖx ?r@k+BwXa3FxH+Hx`ܿo \xw-( ߜ<{C3qtQ7J 8Â^!;q0feE7 o-Ǯ8n]!Ge.3 uGhtǧ``1h@Ņ&IٚlJnGYv>[UԚ ;@GE+3QJbGCUJwU=8;T@oz1m5PkV7]]V!h˨!#F0MAs0 ?!)GDA^/|M FmH 8(,ΔgXʋ ,WӂpnjsԔq)t7\򝂌Yxhuf7SMkݶ73m|T5(Uعd0^a !q@9h9.QG$R2%qhu(may`ٻ$ "B?Z˚&S2fj'|RUb͛h0P0 DA1euwʉ@(el@7caǤI1z#Q/ӆY S[3 }<*8+zҦYu0|vz.RpWCE,b [[BS\f)6[rnT<\&3e7V&TP:!k N?j͆vHImԙiD?V&TܣVGΗKGĥL9w` !ȗuzgFߟ }.Zb`^,w*J*ᙴKz@$s9htz(⁐~^;VE\Nn"j7Pkā}?xmn2+$@ 9Jئd!dwWh잻tqQ]En+%/zXFyrL0։ C;6@7bdFjFxnef?@f//o5LDTAEl!<|w/ySRnWMFF(2 id.QLôS ]S8,1nX$X\* UBX J 8d`#jZu@3eEN'QKpMY䇴3Ԡ)4_t|@{uY皒Tm8Xß eS1!K|'Qt@/9sˈ5Up-Urdr/ayR!:U]v9)8!gs0dPBvSY/HdоBO~S# `}ke鎃bf`m-~޷;l%{rVh8eD%K\\A.Y@9HA {?|P32z8EN@qw;[-j<0lUNe݄7p]"v=%y5[ eB%#/o&WE Pxeq6ۨտ t-ZY)ZAЗA[}*ج)nQ:A6a-4,;ނډz+yrg4@<`|.k2L٨} + g\ٗd:^iѥts^[qBxC< 0UF^p{ q{rI]K$3dh컓R h (iLQin#r h)BɖH"n--Zu_{ _ਦ i']"~4Z۳\-RߎvVד^3 Ray c6= $>ֱ'@;8wt^Db8}.͉LCfwUDKFkuYl;Ds nv5'. ) V>ގ 3F2b풃㟘qy *RJ%[+/>ZT[7DvScqȧwC1PӚz, U]Nz&IfA+BY yn7Ag.Ψvr&|܉fY{kOƖ)}3#C =]dL"t+܉t̽u4JgC+КۥXe)w:( ]!m/pංȼ8ޝFFWA$wRQEʒU d0$GKȞp OL: cD$hBAp l8id7/ Ai&hA0Gk] pwۢEɀ~zgQ ^h={7r`(ƹCn4MVjㇻDC0;NNss&8wSOS%.JGS"Q vۯ"2K7w1 0]Μ/- Pir/š~6O .ffk}f|2k&fΘ (ܔDrj[eSs'|P7 >]eOɠ1o$BD_`an8@0__L+.Gmve:İAhgSGL?Z Ɔٵ>e4K"@ q$^PrSb]2F^+kyٜ,uu3m*!!yᒫYw!,u$P T'e (H_""6jKfE=&0/00̸921<}]X@>dz(N"Jc8F(Wac4}_R/T!yAy -RNktM n;k|7s+w">FYUM!(ʐm|?P3;zTRiqЬ1>{3 ,`TOw1}8.MJpe(\!&L!#C%yi5nϢ60qB )bZd`:͟'(' vx)\pMeܭwSH3"=dkN ORQ8dLP,@Y Ē$Zd~D;J\ ZmnQY YPW*δx> @s0O*0=AC>-_g Ӹ͔HxXɲt4b~!e;ReL.&y{\GWịe ڃO)fM)cx.";1ۓ*Fcsđ AE 'U)r~+_" qZMɧV>|c?[&^]=Ή,L'7BMnP 7s|G+ytD=QPa7<yIB@j;RBLRhYx2_֕<`8[ih.Tuz9`f}ˉc9oW ƽ'Hq|H[!"stQ戨t"Xb`e^e(X㒈8tAalnLɐI!I<AH7TPf1KP&iҪ.cXsKP$l͛ evDO3rՔY"VI:q`v Xdt9SH3ѳ؃ P.zt`dVtb|. sk"0T`XA()P'YuփxHUw1Z(/ #r7#ԈϨnքI@Gq}T GFp/̙GےT5^`i<}uN_S)̜ȳd#h*`H$ÜJ2ƥKfDEj% %#|5!'CX͉c-k\F.`NHBL_t(=q"'"`t )q;lN"eBj[A(Q0nF2 T7ɍd!qjk|zt~P+Jσ`OMA֎V OƬS Q!㲦5ϖ,r,>D)FDך;w+BӁ 1wN d3.f@DV{r8$}G3}Hʶ?HG :x a+k<)eO MN8|8  |,٘q+Wٍj^29IH4 OM'ۉb$+P,7B8ql2l2<=Γ{k{ϿnkVn[Vnm.41orCL҆CYЉE1egH$oD{azb/0m1 q3yG#GD!3Td:2 TԆPZg5#Ş"jCy%^!,2TYh!5n\&Nc'uhv,yc.DNJ2F_6M?>jiseQ=_^_F%w ϺQb9ְ~ьYOR?R7u}f Hڄ3J-2KE1p<:yU 6C[&5Uv?w)HDi5G)\+jg]`3s9yx2ci|}ul̗ӭmBm4R?$j"THQ^.M$ 9UfPREzU2e)y&uXdV{AZjP{%>V22LSPILE=,(n~m% [T)=v?&-hLJZEzඍҾnmQO #ЖizL^:M'4-liR9wa^2Fll\WsD,3iodn8(B6+0A620A<'n BA5)tP ޸$+H9BCxd z78sd?76cDڅ`GwA6ojP#dkJgw#Z㽵o;tT dhK>}پH^[$;NiZ6 CB&Wg)wzFHl NjQ:>Q5E#M+*g.\/Cacsz!fyAyyAi#&6XB z&9u^ wX9L]?dϠ蛂/wpBgL4B^(4}@4X ݵ 8oe!{gߟ0eG+OT}BGc~M,|'s?r?vO_`V;nV)nc6LH2,^MڝVa]\,bb+voJ'׵rrErpM vN@QzZqY=>Ɣ!T{ÍʞURI]VhXhxTzp4[r㦜g)ƃ`7 q? Ţ^=|^K{01\*]3+͠2Ba4 *KJʉSX~78mlnxĥ$3˟YW>pyGϷ9(?S@p'FNƓ?##nēM7tz~'p[{ht[|Z|=8lmy*ܯS6cx><Վ8Gp{x^Ӈ<txHO>GqrxH>OBXDӡ8(K~SjY[(Iuϒ87E`6.{PUwW_Qs~go.j\uA}^bq<JB7N`cXM:݀C$0+/e߬b Yw=6ޜ#BM28_1#\F"~VPfޑ b Dd@ʤkG ga5M P쾇5 V7f[8:b]lX,^zSc@QE'ɠ0avqu2rqAe}< VZ}5 _v)]?.Qn+avH[%z'8bP-*TD! ~|p,.ƒz ÂD=l<(bCqer^!'ꤧEb/r/r/\2|RI9Xhk~ Շv'HI{Cs]3P TZ5Ni/Qr' ׿ɓ.<9J..JYXa2ñJR$qأu 1'S{ϝ2N#=%dҪHW^ܶUf)d3\bn2RL- \