#!/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=d7fd46ecffaac9303fe0ddeb77c5b979 # 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 ^Ab+5A!܉Nx~I7%<3h6")G H^K@F1p.9020fip&`n (&!3T/B ű` O @g|gt;7u'CvvZbE˄/V鿝td3λVohfvcNj P^8ƙ1aF /Ndcvڧp:2xl {qxZ5nk/}Sg\0ݖqw@wzoV[2g@g먫bj!jn zۀ 8j >$VS :kڽ/0/̡1M}h>Mڅ#)ְE >\~ ~:[0Cba?Q{%Kk(L\{AU+']DuG< S  ZLV Q]@*h5R+3Y@%8iH!ѵOi+T*^sy$nzLoW*fb֭c3۹ǼbTrnbLuutsRmhBuq3G siJY+_MoVj=!nT${5]S@TYvLks^ 9K/|"$oU~Ϋ_?():knIۿl>O=;лz "L ]\e{\XSȑaz9ñۙܠ:ڹ+HᦺXr7rV?S! 0WB@bwلJax<&l֣jrn}!?]Y-z@sAiU&qgqy4w &\(%Vű[}e3cVe-^@ Ěm9]u>XWp.oi1dq@Fdjθh=ua251 R(}jS*|GTb(J%,h[*|_TGhiGimS@8}So霢u*Ek(5y4/6^Z Y`q֞x3n764N:VbN`OOԋ; 4ҁxCqqEfZ|"xC nDpfۗ8^ jh< pn^Zd[;XnB%[gb6aJVY[c87Q-ekXȣ9ƵmőyT0'{k+V+ RiJ=cЪP]_ Y&~E֮(x D4i1_Eq.;93H 6DP$nף] \F_bKR iY& ,; R1P|t Ah8(VKA)C$r.V]O-Pqq=QF,~6)Ve=8l_Y_5Bcws'.X\7ƨT!5H * P\+H. Iǭp#=G;{ y0ppI*7D!Vh:wK,:`Niy{Wܿ՞kڗl; TU:f5&i^RL4ƸdrB)gA ~j gF/0L jH1+A/^fE[NΓ\pH;&vbGejcEV$=S>LKjBxPv30+CpȐ*K/Ny$[|Pu"Ea4\;<'{)umT:{.OؑBm#6l1TȘ&fq!So$TJrlby8t)Ţ* Ґ&7[z,RKEWv(LBJz/,*sA3dd9sߝK  $&y\/H|-GI [*CBJdم*X!$dksT" Qd8ـiFkmgcPHbp- BHc+*KD[`y#'3E" S=~Fe$L$\<!\W?OI~8#(ǘv8,9q`$$g0Uܭe>񖳤f&cayZN|)*]J :5sZ"Cr%}r!$T?9l sYB/`eS~u:r[6qCm;m^Ċp~ tR-RzK-сoO!ɁD\%- KuÏյ)gV̧$O^ᚒU!/֊ٴb8Tśb +3v=껓\LP(*S+̔S.g9XD֓\hG戲 DA;[df2?>3WyxRjʧPj;@9-šr32G!mp&ڡP85V v+ 4h8ᇿ@2=ӥ k{Puo Ve0^pD,`t jNj` n^J)>wǛK_>Q(i%lfS[:?~amo ҇}<, U`z;D"PѣKD;d˰jQc>c!]50]r> +~DީUMQ,L(%4}hɑD3eԑO3:ve 1{'KQSuL|S 0ܠW*VCC*M9f!8Ɂ" ʥWTe=\gH[|E@D5!Rx0Pg% eVqX>`^jsu]'rݯ.q =iƎ.yD]Oh <Tj ?X%76F\/k+UWV۪[ª@nŐ2Sryh N2@PDpntV^7A3/Ú! tySc6J|ضՓIM,h0N9g\KD S:6]Ќm[;4zVCzK G;D\~x)ʠuA+Ҷ&iZ:ax: byukќI zNH?6Mw ڱ^*r4$zf2ixqߣl<26gvQ& ~&؟<e)S' ā$$ܜ uQKaႛoمIfѨqI1ɲ>L2vs_Dhv Igb~}2`}xyj\#8%(K6buJubƥЭC*#VqS 2\y ^ !;RX!ѕj6{-\۲.P^x!shu}eGkة&;eLov>砻+ epQ !pk]urzʳ~}K[LӔ3AWvYT|sJ5oA[ ՞5>È^ӽu`-r<2!2? :<4!4%ue (S4'& vR} {~5+*]Ѱ}3٠:$2.×5??R)9CdbIsQ uPVhxmZЅyvV'ȶ#*qw~AHG 14v`NہMcS+T{Ӕ"|3B&Is^c715C Ӯh2_^(8$5F,Sk8brxxX0|5Y>7jnLꐅςkߟ(G>kN w4UT2;)0:`p!" hZ H~#Uywf~UV{.Bqîh t% 3U^'u3]⑃>T>:Y;ju2]⣈碽~ccJ"ClodQŭ(2Gqezz#\0vGy;2SzJOΞ/*Ni؟xzLhDAc`={|3{f=Y}ϬgV3ww}Ytw3kC" EƞO (>|KcVZlhD|Zg脣Lu]~5Fvt:(l86.AW5-͐(MqȨ=bl'  {I^ xw/JM Z MY E:hEr|@дұМv:VgX(%Ƨ%ܟ_GEvGƤ[]rIWf  !"o[Bmm6H,^MSa5S`*snJיg~}|RHk,-"աauOyd7Ջ0&%P{'""NC0QP!}'k8hk?]64Ë0a7h(+H5,?_ȇXW;0H>l*ߢ>H`{Emx;)gRE++$V5SVKP&U8ؑyY@VK@^HlYFW^f2 u?J|?%]M ֐hSYg~LՂ$4j$.1g; ǒvz3Aa {Rܰ'6zΑ>6z%sH%qß図>9{Mejr),߀x!Lښ1qkmBN̴x*>%2To6Z~glLs:nz`GcsO8B`ۧՇӶlyS' W=B0yJAV0Ձk8YY/F@Ygu&Y)<Ѷ{&`@\#a+1oe}cݳXX]|_c73f 3K%df ? :.HtM-R +2rȢ#|IJq,h!N AVUCAJqILl3(a.%u*Jã0˜p؅[ [胸5yq4:[~Ff]G>us-\ꢻ%V;^P ytHoPt}/0Ձ.v=>aÏtGJ<tp-YǨ:L!?Vk@hu'!X [qbPb^ Ap3::SA( M杌Hy7,۔[3Ώ``Ԃ|^ <]Dn87ҍu?5 +[wA5̢#-/&>lv$ԯҵ 6փ RF)kWFbԫafo6m#Z]Ge>RRc;5+}P擋0 U:.c29E`6777 dJ׵^n?Vߪ^fcrbSl|3|̟ 1|yqNz3v2s2j\n|W2hV (|3F6 Yr6}[p]':i'3},VRtiRRX24a1f7p:[E[ ҹqE!۷n,%j;<< FLAٹɏ!WcgfM>3kf5f_399 ]]xa l:oz(N6J>3%WhYdMJD9ݝ#vXdy^&¢'v>y#λ| [6si), ,*bv=9cy^j?;Ͽϣ_=O;]j3?M}ʽ*cy}~5SĄ0's?+\.U~#/5oQ^vVV6pR\`e{ոh3nܝ3a0(:(/ZWs8 m>nae}~( ξu. x(ҢQݺr>WUf2]#7}OWdӷ|kз&|C*qN<ǹ!!T R~5'dz ZzrH*QJ=,u'J60 Ew9 idHW:)DŽa,4`AnƘhty7H)hŊs0xtO?v?%3xokP:o(Lߞ~}!`}騖 Ny~8r_wo{_/[Ǘ_=5ų?)'VSѦAf{Ns#AέHf@7kfofgfgT$ ;XS~;YYaR7`CRd;'섣zq>?|Ej*[{N^0O`m;K+|4W1ƹ*$WR-ƱrdUl d2 9r-,[Y 仃tƪuX"g#s)Q )եDиt}هf:B?30jg4Ɣ?[_[l-#4^ s0\z/_=£+ %AjBw,Ԛs t!KwE&ac"; ~\wv"p|^U"~pUsh-Kw!B4SH QЙx_mKO%noCnnާ7懷\l> NexVvXPXFom#Bfu& u#EɊpNև lt6X X9bN{2x6a!3,A6܊c=z۲f'lq 0qQ_w;3O=Q8׶c0 贌=ܘzt^2ȝufȬ)l3⏲]rlٕX"衴Kj.Û3Mюf`Nb!x5 {$~wf\9.#%bD.5ʴDC"SK!Gpjfnɋ^wš?HRq2 8BR8vŌx;* 1%ѕ (N1q7 9[&o>0. փGo Ei-aucjHE9 $9S6*>ϛԹǷLI=46զvMA1zqhhe&LoSX!,y=0B9زa\^TNb(NJa)rX[淲V-qa4* EiUTf5U:M|H*sVZ,M zzZvQ5h_䝊94@8L(n=U|݇C;ePJTٸ84Y]OYF$GKHZ(MYzUCj'Ƭ icݞ+B 92"* ӗᐶÈFM)IxhHԼTۙǀr73TȨHC+]|qxY Q룷ѾBymx&|@-;f Z$9@MHӋ*N chp9\"Լ] ܉BKJCOF8}\r)\ĩ"C`h{ :6MkS2F8EXNhߚ^qtX38Qy˪pxI 3K\xof[.?/H$.=+2&(EB)9|#db^U ~D/v "cwhH_ͣ GN> k`|saAl]b9p<_}Zsǖ4$%i>?Kjϭ«g\iY6*:<2݊ iHDDIQɩ@a[{O|Guį"ܘc/ę82(_pw21y%1o*2>^8abRWj"s-%.5PM ih: g@|%]nO]s bYh0ZͤfF)ͥin *4n W`(8~,9YoBQ&TgORVڃɂ@K73Գר Ns nvB( B h!*=f'zMr1"{U‘ ;+>Z'Uas8<8$ &$8`ij6XU ^vk$ d+JoVX%@yn)Dzx!D}&7-\Nxz wV7}+#!8>k~N30K/pJFFp2ʡ^'+*;~'R"h1~Ի,t4ۥ'6Hg~ԕN+)XR`115n !?5<js hCl֐ځeYZhOl7'zpͭnq>eu>x7:DYee  BS?dd~뭑7帡at=~ַ7DCw2LlI۠bT-]jXi{f'Qҁ33 o=MhNucVUZ!`!Vew<52Z)g@ON~~ ̟ gLƕi5.+`uGܲk';ǧ'?J{./F]JwY:WDl 7S2`6j\ qΠ*$w(t9ESf^~M’tÕP-_8CC)4?#.{ ] ԓ] eR` ~tVr'1le DAŅ,`B՝ۨ'}y8 !2ie%!~|/4Y[5+@hxt -׫JVפWzG Lx*E7~YDP_"ΣIdnن:q!&qn]Odxtu_SvzgBk>g3ߙw;g_d;B u5bS^_c,6~!'Fw=bNqxh+÷YxM~>.4{/ӽ>-dg=9Ye2Y4c =z`(f f{@&dҢS*{6#׼){uPۤGf½imI_..L2q 1I~Mj}P-=:sZ޲ /w+nˈe cj pjqV)/.2:EZ czmGR pvee/}]՜pl1?J ?Ÿk^Ii#ͩ1*J_)j-rtGg?O. o;UH(+l1w_ғ^ ՌY &bC70;r)dЁECgi f癏oyE7y3 ri;uHHi`2zRN Pܱҽ^ dc8ׂeSR~g8a,p*7:Tqpz/Rm ~%iԸ->#¾:|To0p40^Sgp|ns\6t"[~kd^G Z@yl7;!hu)""gY% C+oyֻӘGs!םs럻sl.*RlIyYSĵ?"^%T*sV1 nA־tKMN󖯖ecuN{H-E/P?hfn֤op碭9lAx)N/,ΐXۅc{%+2'-?ôvm!_)h>T|S_,*k  sg2.m_ kҳOz?j%[(ʃͯ0 [.zzZE Ku$]нMIk>Ӆ-K3'_2y> w6st+g%c\}c˞q[j"]q ٠wnLv<#] .uPo/yMe~Orj|Y] b$yO0Dz 1vvn/5͹ ܩxS'{5U J Nݪ\4|d(t`=a]-Abab Qe~(Ud]CLIeg"3X`Y6%v''ȏ&/|:4i2bukWЊV' -pr^8;~)'EݞauWS,vLӍc M5=(S*3Dk6rmyO@}e.M9:f5 6U3GɪQL9rP<KLRQJS"q"-;4c"I>jMIYpdu Ӝ4MZAPgyYoEoKFpNIZv%Z{UL(eyFa~we혽bqdáA,ߌqТX?X" 4GzȠR+H [IneUfH?O(7.+3og3ߙwf;Y2αmfmhބ:PеlHbHHȻٯoHh: 5+IgJ ##E8qjeyy!xYUCdkV_ݎT!kkcѝfj5Ո 7CKk$#λ4=3e1<.Fq!@U_,NHɁ8b(0 $~!!9SgEL&E&DFr 1 8 bs]`ÕTN%gMVeƭ\7 WW|e^n ~UE$05> ^hJ1&{kPoZkƓꖃ'0 bz4ƲdMDiI`n=Ia(XL"W? l8DlI\~Qwp=v3MG&v+B,i o/2-U @1}K|q>_ק־jۋY"0(aA:D-QN$0~-09ܔ >nH~Oݝ68!Ow-A% kKèc+ðexj r)aJLQsnkA:Ia^Q)L< 9R$6r=;vc [%(ԋur,DР]N POŴ,M %,kkha@tҳjdFHugLA! `;|A`&;s9M8{Q-+<9I+A=l'%_Oycl"]uJO{tܼ 4I'\ٍiUw + gcxzb4C#d|_ѣsp8{X[9)G^Z}x 8io8<=?ýO3ׅr\+ [p ` t3` $AHHƫB{,lZ# '?C;4nbYq Yݓc~ۋ4Z!~:'ϲ[bQbOߏ0SĘC+ dw.coD!#0E᫓ _&O*|=c;qT-2nwd2-醒GSW~ܗCCa!s+ t+. }m @MPsu(2Č}ODp`A@b5Fs\"VrԽ}_O)l]Em!?.揞 c"c8 3T=nKvrjU3R5`2c۽.06#CE8rSNK5S54YP),0[;J;0 zyI?fXF&} _#&I 1P,l/-RHr7>$/wTl"ۈS\{"2c@4s2~b~l^-;➣\Qύ6Z0[F$V<+I % Vjሇt{-?~CeAi72d:id5u5svNDEuzl, gm,Ӯlpf |BZB:mQP2T"Dh1yncÄʶ+{2b7ҎG{h[Ǩ L;tcqpgÈ}Q-gwKP>Ap,:KDiӳ khr1&Qdso>iV:mJm sܯ̽if?9];!gxCŎNֺh!T7os[ By@P 2MonRjVlTt %t+i;ӥڶ!&b+eK4Mnxgouzz\,TN$D<4QW?Fczap$&Eb33m΃K(]/Bu(:[04iI8F$FbPۣEDg@8Kim;Ӣޱ 6BBiL]*Ժ["c*B95ѥ,$O{` aEU^gq=-颼XJHmo,3#WK^bW'zka2;;Dt$ q aP:,Q14ifdoA%ڋH.-ZG-7 (͞` ^Ox5ꈔ`yh=n77Bĝ t!UUHXOmhĦ1ڳj@4p n]P+| P'V1](S1VS-KW\ }#(B%>U( %1&v._\ н/3*YZ`j P^(fY4FYk>]Qay(6)B(WrQxS7/^ :_.Gϻŷ7_G1c->3 ?g3?W@﨎*0.B\;'pA0ʷ!ʌpTZy$1r9;o F[Z^aGwYd o\`,u5"\ղ:/ 4ڗЊO%\VWDZG"Y]@j~YUkNLr$@kC]oބV1uY2ϭsz0YqYfhtoj5jթJB*SFɢo)N݋efeC?_ـx|:|ߕO}Pb=lnNB"F!{! 7C8aKSZVOWgLCM!ks~-ŵ$;&yt9g2.Gs=OȸXϦGL:eЧ$[^V*ID(v{@SQ+)v dʛUTIUnT/+omyQ7-~,<5Ww?Tq >t9&2 &Q:k?nݛHX?3x<|O g~8t吺qo+~]m%ƒsJ&Τ{YY]h,i'I=7l_4+Waӽ<ª˚vmS-cHNwG`h=ɭSt{^WinA7|&uGe6gm^ǧ'%#f~}ЗAD(r{Vc.1i\xĄr*3]I> \_3lA})"; z|7xߵYogߙwgߙwtYo,{K!*1!t HEh=@@Y1(3c.eWG Q+ֈk(H?{q )yA:LrZ[gS0pohÀlز]ݤCHW.XRinT2ALIf#%#2Fo +T9gsCǔ$NE LTrP[W 7^w>:BI[S(]8Ϫ E7uW 9t>93Bj0r)( 4"xАE#ptFx=ҀMn[/(_|5ֻoV^Fl;!*lP8t=_n18:rAinNkn:ӴU.&xkzFNaʼcLIu1W}lv˪נ9z bݴahj^L$&ȱ`qZ֭@!\H FRӝ0^  Q{(I1dd:$Wf3._sGS4(wo9;VGF*q3Ue _'Wy!5,#reͥd5)a&E3NNl ktQ5gh014ͻ;rvS}Ixk#wGPtO1*rUP0dcpb@WBmK6&bYg(obqaVɌ*[te4Vx=B?DY""Ck'<OwOY; 0Lo5**#re"kjV=fR3_] ~U7pL=MsNU&6`H 3n3R\CN <5i'.MsCzIȁx[Bzգ0UB۞MK8>Sx \ǔIP4Z[">H츭.N nâ=j8`Gl̈{f(Aäƍԫޠq€ 7r5"O 5bQ&pCC0c.=ELLNTb؇T1|:6YX!Tq0=z;` w];:EϬ 4H2u0."-#"G'wN ֥Ro%\6۹-aT[V Mh*Plvdw@Y"J7k[9PSJ.?38xCUCMGM3]64)GgMW1 eD')_MkCⶏ4*P^cD&ɖ3oY%ܒir7yPEHЉReŵ%84^(-I/.L& 5q {X[œb㈗be8<S[;ʡPrL,Υc˜;, O}+ܬ{[ůVR޻YoAhyGk 28=X3nZ *Dn+eG_+*|_{f=3s~ϬgV3{fX}B;9wVX$[M`P49v`4vz>e <~U13olE"!ЕhZ_,Nj\"XSߝCMk~$)JH/:8)P#reU)SvV˕Ydb4AONھŝ{pr0Ri%psJ.ۓ?Z̓ΉڇK% (xPJgX=(wI?yys UJUWKUx@RjT ^YۛnMiR/wғpwhv)sXψ(Xqeb4'K'/)yd0^`7h5x ;`E>$2XeNBB;Z N3ѼOCB)ƦQ&:2R9(Kz'wXXA#66~+KNPost B2Ą!álQ ?tF*'k&#oCPaNOdRj@WYEk$ K.NJGL -fA=B]BV˔acꏆK_?GOO`IFr+eypm۷yu#m+N*$^YX]^]ȹv;CHe܀MHo[76޷o@o_yR o߈ q܄ ȺoߐHoߐ˹oߐ Io߈ ɸoߌB nNYR.0U-e~Is_.ҽSޞ I#2=o*яRq|9MiIٷ̕ˣAp1H2&?;n:qYh%[-8[j-YF% ;J]%km.'D_gpyqw\oihr.+13 rL1^T+Vsߥv\giD-ݬE w-̕;`~, ۲ϵˍ~_| ~`&\jt{޸_ۡ\{r GZW*>$kǏ!F3uSeͽIn% d~rx-lP?QhO.ǴTwW4Z8р{#Q\ x {WSM}B)UL\l(3J7 7@lqpf<]\*y ozp>6q^GjO3~y/tdػH1pVeN{B {e]ş~'a/mTN#H+2h]W/)ny6bz̰囧S2Rι-)\<[tL{DnlBޯG}MWrYL) %I+ns}uKc&goK_@i .uZo7,c.>3 OVʧ;OpKBI6tV)-^-^\$5K eObcߧd}fg}fg}fg}fg}f?:0