#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=6a626ca05fbbd2f2d392cc982d08a14e # 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 ;WHWtM¼1L==!ֲd[UݒZl !yw?>ufMqOon;~;{7?56www'=0~ ?w_UkGҪFcc{kt/.3?"麌,!n^F}>t(p8YސC<9\9ܱLu1#2ȱif<:Qćl7xBӦ |ʽȊ7mÇM)iàSPIrf#pϚrlAt(!A8ܱ+{Ch(3ԏ8i {BݢHH)c(d0A Phk Aoi> bڅ!*I C'݁_^ } <0Mlu`5vyA{9Kk"+ \kHUJ+j'D4!KЪmtZDV q3ܨh[~̚:"/ b]T2Bx;2g:u[7rewoi1eOk^6Z}|`rnw y֌HuӟEnMдC!A1K$gkF"VࡖFO4J_A}ȵC3N0mޏ{EKfr̀ `+$w/07J7[ZunQ۪VcϽйUSxMa?#GxHo mLݐ@f.a 4*[[+LԅARcEm!\f8,ERْMW@kl2b0Gd=HF!GxE(%YaT2U"xA%c [@ |w9 7   L娚úaYU|W[؆c7/:;oXoO`]t?le@yJ*RI" ^]Wڈk7e>{l grBc٨8(tlo9,rI@٨ @e M.KE80+(?Kd*D:DH(aRL4 Zh`oEfx*([n_[+$_k%b2”'ĞCxD.f~Xಥ(+zYG'hZI薎ӻ:F@ˁ6bdr2sH{|g)۱aЛ8[v|x}mb'EhR]L ]ka4Q^ +4i.4M|0$mnT2F`^ey%Q*])d5 HcgGE8ǀPt;Sp1ĬQA9p |顒FY(\l(d:Ċ,!kd$mLLȗr9e0)1\ŁrWpc;<k˟qMhSlFu )5:ȺU!ZWxM۲i@V6?vv?~ߺc{.y.Qr8>W]|sҙcLp{Tq(0ƫ4xlrv x 2C'"܇>q$d wFP^ ]J6GI:|̐P=5 S)8aRWc"&a k9K [I$pxQɏl,„剠=Mcd $;,xN3{ b- }[sy?fh[^>ϕtR K>Ewa$ŹK,RIiׯuv N6rDh܂9"3e) 9C[A1 Q}f<9x.]HƭDFC!<&B&+~6hS2|U,oNIq])b4Tͮ$lVvOK^\cKe-(>Ls9ϊcgl"O(\YD%n=XgR{iFRX|2ejq}qjA`yT/o.,&ƷDqW*_$:KEN i7qz0dYQqTuqQVOX`y\EU}|>[c۫b׻E5yY6DG̻ =w̕rT(eY[TO>Q4Or4p53.LȊEFK#rlaG|ZYIb'x#Xqؽ $.R}* !؟@aO ?!akXwc(;zسkX>Z3SĈݒ$KW!9]Ǔ[icP$%pD7̎CX1K,?j枂`# RpV0!e6-Q\=Kyȿb }=~[Q@HW[Z^YZK L 5H CkL?J-(ñi!TO%1XejMo@(d`WX5cF&T:-Z7S8Ji-Ygp3UrS~pBˊ8[O+J<61X\GjA>64[i2Xp7 ;lEf\jZj+St0O)-{,5;B:Z R,hePŠDkkK;Xx*@9K}LbecC^xH1Z qE[Z`|[2%sr1;"W Ņi9mF%Ug iX]-{hE`bLN}|р)Y!ķE'\5ɥ<7;!=RR)Dϣ>~&Q:%e+ɴ%I=ḯ!MoL=UHEpbNRMxSE"t ΡpYUՠ3+G` ?Hɀ|\85vr|ncm=C,slćsT/H!+YJD_VXҗ lFTԐ"2m R.oAoB%K0&A )-M@Eޙv9'i?3'JեHH±eY0U6K$6mꡡHhWdAVNGcz"zpG\AS)>*OKȞp MBJX8.cF}Ljl>F?4`{zQ҃ ?ZRpЉiUǓz`2`zgQ ^pl"ӿC 4 5G>E@%B3ġ~,2ꝱvַuCfa~>Yp ]T4(`*C;jU0o؃2h1B7 a /#@-71J) b\Jr4jo = bĬTPu} +m](Qd oS:7kg獟gsd:aFC 2tuqxaacxTn:86b0ţukW>"g&?K ]7)$O!DT+9yN-ri8nx[vp9n H=;kF%G^ RmjQ}yQ^w(->M?Y&e@z>VQPWq`(,2|Uk 60f><]\+tC?xt3\`(Up9aedM T-FQRZ 9,dⷝ_Jh͙"A2V#ks +vsR>h/ c7Cusc|s{=sm|?ʼn[$Uc Y4E<#2yzܪeQ#P4b$+y) O׿7x)nE r$85Vk Wbj22,q___G[)Lz[B+g VSr9n{GW!Bte"]GL?Z>'UNh YG4e+h_U㉣"WE}hN`!qd|KJk9\pW+r \=$e,wZC0y;}R`1VVVٖ$[6;cb[ ڄ/VTCASZi6e-mل[ꙙs$ 7izhAްzO;6ßQmi&߇ہ[A?^ƱZUM`)FΉ-ʐmloM/y@Mvj",G;\ Q=]4Fb;}U֚+FR쐢n{zd^2:AVh }uZTL=yhGPGNywwzGhBm;^pҺdy׉=(n5q #([]>? K-%d┓y-@Z{xŎ3+D=R XN$ &e]XyL17k&*vFUzC( Ua`f8913='HPm*?<7z%N Z"ΞC(1T7϶jZޡI25sUWc9vS%wCmB\P=<Ǒ>PaŇ Pܬ2uO1LS.#֓Kɡ8D d?['ǙF\R4%*@uV_T8kR. U-bgϠ> Kr֎h$'-g2Zy!PV`|-%i)#5=hUi m@{Z'Rjdnb@27B"[|:̯f"hYcD)b<*SrFb i  ߒ }tI7FoXe*=IWa}E~y2睖<"%kD2yjsyxDd`Ib i\(jX+ Nhv^I[ ,#bőep Y=xtJM**b%ÀB#F<=kP$歌}s}E= |aF?e㽘(L%ZvXTRZpc1W5IA<"|i$GS} + 8buT%c5eWoxذ5^-54-~N~@I=?h$wR$.h\y&i$Z+: !B[ɰݢw/ w)KN|:Ug$u P:*Y Q1%c F+1aל`uRuṾ zn荿zbQ3T&I \^QĮ;!jز4]N_DT⬶wSx~V{" h+EL!INߜJIHZ ò`gKA="S))V;Sqy 6ZPG>uƈދ64el$kEɸj1c%}w彴w,VY޲r3{I,߉`l١[Gfc^]^äVG 0Ƥ(_i? ^0o!0uK-g.ae"r,28@KQB^nʪHO3iQKM'>͎ %ޫxɑm:PZRb̒O``iᖉFZ_=뙻Lj6Hgw묤jas%4.53T{vgdY1Ƅ!JѼNH;gJZx܏XiMP$6|oE.CGb4|c4,M/yP ֻ~J:ef86ږ*YRY.uWgE9Е} /S4Už,wȢP ?Laf`PCDP2߃K-LR34?1{SWb[2C@{,okk Pf!4d@owRR00\qI*ݩh{8u\q%!Ӿ3v=G]=PR:i4j[R)jvSʔco5hFx=_^0Bbr&}a@ߦ lA! h`q2<3 z@RTegh30ԜM4Kb H(2wcJ>?D8 ^(FVzJq0 %ΦK n*=LieHB pf,#w҉$m1_nwPcy"s4Jծt8uDGpe @5_W"^g ȹrݜ*&ZC#?xGw`e2s38@A:< ǩEjbSq9ۗ0EP#cl<]z(׬h6,~DVCloGB@١-|+oe+7UtzrBY.&vw܆*Aj3V |LXő(%t&@]&V3݄m6Ŷ7{{fOK NMm#B1/"<~І` c}RHُc4dlt1Z` )$ ͦiS4tG -VVI#+)>Ok;,{u /f߬9)73.RR_x>O5"NZ3&Z-3ThXJ+!QE!2fqbecPGIi)9J,Dm+8x8?=w_ |+G{Js8 5 F!u X~h(pzm1{FpL;: vO/ i Ɉ84'50e_|{m#rʾHk= ۛN\žh/>Z%a~\nDTW.]XU74~m猱e^H2~oý PG<~󂾿~.^ҏ=qtwO>IFOo5ɱ&7ldvb.Ӿ+rw\iW)斿aG.\qݨ .Ta0wzoܵߍPu]A5N%tQ:wʻݻ.׷f Yl,+zw߯aP-RQtLb!XEօJ~Y Zs>ibHKvIZE eّz?>P@T*}Q'&]^3-57)g"k%޲td I ٹ\qVwRX4u#TdaT%ۇR3tN[ZffCbRZ1l߅a& T: x27rI{6sdߨG h$}$#=׾KB׊zqMQ{@a~] lϜ况\p, jf+ܼ_`}I!ѯ TD#I@{u 8u"~f2Y%.Ni~ɯsS~vd['ן[/^>(˽A Naf4IxST/#\Y|>BI#[S?v?'sWtoAFizlK4f&2vq}k&zC%!J_`ֺ5@ n}Son?kN?}`a~ T:pQI)^Ջ.7V DLw VoGW2@{a{R|17]jqo V%Bo]% '.߄bs>s\Pϵs\?ϵs߬=u ]=LoԻچd\Bj롈Z7U'& bY1xSxS͒ɪI7Δ4ox$}=VV@eMQJ;ipamw~C$=kRk;"zP?_7j^Qm R!ݔYN/F.+ۣ{ae^\[BYrUWs4(ֽ5굆ù܆U J(rֻӗi Cx$m2ǵs2{pz-`wc iPuRv *6^!8ݽ8=6v<8ѳ\*'?jhמP  $ ޠt58~Y??7E5t^>hכmoDSoWkGM: p)gƹ3 !wȓhdh44n̈"tRKKz4muB8Z[9& lFiD0ln( U0,eQ; )G0eϤՅ1"2Cx-> K#dDBH.ZCX]ߕ͜WKՕJY!흟NtO*+GD7= (%@`R9 $ k{ , ŠX;nb&qn@ /en&I=J| OZ-oTe<~ho)sM\05sMߥ wP h=&px{AQxPzW04g8 :lEi(- m;,\+'a`7y\\q$2TZTL#^.z-N).OvN]_6Vlj8X* 0/{4qCYeR`y 1ȘeFf4NnYqGP쬈iҩ-YP( I6y#KHBE݇VYL@J@)2|46bjy)d gޞ<<`&D>a+N=h P8Cty(å(}J.ѻZ.]&ʄu (U]{@d[ۓnZ;s&cs#4SO9]n:6F xzz*+&e\=g!d"99,u27h0*l(^@J av3,͸MXf{u8x/IԀ׾7SL1W0;^63E,4;t`dGbiF׾\w"bvXcq^$a]kl[}^7\f%QI2"Bl"rZ535ƿڜ)3ҶeHKp'N!ϖ5k٢9ߛCLRSI˴" gi`yZIlVO&C6CI%$.qP7dlĐ^ynĆ ;8D"3/@\bRVY&EQ4bncԶ+BGfƦ@.tX;P*u1 L .x7P$km% qL'ڌF8 qӔY-Z_هVvS6D䔬9섭K1RJvf` g3,~'B[m8:ŖGޓΡ=4<3뎕 ?Ѽ7*kqO] W,L+ "&c8V jn-->?;>{S6z>on7s/i{346Ίz_Բ{  dj ﳚkG]ғ7{~?WA6dvg{WQ>.l kؓZĢbF{' t4q?'^q&O06-$R+=;n3–(.Nx@`UV~jX3X 1SsMJQ)"?zUXpP2z.ofc8-YG,2(\}0TJm>,l¤=1OKaI K]3=O$jBo2՝A+}TRSɷG[9d̄Tko:ؗ=lG[ဒb=,-kEI\[6@y0]VX>81S +?S~6$uoԺz-!lOWi*BK2nHr<<YQ4]dyd{?==2!R4V=u9${;HD.;g;5Fs#Ud|i}`Qpė )IDF<,iC#2C*0\َZe6TD#G&Tn)1 w4B&, q',ώsTs]/^]P(*iyrW뤽WM&g0g èֽK{DsptHKnNM hrVz'X$RYrozI?H'}PZ/få"G&E毉CqL}Db*:0:Jl;83荀y$F4Mf3cBZe7~(͵p&QwhƦ)&4,3_ Kna-LB)Vxd*DZӌmJb@%[[Pgo~b[-P8+z Y1ߜ*YpnH"~Vx8JFĚZm%I+߬x`,Am%}+{~ ЦP8#٪Q@n(f.!FmNQpVI&\a1pQ;!:[yw,O$/_٫q\U.yv>z̍f[V `5ˈP`3Edא@7nH; qӌ}ԗ0ň`3~{OQ.'ARxs\ : P*`! tҿJѠsV%hĺ63u,Xɰ!0;=8+ӻ~;0Jjz,K^Ql9TN]bl|/4cWK;%Z!ꨏ,=U`Tt瞠MU([@+ ’V_{@k"%YUg|=h摊IpI\x>zЪեZ|:|." kpm/:QV Ho RBÒm%.:{Ƥljs(n YpxC h)ߩ oErS۰g "9jDh٘h"+{'Gn"YIvw DAbq9Kke8pzŹ@j%3VF<>?WJyn5>sn?s'sxb.v>kGpcඝO53m߳uհqS{gýzcTC\>Z `ZTJ|2f~vAq ɡ"jy8⢹ú9ς3,Tې8 M !99+EPNz5>@l2~ g*OU̵.FN)o&_!rz? _Ԏ_5޸m/:TX0=`z(D ATݭ ؁*0A×{%+&3`:% wlN(=@-~]'$o0tRe3(c&'-d34rHqPᆒQ?zpuI(UP Јϗ9 CiP O^^'ȽZ7qDI؝C@+\$֫TsX0@ˠ3cvg4铅&!"B\R2j.dL{w~1%\(+K1y 8zV^x+ +k>(+ V' 6%d< BwutV{sǠe*i @O|aÖ( ր y &K2,Tg+(z>ϭ!–pK%3$tSdՁ4c -'aЃ Df^.t2K@sជE伹bǃz$cYnZj|BFMH! PeGg*[!$j^t jX-DTO4XGe8^RkB. >Dl7=j7Ba ~ ǺyR30`&fzT~\>)_>i.hfic6[WˍzaMT?\U/ן?~`D{iW?\H ܎ElW@j'&h(@uxz6`=\[6e;/7xŎք ]?-}Ƞޠ u_jd5q^3@Bnl]0ik8#V dں{zqt5ܭ2?N2%m&&oŭ )d8Z0&Dii74.h !&JN꠭ 'f|(`)%} 4QJ|cI<e8iԨ T>Jt K7  ZTxkң.XVg@^ #dp`_5`rR ؠQyp k $;ШhBњ apmh$#0 !~\P&S.y`FZ9pɬ L#*3)%?rmRI?f۳d PX ڡ6@!G,xfc[NH/SONSYj>de% 1>S9lk5x۸+,y%ct;b53E-(G$%0U(Jg>87^8 n~!+D2Qzݼ΋®/3ϲ9;XO -&nkɱA5!Y L+xIA].`}g')a׭:Cb6j} m(&+%b{"bnٰ nG]0{LAZqs.2 ,) M3"9\*_G ԣJ;^Ģzû5R5D Wy]G-%p?J,w4ΕX}  D";X[JvHx39X1H“,sw4ݿ@Uv)<.@)0TIn#RHǁl)jQ];b* sD)kq]d]%NMڃ!%X9  >(7)|FBHg2D._}$ vHCӞ84t g9ڑ^=q2j Ub1B!Qⷿ}zy(| }0Tx ӘN˝#tO]D( ;NW!j@ s$&[ҰG 1 >&c`H= EpYgz9hqw[i4m3 |0c׿<Y$ZbcݵW1GTQB1YSesƀEX( QkH0&}$PFߩ F1EEanf9OgX).byr诇?}e5kc`2[uyJ<ߝWīKWkf=$>Rj9{*Ȣs9ޑT IӢSg,~R, Om3$ܶ1(fCѓ_26oba\?5Wݨ:m}Q6^x:A!GvU)2hQmպXm>i;8Uz7{}>H#=A^h5OBتq >^7 2Ll0DuCw83˵?Q+1nMƶ)l#QvT{k+~^W}Sʰy4,8ӆ=W1͞@yzW*߀6YyȾ=:%hFۘiߍs\;s\;sֿDMߺ;dEAKR#wúDoGӛT&JjEFD*nߎ-s׳. >v+gIA{`OhU+{DzW%S>vJ(^  k/1u_H=ذ tCn[)vW%ߌ 2m*hJ7T5#Bcb%#Fq8RdZseA\y BʰNxʺ -*v'g8 qC!`%]db&2TDىf[N,p 9]dlf;oB4!57 $K.\o*_F62aQ3Eu|o[p!LŠFN ɨ!CL K\  159#!36LMdN+xsOЖY}>!11v|,fh&$ 癔5.j"1f$c-"{[5۝p()e`\'߅^2W:ѩp .0ه]'sn( .(9 b-Irs6xA=>8[yeO8)u%jto .r}&M84YDy[<'fI)LnvEфnBI|SQD"k8x⢁o!ғ&]L>c90$Mj=E-fOuGgPqTD>eyU\]|(#z"?B8-dw'`~.~pVo?7|=|:0xE>s%2|G -tP+3d%Mg<\淦$}@2EO2n_{WL ׏W!Ȣ!ŘEG\^QŠT@biJgxxP'UV 0ʲA:a<`ZX }'pP `pTW8rppx ѼVƦe\0J%P!7pH4}Fkj?[:H L7/4uwicS O[ n~3񀁤zӇ*,.MȫFQlLTN OIQׄ%9~ 2>c-P\\Gw|0𰄭(T*CRIb DE6Vp&ug[d_X\Dahθ /xY|%Н" =]8Ap|_&8=NtJ{to(`tؕ$#/G a̟<05)(h #a;0hX'3{@a$Z,7uΘʴ<.@H`2K-%d, D2ߺWyALds2<'30Ks1pNpgI07MBz(ev> (NyS9ɥyƨbK8Pهl2?k1C.Dy AThAh!m͠@+B75ŵd.Cø] @:Puu):Assȍ0hVXJ\ė]yƵ#-|Mpt2K̸L&bIL*]y_Nl_L)*oݟL_?͜>w)s(@OWatc2.G׋zq4.,)tTDGe{k}qy5>{ggRl@bkg/jq]i0\by Xr`8^#hKw8Yu?lTk|Meo1M~1ۂ.yUVjԀݦҁ938-~_7@cAOOut[-~gr[ Nnq>gp[Lnǿm3-~wgrn[Lmŵm3y-~68 |FA4/|S^(J]i%8g  Tǵopɏ^lUT15b!`p(H Znt!"Y߭?LZ`-8EPc,9|uJ*ʭKm.uL/?^ @p BsORj3tsMaB+:*]N:Z /dQf,i0 VpNj#_XU]ҍ$HʷD>#~#*W|-=zUU5Gy$IF?ktb9@ǍsbxoX@X/ ZXAq1s/e!{9X0`dxu)px]F2o3`-e=p ,᝷on?ȫr%~"Ohi+c hFf `AДPW3 i>ȵI_gsa?9 n{ }S=)aa:GIt o.Tw%@@:R1$+DE.c)))ꍣb toLfպ~ CT/8Ա.Teh|I3pd7Qط*S:CC iX#hcpv z#51B[ %s"AP#j^銏<MfB.~@W[ v|@@噩rh5A[y !B6%=gmMF~y|*GrLSȷ|zCg(!qk &սJ y/Z*#Q"zLSx3OZ%5>bUfi_ڧgk0