#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=6f3762b647ff0fe2abaeccbeeb07837b # 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 )XZLOOG=ҥ~K֜>*Z&5VljϪjHugA,]kvbDZ9&9K}˱+=z]SR@#jZZ6ʣIJ\e=:+/CwV> Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠe<2|&$ &5溵ne!0 `\q?4cPiz\}Z܋%>hDn e!>, z@=P4$`!6M ǧ b,SM"2-FC-4>y^ QgU{$%S"H>PŠוF iWGXV`>j?p$) |9ɀ}U2޸+P@=RVPفdpF.QnۧrOV?d FM*wƽ ǣ@2וN-_J PWrU_!"T:ۧ= 'cvQ{e  8j>?cNm_ρ⣒t# q(SEձ*$HrGRNHo0 I6ONJ̤'Ui4Uy/@:@gw}dٌ4}D( 2}ek(\G`F$rJyO> JVMV@fS)c8 (CE%J3 Aa\gKPlcOCˆ9w{j e0u$-7KݸgtFPU`l 6lo~*v%E):K8HkbvC̩!mbbR4c NF!Ua/"/L͓@ə[Izx( |L<u>u^!0{hStj4ITB{4hRv_;<(@ڦb@b ʆ\srtχu2Nru q+dhYtt % 0b cG<b%dAOO)lm˜mJϸnf@Ʀ.QBxH2t[$4mFq1gxrVP.:`yLΩM]p5HFt,ѻNو3$H 33fyNgIbA t5/D4WzOX$JrTb90]W{ G3KX榕` PR2erMͽJiؓ>wFL&u!~{k@_YC 5]YA>,{=yAN6^yф+&[_e^U%t$,` X` XM2' 7'w*{,hwr૞` h Hf d xf {לηo웙|<[g,+XG:o `ʥ Q,ӼkV&5+L%mHn7o`7-/~ Psk 9ДhZiB ϡ}H5[Tn׌[N+7o3AN|Hr{xt~u|qVtnXiJtӺ{E.׸IHv5'P)Cu㾺W$imPeet//S0x^rT  . m ;HGae gN5oX Mv3  <)yR(P{` :hC3!]i.bTfk="/ (JG.â7w|2"(mf qۀa\ٞ5Y UC-g@P llSZ.L;umbE{*Ô06ޞG} aD@FCrmNפ[;ɨǽգ\aʽ=8bqS l̩2x#y4Ҕe8<itE_+7o%($R@dؑ'B>;4֝³ jYAo=v&l@{"48'/<i-$M?LcU"uMK&5!j!fմVSwSwVG O3n9^߁aBB =f:$^/o&|#O"#J>-jKәMF7|57y۷Y׀aE!s?ϵ-LíL!RcYZdY,F$5 Ax]`lqwԹj5cMfi#fyqOz`+mhyLÔj2n5cʣw{3C1[v@DlaέS8k:/3C*JRbSaEb>E edaÃ|]7ȿXYJ/ކͯJ)"K;J!4.2LanM+%Y2'bDíI'Y^eO-"h讽%Z-u-H 2"Ch B1b^()l&%]w 9X/tڢ\54.Xrnz(F R S1Do aCgTLGx<>0u_|/9ZQK/\t*i:,7 f+ /dcR0D0c.jLjw@ pԑd^G\CceJvdTJ8\jpKIx,o-LWQFtثm>֙u,nHcFdiӾwc 6LD-WIq-"-M*X4tLrspL5pD|1{tg:clND̼C*I䛗Dd`Md2N<@uYXz| 0,<8F@qCG&\ˀlar6~Bn|pu`.aA/t>I1 m0Dt 𢥾oF)%ҌI@)n{6廲/κ2-O fJXevR,m{ڑl2B}x$,r.%k!?WPx9>U;jhw2G%TV[d v07E񡬜EikÑ)򿥽q=} IـCZ£!_τHKW5@HDɀ³ e[ygɟ:R/ j*k}/)`羅Vi)uN, a:Rb:8H uҨoip_ZAF+PU0aq<+pߨcN=:k~rxz矷?M}M?LUNUOL aG#Qk[1s&bskf6C%d8|U!~{QH*RAd8`lԽsx(/xLL=xKcEihbC_U3 o O5EBpep( s1x5Dl ίNnI؋iZ3b^*ҩ%|PDoŔ&cG>aggj%-.z@Zk<':е}jUt/޷yO#o^>$T^*N{P#ǥ8rW7@@КK"ZC"<ȣuFjr#,ԩpxD]|AU/t u"tǽFf۰J8Mz"XJl1S>y_8QyԮY7qD9^z,!V.XQmBoChc1"MçԴ ŧR%' ;ʻNEBOn@-&.ʥ#7k ZBb6RĺymeȭmtC)^XxxSQ&Mnd)B@࿀+k{N49|ԖZd^ Z' Ř׋LuK-3-4u?t\?To̫6~o_6(gdUME,~bb^CQ}K[Q/&$hƇ'ɦ3d-q#TW!E\Zf#Jqqp8Q7~͗ty%]wWw]wWw]oW_7:s?Lvlg򝥗CeDucp,w[v2ç B봇\i|YĊ,.,UKtIÎvÞzHb[3g3ڪ 1`]׃=Ś=?qfp{5bGx+}P ջcvs7AoSv}׸8X6Œ.\C>rRςu˸>?v;:{4CyE) >40L 1yo~*cOk {ރE37ŰqT&@rPӓO'_}#7HejݭOݧ}W3O/j>t>}.> 12K-g lр[k2iLJA+F/s [ROj® 2ؕ W(%"D›?KHPX==K} ͤd.BkN2uY:Myo];˷Ͽַ.s>v:xX,U-+$=Fr6TJb<ZG9_v]gWv]gWw R7,gyîە_+F9%ԗ%,䕊L:r:0kǿ{IR Zt% y'R/l.6ˤK^/k#I}JEw3qئ{xsk{_m!a=+* ߊiCUVq|T+YNŬd@1԰G((`/f]m ZYClڐ9VpKyyBLb:RQ]b<NÿaFItw%鿽$%|m9ږ} ash5)%P\-_PPjKs!rI H@wW\D|DTv5 ³^Kp}4I8P*)-M&k,(f¢b)(iͪ^QuBB  $=K{o Hxr'xд-,Ї_lHvKBRN㡺 vC ȔV|(Kn9F`4.gv94ud. { [nhG X/0j.l GiFn%b4i\ZWLFo (!ؤ1ᡫP4p +QmHMvfȅWGQDScҥTߊ䦁ʊ )Am؉2ORU.M `*C3< *"=tEO}M5 Fȝe5w$ F.+Hbr4CXo"=='G{G L舤 jZ$w?~+4zUq41wUml!<ƹ+F[@&H>0b,F6U&i*ԬiSSw6aIJZ`N Z!>2K˒Zӊ:J _gu3jG܉h~>B%>{`T3(h?yz8a Qra9liLEgTm XPO*l@ =ZJ('a6@I/+TS!cSr88n69+B&u \@y:I?f,يju|}?nG  4NͶ/z1G.Pk9rkV-w-M_w \*y,`gAspf䬱ɷ1~({=3]p3W]wbyF3D#'MՒW%ՑZ {q_F!8C\FUwP~ U62HT wQfǂ nCU0+h"m+Q agt=ֻfy?ڄ.hṼU3o^9OkN +OTV69^fkw0]9dC Is葻16Da¸MêS-="a$֖f-hك][ᘩ;U|2 +Eb'RYK 2㶡4g||k1 d6.7e3ޑƱ8E7imfj&Y,*#XjdqN)k_꥘ICOc@G?EE8_A*1 IWp}}齵.>sM,ܴtk/N,!M>L; W,!f*ӲTQAo@1A\I]$PF[ZPj$FlUCXD\+Nbd!ki^s[#VYEt[ ӠROt0.#}~S B+~ h=|?*ȨkZE}dh-syy.2`IH']OͧsvtM_ѳ-XG`#HK;] kYM@xgCf-_85ubkOCaR gl?+l+YAOo.j rT &zFo53u|(R낳#uzʹF/d5( q{p! v~.#/ Y}̫1*ݗ, uJd8={Y'}~FN=]7K*u_寲BkSHGBZjN(sYgB M LQڤ׾Ǔ*?T/1ۉ@}E1tͪ7s\PU6CeYn/c@qE[ (fΧs-i5!Si+ND40fHrp<'(=OR0pАElzI]#&51Pk.-Se&z.Ja|IiM{Vjc P*jv=Yuv^;-V6;#wTi|Ij}^R*$R5 $ uz6t]`Ռ̼҃2ΫײtEyǨD A 3B8 O!Sbܝ/R^[UP6EP-z#aDun}8 hwy`n^4L(l5j%mtp"wX򜋆[wiå+|7)"=<=[d44[hAے+"U= ; BWѸ_ TS0'"N6(&TDГ:Q O/Գ|/QdP)v~obAznH^ݴNڊ+t麶ejB+9Jp1S݃=UDIؾ5)N=9{̳vd/-KS=’|@L=4o}[MhXБb^a 'xZ'}lDX2BbX;"my0Hq^13iwA O(td?Ka'BӺq v=%n L=-E<)x7YB)6nMz7xn ]| ! pL8+ɾOO#kx\^v J֖ga .#3n5L0\bZܼkeq_ F "`@HAX\:IuKHAݸPPҵq\:5T ^~ v=GX-,-Y-L@C;ˤx'0 { Ni?TB= y-|mM*q5%s. &b9-R%-Xp]Jl䱁mb ^;ֈVZp^{0xz}G gSKS_J]6-6"A,q؛7 6{oFm؊l0{0!LVL3YɕcRlq;R4St(G9e}8K}3ԣqL/1Ia&9&_MW ۻ 'kFium3.auhy4AǕ=jOd!X3EOq3 #}(^^>TzY/O^J>h_XSo@x=fEH{nKo@!KV6dɸZɺ+q3 k5L@fҍըU_;kѐ*5Oݲt?k:+$(_Lf ?g3 Oοݽju d$zZC?2@9]3g v ? ; $+2֣,H~3k_Qoh%keѻ!7zlxtP@S&a@@Tr`%T਀!G O<]AlĂ~ ~Ԗe_u ^{΀~RtzY-a`դq&4Ce,'I${򝢄Zh< OenVƨF!M}&ع :p-WJūL < .Dc nt2jqz?Texs=l5 Vo<2q1H+TOv󓣃?4˅KzHPZ3֜B؀Z,e~EhZJۉ} *&n&8Nc>֮cyAMWKWq36jv/^%xp%q|hS 1zf|l9|55љ ;a []%ST`.^`O7>tK#3R/L09BF{ Z+' hF$hg0ggflZ)%:uz;6'Qj 4 ~1)p F)߷!d(aG롉̀#}p+cMˠ?"?u(8_~x ]Gr(fy1ǏT5S(F0Tt"d, X&!Bk|Ǡ 0Tq1?0+%@}reQ#aߝ>]Ls];!% "σ~:z\I#4zҡ}8P-0tX5ɞm@4$&g> L Avd9.Ħctg.yT4L߫??%$,Sl {Ӎ(~zEeTt e_>\qͻ\&RP7v $RTt,?o+#*i݆JAޏ3=  L7uǞML?3wibr[JexyQv`JR\.Z>bY=:\v ӠCupS*ѾTJ*nF\i ܜW٪$ךٻLnmӤ䯲S^Tx5_keQER%v!,p,$à|6V7g尌-{Aoh"RtLʂ:}[lJK!i~+n\V9AY.g氏nL{ߴ!4ȳ5Wg!B3n"\mb2$[(E W"v9VA|z?bFFړ iW r 5r #Qy[ ?\z[6ygGO #& k)h9k_FK|`2Z]rQ Cf(_6E/ZWWp]XC|{BEk7z`.OX5k[R=sVVz1\ӣ m ӭl>4p^naF$é)uD~ $oj,Ys$`^@AO{5-GMs%R( a5YV3I]Ql&JJ{l 4n}5Δ1f5|.׵zX@%V"O$g.CH }ͻqKA偯6$%ι& 26˪S]?ݏ5Fo^յYǷ?fY,c1|:A:f: EmH8"L.ROAPڹg {T{ҭp%$v;$97HPʓ;i' QcX4sPĬW,FQQ-2-e}\VAeY(l^Lf4Q59iH5*lFC/'5ToNLfi]wQ[2!]ҹ*Z1"$AN!dR!S]g1ps*f4bt4X^::{@ Cc1*L?ʧ g';K1g""\ |q`YrkQFQ(O& 6J)B?YT NI6-H|G8[Je9ۈj^Jyjp\[;vjB&6c8ϪRsL|F)bI؁(a(.RT:s*XY^W tpl YV7t[KO׻Dm#/#PX*2swQ'g~ҧ5w$m~Ac3d晥EjjvW 4eyWЦ\ #zDu1*LVF]Td; iڦtTG (}K}Si'WBl̡#o06h4pjNH1D3*o*ѻDd4viצLTчHʊoU[N[S1kj8`OLd!FM54'Zqh-Yx)ҲzW2 Z'ۢy9I5>C 8vSN;-U<;6v߄'!7qgL"Z@ f\nJU#b()YWaɣwMڤbg)d|{,]`q@=zT5I?'[U'c+6\@V 9M͞=ksvfӞ 9Z%hdȼ &LXp)0<8kWUΨ#(&_%2!Q @|f\}W/v΄|M]& m_Z}A8HXb!s,<$\V d Z!h3Bф&mv;.Kd  s6SN n?D5$xYɔQEK,pיvͤ tj|ʮn4`uTelVJeA;"t%Q{r[:藵mr8uSkd,}$ED,GSul+l-ՠ"U)MzqeJG6:TWWpj"sX+- jawb5(qkт:OoP(+rLUNLA```ÆˬÝ]Sկ(VR޻4H eEvm"O[{VM* M[.NFxŦ?:?ٛxwsv@'3"9EU=[ΕG'*^pBۯA,PG8cD'K]9h\Fi  pTVInm 5*G(~'ꡯI#\?2wn !/E}fjcb][Ȯ֟(D3sUR9?G|dx.|.VQן+ {[PZͧ.f/eJЯza[ܱ(춭DрiI5~9O; ף8o {3`ЙI@Z%:>i虎S 4 NL%uk{SI&#NeX9|+{+; |ZۧMcQA#h|.z{]0k.j1*VQHI~[|L$121yCB2g!G)M8m 4 1Z/~].~L+`6U&T U:eY~pt2Co* )tT8 1jZEe~0Hmz o$[*svO|.}dy?<^~w;g3ߙ?3/HA7?ܳYzoL]oOcXu[h.k;L?4%ɖT [z-Fn5:EdIP1HaIfs0QE(i4²T:^ +%%Z1GԾ&75pjocׯҦM"C:b bWq@{у fCUtTW̙/ 55ZR)yk7My2HBظprdT;䣆B!;a)8i(P\QRZ2Ф m!/u |;ܦOv̗p6zcQ 'gi bhUR)*ŗp4Lac+Xa/ZV>2:Gu7)n^ƪc(,tSde-Ef3'2h3uO-X5G,\<f%>Tp*ͼ1ӑ@>ovT٨嗍Yʾ|iciWs%NPh5᱿VQPw=Jv3{OV<%Eθl~.G̑{w< 6߮7cGb"·h!)fodӂgg梏M8nOW\I ֶȱt*ӿnD^7%1"/Fg< $ H$|߸_TwvAGubW(q:񘙴vꢗwSD{FsYzˌ?q܂b`%[M:@ճ?zd3LcWl]3.x= _ BMT|Ls򹪪uH%y%EdRY!#ymbX>*f089}&VX9UO;;L7H\P|._R1X,5ąY+,B<#Mwb: _| K20SW\jMaIд;-/a-vNnro w$(O W"JDq U\=)_<Up RIɲ441HaT#¹@(Q:>[`̾DHO&'xj;F #/`h`oZCEN[> H/ѓ[nuTPsd@xe  M)AJGF^R'zc4]漤Tqr2oElPhEQ9MI9i:ptưnzB~(JP3@5cQUJ!`#mxj`F곭<0zӸu ,`ܧUs:۫o^8\"'1_4@Nwxܯ| M9Xlӎ8:!8(3(?~ )l ц0tLm"[_C!|M@7KۋK>̥ڡ#" ~pY9FߓA8Ve#d,˲`/h;[$Ӿ[y9 #AW[:i0%!|J`8tȧ34 xM/xRz)xI^-b$UQ콥M)[6ѣ2f ֵ@%vOT7Gّ Ff 1wJW7G<~ٍ̏jFqړloBg΢~gQY,wDR-\_o#:'Dz QŔPX-AgWaxn?qgs GKmEJFyaRWsTs*] V0Ew*ׂU,:=S8'=]Jtp}".9(>^}dXwip{O^0l+(,!C:9a~ OZx1휾~^C|}=&ڏ_arl:J]O0"3l'qq;Lr*jylđHƥwWl;J>8TAc`l)}230h{ԵYq2 wW*qǨ8-:blȁA Gl-7Cv_& AnAc(]F'B]|6]zOFthN̛M0=Ȟ;^]/qdw79iR*:l ##*+ET= )A`k0z2~s>Ksws@8\57EdD1 chu7qV~?X񓕌LM~?0Yf%`f YfS|E|9o NST\,&&L1AXn׭. ;A<[ńŒruُG"%Jc5Vyir׽%teH6cղvV.I0 >Zz9gJQyQETP&n1tiZ*%z={!w#Yuw)7gm#!6(Ug]D[mCF+Q>j 9$V {^*h;E %(hx5a(dOsϡRt!!8'Fi dD,M"cVf$cg \7%$4CK2K)꒍>Itz(LUf y} %2c"WujPE?Vx̴3BW3N&B͜E-8`҆KeuL3fx|WDQЁ.Jh\XrWf[FH;  1KA` d`BM4(l#] G/#Ёhr6hf昼ɀA'Q }2z#p_J:usWc2 /OtFx%!Ov=DQ騳!KA X ,Rɰ5k쳢i9Q9R.k!oH!8bUkU*,W"<ڜE^ Kh2e%h93bbt#L3Dl21O֮jɑa}P~qe,Eq('3@\,Z-!~8\5՗FUI8wGN^]!Aׄ;2t˘링-Y&7RQplҧHYβ䖒mX*Qa5;>+~/\Vp2Ӽk1? \ͻn+ CF͡ja R'P'MV'5V= l0|}Ve/Xx,l| y^CPdܙcG*aevt3X/ (^3I?/; c}I'3o\gμ~g^3ߙw;-MN* 866t(> z`}𚒨OvGy g򽠿 igF[Q[ ɣFbϰ頁ZP .ޡ,jB0J$F=Pj4v>^xYݒ+xU֞,)i]xu yh{"}ND 10l h"c=`jt@(kv@[ _03]D?L9J?KQ5(3i]vߣwVsSڮU׵`K-D㴓:(QTb" ٴ\{x@jWgؙvbDf*1YҖq,ݍz߿iVfJn\rj;Pko}WF./Ut2IeNH*7uϷjz0^f2iđj^ꏥzgQtP>FW-NBQ$m\ϝsZi1DKBC; ׵FTu> B4g'ßgl?<_ R_]a-Ó-~>Xr}]$CUvi  9EۘoxqOq|n݃{z wNO_yz.OO;=w'\8|ޓtzxON=9='/|ޏlr4*;gtl h}2W- K_'%iryh󟶠0%yL>-/)ve9.>'v9]LiYp ~4AW0Z{L/wfD!2V7qRQzE碟^₈yyON.-1'3Ĉ9|bMdԝ\[]{n99W9wv]ؗnj?c>DJn8:y/8ʹݳڦ&˭AԌaV\&ŹV9{}eX]e^}D`DxEq EnLRv _֚!:* -(Zxf1Cdzq{oFPeZ3`y5WٳLF3y&#d䙌|'(R`3~Wi09FK ozj.2HpHq15W#`HS d{~<?osk,HaO_E_Ϲ8Lino힒9im$r8C GJAdU, 8:(B0O0$-A;', X 0C|?_ Bwt!2]?\YzY$l#b"zWȕd:'r)ܐD,G=\3hP$14WւrW#Rzl-)GJ@_˯9XyLu]K'-V9OϷ{1O;W ,;nؚ[̕Ϸ^ {BM V1@jW,3^چ1LƳg3~f?g3~f?g3|9rrh0