#!/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=1a5b5516450b2a1a63c30265887b43c2 # 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 8^[SȒ__1ټdz1d c,Wֳ,y%/3olؽ*zzzzz?3siMwwz/~aw{ux[?P3b+dhtK?KY3=hr껻{:{6_c cDG8LaiF hH0q߁md1gBY` ( PO ;4 ie,q h|!/ -PB7=\7~Z3X/ni}5:-xӫAo^5: uLu`@׌*;UKW`xK}n:^lȺgR7/gTo>`og>i^?ЛWF1\K7~j ʴZgF+^w> ;TvӶP[z_kpL&(DlWӚ:|h0FsUr52xZ9 f`zW}uW@\ 4vH75㈵)PVcР΁ 镡@z۩d_v@4n0ٌFƨ *y5Kk* \s%A8ts}\Vi $Щk0D卸J3h}QxI`lHu xZ čaiC~cK1*,;CSugQ 6K#_NKAO~omӟ)?jax&uW_m}`0{HB%L{sP3)KIOьBk'D-?+4?V0τYO BB9\s՛X[ Yh yg(Y@*d2f\D Cܫ2D6၀ ?%rʝ<a?uYj2r)08WJI]!`Ed!'cŽH'V8̰&"55;`#agab}`To۟5 p\bsvPe:ӢYHYAs|@ \$Yi2q@iB&auȷO~bPL]4*AAozGGT6";*K7+'+[SZZcΖSG'txdײRf ynW&{%O[t 6*EdL^Q^e6a!84p [׎)X"X1tCp(JI d3LN`R!=Y+;25EVCv9E!ul=O:973ddsϙKo!&Y^ i|#m\ˎ;(!7T&bNd 1q(@R6DjQ_$\s%>&{Gr’ib0)ofHĬBa!?C2xw_UJS޹dBc@Fc6-3*ۃEWG7!Da} } ru}"iC.""Ldѵ^TKf1Ofa5{OBg%'3g#.P*3R,M̯7oRK -ǽ7cQBβ\؞/0H.PAS))F՗ MF̣ش|ǭdsT b:f&b 4È`J^M}=N==j UȏyЦueK3.iiaj>~sYDE5̶"QeQq<*5!TE<ׄI cW8v!"BQ6A{b%&!.&@﹍ܲz7k|Y*%04rY HD {A\ Lac q1!i\5}׌A?0>2K *M57 J̏SvIڥpjNY؄e CdZlUlkzcl`JML i`EC\P-|wbBpnKj|pJ;a\˵_*$m ?jUB4d7YsO M 6EbCb߽{mv#T$/CP"I}GP2:O"QꃋHPSpT,'ОPqTdr*ZGIsY8GA*^G)vwH=>UXK~)VڞPZVn3jT4H%=6'vYH!S;g]s/eJB񪐗 ky4-gc1Hb* ʿ 3@yPDgbc8Z "+=˶ar-dYN"qtBr&A/'Q&)L$RChQ $[nIQ³9E&x PS>CjDB Zg8֔U\9\lb ݧP9Eb8]k%+Q-D)8%NsQZkkYQu@^.g+Tsz~b|'`1up0(~0bmpDXx1)w?m`Č `sdXԔK+}qNgjR}k̽z/.OMmd+ٴb o`E'`eٕZ&Pjo/FV?t3n/e*R>VTR96$Po @#)UѧEzegeR1B5I3bUabLX0,ѪmĻv rٶvfVnv?}s'{mcnAۃ?|?|??yȣ13\[}D?k7=3 Rs fೢ[~5;}Oc^p#G7wwͅ{L9;Xh<*2tkS5E1l#C^θnL0r֖y&~/$ -,MT<J&"8٠ܨ9d3Q9:Sq(`$4D@1b}HvVrplE :EގBU5lQGz5r,q J.ݷJ)/IԣB~__<{Yeatiұ7o-|z~Y"x&Q3QxgIZ"tr((ĜSA lQ}=c>&cY }ۍ* @r~Y<t[lf`pxJg67Kb][0wL@e$W;Fg,>auWpYY_]zxHˬ^@CXWA^]͜M^xpE*a4RBXCh3[asC~~۾hyyBʚ< eA܌\pS{jHOܢZ ]5/AK^4ݥ,r/ 3~76& LoB-cL.Q]KA:_| pdb7}ˈXDMj)QֺH«zH2z0Dq ctU I:3`}NvIlnZygA#ڽF 7ji8B@#̢n74#UR\ˈ,&-޼y))S-0QS9HQ034rd="ll]8vE-l˙Q-æY / oP=AfC-zJjJG5ŷt߾i'\tN_ $sr`3+k;vKg6eTܧb͚nO40TʋmR eJj@c|qIvIvHطu=M8jNS2RpuO౻Vޠ&4Tվ'N %ɼ=$ҮMnw-Zɚ#-B%,7JST2?J4ȁ!d E}Frauko~)Ds0G5eHCk$spOl%`l$acax=h{!ya'Z*:0 Fx6 ѫ'GhO,vqڋn Ɖ=h c\ODaoɸfnnS*y 73rm9`!k=ڰ@9|n&t97*ݴ!7ݼ<*dvIM,2A1vI` 9u BNTL>W&:]\~:y^qA'l2$K/>U0ƊPӚz rf8i$Lԓ9uqMRC{ڑ$£j'GQ GQcSbsFx-xy(.Ȍ6ia}r1&/OHG[48$=38{Of[8cy]EO\GxPx1o$kp-/'$(l&/HkMFQ)"ui͢GJoJoNDg7WA Kom}4Ն*7Df?1{;խqiPػ,\QQqr@ R!ite2{ d4-`lto7sU:Z.gk{Z܊̓ZT\n> x[߆v׬S ~Ja]r/]ns2WK49%juyمWBeS>T8:;ޣmLm e]jʫNaϡw5[;B-8`Oɒ xG =1m~Yw!T#x詼a{FvT}?{ nufw,;h LrΨT֢42FH" ZI(j$?18񰹮ґH%#A,X&t[6H j°10,eQ+ Q 1`y|ݐ=V6U`Vfw%PCzчu.y{_TEXl=PD)[(^&55uiMBIؘ]цC5Tbx /I!a= YRi\)='iP)#,.sva%aX3>HY-Uyj) /dd}B #jqwnqZL=>3L?3L?3*g#.uЈGЊ:Fu€q&kWv^x#]!ἉU:3,YXy HI{ 7[ )yAKF~'L'[:2.G16" C@Rd5SDbO$S~8s8maT(BgJlJi:<4;8N.->'%[ 9z-md?̅ss_% '8L oDń` B CѷlMiw[QʰD2*e'hk2 /ʴxѸ 䌘f$뢬yTj.4,a:=ѩtnH4xl}2(s#{[cDKX鑝"ԉ4!u_rv +ǎ7')~9U"ws2p]}XrFECxL(J ~ޟ' ǧ}JvO(~2f(Z>ŧ 3b7}dr)Gyz3C_f֚o{(sd?@P K.ڹ`]"wN"윊!DvJU"P#a|L"X%q>'o\bH RlKgR3#q11&J$1ے1/<>ԲiI)mW!3O}\շ/5gdgY>yء#ޯDދ8s'$MhGpB@иE<3*'<<ڗ>ը|Cx`&ӎ.;8>ۯ,8.nJ3iO sPs <5Ġ/@ h䨜W +yP)꼯fX ރgR(zU~ZKn,5 G-ߋ8GJ,SO/MiҍpP>nhj 3N6•JZڪ.@F IN[9TCa]_8>y*@RtyLhd1 rEJf<%۶82%ㅠ VBњ\';7m+RbgZ(˔Ȼxz߷aO}v J-K1˦" 5ZglJ&DO)yhpٿH++)/R >e㨗Ϥn PJk޻jfSh;zfpm WmɂDTo"whv Y CqQ &W1Dxmiذ ήTH^{wcmmUg"1PAoēj[թ+ µUe{94L^' lY'xűa 2LFX1h!dEa,:iY^4`7C $C99[|``EyJ~[4i||sA/z:L 9%gFm _ib W^hX64m{G''^p /͑3\0pnYPpp X/L0i/:&ԽBpP+ J$s.sY(,b1 qzԼ#%RWXlNWj| fB"ŸOQYO9l#b:;cO6 ܀5mhTcShBh^Y9! *En?D2"u ^n; Pqn?)goz?vNjAA-c dv^IT0L/ryZEpHlc-ܕ47]8jvʔ:&bNѿ7bXOٚl\܎2.}AZ tΩhte7ϕ3#yKre.bvlyuɓ@$KrQM?e5?PKPhecEY= c$!mZ9D$D žu<<.V r'pTS.fpMTdbN!!N^GRhTḈ̆Jto`z5D]TTtP1%,݀AxٔީD?3&LˤՏSЖvq&ئ|8'dk"=nLH"D*4B]h6~/Ц9:*ZWB0*X1!Mn9T-ז]\ pAoX]]VKNc~&8ӉX9BVEG`ԑ^XF ?"5 =9%B,K|L(6FͫpPGYq!A>wzVq0'*ey X崯E;蘌nٖHh 2Y-&lx ::ԠHϠ : Ƹp1,.`j*Jv[m 3FDÿO1EL-|f3ߙwf;g3ߤ_$¶a)MC`Wh3D>Xfy|~+`g+P"u8ģ䢍 }Z4`6$a*a-0ىT(wxznnQ_ /+ԁd%>8pfoE&&G:70 Uhѷ+z㮑!X'7rnx:u"/H*D5'Z:N((24XBHX< /x 5BMDZ"?a? ~^55~l/8Q+ /sq\TVDm%w }Ώ=Ǿ6XF\{l9Հ _PsαyryӅ;%s.L7nDӆ̜9k_f݃qa˂̈VKNJ>OKcR͑`p;s, 0p|R6;]|ql_.g|}"4A" Qb`sDX'=rIT[uU-\yu໒Z6i#3 D$?>cdcn9]ZBEĮ|8Pi+=I|&41I-Ț Os ?޴hHo6ƛ=y. ųۤx,A~;BK8a;gP^kON;;!{ Ѱ5/|yE$nۥr2}@Nzb'k^}kf5f_3kf rjA9!^[j^%D`@۴RѴ#3oL5⍓Ca. ,QW AB BTC a"qa69uS;L*'y(UF*JrQctHx(R` ` ؎0 6mIBN9JA:``C-*42M4:cbV^}C|k=sJwBhbؓp&+$Y>: ؚfDНx,2 qpX<6b*ȁ~:'<&蒝Q-m|{!oYϊPj[hmfpZՖ 9"XdS]$ X˰Y !>]rȜ*•ק5R;iTNy$l&IÅ[ټpe=q'bCe1$#*7nk=`sioK6r&0$#˰hC.ĺ@OE~K-'˔FJwysD.4uVtu(Z~O0vPT㝵)6 -fwķ!4pjJH2X ᧌CIJem|0F+l'%9k4-%6/LWLz8/@3-SuύKA%iۮ)a#y9YVH'٣a]6UǨXS34b:w#Wld.qEIȺo ӑT#@a݌mBb@CRq W{ (*J)mԢj'$vl0aFE|`\pU;9 ODP[Aؗ~f"mqJf˪4AJl;]oa_~B֒m2m{'<[b%A|w0))#QpRۥZ(ivȋ𕽲]:Tfe;ªXO5K/DGݨDZMu T'r> *s"1G=9 ]@DٴH[~5OW9y܇9*lFv-{8TG TH"Z9{+:BM7R K6're೔Uke0F).)En#t.q_O@tcwx L%7EX(-,^ ٞ20ru_y ~=ka_ 4SD㜈~I P/"qlJD#4SGHW?=Go%#8)eC Тo񈞠ݣ82 Ø M!GIꀲ,@INW{م)ж)m'y`rULNozԿf,X"cMW6Zmxj_,Cw"G¼:TX#^@!ƐG*/>no$2*=(īt@71_mn˯- 3{Ƥlbs(n Pm72|'6Ml𨾷kXڪ`(rLlU88z256[:#"_$k߻Y [͑X^%U@1hsM{<: ⩠I5D6 V&ы^,|LDCY#B,C`*$ 7$2eL`6ȈsjBC\&~'|\;J-89X}{'ﵝek֊+{ioUV'u^벺,*'Nj6E\l`m'1?R#P(Q&(9ܑP I`|ݗE:>YR Om3&ܶQ.;@ZE>c"^[Eln1> [u-lFtPgxtNGi F~f?TSSLOZM*{PszϗIz;%hX=SY [51R+sy@E(Za!mߖT%c9wYX =n+#>L}3}/[TN+Ե2hcݩ3 |7ȗ24{һ=Lt%^.?|NZdb2dɱ1MyD^(3gL,캨z"3\+EtZ}]G:H3IiQݱ#fPy'LN*ooصeYD iV?~!vGe42ڴO6ga>04bI%Anާ"(XPXL 9\O>WW#%e'YLx&Z],'+_33L;3L;&2]=f.KrNm\]|T kIghu;%@< q @HLtEA`#e.v'FUHѓMx--VJĨ!>UcWת Me"̛^ݴiñ+U (#sTx1-?9n">}N51#WYMƕ+է>5o6Z0j4ɺt4 e!2'@&GiޞBV a;ŝnd^H .c`B n1kM2(^Ԣm 3.PP&D )ٛLndFぬYDDe]<˔~3)&>xl繂kE 2'E7& ܿ.:[Q 8\M|ɠ>өx֊s) ڣ6\C!ie:wW:%A㊔w HkܫL8ߜ۳A !/1K4:x{ޣ֢Mя:%֨[5l\!N j`o< ɞdʃdb {[^7h㑁j3ԋ)v(4Gi.jծAD?uM3A)'ΰY%Z> UMo3 viizt`dtc!B:6$&^f'0'̼zN6Hr`BI4(D= Ej6xh_FhP0mZ9 ԈbThaAkLd@76*cfQhp/MXΣ T5K N%g'S#Cf/; wB#8U”ϟoT`H9aZKyMK򾥕\T$p,{Ǔwƹ9JY|eYi!oLOsn?t32:(hw:gÐH55ސF9^.ї|Zq)" ǩAS C>[r8r}(\\yz`%` lݥhIX+ +(ރyMɋ4V%.b@ !I(ACVҹSe7ѼMSd/@&H(a>/w~/R /w$OnH3|8E*3߆Gy#'t9!#OM1E.;QCBGx15~P s7g!]4}.ADA:BKoGryy[T~O} ?o;תb v~po' u(Hpļ/7 geX< i/V/P"`d?0,.,ܶUCƅ-- Z1mFk{uڢU/o^G;KKd&Y퇢y7gBHUDi(XFM9r O?y_[ЯWUp`fxO}aob3Xݶ9n?a>mbdc1?f3c;3GtXY\'7I/"1͔xcR|Z MuM1^Qa/ʆ0pXUrݮTN[䦗PT*`Rj@w9)M)G¸CwU/;lFA}Zeeb ?c2ܥRhDl]@hp&t7F:/r7nz^CX]jnȷDb/ y`3 LKƩxGN+jɌ*r$Ai[h{T#-ȇWbݮRš_-n9䖐[UX#ؤeR΂0RLP?KUX6J?0g/ L(GTKG/e6GwB#𡫬Ÿ4(*1duG(*7ĺ '̶!:AM.#v'qHQbVaď*&L'ASUYf*V&j:h/<#dHҨlj,(U^Ƞppe2buDS '7Ue`͈\, 2+`]>&Rc ބjEk%{"lP+BY{Zu[T $a)1f.훜 n?@xSDWrY㠐% D/p!LPQTcjL\j5 "F|ON5Iѷ0l` ^6g7'i>JeT<} >U|Mۥ)om wzyQϞs0jT{I3 Q=O y5hi(a/+0PV`I m&n^~Ak&s7t8| yũb9)ͥMzLXʳ('um@2BH9֝`}Fbj1EE bs&Eu.Ri&n!W8Fݩ^1k=~أ/ ]P(^ŬyR[I0 kӀtT. lpgooʕZo?9PN,93.G=7 h 6jE/.$JJۘ=v"T;u[tUFWa B}oy`@ kBw,߭j[A]O=TrL"Ҋ5F)2=>mvSqV(}=06%:HV򷨅wLPS1&DoW&5^W&5Nj|5qKrڷtfY0%00++ƒ̭_v ʲhJr&ҴEf*9ۓ<Q b>f9|hcm6V/d }æ'QB(7q4,# Vp[^_D5 uc3ٙqНHy]CXnS U\5UYjYT.'bߍ 0Nc, d\o#oO IFL,@ BݣG.St,4 mkg@jTϖgP4GW[ړWSE= {MVʽb-4͖L$)I]%ھ2= B&dH R}b2rQ.?A7پڴA L09+C d}jRMjcK4  v4)puA=C 8bSYcǣD!Zd2a_c=4~NN=I?ȝd7Sh\jHܧE#hw؜@FAaC+AWsw)CN|#`H* t4L ~(HaĈy&3\ůMkBC%^聊:ߋI{W.]65lllI&Ehf`qR%jt6-ZHPwspN&$dI=a&E4 [20LaXz.V+S8J|Lc  VNN@ dMb1)?ɯ51,dki bghiժQHZ뤶q`I"0́T&î#"t-3J֖jga .3¬0e3_ S^V//2fÙ,t I?˧e)2j\0Z4zX`+$v‘{9nAa%U{zvq*m u#}h[1g/0qsSXCE cnhm]O7m#Lp,@ iS8Tehk].`8`?%P vg]dAw/ҬK1ʪ~lMѫ,'tbn0mH̥`%q8pZBO:\h.š=x#ZMeSlb-87ƽkSk~iXm,g)gP{-x@ xmPE`= &`͠3#&D^c+Ѥ1~.KlqӟoS5(G%m8y3TP~L/< Û|tI͉pmQOz]C%Q]av@Ky RwI\w. 1ԂLJǑm!$ ilxPE|=Gԏ=>i_D82 `)ҟ٣;4?pA 5#2PNCTau|Dwh@0CRN"hnA500c^|zF[(9.oo3O@3#.*iOkpnPseꦮ/16@ss⭯RA99Xy՜*IiFG\ŝ(ja;DB}d,PXKΆǛ{Mm%`fvkb23ֆ#Щ: *8"rrpόH0ybQh^?Gr:EI6]{y2(f2HoyW[PL4*&RAf;o\!нJ#&]T=-xRhye튆,"C(^qn6Mp;crFk!;l"k\^wY|VY&k$| $͉p+ ;I8$5=Tf3rtZ'jk-LN*dzuVϮ(jEJ⿛qwĘώ_^Y_}QYYYYYYYYYp&E@I pC y O7d龒h8=F%G [g{]v@-V6pnlu!eƢUT; TbI]u7}L@Њ'a6Ma  WqrwߜpU D/07~3PBYWy\U })("v688>j'ã3K`9()3 UDnZ Zw\.[>WUoXQMG\'*ȇs`ty0%~qo9!AxѾJ5~*XuZB_HiM' I]{u:示IxH!gzx0ęʤ]5w,rJ|J'ڑmE*m_~m=}(m[a&XUdg%քq>qsojy~E>g ^|Ks~1 /W~ZMiuyOp[z7y#??ʍEڍBen`tƁtZ6A1OzeGuyaAMӯUt<9~h9>c8>#)8>~#7~v#)7>n飨6>f(6`+SB['{ftB=->\1/H:%]/=]}Z;[ML׷8jowA|dƯΩjK¾i.{ p1 ~p*K֭7t6:,,6?,,EHNo`BQ2|v "ﳽz^=V`2 6<KPf1%r"Hh!PlʾR}.Y1~asKѰu ܢ\{ s, ̶=;8~z1f4㥙Py;Upv[ .H v>Q;j^VRъ=4o2`[}ܤ5|@zy$jspHSL̙!;>}< z jOz< AEfRN{R${ 0 Cf I빃4=@]4!!36y|ත aJ6<%&p|mIw_Q~c"Giir!^%eq\!$xa[oN/niNy] (-|ʑe?lL=>b›s|zIJZ6a| lL"`l|BRXڐw$63>3>3>3>3>ϟ0