#!/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=a2b2042aadadaab74bee6dbe440f8809 # 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 fRnqѩ5/~UlQUW|QkZzQU# .!/pO^_|p٭OJ2WkWjFdۧsuc|NG\QwM̓"Q|ךIV%M5u֖ 7 hseψئ<@"d?EGiH :ЊhƮ@& ![9C4񼌽$Q01׭u6  FchI,a:jAm_vp% ݧϽXLa  YSF䶾HYƌ):4< ECBmZ) дp|JM 12n.ϙ_$+#ޒhd0BsѼlnhY,ꥬep^Gh^J]r:% ?K\z]iv }u$H,{mv#> GWÞ WeI鍻rBTѓdAMHJu.}&d#\V8`xdrgkp< s]Y= `V"*Q.۽^W@3K#d@dI@g'dծ<:*u@@bxԑd"GJU{ `I0XzR2x$]! e|:V%r1ti^H) &"!)ݶfX*F*eP5Hl. 3eP!חPLbm"Db^I_R#a\ˊT lj0uGueWZ|N2!(r`6Lt@l)mW)=õwh3cOY ƣevwHJ-ӆmO` CgbiM\n95D|,TJ_&~jTrhҩC(.;$< Di4O-?PsIѦtj^ITx?B{?hzڬ_kՎw_q!mS1U2XB!":1W)Ëao]ӠGia鸈2\hCX:g:\1L#A 2'SJ+SZPԎsʔq\}M]JdH4i0+Fq1gxrVP.:>`EL.M]p5HFt,ѻN؈s$H 3sfyNʭ$*X1x<]+ ͵^bzS5~<bX-LumD#$i%Bi(|Lw믹wijbedwwQ;5xA?施?`yā,~A>-{"grTGǭjUEiw"oJ$o8I`Y~9>C XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z$}73$ŀTib]ٞ5Yq UC>-^P-TM-6½*Ô06țbQB ѐڮ\ ii֎e2걐| LY(%L@c٘Se$F믤,Cql H-Z}/@v@D92"Î >i慤ET'$H*g{n4]<" ttOF'酖&%ig`ρ1 [ŤK[I}eUM_8JgBh$j46)e 9n_T 6Н5Ks 3 . Q888(@X`%a@xJ&5|]y1,|xJ8KկEr Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9x%'Caq3Jx酋N%Me[&D,rmBl,";jf̯bYf~A/"A4+V*jaD{EEp:?Ax)BڑQ;+Xgp5l1vY,u' }2?6 H /,c"k O6M1Ӧwb 6LD-WIq-"-M*X4OQT')K:IUR!VyyA6k}nFpN+V3+O.; |֠_\G$COwFgs"bRI"/^58N:}gaZx 0,ޙ<{U8F@qKG&\ˀlar6~Cn|ĺx0:'ФBH6F"JL ">h$D*\Z1 (-zچ|WYWƗiALြN 5@m/T;W7R|Z@R^Ϡ& : S1OW[Q &m,\[7(z Mf:Wo5jŵ;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)BvRt_k>P d$nW5LDɀU[yK'MZUf;)W 0hK>cjL R f Ld:' sxuOQSZO4?q?o$#ŗ"ޜ|Ι*@^ G#a_- k-hC,;#zk[lFffHAhYOVaHb.<|öO %TBjwO֬ =iぼ(a=c7OBg;~UhJ20M3/mSmȊMDJ9oٞ18TX$X0qhfm?8ɗ??v{:{4Cyj+|i`hc?T,( = ڙCRظW{M&@JY7OdE<>#S~|?qoiM~zUkVAbI#CtrV hu6Ƥt&{o0W.Mآߗ+dowvgLC)qa '>YH=GW?L {L1}5~+mB-l þe3k~J7UHܒ弟A`R6K1p"4r*P[L6mlv3F_>o棢f.y qsyo".P2t&8LSţNЍlĜ̾1!鯃Wع*a|N`2fMgErF]DKTj{:`L$̼ig6deC֛f|>g{zI],+ל6e oy늳|}vk1ߺ}o_|o]8MC' gjDX @#Q7a#?hHA??Gq_qv?ng/k}JE'D $ lI^Fj@h1xƞ֮n ;{ŽCwuum2P+0J;W c>ЬajOk qeٗ%4LEʹ  @~2 'q%d29 I2;GV~rXW+UTWR029VdYȀbfM6°G Fyx 8[,ن]5fR?!>cu]7 ᥗ,8?(:N1 *6;cmIq}/L]'(C(0n|`[%p͡xxp5~BFYE/a`~Z$Թщݓkwԗ`(4I8P*%-Mk{,fƢb)_iͪa^QuBL  z{ /PrGxѴiq[fKI;Y Jj=PG? ʞCu솠)4ASF mi@b,EOrg$cԑ-00g`bvC8:]R|чPka+ltMw8BHY*y{o \")NULaxs .Q LAFƂjlҘujU(J8e(SM~feďWFQRcҥTߊMW)@XBwp)UFe&KW4m3 8J/ gP0qp=/}hf|F (,'!/V0wQ.F/| CB%>{`T(hѼQ=\0(J4$#VA1N,O>'lp6wkyXD-&n%0C×g| Vq%t Ԑ)Ef4ian.Zcyov~&ݎniA& 8 6۾f"hY]rfz/ZSBTbܵn74|qB G X@p2@Z[c1b(+v.P;|U1&<IzjImzaֽ_zXM͋[_L:`FUwONy UH$ ւ4TQar,0`o(|ھw}fMmrDf\_̘KKO WU"A/?5]hku d3 3u,x !ӨmG lˢZs΄5\.=FWD=G?Ŕ@*=Xn%}o:*d΂ ܹJɐg'R8i״t&#uZ]vO:8QPFctY-ST6Ϩ~F&U(rG-vW_Cd]tzΘ/dPY5X\VmaÝs59v-i5V rdrR))O%tSkg95L=4$SF 7X* 6+d-~U(B(*ʨ&B]6vcFQ -O,9L[[n솴)v=rdUuάLa̳,#I}/YELXy{t~Tr$ TjVE۬ H@PKJ3\^RjAKk1J]ݻػx;WQu l`};*OUS$>-)AAXQn [ƋFȆ ay7e2QKɇrA 3LxoSTfS\U~PES-z-0MËMDbh0tĭ<0RǨ GkZIpQXpvt0@G.w)w99!pt&ء1cC9Tbd8slzvmJEW B ]F~eF6Zg4 ><vtHDKb=p/HRJ3ULq7c&7Vd; Mdb5KږCpF-WQJlÍOQF^.b; uh;}efLZ1,ϢN_zIݣfX%JNޙw3BU:ta-v2YƷ "-5ŸۈE2-690_F¤/r@!׾5Zܟ{]-SW1;`u|no4aGB3E~^8}{~l~Ii{zx9EeqZExo: c~ٵOӑOȋ):r9#9tzdhSvҌ-*2}\ܵm[52\}(&S5 <~`rtEƁ1:~#/=hgsPex_ XSّ,Dss<xppmÝ")[>HBzoG@Ӑ@WgPc/zU_gFxf/~`M &PG̅\B 39hh("PjT åǶDtNb;pDXŎ2xʥ) b~c)ho%E_X"Q{W!;'5kz-/gjM.0S1!*al:"!wc Bg'W (N@e63S2`JXeh/o6m5(y' g&|LRJld& Pä(Fд͎XW[2| #bWvj hCu-aBD8XI"dEU-2% zN4o 8Qh梽G+^֕WGE[݂X֋N}?$C@xxY300000000E?La{JVI$'w~y vNH4 q `'!;?:|Ihu%/T7~A޻`]I=}6Rq(ot)0j n *L0ΔopU|īӋe҅ _PbӠ-[ǔlČ~ ~ ȹZvSwZG!9Pr9J5-&YoLjG/Th*(p*efF5 oH2ZeGX^W-k[*^sAUbLT ލSN(,wۭi}垎P_RoE6Kky;7ۍD %(gh'>;:#\T  W3v)q)DW鎮R}vl~֝ط2f4.?FS1:tptp7afћxX #x<ރ {JADW :6׳54 G8}jHLQExWz=E$>\$Q_$Du!:g)NC(v ~Z"9Y'6?wb7|;~O7P%  !UhIمK7!%&@|& ZM@id>pƘ_pAda7!ԡܖgt=;v_ bۤΠrtwlLnp: C`*Tႇ0suU`q'JeQW;'FJz.Y%k'iN0B cQͮ'xÜDr$PUYX-+Á"="Kb1Qhq]3{DvxKɧ0XV|w,nLePU񹊓J:Beٝ{ȼ U]rDJ/Yi2pw1oOI;MeO85d~fcoD.6+s.qɂ`{YfN>:U8^%yWuF: BrrXpqBŇE/2=aXE?R#{.f$8?^{!akTte/3k5f42p8)q-5mGvL#]DtU7ʒdv!ŵY2HU'J3wn#qQQa֬I{"R?+]ʰA^O@t+[nO)A0fp6z=vX1pjI}@?:5 *E~9GV0m.B:斊iA2\^ 㦹JVr7Euęgɼ2UNG;*ق邇 RƼ}Z%#U +79~"<[>!B޷ܼT\*eJho4?ȐEkiisˬR]15Fh݋yx5~f?Y,g3f?_4. ^Ef* ymH8"n.ts52[p&(v;$9r"t(+ z(Mk~;>n}V4eYȈ M2`T'Rd ҊPSFǹ,6@jZ&[{)o)/DHϧ4|zV꫸ph_$Zӝ# D!(I 4JmA Sk}~B]0 .kb0%rvXcηCpx%d,,@(Il}C~t|W;&-18JΙiּF(摁eHnė٥ ȵ$D I{UBUi'W;Cd̡o0t헤64pjJHc1D2*m*Ed4nצL ѱIʊ_[N[Skj8`OAL0d!F-54Z鮣h-Y`-7 ԼzWH2 Z'ۢy9I=C (vN=-U46v߄<%!񱝖L"Z@fnJU#"(S~Y2%B@7INR7Ȏ$^E' *(}#=|xԌ/L?'oaUg+&\/=J<7lj /^8BʐlLgmvIXN/aRX?(;PSjU"{>n?Uk/Ke4SoӜ.4\٩F,>v&<%;;4XԢκG8yҥ|n0LB\%Cxv*L7ң촛M;aTϞyt]>)(Zeq’?bV-4P*P!ۻ٫Gsr v|tә!oW-Y[A9 LN$?=gGjH o:>kLUHC ſ3vtcFu]3鶃y|aEXijlf+_ZJyxkhIGRnBœC(-|wa=^xj3eFV2a3yz!p~eQ7Dݰ~٪އ6DW/-H`l=]u9ۭq HmruSkd /}īE+l-ݠU)MzqeJG6:TW"j8,6\&Vsx˂ZX rZ4#7ã;;ʲk9 hQP28>m+l`׊DTa+-!irTd$ȉCiK}*-ţW*-,2v{5#w ϟ2A<RawuȫGv_qVqW7UWԞTn}LAޚ1twAú8sF彈*? y=֪&Û@je>y9Ԩ٩Y-ђ3@$cs ϶_F?8X>ﻰ٦yw} UAVǐPBLyfjHw~i ^HM)c) Ar '𝫬+sMmpQhu gYaKO[Oj  wРܫ:Y mU:uAv :^"pYG"\m 4lZﺛ[|kj<%kЦEow3/ආ^XfvK[ჾXh l'gIآZ%tLN|wxtm /Z2k8+%!s;>=y}}i\~'>I!ۦUfh';  }&hgZw6&_iF?*s^1^k.dxh(=t_QMv%#vДzvat5ۯzOۧ?,½<~<Ƥ'  Yo\?'??<y*ְƣWכ?xvoYCW~zU Yv\JC<vSrXh]C:lhw^m~tM,@8 l4o2$O~kɿ0O;P3?12GLpL sY"z7v爒6cyb:<[d8:tu]'w5FUjK>\Tk(xkң .X mF-`΀Z峻r=kBb[-G?`[!:^r7%ԝ[e93قJlQit# EՆD&' ?զ YYY᥂[4 +hd*f"a2k䎴ݤ>B][CD'N:+ryl,#a3Mz%A;SܸJ+i?2hԺôPUh2:Eqċ_U8öv0\ KZ;/Pr"SL,ՂDJYKxǜ᳣W$ OBecpq}YxUJ2 ,t_6Մɭt |"rIKGzҡ^yWt +g9_e@I˸_gu#0* ՃC˵:}@+`zUW1+!iv=*RVvF zUdR(LQBFZ#ݡqNTI>ψ,w]|= 0pJN-xѐE5:%REB^}p0LZJ-~)9a{udq3x,(o`iޑUђq^ltY}f\XtƼ )!w vȀ S& z$U.дR: j؊kyR*'V/v+ԪGoO4vLQ/JD<1Vn֞~U.brGB ٺym׸vyRFÛJ)t;V^`=M X GpEq!maά&AQ[u2es}*1*>{'K [L5+LaSnxH.HTM\LKN 2+,9Xn q^ XG "r,(5NsO8N^X ނ-:T1?be&-#[p(UzO6uavf|Kܞqduf@Uʼkd ִ'uL9;I݃ @-o?;ѴGP9޼~@C[^ެ||-ϔ?3uuƉPߢci To~wvsLG AmyJNq4J\z΄4 ; ^gur?{czOs/Zf]}D`_2PVfnImӽLʁ_%*dw"PSPF}r1ː9]Ly6]4yĽ(KMߝ'N3i%JBEn=}*,O{%j'Xem(S+lfNwʇ<k0N$۪ :W3`Jj@<xg;gaA( CzO ߦPai~k@TYAEK+( ڍѧ>fYGd|%SZ MP۲yՕPҊh<7T^b~ w9᎜ 6p9]!W6~h'e_ 9ȿf}uDGހjGE@Buih}\m38ز~2Z(qB0F<(RqVlN`î#A#UKQ|TUQ͓ yjآONl-Y-NÕϖ* \t [ѿ.*f0h9}#&R8TpsE{U?9L7H/:_,XX, čI lF=ö.=Du*"fd`Nr$-wf'OeFzYx9.AFIޣ1=Qn0pG\(Qe]_U'ަ_']3L7`:nrvuBHpQ0ePR U@0/ f8ASDqȨ-/\!`&`dqI %fRп$ wIFߓqWVeìi,r) x2h[[FV3Xǯ jյ,26 0،>xzyȟg,5},TܿVƻGoOYDWAb2UoD=ϖnِXʘi]:e>Q mk5Lk]nsߘ.vum=Z⿿t,{E}ϢgQ߳Y,O^6W{IjIeB10VM*20lQoϳIۣ_%x?C&pVTT! Wn/9UDY~u= : l_~=ĩ+9ߦ'{NThewϩ﫨@6< KcKح2wZ*V`ޛtE Y,K%7^ӳm|^z}*tTz^c a]w^Ϸy9$)L5'kmm1-Ŋ_ 3z;>݇G;;kwv~ۇ󌾝8t3kPZ}<;~|S88:&8;;p33~JNl؁Sg}/Zx3:} {kz!j0<=k??Y4>u: p1pz#V͸؇y dZ5<2HR R{,ŏ|s}DzᠱA0d\pخۘA4xQ ,8ǕJ,m1jQ r`3qVfE=^)"胤Gdg)<6JQaEaW.E'#4&Ⱥ4@O^e/GZx{JeV۬P뒛N)v`*6JM*+gBUzT#_0*02NtKKStw9\{57E%d{D1 cluWqVn_XWgΌ!# uf Yf%`f NZ:\;W\T̻N̮퇔q}O AV0݉?|׹;H=0ih;"w_Ԩn|-GjoW+pz (U &Ur'~R>OKhHTc)$" !+ܠEr1V ]zz#8H)XFY$}dh)&+YGyPvFB)BYUWAj`v:K^gEE~8e8* -@VzKpofk0z_?d!콱(ƐQ$@D]*晠8-=Uٟ,ɧL{9 '-3ꒃ~> DY'5Y~ 1M+vh++NjEAZuvs{^2 %PsLsI\B>u@Ъ rm.r (kUv?M e3!ÜX8Qzkz5=M+&j$ŠxXbl%SAn!{> DN8.֤wV(KQ)i\>8cuKCuv̀O܎NU>mVIA۵lzhR Ș0#7<> HP(@_.4.,kc/# !J\Y58XƒD<)![*]Fg~:h15BtD@t\'節󴑠_F-658 :iZhx [Ao LfP7wr?b,at1Ukջ ̱(*u7D|PKE*Tf/}R4-%*VvSy8t^WV X>*s=u/א/19A^]eJ.r, ­8H=xEPf8F e-:::0H|Le|kRkVO-qe'[`bn!(*YiqHn#f/Z:pȑ\vM JhύjD9d@P!J#A<=3[  sFy.V" ]VNUd4y23? hS /g~:g~]PAT {M5w)lܐ:i:᮰I\`%Qd_f;m(/7nvZ/7ĈL`6j3Vn])CgVMg+Lq0suֱ'&ĴqҎL 2XVeps=Ç(`23>u^^N_͂`VzϺw~mӮ쇓][t5AC6<\xqxIFY6 %W+{UK)W{zj ?$[Q^P괺L/l]NW_̍0a܏QE5SKfuIJT!f_'( kr- L]GmUi_¶O..sJ*!c +\kXnÚ*х٧F}XjAMC$st=Mr'(0?oN';=vu_+ع<ŷ܆_l`h݅\^&6 13MqnFNlQDB]w 7i 5s檈'qO֫8u؇%wTtl3ޞvHkrm-ٖ<ۊ1PvQx.E7x+夸Oٮ}Ls:mFOƹRq@u>:^imQј'Ҿ_v_: Ur1Jed1)w+e漠t[^)R^-:7E[ rI(O,Zp.4T-Qc nƚFYC,mb "8Hަcmd?|??nGT !UJ`K-Dঋ"](QTd"ɞ \@d<}v@rw;n/wzpMex0&KҠ|>n7VjLLlKT_A܁"Xs5:U#\Fވ;>B>82{.UER}L,Zچ*Zj`(ZNG 5Ct9H?hRNW=S\, !tph"Z^V`7ֈjN?aT[0acꏆ_ $ϡuDdr_QmÇkGkܿ<[.:OW-쐋j-X9֨;p}ovY-#wz.o\C 7sݸswÍsnݿOwvߑ;r'NnݸQ(h XJrtdĠo*ր7+sղoe|TN{Ѻ,wO`ӳx-(LIuv^*ӳK|cӣW';utNS}\DAҏPDْfn;n7#,JY,7sĬ͈*gH$ʳ% 35~7Qp.1n;`;"Gԅ٭8fm n}~/1{r;EmR<9& Ft|=!-Jq6T%Z%p?͕/Zr