#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=209c8904d6bfff7d40d76576126ac0e7 # 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 U[`() |9ʀ[,)%"qG ptKy~MHgR/u*w'6D2P H=`F$rJzyW>zm JV"MV@fS)c8 (CEōJ3|x A}ak_gK!7-}Oꎹӂ9mkjy?%-KMf4`|^)`]u]БH^z<DZ`N o?bÉt7>92H8O Q$cn&IhS1|Kuy$2M_qHx+9kjB.k~yHF*6B "1Vڜ*Aw]SK˄\@r1ô.4zyW,3lH|~&ؖ Xty S :ۦ4qrMWԡ4LOIfD^6N0欐/X  ER99&rֈ"%67 q)Azf,2irc/)w&D 0OWHDs%.0=? 1]S\,&h|df ̴LC4 Sj\L[5 {Έ5DnoM ~+k(~ÿ榵/<ۋw8Ǚiqc ȩ&Q|Հ+&0[[Ԭ]ڶO`hϰE,ϰG,& d{H3P;ewl} wl}߻[|vUϰa4߿c$ϳeDϲg<ϳiD߽kNH۷̀yv hgz3_# 70eP(ahn˓Ό$7ś7I5Wk Ph(߆ q|9hJTFEvUzgwP$Ѫ.7{QCwv?r&$P=w.]du:_Ywsۊ2-+CԄ 5f6S…71)VpDJrO@7*Y]IFR: -^rX .uu ;HG>v25[j'Wv쇗'?Oyj Dӹ6sq& H;RORbb`6{~`߾͖/; BHa7n]X\RGmED'FQMC@{kVO0Pgse088yzeſHfn 'Iڼiw/%>Gs`XTe-\b%e긾ҪB Pqmuy.SMVT rQ86)e i_OT 6ӝ4G4k::\~cA<0 CXD1D!%T -%57ωT#tM[Ծa v½^ullmpX'|y;7xBlQpW[ڷnRھ ְߤfݦ]}H1[L>W?7f# F8|2V[wIeie﷓Ā{% BDaو4vkO4)\OF=끭)RRو(ߍIL- İ^6lW/va‡KGP:7Gœ D Hr/ ‹=@^럍ו_‡n_ ,_vh\%\8+ZdLf0[NV "ZӚ[Emi%Z-u-Hu2"chB1BV()t&%]s_/4\50.Xrn F}1RtQ1Do &agTHF}x<74O|/>ZQK/t*I:L6 6g+ .cdcgR 00c.jL jv@ pԑd^G\ceBvT̊8_Zn/ ?'cϜ,?? jW$|3KXnLGz5Í O6M>Ӧ}qǐ퓝Fг91$o^b5%(<{ajlsRh6"DxfF8tWb,Yګk UQ.y+4 OZ1P*E ><&F8@4bQb-㋖zMLDl[KS'>E17VR87]S)c YqjGO AwT )Gђ@ 0f__~QxWQM5k;;;;;;;;;;uO)姊SY-]D2b|rq-} JYCU£!_τHKW+U@HDɀ eKygh40K$t\;Rq*x_Cc~I|/}bՊNK殺VI3@gK7!fcL R f:c97cXǃa;*ߥs{~/W7peD>KTTT>8ijpz3[ݵAX# -'ñ#9=k {!;ZY`q=@3ԱLB{O1+XoIC(6bMl` JK>b55cP%a.BƝm?c8ɍ?y1U-9{U׊EP:HC識s`Q7{;i e ;;T,&w,d~Q`ќh^jk(}y{i||'BNsq*D8 ?$hY-G& p> >ICCk6n.$nh  +"їGF,.1X S ]Tу^7*_hu/XZc%x8Ayp`%͛׵XX=b$|"WKs8QYTi7DVz,!V.HaײBo]hb2"UŧPդ E%' ;ʽNELO~iC-&.hʡ#7k djLbU7RĺkYme=ȭɺmxC)ZXxxa&Mnd)B@W+kkN79M|ؖXx^ Z ĘՋuKL#)4u?/Poī6~o_6(gdYE,~iΌzbb^Ca}C[Q7&$hƇ'=7d-!q#TW!&\ROF=Lqqp8V7~O덣Z8߮꿻꿻~?/u 9x3HbbzN2ºum{0;X OahS{[vX4$vbEƺA[=mcO-Q$-J 1`]׃LŚ9?r{5dx+}+MvoN{v xWqp6m̋%w|:ɿ夞묗q |l}${?hu:wiR|x᪐`h8ȱg= ڞCBиW}MʓTi/xVg볷ǁj?[{!⽲KٛR<5W=kșWFiXXľ_KR¥CצrFh@ I'E5{b.jX"{+tveJ.({P8bJ_aBICgLHo} l$jnkm {~4,@/gN}|U?O1$иJ$G@nIb7QP0_KB<.y h o7݌NkO꿠Kc޾DD\ۯ 3 06$nT/}&)t#)1&;'"$v{8S%,~w LLICHΰ#þ_A7Xd&(uoM ?%-rdL.5 %?ӳԶLHzdYi޻ɖ.\g+iۭ|j]u|uaK' gjX @#m$gCQHTxh?oWv]gWv]gWg~+$Jܘ f-rP_JU*2|2"GW&I+U0HjMߑȻ4Iݠ(*> /o{_F~2f$ ⰛE3ag{Rj󷿸򬬒{g؝6Te7[C$[*@C {4Y8Q'2]0 FH-lօƠ5tO=xֆḏ)`B,% #a,3"vJnWivEnNC8ExqC4pr3!wf @`+M޿ e1z1LW9>9?.09#.iZQÃyΞиU jZU}Qi0;Am" 7td!nTj,RfFNM;Tjh_wa $)i :+,jhh,u|dl%u\6z=jG܉hq1B%>{`TS(hߣEz8a Qra9lkLEgTm XPO*l@ =J('aC͗g| fq)tԐ)Eb7ia!n.Zc|Gwd3lEZ7_|{Oۑ… -E0`닀^L- ZάZEU$%&=tS!Wtzh8J YYk)9klm ^ό8cJ 2+U vFc$Z:R^uW1"\S($ֱBgZߨٙOW>FIp4T>XP~`m$rZw|MmaT05 WA0,N_{'oYy6H6ᾨ pw /sp.ҚvuS:鿕 cnװoR bt[ ߌפ9z]JؘB"N0e\vuWClaթYն0`k Lc.ѭpӉns>ncY {L "S),vڥ%?aqP3>>޵ۇT2 ԙfH 4UK 5NZa,]DZds{5Ww~'5/Rx$ȡfseݣ[Ģ"/ wN$zD>Z#us\nYJh'?pz&]k+A3r]WP?iY*ME(㠷ݠgt nդ.prو rEI d5N3A*!,S".`'1Lu5W"6}ȾUg ]V4TEKD_b3k,Ɗm5e독 2jVoE+x9}L|i}ّVZEcz@YU^ q{pg! v~.#/ Y}̫1*ݗ, uJd=?; }qFN=S7K:u_寲BkSHEBZjN(sYgB M Pƴ7*?V/1ۉ@}E1t˪7s\PU6CeYn/c@qE[ (fΧsmi5!Si;ND40fHrp<'(=OR0hؔElzI]#51Pk.-Se&z.Ja|IiMf{Vjc P*jv=YuN^;-vɦ6;#wTi|fIj}^R*$R5 $ uz6t]`Ռ̼҃2ΫײtEyǨD A 3B8O!Sbܝ/R^[UH6EP-z#QDun}4iwy`n~4J(l=n'tp"wXFF![hå+|7)!=<=[d44[hAے+"U= ; BWdPY TS0'"N7(&TD:Q ?p_ :Bg^ɲSFx)& = YZNڎ+t麶mjB+9Jp1S_}UDIؾ5)N=9{̳vd/-KS=’|@L=4o}[MhXБb^a 'xZ'}lDX2BbX"my0Hq^13iwA O(td?Ka'BӺq v=%n LI'm߳h܅r. }z2`X[֕ښVU>kJlU]36a0[-r?`q[s?J [&??pcĠvJ1&)ֽfDIw/ОM/-?+?wׂ ؈` rc:covFH"6Duc+0E$ :[2t&W KYHѰOQСL%RZ,xϼSB19d'QdÛ~6I_-lr ҂fHnM7θ}pWLHy>`>Ħ>61f,Dm8x8?{{xPAg8?y(%pئ F:`M!eOzvi3A8DDCwIEN/1 p8A;: "hu65q /50/xO] -2@g25CPQgc.T+Ys+V-zp]mD~6`ַ8]U9zyלe*ɩF#F4za/:i'Ѿ1&X< +-鮑IU ނg1nP\&luª{: vn8C.=+ `Ҿ 8чJΊS-ۡN1SAfG1Nz3Ba" k6-[E$wڣCe& Q%OK aVh/f:T8}yrRSx^e'Tr}E :3ِ%k&N,ní46U.ai:PH7nWVpVilG>Ԁ->u˒[Pzҩϟ@ӏo so3s9?3i{!Y'&Ͼ 7m aW]+86: p5\%@'8*`nA+{Ąo/AWí#<6 _6Chv'%c~>3^tV @XtX5)q 6?AIRi2ɞ|(ĬV4BSAـU21Qn#Ѿ!;a^'#nJxUiĜyHbLTދnRP&PP3u·5 ogpTUÁ[܎eWUV&.Ƒ`%Pns~rtfp ^3 JfVݚS;\S]XK;oAee~Y[~bu.j*nf˳8yɁ'Z{`4C.[qms7߽EMMt)vC(A, 4Z9ٙ?ff;AN]ގ'M)qá B_L.~m:L2h=4y.c|rbwi q:VPG|=gAˀ8ݸH,0FfJ%Ө._l= Sج9$Uhmo6b4N:Fgp1fOz8j&=<}Adbt-_^Qhix&g$ke.ԍx#ˁJ ln!m婨U׵=3u@rU! !nC?r.{^!T, ZbXF-Rb$i,tA~L=fTh+KKb,be/Qx>!ۦ"=9R,G*J8N㾂`H/ -m#~-7Hj,G*,"%#APynˈ 薀ؼӱ߰vj8L[֧82C~T3b-7PH35AVR$L[k 8/gGrag:Rm<&'#\.w@E*>]w?:;V3ZXx\g,P`:2sVV<Sn(%J:Md閄VF]6 Q%7wW5mx~*So0N pbځ5"+Iqy2z(e}xbrTL.խ¥PLXR,{ URpsruR'%a]'pP)Y]pW)/]OƚIO@ɮkMeQEou&v%,-$à}6V7guN#@#+b뛨7Htn8=S;?St\{Ў*TJ ,#u4@btpwYǚ+MldZ!7ҳ+T t#^ "9Ođe"}d&CJB2\ LgFBk&˟Yl3"5BZ#Ze ؿ7m%Ĉ #r~]kU:XY|pBEف sQ jY%p#W\=靳Wsl_neme$ŔϖE1 W[%T.Q8s'x-қ->@u3eYeVvͳ{fR٤ TQFxrnUPkesl$L Cf }Yͮ(??~aG/1<|yI#Qa3Zo~(8rxf2肴vri8dJ5hmGCB2:|JNwΩΛ}`)zm wX4&ӏiC{ɮR̙9(`W@XZTmm$r ƱIëҠOxF Of:U4BF=e  N$s6(C޾^|-@]]\'ay<+γT3~Q}@J*68yR>v J1)c3V*PlFEpĴpl,7;{{M6꛺I{ahm,Rsuͥu ~]ёOl(~z`ٯ;x(3 ͳӚ;c 1zB ^yFVٙweR"5td5;_~+Hg_ּV+DhS}.R N=ɺ@hf+zxrkfUislqmSrh+b6^*装|%>I{/Si7WBl̑#o06h,pfNH1D3*o*ѥCdn4viצLiTqGʊCU[N[31kj8`7g`epXd2d}uX#\ zĸj,T D]iYNNe^{fœmѼޤsʚ ;)kuCם*\؝r oBw_|Hg#SmG´۔RՈ:u>DgoU^DXEtY*&ߞE7lOX%"k`r><߿U 1IV W+E~[5{OGr hibu٫ 9i#F)w56HcqJIEv(kE%<:|U\q{U*yv!|Nd[(dI>F"%5玲,|բκ8rң|a M;D\'#x,FwQfd= ŔG׬UNHb&A(6oW52۵?š8UBWgSg:'=鴧=CޜV &72·)3\ .Ne:#g3jH y=kL}T-w̻V{MgB&!? $ Š氐9jxf;]ZJ yT|P4I[R YdœM(-|񔷓= ^djv2c(BR: ``3z pzeH7]~Yw^2DgH`] ~ܙּN?uDJ*?jQQ̑6d [Kp5(`UJ^\ґM3Ujj5ܬVs d˂ZXZ JZ 7wvwOs(9*G'or&ve}0`eVPўiW+[xBu]Y";6-qZ&cυOই-V uoaR-Kaxh_c+O~ܘ{=skha-4{vl![C8U'9֓f꼳;v t1dΏw&oƉ@̴{ȳ NQqUj }W#\k * w^ *o^>l_POs01\R]^D5x#zmT*H\0fomӧ?UQLg'^k"EΑ^\9 N֊ht7~s$-4㋤ck[74D_Ə7l>1on/a%};Z} /t+?v3j|u 0ls%!PK ιj:${Pn^hJmUR?%eGWl:!@Mw4Q|h4"dG$H:ayBcFFiz[FY.:i/y7rZ7"yޠ}w>=5/#I| m_;An6/vYpUŏj2!J43wZ%>\^Bυ*U}%"xVeovNie/(6CsdO7uu2K\y_ֶ΀[hYk?7 Qw.Z$|,j %4YRfj ٲq뵤fȥ^.,-p= 1upx`7>:8>96Z/jH5҇bssi\A7IG1=Uh Y٬'ˑG }&Rv{G5\"%(( ?b n &>=ONdm =b`o>簚ABjBaMifу$~kS"a~b2.d+@[9!vO_E"`^C9&` $1`2Eq{F/\\i')&9\8{uӨR^"On_j>$0[Tq C9b '_;o>5;eV9* |)RpYQ8אӣ-EQKnԣ6 FGd[]fX2ױ6yop"ŭ'uָs1k%P!3Kxn/6@$D`$f$Ԧ Y[[㩂[ +hf*fN-`P&^bE{A}H_o5q;07|0 IX\i=C0>Ƈ k:Fc LrQVVK5 x+by*paY;0})_/I#O{S뢭c-:wV Eӷ>~~aNjBqXxU\0 L[.jy֢HqxM?=Ÿ-8Э$*>5V֜mgzFhws)mtb)= 4 ȣ|P6/gKIw.2ҷfwpۼ]$uuϚQV+jlσwmWXkUfW'V=YD' H'g1j=CbobtGe5wl(dD^wuS[ZѰS9j@voĞT.pJBČנ9LTA߉=Oca' 7SK{D.nZEP 4<5Kn֞c.urzGC|:iS&nM ]\J^W1p=XѰ0 īu.P㣕87eP1N!T2^vvO< d20T~H\η 2ڧe| } Asu٫YtAU+GWt !TوOTDD* DHL x>c" |xEp>RU96h8rpIiixdŠ!Azyp:p@''OXPiU-2ZWr-[ ؛ C1B-zSOALߍIOb O,E.Gz( o[x=n'YTYس\ {+ޯp's߹w;8w-7{vSڔI@uRGza;*n^TH {4zlp%ZƲFq*)UB>OIN c*p|ԐA:^`?,'MK_pJ CR ^Zt7M4%~cn7A@Q/6u|p;iT٩R&unf}8 0 1\r+7X*@F)5lc ˃<>EG]FS!C&JK}XuemT' :xp>{]V*؋ˑƱ='#S%`mPw]W?{Oi(9(qA:v r36k$o/xyDՉȌb;Ӳ?iYWAWf}ioC X _%'YN2ER+r6;; 48@-IZ);f7 ɵ'#u}^b27?w-Ѥ*> +7w4߁|?4l<,uV'Zɫښ@jeU`~?3 zRH؉<@8hsmTgsc`Njf^0 cAWЋiu}0VR,W0yhM1:ْGޒ;DѭgMǴ5Ԡߣ7;rmG:<85{+vg!mU9&*%=G06Zu)/#!S[{] ^2ꤥ2:A,rYUz9:8= nIB `2(RqGj3ְHeоxcR&A6EkUKVqC3߷u;vZIW%+;ס)oaji >3i۽F"'lG;CC3[a;M/A}v'aFՂre8N،V %9*iibDQr)3EƒDrp#x* DKyT,Q )tc:&VY:io&lF| gNdVJZ6k]/\<&f>TpovL٨嗍Yʾz>14l9N'mTt+(o(;PsUh%TM'hoߒ"XBg 6xGh? C[vʽ;i DeFfoWS1#ZiEvZ[iА7i3Y`sǏDfM\g+k[X:ԁߏVǗ^33OSl`bBj$do/*;N{ :p{iv8X xL@Ouu;)=A|9^ֽvVq2#?`D>fgX3e9!p"XIVmmӵPY"[o `z˗-HPS3&+S|j?h>RIjITe>yuC=h^g[#0im;Op Nz'8dA+n9uNUa6 ⓳N# R-0$T 9>k~Ř]hӗg`N[/QvIfJp:YK)[:LF-–rÝ܄[d z=$qQPu{1bVvrI7T;/D`.ku={r^^1*jߒE~Ym'rrkD{wK#8g{$tX:`K;`ߠ$3ILtFfCo`Yxer8;y{^@#dztCT2{oiSꖍuYu-P] Qv$cmQ{{kR1cbvQd=Ͽu p?8^&N/@EAu.Y#X^ `C02џh+wS413S ~k!qk!#:1VৈYpQñB&Ӳ|2{(@J]P͐")3 L0Y?[0W+2 g^XRpCP?5_BąifNj+ӑ-KG#B)+JR!z|@51s?|q2~{vp+h.QGp7 ىߥ6m`4F?)_L6ɨH:.#v/^T̘nO&8 KäվfpQe`((>PL\1s2B-,,m)p6@ '=5M+iO2xGP;'eJw&װЩJEhnV u/pq]N[i "Jpg2a(U3Vpgg?T$D TZ6n8]]K݃s`]8>cuL3fx|WDQЁ.Jh\ZrWf[EH;  1uĥ 20&O{Ya .nң1zpEMjH ZDk4haQkBd渍D / %EwGpƫÈ1F×T #O';t% t,dXR‡TYѬZZEqy])7m*+` m"G߃%o6'Q 1Rzn"@'kW0q >dn(M}?G2·8Sٙ_[ n.`D?cKuhܪC- #~A'{àkB}ez|S_,aC)(8 6MS$,gYr[6a,x̨ŚByECD+˿i޵.HC ǡ#Y5 [rӨMT D &q +xj>2\ zw`}蚒OwGy g򽠿 igF[Q[MɣFbϰZP .ޡ,jB0J$F=Pj4v>^xYݒ+xU֞,)i]xu yhv"}NDY|*ɶ?%{KǍ$2j$.Z!ŧ eYf=L #>=aN{U5v#:G*c?Em)."2?UTo=^rJA\q3y5҅xk[:eY2`/T|\2eoAxyP|JNq̞$X;"HuN:v̦{i͡xqAt?Ϥ1' ; dDgcnlnwC98[OWEtL(/?FMlzHεmvlh?^;LJ!-`pBc B7:(Xj-:0'>;ж{L E96Sҏ%RԱ}6kkO6|97i_ߣwVsSiW׵a+mD㴛{:(QTb" ٴܨ{.x@jW{gؙNbDf* YVՋI*݋z?iUVJn\rjPkmlWP.+plEqsx1|.inURcʑW,Ճr41Pbb1hD5ux)P. nz`n~x-j?pB eFQ 5ڸ;ŷaՖf5gFa{0~6g=ϧ unO)ܑ;=}y_ᗺ<= x<=Rܝp܇{uzxON=9:=r?𞼜ދ{qzx?.N24VҨ\nJ=-B,,2]彳]8Owކ”Tc2=?髗1k>Ot1UۧUohDJn8:yL/іWG8tݳڦ&AҊчQVB[yneQOGԮ2U"hr"uQ\ }ݼG3}]}P@J)/k`J`w<\!Zy8dESm2-gF:陫Pɋ\Fsy.#e乌|'(R`3arRVz):Y?}I]d>iXb(j˙G>8~(£x~0@ֈY~nKA8"ؿBW kp0 k*#<>XwJVg 5DC:K+MeW1 p<` 2d1 A hҫ"a;#B<%9  H9$"g ŏ,;n^X-wΞ#{BM6 V1AjW(3`چ1-g3?g3?g3|B 00