#!/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=f91f4693e5d686b15347b71d319a9003 # 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 x~][{sHͧG?g=AuC,EH$~Yg.Dt_fU]3>ßمχ_={v?݃??S Bg`rK?+Y[djwcr 7Bs8H7jTǀ[v Zlpf,ɵ={<[;2ϧ2&sϲǶI}ՙsCn| Fq`8ޭN鹖`<<$ʉ0odzЂ`BdEƵwN c&0!_^V(t { AÔF"A`sdN%0La =hH0 qׂmd{!gBY` (PO[4 ie,Xp h|>+ -PB՘;^5 AV TX2P/i+5mxѰ7ЀˏM H/L(z^;*fw*ZVgVu,X7RW Y]*luzMojkiX44ڪ4K W|RC]4;XM磌 p顲Slv쌆VJkcJ@ b|R+D5_꒫%k7/0ꃚi% FP ;ڤqM|R[v:=66s`:~:TҞ*?T{LhlB6(dy P&B͵i2JʺyG=W-ϕ)56UCS^G4p. ',kuVfKr0MfCk]HRTlt)ӷac3c{RhѠg 93&jEeJEj`^V!Hm[<DZ q5IwP|Jcc@ܨV67m q?d;(pcc#pSܱ!5'c\kH!B3藽޺uMun ];TgbQn¶:=&Z|ܠ 32kǎ1 D4˅)9nz<ρ6>7{ZθU;lєb j  хŀ2ĸ3Jtqc!"kŃB,ь =:ƶd攣4̘X1B- G_0tF ,0`>[\RhM2$'h@IՅrƛ5)zQX'I2 -(VuP05IiO_dboTح -&(21[гcu: i3_%0(.h>@C&a϶7O~bP<3<1BS#~ TKepP5߁i 4twk,e\d'ÄSGKױgܹFCu6٧KjV{@cyDT"VY&cFxB-gA ^Ko{jv$j:Uj췢/G+zZw b+&FÆĉHi['|лN67+Ҝ6`'>XP)"czukfG3<x)- 0͐RI%3,cR@漀`AYdy:b^#]h XTZIO>b5C\RWgI}S33CFR;wr`;7ƍlb2Aps:$0)m,p V$ք)'CDqBQiA}% y(1k8@5h:h DL9׹W36lg)\Xǯ4eA0pg 2k+ =}Xt&71SA.NO:uE>Y ,S>fZXNd LӗڷoɃ E+H6x& s0Q4}E\FѲ-AhN!f[1-&qSΒ4;I !)F@J'w`ɐo,Ҁn]?>'}&Q(0?NiWpTc۵zMPo0t%P.݈b[Q=SbdbH+Rj@F޵ 5-Qq @#2@h.FHT!n[0weIb${fhJ ,"\'yݽsMn㌊:wZ \1UvMۼ*öXB'4rS3J}pq ju 83#2x8F<3[NE(}`vHŎiG§ߒ_GԻm|TUW# RI E]RzȔYOKǏZ2ƒ+R\ -)7e #QI+p|L6*K2uYR3pSz`1(EG+7H:򑯄773דN[([\p@. `.1D3 WFћw(-Y9ck]0 P^뗳JHK|l EڏBK]뫘iCLBe8 w+d*NeW&\ÈtNg"k,˻SZԀèWGrpV[Y_ړ1p8OZC6#~"wq(I-dF 8jyVts 9M }Q!߬`M%U*J.lݼΨ΍PH xL:}0.G~8^Ra-lÙd A7Rtx}"5"7tN Ԝ!nAi"!3]n kJ*.I.6p`N}P9b8]kړ %+Q0-D[ 8%Ns 6RRQu+GQ.c+9YE]q]p0(~0\45f>ct43F(K!AEM(ZX&}{4]Gw&wwylj&]&U9f66$#jv!frHq`Ԑ ]+cە"b[`!jg*$/esT|2Ja$@%. m>)rIӖˈy jqA'- #NWcÂ!VmR/dٶvfVbe7[9㓾C4)K@y w??/^yrϟz0m`4۲u#{@aBԚƼ#W<~"e_\3y٫Y8]WIO8'n1ARd`p+cCuzWobGZ&hdu44Y\7ypk,,= f1P:_ְ_qR'3V"-yS_goo,&tMތ|n5:qBel20MI.O%|9VB;<7jTcְ_͗Wzo y@iW/Ln! ѝ=Íh wL@ W6lO-MRn}(|gjF͜>D<\b̈8G#!r!F״S#ѹ+vFFHA|% Z`EzWw҅Bo>ra7Uo4 < y^T_:\|,a9 Y`Ņ\Q4{Cp> /Iԣ\ԯ&Cz/?*2՜B;6a3|V2ཱི\mSRK6=1Jq& ,Q%Bg.(,^FA!%b 2,_`e2!a6ʒ8hvȣAt0~ݗc!IsVnZ/? cēV8YJܪ7*$ysYKotjN#&?^Wp G6x:=ʞ D⍞g=-B"c+]OM^xpyF(QHb b Ol =dmgM/ %O*m4qS.+uN퉫!9q6j-v\۲2OZa@R+5DɠW}gV\R۩r31Wn8E߿ҧh#aH`;gb'+4hZbYjꖰ'3_U]uTթSgMSKͺ.3UMDj iw׾lגu ˷=w})SGj7cm%0m5ꣅ.l/U@W̰ON\6Ҥ,z2氃v'$b? ]baA.b wT0 z!'=E}ήdTLuxk`9[-ҌwAsg&ݴPr"%\TG(նQ' nc~{Iq}ׯ+/\˕\=>?\s.Qow]hģchES\#:a@85+} /ڑ.pD^zB*,<-QAVc#F&}IBdң]ƈO!_yD))cX'lu) U9pxmaT(BgJlJi:<4;8N.->'% 9z-e?̅ss_T '8L oDń` B CѷjMiw[QʰD2*E'hk2 /ʴxѸ 䌘f$뢬yTj.4,a:=ѩt<"!qpRdw^;0瑣a+#7 (e`]'ro"n^5$B(|$x(r;n0b_Ĕ'o$ZR9Ib;V3p*ԠmJ4$@/ժ"jP׮⺕_p=ʟσ +\}s= !ݐhB$ePFlGJZ痰l#;1E(&+ΩiC.sͿ0/0A\ W[owR: &Dd&%ບ$r- $8>GQ!A|8NO=O,ݗ(~2f(Z>ŧ 3b7}dr)Gyz3C_f֚o{(sd?@P K.ڙ`U"wF"윊!@vJU!P#a|L"X%q>'o\bH RlKgR3#q11&J$1ے1/<>ԲiI)mW!3O}\շ/5gdg-Y>yء#ޯDދ8s'$MhGpB@иE"3*'<ܪl҆ f@-25cUz`628S,n&JN5Yi ̃nC*& `0pRE:y} aw _a-ՂA,Ռj"ýDPRꫲbρ%Ep^6Ƒp5wg!vIʍpJ>hV,k -6¥ZZʲ.D:"[!TC]G8y2@R\ωOفѼAc凔tr*m%pdKg Aɍ)$a;NvnܽRRbgZ˔h`(o"f6{l_[ w`HM-#T-.krؔL5M ,SzdqV#>R^ W˖QϟI*ᡔ£uKLNB[p V0jcؼjM| Dz ϽC T򋬌dOCh4Y9,ċnN{ĆI@#Sŀ#yݍeOevH86z/%S^x.ȟ,W}XR0 {\rXzMkg]ǚ) 0"lZcŠ ec!fKo{]'/ l1%bI^aޤu Υ< 3ºWCX34|!6\}[cx™64Cw@NAP;p\¹bu~wCIZ$`07C m5^ Dꫡ#Nd+R2zUsq^%aN'x=E}xP\qtc|93ER;Q&i%&#J.`Xiʱ@ Lk nfl qr=lnU58;hh`i:905I06Ё`𕃳Ϋ8WK8īNJ4RaPa텶0iu)_!q[.s|_U/1}l =+'B]:* Cb2R x2#p!G;R+utxwY;kX-U/R,[϶?A(;3SOp)lCEk`uBMn3%\T ?.uY\\䩂 2h&fJv4G# 9K& aFf*;,C%Y&DNjAiۛĽ8K|qƮRd]idO!rPI7 :I0!:$0>Lc+Ly5:y |!Y!m:0GW7uܙsdvیbM?wxvgc^TزT͐ N6LPhlne3ϴy"7yZ1 -6x]J~ӅOfzLc/Vjp{+.6Ք9U(Bg?EAJH]f ya\98;`$P)fWW< DS\s\P6J#x0֪Q\[A;&N{|CY7˃Cb]*wGe9u"o(IH+-n&tUHJ-L3ΐgʻYA8OgFerACb,rWutLpNNNhK)KUЬTY댖m[o<IfsMSJgP3cSvEQ@p0rPDitIq;- J3[i _mΘ1EL.-UJEn=>ononon5mXqP'fa#L}16(VY_#`% 0o<(hcD_Vn. #aؼJX@3v"b🳃S7(߫׏DNd%wfoEV&&Mҽ00 Uhѷ+z㮑!p'7rax:T"/H*D[uZ8*ŝ($QPNe(Ex 6_:j kpDD~x8F"[3Sш:hr%O$;Qi"uƐ@I޼ \P(+e@R/CǬ Ta @-lmm1VS(Djd֖zy)y loH7o^Ix,CR9)B,S(62|%ʈ-3RN&* Q]p޵gJd%]O5w4r8 T)TG8l^;zuƳ2vcYprݖw"3K'3A"aܸ0ѵXƺ>>şו^lfDe-v2"Rj)׷X?}hoaW|[}Юw:Q-k#]0TsVD]`tJӧU/֫㏭Żj_6h@%2.Ͻ+*xoa zFۊǗhvf0rv͒f͢RsV洍61M*VjV־Q$-Hs"U(',)٠p0Dj u%1J]vCcJS佢xYT`p. f2.ZȤwU(hA}'8Nb|"Ӭw5D8Ɲ1fbiwįCtϱo Af9[)EN,5$\sl^ܨsO|X-=[c'xP$k-%:8aCO ͸dCLR f(S✂O>7m46қ dmA;l H6G58?)K$)ߎCRbNhgړNH`Fe4lw K%h^Q$##vie3#'x^Xq?.-'r+r+3ANT-ke5$[kkCrЮD5x=Wݦ8MŎ5AHxcdo7H a`0H3j}jxDX*¤l:fV [ qЮ)xIdV9#jHEInXY".BX ?"dSn#jRmЭP7x˧ nkLl.2A7Θ5AwZϜ壁dA$IE@A0t dOCADFCd V2lVDk{`{':pEvTN7[[d 'Vw<6y zѭ|KcQl^xkA2tSBUOԴ·%r9zVeI\Mn !G4a }{CeNkDiBm1;8{ pʊ*_ IW ]f%'W}(uJ{$s1B7J!{ ib] ESKJ*VJ{ӓev#ͅkab:`:ZIt-`' EDۨǎbW͖C3c;[RDgj85%Iſi,SFi㡍$lY%J[INIcS̒BIXSǒZ| R+Y&=A cCÖ݌F텠NmWP 0񑼜,+O$NzœѰ.cT)Aiw Ƒe@+i6Sa{M2l8tآ$dD*b0n6V9 v)N:=7jQc nbqpdH3>R0*l"(W ‡ KjLyɶ8eU o@6V7G/?B[mkI6=B'b%A|w0))#Qp\ߡZ(iv𕽲]:TfeªXO5K/DGݨDZMu T'r> *s"1G=9 ]@DٴH[~5wW9y܇9*lFvŽ={8TG TH"Z9{+S938f &1o^m 3l LN$p+g)㫨`S F]SFH\\p9'Ёz/8J4o '0cQ@^Y0Q9=e`IV&1Fהh4_9,q^|MX7Fi\< E {*FqS$ˆA4E=AEsGqe@1E.CeY> S6mSNn? ԝL8c9-X*FƮۦXl*.XվX^2D4+YuF.BNW!ɏ>^|Zc*SIdT{zQW J膁obW.,ݖ_[Af6%%ٍIP0^&6S?::7oVeF+Nl9+/f(CIcb" 4(ltX|_;"J OHZK% PZi%URTÝ6óSA<0؆ꗑۄ_m>7y>/WVJn=>wn߹wn߹۴(13G8'?X N?頜2+Fst|BB( IO+Fhʲ)b51.bX) 5)E xzzA/QWS.[6ˈ.}/T\]4]]X랃f&ߩҾ^UjU&WYU^--[A6w#ܛ &j{v4'?:ۉW!̪1e֦?: W<]Ւ]լD#$ZmdK6m{Ѿl>VW qztXʢj踾c~]~Kq0T>$Rj e=`;j)T'F$kSی mԇ&Vѿgmr^~X+˼-b'an塠h2N D(m(aǚu*pLIˡ^y/jNj9I4pֽxsjv2+a1:jszx.S3EQ+ 5"ےʹL18. kAy{݇)AoU cUS!⚯8u EwjL L&͞@1zW_Yyؾ5:$7z|r_m vD.{'J.x٣6 .jޱ j4JV_=0LiDTwwH^ )venCO_Qcx̳6mӣM#}y}\~2~GZ$x5Ѡi7SIOpc,({ap.'KMƒbw n{=`w |:`]ͷ7P,\᧿V,ͽi"g!ărh :(؜'ʘ*P8}<^L~H#!: `V99u 3\;g0|35Rpt_2_$\N 'NO*;XK8E Qycd^KsoT 1jlOmjuMqs&&W7m3spZUJ@v?xf}'^g a tϛ&#?DȺV`@؉,WMД|G+KOFk2fd[2ޞ;A u0+ &R#p*¬01k ]  U\1:\ N{rO/NQ4"0XZs 3' 1zLJ)F!A1 >uav: {]`9dJAy#Q ^#NAPD8fxγaO2 99-1rڛE. b, (9ڣ,HR̅LTzϸ )(N+}.mĊk;0"pȌY9Ή, '˺y)%fnS L+3 |0"؈s6eO2(nM!\]tp4$N5A}fS$#xYST# GK; Gm#BTurrɣt}KN )A׸Wp=;?{egB_ait~ϽGy5u+oKQ k "B> : Yn71ֈdL$S S@\#TGE{ xW^LC)9Ju1T{v5$5n8P iXM91vͲ(Ѣ=j}?anDH3OE HXԣ-W$8 bnCbUlvR p̫4^ n#$ &Db:A4Zfeu3.h6@,FvAt9jo0 pa ҄<@UĠ[rv50dv"xzp(D:lЋ#l^;-LA dSq(TtIѴ[ZEE"9 ǂw<-Px'i+,0Ƥh8#6z/XC!]=JO,ihϾ WDࠏ2xhV,!MA uC`Њ7}x?N<_Ă8a36 TS] i$Hsx(}ɧ%a1NO<"/Kq ɘ>/9d\)o@M%7s*?qbυȕ Y] 昻 8f]ʖ5B=]McQ"/!۾Tit0 a+ksk\wp?^1h#13A/ƽ&J~{l'/%^^?0o\Gh-ȶ]..-K|跠C^}^oÐWr1|_$%7ri"/\F!+Aӽ=F`:؊JUؘ1pţ[VVXԡ~(oqn``VDۨ=)\m*ׯ#2AC<ū`"Qrp0sw&?Uyc՞AgVXAcvE0 (?!1]`c 87 /1?h;~w+/^{|r#?r#?r#ϘI:|}^xC,S.77I/"1͔xmR|J MuM1^Qa/ʆ0pXU ݮTN[䦗PT*`R{@w8)M)G¸Cb_w؊΃662ʢ`~dKT.0'~\f%LwotcPmRL‡R <8M.νP$o3ۆLb =6ڡǁ#}DjR[?_40MTg嚍nXQ[Q#wS?a%S I*Va3V{!Z P؊bM5ܜV6#*oCp+į8JivVHy*Xze쉰i@Pehg힜?7D"HFcܾp&Ԉ7ɪHt%5 iY @AD9_" 7hd 5@55VC `aiT^} 5*`{vsܡTLwS] XZRqU9j_CEןgoXa_ϓ(iu*]4ʰsvLD*rUܶQڦ%m|vrT?K*ϕlaǛMaӴ%_!ܝ0krE1cSpi-ivrūʶ==BGQe.*134(OhgHhRdud4}c)~ /=3o1%B,&)no:syM6fYʊ0H3a~%>L?񡁟y(]7G Rdf:&B ɞchِ`t+ug@(+)Cˆ2Oǝ,$_9r1`d[Լ8Xg$98 уfRMM`bCG=7EU臷Ca(/Pz;Rբi:Y%1i.[zACy]miORs*yT8kBPk1lg$'Х%LI*8,W/7TQ?5!Ej.KIs&Wпp Qզ m؟fڅ94_-P\ /U"WWFXlTkླྀFw\Ad%5?lI;cF)6Wq{Lͪ>E *'C? ?(y,Hn|srI*1G&s"p/@s*TC>-B혌7qeG*5J3[ }LAr{ʰ@RQifQCAb K F 0BdX-~uo"^*BTĬ^^3NZ+t麶nĨaccK|F6)BS5S㍭ݟzFEKbZ nNvzĘ<0̄FaKI#1, Ujeg'.Frj!Bò{0цF|{<6u:BC-=I\<'數+y\8OcE-U8gڑd[Ocŝj9,/;tA{ܣK_<92U'N7>*DKj>m5 la`FN/2sV9cA+&sNӟ#`U[K,Mym/ cI\VX+L0ANYBQmFl\^:ф}/[g;-ML*e.,y(9BK8e_Bƺ]sq,GiXinr3%4'[;31*W+a_an(PclK7v'aTFGUGlk/xŘDѠ\_/0@I֤5Z"pE/ik^M9b>@ۺ6ɘԼ )ySi7ermc O~{BZ [oy?&NI~9˷-a)]K3ghK]+}Ee] u)Od詵;) WO` ZPd (NXn21="RL#/d!e߬N(GI{h!9FHUujlĊ?ƫ2iK[@-Ꮭ;) )ZV\Awj{dH/p[owNwR`"y% +< A6`A{䂚 ߪ >ܜM|ljL MSvSFɰm8? -3J֖jga .3¬0e3_ S^V//V2fÙ,t I?˧e)2?\0Z4zX`+$v‘{9nAa%U{zvq*m u#}h[1g/0q SXCE cnhm]O7m#Lp,@ iS8Tehk].`q4fi{ɖl@. ۝uݽ[J.ƴ*N5E Zˆ!1B{Zpup.j ?p:൳Z8oh5Oڋ޼I{NA%c_蟥A-V"Cmp\ 2c([s\F 7F ̐oBylf2G,MVMנiL%R$xϴSB1Yodz*o%%5'µ:7_G=?yt Gu*gl-}*K % r>ܹ$[${S 2)eG(V ';'gU$W ؇6m HCa7?E3{9c8}FG.=!`D*ݩb*: 6΂ xHIc,fLҋ^W}h9%ǥ5}v bufZ%^~n2T\vYﲺ l;{ gxoB.BCNAg>Vvl5gJRWq'Z'2p_Ww2\(,gĽ鶒It{jްKBG5B1qL k͑QTabtKHH9PggFea$<(4/HȎux"G9"$= j3A~-E(&FR ѠL?7.Qm%.|<)vElM СhyFB{7`y8_Xҝ19zʵOUE5Hoe>,5Zfbl͆$vDמJs}Jn|&IVFOdgW{E5"T; bg.-_.'y<?_0DqO&PS)<.v|C^$ o=k$}Qw%4>aqv FqN6qcQQ*mo7aI]u7}L@Њ'a6Ma  W qrvse1D/07~ュ3 PBYWyA7-~Ģs`;ۡ[cp눻 6|D?3?8l͈@)NI%\P"?pJ0˃ _̿p׼Xh+VͨgxPuq WUn˕(28s"58F786ҦYDj]W(Z f3$,G!g9}k·&}k7eۙBB\N`݃ot3^.f`I D4Y/ZGd!3.hS%0]ex%-˶"``:Y7.;B&U}5E'N洱u dVkI",)+]XeHkLj*!,d^؄u'SGl}tHZ痷C k+@)",lؚ4TlVoVXA%r d,տ9 &HEOk:I=Ӂ8'MC 1?ÃQM& %W&7}.~oϧ$po_?uVWֳn5fJ}>h‰U5Lv [s shgߚ?'nۃQ-@-˗/R?q?/_ŷJ~?o̞jr"˕\=>O,ynF|U|Z|AiUnգNU4Om/vn'<دoUMyA7p3@S.NŠfúƝZ@!vۆ_h\i܉5L: fΎpA}{؇{Z,U+P0~.vQY%(3ژܒe9b^C(R{p{eOw>,P?7ߙh؋: rw@nkؽ9 f[.b]lu?Y}1f4㥙Py;Upv[ .H ~1>wԼ7oŅg {S}/h@eng'\+I+k&HyvEr; R tG62W+x~7  up"OM/* o$#sr er} 㞾_9991=Rq9E^f~3M]=0m!1ՐU lQ?h/@܊Fw[I=w FP=$d&HW^ܶb:̰S曧$n~2RL- \