#!/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=c82bed7b38d258ae9939bce685a25fc1 # 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 w]85GqYm=֪ǵ3RD.!ϼ݃pC IY޻'Nԫ mΡ]:[]!0PԣQ|ךIV%M5u֖  hseψئ<@" EGiH :ЊhƮ@& ![-9C4񼌽$Q01׭u+  10cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HɄ!C mhZ8>%\X`& `B7L/hoI 42jh^674RV28W߷GhNJ]r:% ?K\z]iv }u$H,mv#> GWÞ WeI)鍻rLTѓdAMHJu.}&d#\V8`xdrgkp< s]Yԭ0+I}(^/+K#d@dI@g'dծ<:*_u@@b xԑd"GrUg `I0X|T2x$]! e|:V%r1tiNH) &"!)ݶfX*F*%P{ن]&Af6# F1ʂL_J>B2Q H`0#y%}'_H^VMV@fS)c8 (CE'Js Aa\gKPlcOCˆ9w{j e0u$-KݸgtFPU`l 6l*v%E):K8HkbvC̩!mbbR4c NF!ea/"/L͓@ə[Izx( |L<u>u^!0;>>ڔ/gG^k4j)Z mS1U2XB!":1W)Ëao]ӠG+ia鸈2\hCerX:g:\1L#A 2'S+SZX)< F )#mh`V#hc Y0]$u\P jlgYbwܳHf 1& gIyIT~ by @"zOX4JrTb90]W{ G3KX榕` PR2erM^%4$ʈ%:Doo-~+kxAÿ施$њ-*7q+K7 r'>$P=_< H:8o+EX4 %S TtiݽD"I k$ZuE(}YՔ:q_ݫW{4 62WW)wmV3 F8|2W[wwP[C ƲȲXHij@Pƻvsjƚ`yBGZ 'nF@)mhyLÔj2n5cʣw{3C1%;{i`6JqjJY5!tBR)@s€"1tUHKrz3gX @ /qҋ7ER ҎR kۣ EJIɬbpkj6WDkSgK-/koAEK]wK-RÅi;ByJ$`fIk]GC (W -pTL'iQ3C;ϢL9KNf J˶M4YJ˄0XD; 5̘_ŲXiq^@-qE hçT < u .S2#wVJDZjVc솳XOƒ`}knd 0R,$hC$|3KX,Hca!S FSn 9QkUf>8hܤ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)0ʷG]촔:x+Ej0_z)1>8H uҨoi< @NC9n:7؟'QSZO4?z9v۟?&r 'sg' G n^0؋y]k[z!?[-qE3KA3 q#'ƪ0{v1>$a{@*!]'ikVXك@^'!Խsx/a%tz򦙗کvŦY }Tm|Μt]lNqx*k,LǷNŶ˟ ǟD]= +6{Z18VtmL{`q/;'q( ;?V%,f/i10D DZ9ֹ~8SîZk$]${Y|0 '"NTS'l;a{j1+<_yRJ#Ypu4 $ $Ҹ5O-py??`ĭ&7bqRH 'WN4MъYB7 7V𘊎^8Md7ծ뉨fb|"WOpx]4(&n!i8jrfuDBBjKf2UGxnbEq&溥Ц&Nq.*pMeP? ٘'lDs\7IX ͣ^dLHЌO(OMKgnZ"2G0$B0MF&;g'Yˉ_|3oy\O6[G߿wnw~?/uˆ9xU! _Xzh:$3]܈ A<:!W;,`|^;qG%aG;kbO=ĶgKV%0v!xkf6Խ8qfp~nVw-uoz[v Eߟ3:1ՠ;I-'<ع{7Ϯ~Zs{((_zA;?1O{m`O{(v6^"(`Z0w@~ţM)RZweӾ~i`%LkӋZ,]b߯%OB ҥkYyB#[4EڤLR\i/nT&+ veJ.(H8RF9^aBIAg̈X l$ >(-i|w:aU j⃢f.y2qsyon".x+0t&8LSţNЍlĜ̾1!s+ǹ*aN`2fMgErF]%¥=HItP=X0HAlMl~X^wvXf޴P3PѲ!HGD72s>PX==K} ͤOd.BkN2uY~vk!ߺ}o_|o]8M} uYZ&-VHzԍlP*xxuhdkTw?ov?ng1(un\pc|0]b$snmtt`>~#+ؓ${[3JkV^\$*eHaA3\ ~TƺZ3/<+$l'v UYyDfFF'*«r)$Lm,'bV2jأEpz\I0Dėla.6ʬ{96$u#b)//^pA`+kQ*u:J+vc<QY#iW ( ސw߿=dM7[/A:l#8Ż @-z #DP"]taI Jh=ιz[xK} & 'J%Ѽ??@ rP`mQTQՐe XXT"%Y5+NH_Pḁs`iw ;C5RCe4ek@Vn U(B x8pzxt#ʠ ®լQ( R*`Ltw`Q4PYQwJ;%q ;BTX ʥiLehQ~A=Rh)£34T 3Xhe)[]^|MX qȦ5WCeu004wj*ߡTC8 II lpiA`_T4DCc9?#c,8㪴<VQ X=NDZ/#bϞAATͫ~ aSc*2<4m_}Wq`sZwMUQbVr@9S %m<LKP0SM+H~M-If 5psC=$d+պ&ݎ.iAE ΁im__b"hY]rfz-Z$!.1Z +EùHU.XpςZKYcoc$.Qzf`=W]wbLy 3D#'MՒW%ՑZ {q_F!8C\FUzy!md4X 7NJ#̎[ G)܆"wzaWlDFx'ڊ&;([A,qOGz-='Ux5ys(GEcjZ9 e/*1<j9igha rvX_s(;@4ƀϡ:`<xM2GݦD !΁_whz؜frVnɱL`1ւ{G˺uz:Tm9MMV5XQ8shj;9KyZ9 dl|Ƚk1)4d6z83ϵ3`/3݋nj+V/-ԟiEa,x}I^=N$rA9y4$9l.6{sXTM齐Dp:EgixZ}@n%ډ%8`ӎ5?~9I\͊P?iY*E(70gtUn!Tp%x5ruN碪y5v#*0,R03`W6Lr5W5}ȾHVV]VIT(dHtdb3kAAƊmJe독 2j2YoEKx~\wq)XqҦiDm̢-%G,E }ȉR_8*Je+a]iBOȬ-U7 gN_yiN }j>7ʺgu"j0p܅}t`F0P"d75zCQn",0EZék5z\4$E\|eSD G)Hu݃ `BVnj}f h,9+ }U,E/vNw_ }vJG])*u_寲BkSHGBj)sYgB N LQڤ׾Ǔ*?T/1J}ut*aaPUCeYn/cqE[ (ftΧMi5!Si3&ND4LI p&?'Q=mPR0)pАAI9o1;I|6l$7I[*Q䪸S*\#谱32ʢ._haޔ~f/0,nջiҦ 7|3UٳbT3R6GCgFwC}~  7"}>AozI]#&)51PCm.-Ue&zz.Ja|IiMtuU)"ݨ]mOVsN:mAΛ'yw@ 5 ƺᨇTɭ?|Ce ]Y5#3 ,]fQ1\}~@'grȷ|xPl.@|DbY!싔W V2MTmlQݦEq "o/ez]#{h[Ǩ  .kZI+8\ݪ<(D`^]pi { ddƳi9mƨďf¿-FF2W}ȎmIcuPhܯLcosu)CN|ocG'P\"HI{AjܗP\f`,~VQ71ޠ B$Oo`V|m6#J%]mZ+)jظM4\fTtkgtwWaz8|kt4"pw{poO_e$:r ŗ &ud=Sb2og.Vj!tmXYVLɶH[rpq8 >'.>(WW`lLZH ݭvgU88if=%Lo'pc F whNXo2]z.V]苨_棊keZoZdO(Gxl #/5B~eLypBpIp h%}q|96xїLnDo vNe*;r@EvGF~W je*fNֆTɄ Qqf)wblnݓʿWgjjTd76c{gFO ˮ}\}vG^NёI#b[ģwόe. aswvppz˗B: W TL4M_쥮?hnm~22-f/^%\9ۿf[l^gUڮLo$P*>c4[ލ%]5ݟBV^f=a|ԫ$z0Ӯ9~ 墝%u{񟆆wNǬm߳h܅r. }z2`X[֕ښVU>kJlU]36a0MD?`q[s?7JXCp&??pc.v6J&)ֽt="hϦ藦jc؟mZlDkBm0.1 7;$l"ތڈِo`B \fD+DŽ,vĦ614DmtAQA%lQ 5:l6?!-^Aݽ&9Fk~X?"T:dQzHԇx@IB',? @`,w>^8o! OwLS`=藌vkb2gVQhs0]QGwqTZa,L[& ><PDtVL7ju` 2[7?b!tܝ iȠ]Ih)ߺ4#0:/3T*yZj`;強BC}Y6VסtUԵCe gΨ=bg/;q++J \q՞Ɇ,7_0Ywbqnaar SLӁBqCJcu>>W<[|܂W֓N}4]+$( g3 ?*[ݫVm_Ng >5/N?#{֠?j] >^"Y^ ?gg+< *U6 - ZP5dle7SFVO v hCvʸ6J M0 e8b7_uiԃp&hWrX/4BK|ـ}N/:t Єfwx4dSMbVM]l@/(^hg{\ 2n)]q[) 鎮R@DVl~ȩ"ط0f4v#?s1n:đsp|p7af[C^K{,3 G!FόжWܼ&ĘApP$l}1d*ų )^Z܇Ânidŗ P;r1;Ѵ 8 *(n#6|QrW 3oyr`Yqzs`Ðv*2)YT3*E@Yz& Ep_Ef3j)k c0e@u}emX#aWݶqs];!e% "Glgsmg{ ڟjlINo.Ҥ%59xQ :[ ̌MP$ m}>sɰbaV<0, r>]gְ1]Ӌ]WT6Z\i%ɯGټ˭sb/QrcS<[mzy"ȴnumh ](\Uhȡ"#'H{L@Y%BZe>Ҡ%e;*)F#xHYUeF$9@\Ɂm$0k0ӑiuGycdT̑r F>2@L҃ikBv'RtPvL݃M=8`,ŨA.>@P;i^9m-hwwΣe䔖e4& .0̜|w̽^٠%Jژ|d Db~.{}X'?(U ;d-L sl?oW_ZHW{[YI%˧@Y,+;`ԩnn\EnWJ@exXh :d/ :#?JGNNxQEz5H"Jm_m./Zl| )Od oq$鳱߅9ZN__DD HOuَRZVܸPḤ7WYf9>UE/v#:\iZf#{ 1۸xpU%v]X 8hEr!@vŌ$,'3RBlDl>6^3A|mFڦM~)Urdɔ meNGp,)'l-GWZ^ҁTʊn.^Q@vR(- VkZ-ibIUQ^V6FSŨl8/z=qX1pjJ}ݾ.q_fś6$`W,^eګm6>kdnF gɲ2UO&3UcA}ӅqІ! Ͽd_:S7AڠXt[KO׻Dm#/W&PXCj2swQ1gӧ5w$m~Acs <Ѳ3dflPjkW O5eyTWXۦ\ czDu1zLG]jd; X瘑<ܦf<tTp] (Y~K}tTB'i'WFCl̡#o064pjNH1D3*ho*Ed4*lצL QjIʊpZ[ȴN[S1kj8`OLd!FM54qZ)h-YH) PӲzW2 Z'ۢy9I5>C 8vN\<-U<;6v߄'!7 qL"Z@ f\nJU#b(iY҂wMڤb)d|{,aൾq=zT5[L?'^U+6\ux4FbݗTJ)F%GPf\CW*q8P7б]2iij=O@,Gn/R2\CN̒yW-꬛L']ZDmOu2iWttenF6-09_Lyb]!f́2a3F=Y$UKkQ#[.8v{75{SOqNٞN{3jiy#j7h0a9;åDF]3rVqD^+O|Ȅ0Q*sҼk~y&юEhjn#A/ a& j6C^%Ԋ^G@ԧ; E.E,&Avދ.ل—Oy;)CޓEfm'SFm-]g߉ 6/Щ=M+ZR:!}Xe<+}VFJt,u2 /kOsuSkd7/}$EćGSxl+l-ՠ"U)MzqeJG6:TWWpl"sX+- jawb5(qkт:omoP(+rLULA``ņˬ+(Sկ(VR޻4H! eEvm"O[{VM M[<~l¤Z*c@_:rnFWpdu^[{=g3kpa-4{vh"6^!F;v 귓pΛs&=>ݧ Aw朢ͭ՞VvJK /VXLʇ |غ좺ݭs`=1 \R}^D?{=֪ʅ^T$p|71Oeٳ|&ݻ5^CIr~x;6y;LٓѫG'E_$w_2_Vn݁)X/ן5&:I%6~fys{ KLcx{>lXa!ǷCԩQU/OW"bsT ?<:7NXdtZOQa%'$$cm\AI5֞s_uNo9ON,BV(cPGIY,oP: ꎧ~{څ'^m~O^pf%^#i0&\VjϹ9ڍ' }z=x{|ti08$1ў`dMk3R,AZH;I!`vÅCZI=*%b[mvop[̬oSWF1ų-;|fWYuZ ip.+ ȜU|s 8=jR%9ŴZ=jbjzHݽYh%sj!0Rj@ma-;^Z{Rwn;έPjQ2:j DBFbVpAR!Im*UAF l$qҥ<40 G{iVgɾ DޅC)\Ԍe 3Ja< 6J`4vj$0-jd\A ױNc<RNx簬”΋𤃑'Vׁuֱn;KPpn~Ӣ_8~M3ctwQUff܄<7^W;>Zްjhc/uE-9@\@?.r{~OwGr*c/Ϋ tɣOMF(5ٸ*]lܾDxJFN ݨX ls9@ - Ii@RR]ˆ̮6xu _xwZ CR!] ZyO$gʼnziIX˘+QY](97u21Q]fg8hWϠO[bO1}CL* 8|!k<Ԝ^] kGО'ݱe~P*]T.FJeH"Q%uzkO 7@ir9#!ۂj>p4{)SJ~$E@am'.HKLwyKϙGрm|C_hLb;(LCGt2wOqe*X[['R N2*濆J[]w">>Ս9n ֺUfu #+:vDlćz[iJ* DT"Z"$&zkuYum[83SxWP+T9댖-&\!б &Ƹiq'U"t#=-nqXH?ڝqs.}dy?aUgvՑBAYrJOZ.>ݥsfhe/yJNq!4Jz΄q7܌  ^Uu2쀘CN}OZfU}D`Y_ڻ/(PVn\I_kӃLI\ %Wl"7PS~je$ CrHYx]E2]K~4|(Bͷ]$w N3%s]eaUɢVy)fjڏ̂'Fb-(O ,UqNIO@<[l[uA'}B3F"'lF;CC3[a;M/G~}z'aFՂre8N،V %*iib>ar)3EƒD{rp#x* DKyTlQ )tb:$VY:inƵ&lF| gNdfJZ6k]/h[<f%ہ>TpowT٨嗍Yʾz>14l9֒N'mTt+(o(*;PsUh%TM'mߒ"XBg 6xGh? C[tʽ;i D}eFfWWS1#ZiEvZ[iАwi3Y`sǏDfM\+k[X:ԁ7fǗn#3CRl`Bqh$o`.*;N :`{avV L@Ouu;)7A|9^ֽvs42#?D>fgX3e9!p"XIVmmӵ8Y"[o `z×-HPS3&+|j?hsuB=\g[cim;Op '9dN+n9uNUa6 wO# R -0$T 9>k~Ř]hg`N[/avIfJp2YK [:L7߿x}7NA%crppUصjn]g[g; 8\"'1_4@Nwxܯ| M9Xlӎ8:!8(3(?~ )l ц0tLm"[_C!|M@7K(ڋK>̥ڡ%" ~pY9FߓA8Ve#d,˲`/h;[$ZӾ[y9 #AW[:i0%!|J`8tȧ34xM/xRz)xI^-bUQ콥M)[6vѣ2f ֵ@%vOT7Gّ Ff 1wJW7G<~ٍ̏jFqړ@YB=BgQY,w;~)̖SįN㭳C:'Dz QŔPX-AgWaxn=qgs GKmEJFyaRWsTs*] V0Ew*ׂU,:=S៝ : b_~8ĩ+l9\ܥ'#qNTh%#ΩCi}4$ R,v{͝J7$c'>y}^*KhRɍ~q| <:>\*=qc R%p;/xC`zTۜt76^/(hWyB.lgPx{>}RjXuɥsAxI ꪗ?EqǕJ,m1*N /r`3q mݗtIE@Їv|G{Ǧdg6J}PaEqޓ49&(4&@LC}WKܣ/-㣌)(G!Ɛ-"DM3Aad*k ?Zվ_O)=Y_[?Z?3ϙ%`f Yf%`95g_ėt @ in91X.8?_Pނȡ;ͽsu)BC@d*G2y&0KURbKM)01!D2.:DLqy)\[Шoƹ X{1!3N*rUUjՉLq1Sx(t@1n"YԂ&m8KK Ѿ?iG}4/7pMe^ ^9P]F2 @M02_h#wS413S ~k!qk!#:1VৈYpQñB&Ӳ|2{(@J]P͐")3 L0Y?0W+2 g^XRpCP?5_BąIfNj+ӑ-KG#B(˦JR!z|@51s?;z=?߅H4U삇FN#8RXo60򟃔/DadT$x/Vf^' K]ͥAl# a2YDNda 0tp]&9_o68VKet.s&4H'#\(ݻ;GkXRTA"4ixp7l:`8Zi.'[WK1 [maWVns?U{OAzLZ!}`6?(X隞M+IǪ:"{*,+ H(@%4.,k-#E_[d|d:RXP'=۬H7=t`8&@\-5٨9&o2`IcBC_ n#`EA٫1×'T #O';t% t,dXR‡TYѴZZEqy]).~mEtᐷ&%FBmY(e9),DtԽry$+ ln^Еׅk4ƃa'\ X\fn@12kWФZ>d.R }-W7s"Mg(^:Q<=6 lkNX_d\=\g^3ߙw;y{&r~i:xRdyq[pH=EdxMI'#3^_n3Aݏ҆QF#gtPu*FPC}E5J %Ih(5|;DZ>'"X"uQmKOFcX}S֛OwQ?]\]D])&a}g`^jTHKƇU[_7t3\ů25̲B# g}¨LшPFI;j.OPYۺjKniWM!z\Mq]Bu? vb#'DozfAG0;g`^p1b[?"d/_-u2 _$/; 9iŨKP[~H(м ]`ZUP'58~6"T.iu+4$ /lUBrU $0G\GQE5SGN^-JO hXAΠWDa:Hh{ m~2XxC:z^r*yו~hR*Vr~ӝ\E*팄 dؕFCDGjFECl D$ʡK}ޞ'KOe;doVr?w\_EK0DbrsW,>+3IqFoQDB]wh E9sTD 8YCKNt+n*_K]н3oM~?9\}KGզ,KE5 K~@썗*/Oi)nvSki[qB`c9T!P/n\bG{9Da` I+.ٵ׭\';[ GsPȴ-Q)`W\ ],Sv SD^_lZ}n]ha[G3TEFYCe|tO "y?KQ5(Y=T$2~B83^nHN)֔HL]9yUx%s;h}gׅ}Vˍ>_ژ)1CDVʸ_myyL=i Jmjܺ~DKh~6heE)ν̟G(_ztO.[&+'8.R׍k+zt;Շg H)ee@ "`UGk3[KKyLnؗ~{Ky),Z={{W3yy&/噼<$/#C l*-,h=N{vH#qkCsU?9Jv#*}hG', 5CRzG+ hi-UĕEv>"F,' {\yKLs rmIĻryʨn; V E#Jse-4~