#!/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=147f0483c01bec4608430423fb90c39e # 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 _\{wN/~^}jh>mKOwq_(`-wyYل_|vk猆>n(#l?qX,9满grjێݳ-:s=Y=MUgْ{ ;Ŗ{c[̌8[ۙ2u,'-xbl#GIDZ0, cLc&gs`^(@j {BaJ"!q߆@*5w#RÅ-{1ɓ SH36FHي҇(!4ܳ1GC\ Z9 дp΄- QB@N[4 ie_r h|# +exjLsлTJ|Nz|{2XۆpP*M Vi7`E8?hvՙmuFm{Vgu{CQ/! xu"띲 e:Q:"4Y9Q9`Ѡ̵UiJV\*!ΛNWӻ*d *;QIGAdj[(!<@@bpRdG)1a͋0Xd@=@@ADPag^$)KhHh#MARa 瓑P F@W  $^&QzeAzs(YXEZ0D^YW9gJ`\RP 5`. u5:پTx9 ASِZRe1!xJeo:{Z.kѠ觴 ymLyYk PrYj`Pm+ . b "ً 禤_k[?T3k1/W+->19čM$ئb<@!Scnm| bN!?:H0;8x.O>DE_`O7Ec pfpT Aݐ9˅LBb @@2)Uʔ},S 9n@&qBxH$&4{m`Y!+^P  E/s3p֘#%63f"AZA:-&$*om"a:Jcz R? 1XmL 3DJ, J0 H(bLHoĚ @XL`4v췿QC× Nxנ\Al{wg)u%I`YIs|5-3x\~aO [0]׵y|3 }jϜ5f-T[ṰK{^Qsp4>hGjm  1m˥xjav=E];.Owس[/>Lq p>bRZ9TW6 8ECz7X3K1Nb|k|UN{D/IzGkIM|:|  t| n" `gXY=>pAsM9!#:euW+J˥%| w(v!y5ja=D*P;mN?:SW>7)P6&]w+bz9 asg^dAmd"\zvC?H޺3Wz*GF JIw:iLO&&sTSԁ4lBJ J3=9br@H,)a)bmZwBzNq,%mjyP0aaSMG,#\UF=aYmJp _h;v1eOn9F5؍c540[#q f}nbDԑK$nd=%xz%saQ_u1:ddD+<4lĔ ~KTQ͡1D `fJdgByVW慊lz G>Z'b†8>͟=ޔ&$7Ǘ/a3'ca{0q THZ3ܘp5LsqT|){$f}"&Q:Vzmwʠt^vV.@4!Zltڱ2$ĺ Nn] 'Ʈ;gKsaQ* su6]%PR|/ ޗSw2i e'pJC6uxEm[zY(7G~Z$i)ԴylrPm:2MUP[%8 U E[DkUiG;WOgf1a7R$[G*+A6S.,#,'S@[Vjz" QK'M'e5B,H'ZҠ0ە3v$/7L*LBs䋃ꔨ@D@k0p8zD̍^Ҿki5eY,c?$A ڄ࡞_ƣf9#y۹1涕;J˝t? O tˊdwб#G)+?dj+E'4Դ H%bg> _Z,LH%K%ܜ v@c DB.A$aX܄Xh+vABHB[%ͱfMAEz@jz2Iw# IǶgzUYwԁnG$x .<dcѰxFO B㣱"oukFbبCKEbS:8P; "n'/~1kSWcث$5;lɖtxMѩF^ w(-J+GB@p&g $P\xJyTKh}t*"iîC*>̢Հbx <f8/OگNDԅKI80Ŷ1CM)mDKOdLIM@i(8ҳ6|\N1ɞծ!F.l3j9K9$\p"C2*} 7ްq1+"YfNUѩƽD2H9 VY"ϋ,l^5V6v }S9m:Ci6סصeմ66ӢGȘΊ:2"JXf <=0̧HowʰfެS8To9`TjڅΙ²b'Od%c+NmSa :VRh,tQJ>uIniXU1<ӯPx%3,vR(S'gBn ]5۸hـ?'rg9@Ad/[8Ep:\pd0w:]svZ8`{e9se4Jl)b."Kc=Ap"٦ Ȭ:8nfPq8Vɠ&m?&s6'8Rn⒊Z:A}O uP@Ѯ%G!"P|ZW2A1[EݏK7$!򿩺*MHP< :ucέFM'DykK2\ t]z.A4;^Ko{j+l$JIiM4Dd sÉAJ(ֆ0tRm iyO&\fKVfGRX3|R\B 3|dF_ *ɊZ(1ä n.#:F9*bH% xa%J7⼋xJÆxۍx aDہeiġ?d9<:`hQř{{b̢c6>o{dqk17 <@ 2+a6-`mAb?g9 5Gi:xg}~.^OQyN͙=t ~0RX%#2žؖyWXOT.2U-9:cΐvs5ߋݖ{dSJ)F;U71%YL=/Q= &Nh;Vdzk \Vkc}! oѠMڌ1CXؼ1m^A d5!BlBʌn\Wp,{ O3i5?bMT'"O LQėȡGq.f  FI97͌* (E]lLABEDeͺ(YT= 遼'qJ:\uɆK-ngx'"=rZ$jQ*o?|P\ 1v'lVȼ2WƋւM*7S<@8k䓱tYJ(lV$"w'@E7^$Cmt 03,VPF%܂:[)](pjESXb 5X(}:IRdtCʐOc\"6߅a;;;+%>}|_%m]MuW si ƜL ? ',F ßwWy̰6/Z΍G{p񻯰XE Y+rUvەru4j$TrPsZZI`D)b3i"GS9׃P[.?9`_^nm7hz]lC-Tw޾V.l!%0Uszy>:ٲ,q/hO~bRml :}e/xX@ Ejw]^s7S^A|X zt4 {@][NiPw}y{G)a$E^0klAkH.,m PKƞ|,Wu K]յNwwN$J8 Zmr:r-nq ӓ$&Tx^L(lVoyW^h,mMC4z%-/o;g<7"u(Lp"CxZ3tlrHq) 6<7igu J :Ewqg[6>bRC)x'owNb}k!éc ƆUaXp@r/mj|iǭu4{rWuM$0B/$(WfLOkN+*F57z >:nb="/8fEEzLXh mXR(!\B8}~wSD:d?F2G ќϵFWs6ʖh=ܸ(:z !>9`,w&`4WV-77jypnW[phV`ТO5}ƏOps]xQUp]`̌wUس;5~j>fy!q5xfSQR2Jx*&cC\m:uu+ljyPAy7k БZ _иyN֤j\qF[3(فBxV/4 &&Y IZZC7 h xc; 8w#Ԯҽ^I9lPp$&eC;&+6/޼3V`ȼ ̫{NLhT1ۃ҃8nA2s8ƠKM~GP`3ciNqVr9e'ax,|t;cAlL]f yL9;`$|[%FW^./xUݐc9iZ#MYDF+*FgVl抴Ihs8ߣ%p);9u7sob@~*[ڽtԭ4M;k#ݰ*-8\!u)߅V'MAmЍ>)Ocn#s*ׂ4TTQ_1*ZE_4<լKf n M dVS=HR闭]!n\(m)$wU:wYIuz~_;lpP+vf`'E(J)v$tLa*Is|Wn#TAXXi__X|zmxڗ| }ҊT O.8;Ms+:vx*p$/軰)dO˼:YˁS~,.2Zl8ZN-st1JDԣ&x=z:EWh=Иy~)aCԊƽa,̚hi~g[cN@H{|f3c1?f3lٿ`? 82kxF ʁ735myOGlM#Eknƻ&y)V6~4GbyHx=" K3nK0?EEdg a)jpHzuKI.BU in^ x%bf=N]BˁʥdO?5xj8vOcدԙ:fg1`BA8Rß!Zch' 橸\kC- &2U%}t:C""TCrD7-ŵX]4 *@r2l!j&޻:fI7)X/"3wQB~w.;-`?+IeʛeR;jT٩bJc8b[q(^aS'E`p:!ъtk\FXm,fWihWFq `, v{\ FQX\4B9Dl[1Zcq}bxnZ( }[%iWsV NPhT)౻V o#P=q(~$ J&=dqkrH;7 *6%B;w k_dh ow',ѐGQRچ8L`RWj";-%>;Pw3`u:k\Z'e\,24rT@#I7{{8RaÏlEvqȄ <μuOƉ=lR7  o_^ Յ㘵 >o4f-7>q܂!b%7ތ]!7U pc'xM1v~cl0כ.oA\*)|:]\~Z|V1 u3({S ֲF5^*vѤ$7̩cEm,zD"$c8e0jOjozd 'WM`2xzF:R.>o "`1ʾ^VglϖGֆbRB"Ѧ7ǻYh~JO'ΈQ,j TTqv-aD#55 @d4KQ" ݠdH.l/(v $Yc(DR;,zW"+qRq͝lq>p9"Z 1SS >KXېcQа(ַ7Dm2bMU,#' 홷 F%ڂ8zU,Y!i&0> υ3Fu%d ¬~؛UgR!`!:-5VHKCXF0-JI1 Cr8jfY'iF1Nn9|:t7`񨒁ܴp=ɀn| ⌢T UHn#Qr(An4h;), L7\ rh{hbt6Yԓ]I+oնp [yA'#fVHwK2.+#`XPw"Nn^h%,,Lba0`X26pap%!|`XtȦ3ԇ6Y[U+PI7$äzGtCIsm)Ul]o2`yf+5spZ-_U8K=ۣkk^G3g3ߙw;/ˈNРGt3{;EKG[ŖKyJƆCaѯ$vbe#0CHSe5 ٗV$46K^O-Dx)L5lR,!LJ5/iMUY‡aҥۃ.;lF1|Yg`)z ?S!T(j.0䮚+\X"xwTa\Ps tv&@N{!%X~+X5 v\ if3Ѓ)i%xs@Dh ~F;<ƒcŮ$FZ`w!FpԳ(+ s$ r#ڦi~lxISAr*=+f kf>2G6YFfjީ RwM9SR՘@ >,0WNBQUQ̭&4鷩Yw>7Y ΄ $;+dϴZgJCmg:*fZ) ;N mT7X)K$ΉXp]j#Q` ))}/. L4?[ºh"! i+CZSQ (!C9Sgamtn(ӑI9m9 =F|O%[ }J,8!kai:`C+Pa[A͚!BOۦ`>tc*% Jl+ugV3xj<4yd)n;\sDLRYQf < ybUHs<vAFJs߱)[q)nC(i.LK u5Jy"z}_p˿iY*No*h]U"7 ],.Ujv[q6G+` [KzmG͘=5:2tnZwPeHqml4v' ^*ɦ;!/ͮ0PlN) iLu\,`Ƒ*QWh %txL+@t\ S|j&QM?v /iTA(Ó+@]z`ZXt0, Ual5¤HٷU3 k0#]}n?? P^~FuS$k93úYD1t~r@UJjh;2!bj:t;p D"*= !NlӐP5mkM_Z?e ý %'OYV7ig=AcQbO"?SPlx dw.R \+CG`W _׊ _׋ _.ܒqs7ѪC1!-qR!H"q(gnK2$ddq! d*mgRvCz>'p;aiόUo)W͘G*ysewbaGZ SX%,An$b4 )=L<2c,A1:S0=nH:*8Y_.@ZkV(tJF50/k[;1a&sI?fOgÑjErE PK)$A={O'vNMq tHPa._s)F qj xqn͒L{I)WxHWO7T^z#INS(uM>#x/ ؾڴA Lr|g~F'pC3ݥ* E-XJK[qK#*[W LKj`Ihw[x~B;.WILͪ(aåA8agbiR+1cC9ΐSHsRrߧYl1:6gbɰ2\/sv)ćG-VIE"FEmD% ;<4@O=G4LJ7hBC)Zjt7Jڎ+t麶m66$-dd!4 g37`qS|zR,TN$D-8i$vwsro$d0!-R&q0P)rSu]"[#/ uAÛ64ek$cE9h1y1>;sFbg'4&yelaͭⶭgT)@8):u$j@_G00yrs VKA (33qr}ͧL S[J60C0! \')H΅Ɍye)` VEnd:l@O<H8+2/xTp%Ī2̓4OQ>P^ CCk3s{o^eu k f6F梃Z٣=cywkT-Տ@3-!4'[;212/gg_an(P}llLh%v/3Sy8DPmdyhUν</~Ft8̝뛚[5,"l^Gmp 4]̔V 2k1y!Oimk+6H~hlKI,0)| ?ۖư34j+CI'U]{VS`0 3s_f(dBxLڀj,ӀUWo`g@pr,ٶ} H mQ2L ϶?F2d'qV2c_ZSk9N QvEZ¿t@SB.p5=yt|.A5 Y$ـE :S^GΦB*(E~[SO H@u*gl9-}FG,%|[+xBd :,R14jfqzfԵsz~%CHz5 F9p?!5%&6r0`pA0o9d8&T: 7QrJԆdDIlco׾at_F;tf_ڌ:$tRI3x]ǻGoO _OO;Ou5hn7x!H!!YU^bt^Ma&&FD8?;Y~\=V2}) 2㋚j>ZYe2KWgL-GFczBtK,0Tn,L' GQNf/ղ&(@~-E?*RAFBvQ\qi|СP5; Ĉm0q^6+,"MbqjO[TUb t\ ,Ye^.pge&gk7'f$l6D.fUȤ*738:f VFOdgg{e5),A|U |f3 ?g);N^vmFOdj}n -t ?na9БOyp%F?|ןM.TY3#g-ueH[=^J2dP,:r͈%{DD>n਀&y2xt:/\F83A ׎XmČ ,u&^W2PxfV `_ S#l㊅ߕa#i0IS{+Ĭiۛ\NNހS\_(de"^y=Zd:C|pAM^/ bAM$1c쀖(jJ2P&I~i*a i0[9SYT &ƽ+[bsz·!T:gT*8BS囀}z&@ kἓ_z]{uf~QƂc-z,zeҰVM}/՜h?z7H)*0i8I/0T/iϥ5Сc!I _SmD\@vBP'I I96q*&#u6Jp|2=#S_cZ n~hr0'}a~~hsЍ`9ڶa'hL [ ;<-f*{Ck7)ӹv򮐸mB. $)H"=8iW}bg9"fыWWXƂ NUpsӼ d0$@k(\:ɓO%qúl‘C) # ɞe<"{>k5%Jeom6ϛl|;m"?ŀŞxԶU&dMq@+ 7Qo<B qx "3]g؉[gJq c#5XA\t|W9:chY~-G[.ܳT3u_Av-y&.оٞp6͉㖉q#ŅXDme!j2ێeaM=%$T!8Ȧ +pQ <fYHY[EW6=\\$#Q +7@*+[E]\@na0[tT\=)͚ŋ fweۮY8gJRcB'ԕ8¯[xQ]Ӻx sp[!{ګwpwjs͸*Ӑ oP U+Ù]u8n;ŵ<qΝ%Gt#侰+:g>S2)J(sYnhb;8rUPJuFq&!dז]ޞcg>g3f?3oUXc2J˨i/Ӕ~.-Blc!YJoԲƁ{=($97\hP K{I/(–seErzM~ArT֑yٌ d ^DЫcRY%ݦ=9\!Bz1 BF`Xxv?!Y""{Jq =d0B#bel2IǰwİRulFT嚠|բڑ18tOLb6qL!=QE>uϦ%z&)Vl0ob&AH6oec{:i͐᫑IW;Q`2VM\{|VbCAGbL7Q iֵZ~h"zzjȝD㋁ϰT bCV%Q"m\ܚ)*hfveI4?֢ 3[\~!p)6o3mc  4CY&+ZU勩zyNCaTաZ L-w+.c.#_}kQ3DFYҋROZTA|x?yFpa) !X&edš`&(BͪW[œoa1qKQ\aG/~wvwYRی4vP0X>xioVP݃=)ůVRk߻H!oAh9Kޫ 2&WfxnzXfSۭm>7nȷ^Y]_qWfm=3~1LgV3{f=~8z%G|!H$ Y{'κܗ1 <~WQa{]yZP,R2 ] *ERDp"Q]@ 7@_Ӛ],"2Jm.xl#\mʱ$nS!(ΕUQLI>Wgz!mweK`SҪW|^Z yPi}TZc>G0<(JGVK,a%HL1HxՙÝSTzxνz%ͮSPJmoLHSVZ)v'n GomR? H\jV֝ӓG?ƪiQ!M8-4݅{o:6I4_󀭆'[~m5xKvH'_>9mj !\}`!\hkXG_?A.V2'}1-As΅ @Y O#R֦R&ZEI]9gh x^"/Q+'8TeI;Qa:t97k`v_ֳb=j|9Tut}-: *e zIYv(ac8we W6Jܢo-a#4Iqi%eAPÜ֓Ť.XE$ ggzjX:0e*)`2==Y" /1 coqwBOG^?Z?)@JL043ML1 ,G5ߛX+B6LL{0h:6+rرOi `[B )O^ot4 ˴;׋Y-a"Z֜H۾ •-(;)lY^v LJo)5zj]Ura!Fwx\:P~|Hj'IψʎYP ٝEH.ВoHL6k~ep̅@~;ث >+Ja+%< d@$dLEa(4Fkv EzHYxYd`94Q $~8kn˼Vy+{[no)+h),:&°I"NJU|"uO%p/0=)^H~'$m -N*Rt{2E/>uI¥.[RhUe:8Z{o^d @2,wgO@kaxl5OG=w8l oM2Bxf">z@H/#kOO=Wa_3ӯkf5Y}ͬfV_3?ן+Wnna``m #ʆ dEft#V& ɍ8A94npr~PڌE^y. ,3B#1qpAj"wS7]4eҒx-c.Iprxg9rŒ qlG@Vwr 8y y ܺ,ZOD]Kc9Ȳʍ~;/[{q=70`+AAϑ d0нEYIkd=vX8 UK6 WjӀ/DsS(z'MRu9!\EJJ j8ϕݽF DEd{;Zar@% W Gs/Հ99M 9X)Silrn>ĺI}D:0-+kأnvB@ۉVWπ)078C,6tDjW82P*WӯPQ S0R`Rt!4zQ|Ud5Y SbPrlN <ҕXhPq.`*kwt淖*ë&- 8U0BR*H.y}˓=E2q8%ZB ' [*VD2iit+(B6ywM<3ٙWsfW7#q XO>5YQ^50 2Pg>)s;5VtTH*I;mJ飂HЯѧ&]|wdlM<]$c2Ծ%#\ÂHdD]6QgwمeV;s/*v1%c(Dhuv#/OiRx@b;t@[B.WgM"4r{$ 4P@y -x檑ʍfSct$TΈ+IS;Iɝ\P*!pׁ]_B_h#qG#N^$Fs;qȎHDu5d01%e_m{}7>ĥ Ɩ#DwmzD1!->;ж}&GQ22gĻ@h}coHkep AUbDtbgMn3[) SmHuq WTOF^}c)i/UgJ^\UPCfאּfu=;*gq,kYE'kSy0jKx[zULs4&(Ox:32=h$l?%Pժ_ժU(#,c/c/NE~eC>_ـ XŸ0W} X[.[`Pu =y\x$A+QĝͧFm9p'ϘDEDw_Bml̒dhe8O)ʏ.Rw֞dd>ы~PIfa#(P ㆂJ3v*`<f6$jpNq6V2A,ap u= |\E~͚1%{{O!20ƶNBH nکLZN/_'5<#ZNb|%zZ[!s}碫dO3r#A4\6S-え"N-r37yK p:,Y^9skkxx74蜎=fv_N+pOΞ:寧Ddߏtٴa2H\,~bfRcuL5< O"@ 3ܱ?fZܝiaSr=nr9J41Z@gE+-Pr\6oEij5uVfMzuIN=WVn?&٪\}s2K.zW($%t&WϜ5n3꒶^]kTMP*ӪCr C4s4]`4ëjt?-cp29x{nb0dpWRw]$cdD_~V߯? 2J>NT"xcD~F_9/.?{WVyos$-uI ~ZUvIͿNQTmKT(<߅Vwb@yt^mAMoUt9h9߁']8߁)8ߍ~7v)7ߑn6ߑf(6a)F$*'ǧ1vgDK|\,~yHNc >.k;?nCfIQg_Ud;~2_{7'u~uNe}YsxFs.vrܟt[,v.?,-'2 %םq6'DoO#0}Oe\#&_ʽ懤,;3_>E,l>b]n #҇}c4j;7mzg$ɰ gEstGZ#vIr?=rSv2PɏQ*pM{݋ޤ^~˸sN9}Yq9fyY-A &F~1v~EzzB)EEL\j(3H; 7@hxqp&9eyT| r0l;p>6I__OG/3~y/N(,N7  wFpHq6d;W7 RTaWz £8|!έ9[Nh&i fxzjpHS Uy۾7gLH"FeǍw#D/]:AYI"cYA`:cñ[:I_0#ft^vw;\4Ĕ*b˂۶^X3d).1^,3nK*&{=-j3iԐ="7WVLs.W"^f zlL) L