#!/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=c4858004358e55666547d207223aba06 # 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 \LOO{ըr8.fP׫Ԏ+L>{ WdJgFڪ5գgZYm<#wOF5HsF,|sA_׎_j'Ǖj:iW{Wlwms=bϹ_;>q^G3Cdf假|?K,]s~bDZȶO-u n+mYzĥ 55*19]! lĈiY:e-S{2s܅W&_L8.|@p sfl2\J]O tirm8$8lA,BRyę4`V:k db;2@e%IuKV6  FXpՂھ*@KO]SXLa  YSF䶶HYƌ):4ܓ)ECBmZ) дp|Jab1Xf93 D`e[R h|. 8+e|)+D߷GhNJ]r:% ?1H!~Z|6F `o+0vua8 FDd@GX2ޤ+/P` 8z<&$sr%:>{#\qɰ=˝I="h8P$uekWRDz'DlzI^}_!"L:g= 'cv#O]$ʀGJnA&p},X'۾j_G%LFP&gXO L4z'w$ Dn{fDX&ñ<@A:@gw}dٌ4}D( 2y)A%$FQ( XAU+K=Bw$ "@m2Lf0Q]@*:tc i?Bgȣr4s|oԎvr .p^k4j~uxP dLSlD#Jș=ub:=Z! "WpA-{g9C<'B|q$p0H}EU{1E)[<8KśТ])\dێR ۣ EUKI鼘bpkj6WDk3gK-/koAEK]wK-R݅vX!p! b^()NwDvͥZ4``UC%Mňr8A|*n'iQ3C;Eq>JNf J6M4yJۄ0XD; =̘ecʴA/D  0YG*ja@{Ep:o |)¶#w^JDZjugedu>8 4_I֙u,HcAo6M!Ӧs@Lm\e&ჃM6m7-`xĺx0:GФBH6F"JL@E|xR6Isi4c=,c q,㋳/}S} 3%^2;)psPH6w_B}x$, xLr./ R|__٬Uw?/{zv\w-|u'z[ >6޿?cgx+umWO'r%c>?v;:<D9#=vEZ&ǸïC|*c'%= ڱ Y6^"(`Vjw@~ţҤ23V}>K3O/j>t>}^,I}bd.]٢-.֦eҘd_J{qhw2ٟݔp;PJvAa|_ (e#ARw3bjd:V@[) 6|DTSro:şjɂ/|S-Z&ϒm#'K=wB$alۦ)|m7ccg"@f.y2qsy_D\U$Ic#O3FОO:gB7c:Ƅ>97I LLICHΨ+þ?A_CL0R)dX^w̼ig6de#7A6?ӳ/k}JF cAla;I^Fj@h1xƞR{W$IZO:u3k \?O ڽh^yik `GN5^pbU ;4HN"HE0Us7_>vO "dBP::)z+G[Bnu!E(h!V|(Pnemv`T ,f9md@Ʈi ;fa`BvA8;U|Sſn˵0J-Cqq.s-`RFbHSG͛:2 LTg9At̶%^o,(&:N^ M d3JdPSv4GKFr‰K'M$MV` J.XXN;*:gmt y0bsh6(csO6U@O/C,cK3-=:eMJ'zv3 p whr.쵪kz;uҗH&"s;&WLD ;QC19wEW$D%&=tSA*hXR $$)y& TplmAiv,XMxe1Ui)l"թDvaV_f]nDˬBB:FX??WRߧ0jnP!ܝƥ2G,/?o9p KJsf&os&6քh{%]JB' ܳpk+l&oEbS¹:V92 i /Ҁ~b O3&)27r-P=5o[wb6s@8T x M_W'c}m%J!7e^leƤt&3TuGHTiad] =~lϔ&:q) >Wne~ѝv G.q9g/3r@J 2{3(I{ԶZ}F-N:qYac,xc-DU@߉Afу(fS&e}ݣ"!oBHԔ 1MwGv.Ɖ !HBn@;G41.+MYb6, kE6&* ĔhNY]^(tX`]Te2fif(~q)]03bSV&r ÔOi57 >yb^$K C^q$І =X]GZ v)%/`p&&X4^_6kQ$T}lاHi Mek=l+$ G$%YsI* E]!E3Uy-n]^ odұo/<`4q5%5J@kK3>#S&j(q5G{,@\i\/?5ja[ C5hNvgc^6ή~CAʲ/u0.=h(RCAqQqĖ꒪0L0)׽Z7 yJ7ծaa:Ɋ^>(Ӻ׼̶.4cR*&+ߴ6ɵ |m$dZLr8pTJLz]K3ghK4n[VH>zvRkpqK/S2>6oȲ7 ϧ9P6 Xn&۶/\0!~Y JgJh1IPx*Kc_Z5FzebU"1RHBRȜ59vyY*%"$yB{$,=5l/2ES{V8YQT; cr dw0Wܜc^ S^V/Í3*m6לy#8=~sF "awG@Irpawoe,5Xf`l͆L]{ f$tZ'jk-LN*dzeV.(ji̟fK053|Fy?܏{tm*O#?yyEf `}~ԟO(Y>24^EpԕߒN I=UHPl:r}41L*5OpTw#Gt߀tiPʽc 6`Fk6Cv'/u6^d(tzY-@jB![`׬})~3-&Yj 1D.SQcHnr 't2,xoj7T,B>A9남tĘ|;L$*Ӥi;J?T9ߞQU|q'6_YCKLDƑD2^X8=>s@$ΈGZc|IY6[ ȑ2Պ&K tsCE2ul^5@kYƮ[Ƹ6X]u؊G͊9o)rxpT{.9Xփ{ rG#BτVѶ*vQA2|Lk8epU2F YA /-psaA4Rë./Ttrb4)Z3!5Zmix[6&ħx(6yaH $%Ht!¬tSؓ>@9 {=9d Pc`rmxoŏ'4 x8,! Ǐ:ql?00eb޸֪Xsy"hyH1;<.Ner@Ix=PLt)ίO_SD*=(&lmӧ1 j( aa͈Mgtۊ&nv*v#Jx /LF7E, hw崧 t꿋G/#mHBv!PwqqĒԛ8x:p|F&?B}/8~hk;}&0'c&2TQl b:mc!]ӳ݌OT6X^+!ίĩ ek[1R 8_ S%(9*uZd^nVUki"DK_ 8̏9AeZ0ٱ}{4&bXFXgň})C(jzLPiƝx?[Ț'[rdΎue<шcS!CKg0ߤ/#6Mz$ljk fL!|[+܋HՀ{>10P]}ps9PsT%O'>)v8))"טO(IH5yږ,Ocq7NxЇ*͈48`ͦV(ǜr צ2un`=;'D!Gѕy0Ϝ%|^\Ľ^I=]K|u0m56;D81G8}1Cb"sed){[O<% $N^Iʛ%ЋY,+ gLvbeUpsۼ d2*df_o;qu'KuK)#gIIDz3F'Ʊf ūe{ PnS l|mQbƙ$ԎK jW Ԝ"X )HO պ  Piۃvؼ$WGIf8ӯSEw#8lnZF8_̌]˱3l3L>K# Fn s`Neq<)ltʶ*l%#9VE{?mOӚS=.WWHMY[sUVV3x'%x2=\Ɠ{xl;wc+<__1ƣnn~V.+#za8`#Fifd?5SQ[iǁ0uW]h9؊;0 '}ow8-N866[ y*Ōd M4!)W%gtT*6cBw" Հ=spV@njD$1!ϔ0-q3(YMc`q:5|"3:"-f,~IhcL iQi,SFCI~E**|zm]c߈QQcS;؈Lo5=K LLz8 cSÖKngM`#SB!vPUVJȓQޥu _I Kna8YR2ґT#@aZ݌6T9 VO{EZv/,=(Ety"&)ߞ|_1 Ձ2?ww:Y %nYM+߬xaي.Br0^ӕFEf&## GmDFWBe$f;R/dr$v5n<<|e.{I,MSN;T=x-{|FsLvS}wVcj`XU:Rbhw̅F=U bDI t{CXSr4|Yk U q_,]+A#Y*dshPOnp.نN{3dneFv0eRv \$lo Hb7qkk05IENHV@7m'aE5 7#' Dnf%S0zkU*inhECP%$ vڋ.LلOi;ɻ0 ԝ赕_mcHM+ޚ6ª΍.",U)-C<xjslͥ[&g[V]$2ʚ*J?jA )J_mn˯-AlNަ$=1)# f+fCߐYMm0;8(Fnj'?Y ,V雔4(ltڶ|qwo8%9"JK)e$FY;6#-J*c eUই=ihaQ =Jg~Mxh_d$?cF5-won>?ƓGG_=FÕ60S'HZn9h?f cz+yi;IixƸON4.Ty߄!m`}pa * 룺Bi\j]>n_P[Av' r·W`,=h׿/XN8RUSrPX߫V6t{j[ɬ2꽳~~NxzC]Zlmj-H.|ekSL"K`)|@5vB(C!w#SS[0* "f ~p|VA4~j )e'Fc!Z^%:W^P/&R: [@PoóY$^F itE 2n<#9 NShȚlh䞹 ~/,> WWiuL V.JùEܿ𥴫goju[*Z[+{ؼi&ٟ6.{O7,n6#wimq+sG&poۗN{Arhf6ɮw7=TlkSj1|BjΡ-y֦ʲh8&Qw۲j#xW WG uRSQݗDScO2v W.Aq`lаXea+^<ip2,,(ϲ*&5w*M 3Ž/?Utg8VTm1BKpE :LJ''"B*N)j;D}XK87%tCIZ$Ʋ6v+l%O!7y ,d3WM"WR3{(j);lY8R+>k&Wf`?oY7qxz =yN@r41pOYA(}P/?MO.a2mب uT.X(ї.eTqp!W;r&6ݨmM O=hon FZaý}x8PmC; |ygI55\;7ƚ64*Z`&#FWe30ZLE`f  Z7/h@3v6S`}RCZ+p ڣT۾|$ "C z U=K8K]Sjn0dy<13 {'өq%iΎړ UF=mGlp#\|=ct7P>R|ut[fq@ G{bMɋt=2yYXaY6\$z֢T%đt rqU;B;>55J]ɿX 8*.4v֜mg#Vr;ʸ˷X} )md.= tete7/!#Kr2]WMblys͋H]K_cG1*Ƚ ?DC ?z{bEdcw4Iq{zȱQ.V2r'pTSQy38GN& wbꎆqT{:A`蛊ezTj11 28B+;f2s-LJCEgqeٽRZ(80 5;}5b:qt5} ؛z:uZ!%~9ucQ49lS扬 #K'k.O; !nM{ 1Uӈ0 hžg6JUThaJΰj{gPMb1A]L~H\ʷV_w2}jE L %luiL J+:v#!h$Tt!}n4nބӂ"8JLL 򉪼h*;O:1-8m .4$6hR/}U.AdTkN{eLif,<#|˽;;$#D|Ø,te1q0r@&GI`*-?ښ1}25UY6_܏i@=d?\tk<nnn?c~>{ ;t &xKv#: \m,$oB+6.}RI VfakwBxn2Ϣc ?(+"Ӿ+V-- ʌ̲*fv18UF,g6(%h`lAm4h;c8ok!u.}ǿ{ Ȍwuؼ, 1z 9.^5m<|YAtrS[77~^KY aRwNK*GcIH6"p4Ʊ 5 vCc>患 O!mdH,BZ@&ø\jb]Xɿo;G]AV% adGU8IH@S6x +Q= ֥];A%FH9mlc ?̾.YhF9:v4"ƗE7N;Y˖dϐ5TFA"p<#p)#P. j+e@7c)Ф1'zD#*Q/ӢZRZc3H J=Üru)8w}ws oA s۝~Ԛ .ۨ3/ FbLG+#/fKܙ js7c#i{AB9uz2ҟ }.Zb`^,w*J*ᙴKz@$s9htz(⁐^"^꙾DVENn"j7PkQz?xn2+$@̲9SJFl!Yķh잻tqQ¥o]Fwn+/ՈzX~Fyr0։ww <]/[kGf WU->8IG 2!mv^E-߾ILIu\370$Ei4EQ/=FO3tM}hఴƸUb`MrH+(V ace4l( ]Bu%j f!O;p]/E65^\ϰR܂psse8JPS5gb6,Ж`";W07DEx)ș[F BLoi Hݕ ${ ȓI)" dG87!'D;:m&p_rtw:` ڗW@cZY:긡0o[˪w[N.D-޼C%Q~h) |K#@w>hR||N35TeNt6qTg8vE-X DMj)^^P+R@d&٢$f|[H<T>s<9 ٿq9#,ft~F6#VA3"E+Hv6J,a_5=V4l9{֓L+m46t+No(,=H-w;yOx"nO.Kc qI#$ mZ#}wR x%'maEO 9Q ֒@u%E$- I!=! v|K$tmڃGu{k0ES@ivbb#jkaC*:,a̖M":BqQ huloN*N;N{A ݣ8pؽ4c;£u"mه'ŷdjQњ(N?+3<  8|n&`!ݴ!7U?yb|H&^PL]r0v4s.oA\\*\0\:tsU6GHUj;_,rϷ5FjZSe 6IO$阵,cE6:KΩ"<)UnY$;L9kxDג"eW=32S cѦ_aN[ Q%=+8zŤ^.-*[MqAi"Ym{ `#XD=e@ nw4?7@g0 "!*2W8JpH C*)zg$ˤYiAPH2g6O!DvmLF3`* YC֕x8-;Qߜ 8w&zE|sw-b[FC @Da=~03tCHz{$(7 |#;;9l9/=Utl,2( go~U,YI9pt'P}+a@&{hu5cV؛])xj_853k^+M3<0{]O4o&61sd$$.S:7.jg d8዆Qg.}]NEZ&Q-i49혅/<[P+)WFPvP9-1;/mrAIaKNp'7"m__N\ZwږcT pmt1jfE ӷd]3x^݉8zApD2P%aȀ ﬌ \\f}0x,8mtCCzpz (&;ʯzf[J"e/{7ZFtU0F⌕Fb 5uǩ%竺}G?Zwoc}=O~L'}cs;w?[}??w]=\s?Ͻs'7{έ1 gPr"}K? ϭr$ax6{d2U{S5@_xa{^bކ0ZNmOv){AjӛEs&7MAA~f:fޟmnuqgpBcƅ3lM!Ű v XQh]k8 EёKa }ەhmqBF6P RcŪDN5 '[hZa40,eq+ Qq1ayoʞIOOg-nh#`v_b7m/ONu+m.cJ$ ͛I^Dcir4n!J[0\7oxDY-9 lp % nUF+ű_۝9?/?cf'l֚GJ#%`;\ksM`{AG!=t n7#(3AǤ-4% aiZpLn; !nxu":' 0ud}"s4F),msP. ZL(l@_1<$oR ӿuGITKJIgm|-[_lil{܆k?(.SK-'}Ppj\1*sUſGu3"ms* VV ޫ+UD'ÓK"Iđ15G$Cf'$Bb#cT2ސY@bT,C)g9K c.AoR5o3M!B`VSnTfn N[1'mRuBZaرhӬfnG =_,@74.*f]Ő^YƈE a'H&Sq(X)P'Yuփx@HWҫ1Z0 r7#ԈϨnքI@Gq}T GFp/3̙%T5^i<~yF_Q);̜ȳh*`H$ÜJ2|ƥKfDEj%ʉ %#}|5!'CX cF-k\F.ͱ`NNHBL_t =q =J0Z:l~^Д߃o6'Q'xF`) փz7AcdW+N[ǐH55>=sx`9*\42|fVɠ"J5ŧ dbq d b P!ͤ]쏾Ь W;lZqe1>"b9ݑ,? }R^CR {<0ļ/m8$^4SB>DG>!O ц1w4q.ND2C%#C*Jĕ>qh(5xfNx3R =P)B6\.h"ßHڑKvRFD GM\f??Bx-ceS52*a_Y#CbT]T55?i}In;*,1\C-2tZhM*{BcFbm×PNb:r?leU SLɕ=Y/[ۄ͛hH~8Uhm\唽o˰h'$@˔2햾C-c5Y*iEAUhJ^VXŖyʨ0 NuѾ8%1瓠$)kWHXP0<}2)i1HJպU>#\[6N2TCLBOY(؊ʤ>lTU*eh C']a#!RsɄp.MQ ly<>I|R:amd`gxN4b BA5)tP ޸i$+H9BCx`[ua78sd?76Dڅ`[wA67ojX+S#dլJgR#Z㝵o;wtTdhK>}ĭ^ۃ(;΃i[Y֢ B&Wg) zv?l NjrQ6:5>Qo #?(AMW.\`-Ca/cu!XpyyAi#&6XB Mg&9u^mX9L&=hǠ/qBgL4B3Z(4}@_/X j 8oe{cߟ0eG) =?ѻn?O6s?G'gm}m3a*O)Z^^^ Yl`bQW髟ٌ7hTQپlnTB.8xAbW8NrDoJ.3Ҥ ˫vU<{`a}p*bqUAlZPM *C@QںIvtB.ng9FC:cP4``570+w<7ocw*P,UуU^-2Ł_P * Mԯ4W?wshݜprk<>_73˟YWdǿ -p<ϟ8_R?!gl|]NƓ?#nēM7|]UǏV'eX{8=rqX95_SQϧBm<|xpXcAuyxxx|_q:<~ W9<~ /|?lbM+qP,6.HM_fm\$2$]C]߸j?@aJ W}Z柢٫!$5N_չ*&[* x ^ oj+~ڛt:ՀC$0+/߬bIZA|O^!BExq {xQ,&VdSxrYAQ,{Kf9D9.Ś")"g% __)߅4QB(XߘmXbs"wdc %g(:YOI#\V< b*9x50jf-V)]?.Qj+vH[%z'8.cP TD! ~|p,.ƒz ÂD=l<(bCqer^!&ꤧEӃb/r/r/\2|M b4.~}sa=Cb!۹.? sJ*-@h[#lC-:7ZXCZ4L^^9ã/3$4#;k Oa9 Rd`>VK 3pR=Ihs0+C*fLQ鹓T˞i߲4ZZ*bի۶*! ;lyKLbp-X\F)%}˳G4z+*9+B^/S zhUr>n+t}qKc& Yi_M:%w/klE4_'c_lm}3}'G=L][tӵ\5qԈ; 땵E$(ih%o>\+?ńvg?Hlu;9eȟɟɟɟɟɟɟɟɟɟɟɟɟɟɟɟy