#!/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=31411876dc6a7ae5621173476f03c3f2 # 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 D4[=kwȒ 3\2v3d[ ,8=:BXc!q%fVUL5]]nKƜZ;~98=lj6{WFQߓc?X]xinkjk >Q! W_M'Iہpcs-0=KX4a)$ EF673b+R#u=xx` rjOs70WX̂1 ,Sip&! SG#pC}. `] SgPb<?N?A|~1bnG*@ko4OǣP,[-nQWICIQXAWtdI2;rG+_#Dxu 럱Kiؾ֩ܕG⹒ &+ i0:&q3WiZ|Z22/Y }!OP,Zn/!Rg-r`ʹLYö,4FE=#%lcEtAktqc#)#01DXi tf/Ĝ|-XJ/G\,T[ڰn|GłxbeArh'`TD(KϬbv;H~0;<_'bߓ< S5^4{7_S)B6T @f%YӘlvtv&dfkȜ>fxD A%s ),r @@ƶyEN)T`rSx yz%Ē9IA Ly@<Ɯ9嬰@aȚ=1;7m uhLkF!CJ@Qb> &kwa` tiW@"+ytO(kt%QYmay fDbVi(*&5_/S3n`eh&ZH'Gws2E`oPE/,kGtwq8 frw{~ePsKvXef$Ẃ%,9>C XF,QY{2|k/o(t,bYjYrYĪg(ͷẀyJf@,53y}s՜Ο/d;^8穜qtnZy~h,=ӿfe{kmRN5leԖr~|s*Ջ$.-V&;[#XHuIzǞf8IƝ!HIjHB\ju:$'證o3t;C'^Ǒ v3ZSz>g&~gI╳zƥ@7:iȶ~aM7=&Esϛ0 A V7/rP\,(3gPpE[׆%6KaV&RLo}zlqgg+BUMԺ_.[w ge?n7[ >X~/Xsb$ ϼܥh$Yh]jLlwR]GlD*pB܄-}ʶ&4'tz2 a&[H9KyE9jU頩{XI+jםI<'b6$Pja 1/!eqoHlRJ43!G,Aŝ63-nXe101*:\H,='q,G@nIr%= 6ﱰ)CBBϥCU6 &# a6k3cP֌c"po` )Q \G\nRZM1+h犯:ISFsbLfw^H5cC )6 [0\q1ΰ;b`MY?aj+ 2C F&tJD։x~=&6Yb'^deC]31]P S %?6OIZ],+לѽl<"_f>[o󯍭sXxI8IUN*OO:0|O~FkY/۩d&;IX@!4?ifv덽rrrrrrrrr} 73Y KM×,5DZj7Q VH1w1w ~ t`>~ nSA$5m I9eT NH {/ {R7l.UYb!!:S +%e&huMEQPuOҰHmfTfvk4;*e52C/=wqt;Waq"۹޷C"Eh F[: mI}hup5z>GZy9 YVc5N ^ĂQйU&_m@I%.|`kz]UCuWA v U~#j}nOxpST~uZtpT|; '[SkH;lH0m 9%_EG( ^A:uU>s㨀I8dd͛.zu|bDXEj+L D)N]AAI980 弈Muy3*:/u}ZH<@Z" ݥm?F>,L6 ` [PY'xt m0mk,.!Uɰ!>N eoJ4.OI,VM&W`ysvO(zb5MjxE̊$,0d4 !-ØD\k>ClGj%T=RqyVq9<}\~:ī2fְ4V! J-ǽ%g~r6<# )LB4yU'&lg5y>d 3 ΪxHb$ҟ* O@Ūo3(ZPg%a"y3H* T]O Gv#o4T8Y_VsW*;zyN $Xύx0 OggD4damT:%r$J$V:7Lȅ#JmLfbc 48<)$(ַhbSx'o^Q#`#Tfa4f pQ-q:Э17Zh1lF;2'7+br5VԤt򏍠`)ĸOK&tsU8pIt18*,Do#+'\,<} fXDIH>miFC)ǓXi]`NId&`uۗ9ۯV[B. eIx9Qf$ߛ9CHψ[ĖqK{Ͼ}RC4F#?K>/_~r/'PgG'~Z`~G~GQZ`PS(44W/U#T #: zK: #4 ~ %u˖& эҐ ܏ڑNJ耒_:;?SKQ\O}n2꿗f}U}\݌iCz&m ?XWK''6צA1m{"F $NOy'}~}RUR)Bcwn GpX-.ioVHSEʏ`H11nFx 6A(AKDE ZHVϼ;;{HMHL񦙟5ĩOˑlh`_By?b8 ڑ[:PK 8jٴIUmqWj%VPHCG*80簛?.aggz$C2cSa1MunahFaWck(cyGvQfgZ󝊴Y^eSOOily89%hFfp76=ݻqv«g]RXuqGp&/iuL:.̭ӴىXY՟?rgFf}c. C߾htͳ6㳓M}}Zu}ЗQ~j1 GA7i%&=Q,cB}53]sI> \_Slɋ!{18ﳍgj]>R[Ko-_N[o3{3 p4ʽ<.o}׭i-tN 2 h ~ÑwtMbŮ]M:H>؞(ғ«x !r. TОs4mC(Na.'1n0LG0`P 3﹙ܳylUw*|G/pS o ,NE=$S]8.)uH65HZ`!{uU]|A5ہxHMo QPf@{xRHx6͏EJCaw( Ͼ66bFo"qI +1G<X Pc6 ]P@~ p":'h>*<"j8VC#F.&vmHm 36l1wl!fԖ? \vxgM0:) hPBqo8ōc+3$i3>O-LNqm޲ Ch#STݷKcվ=qxOFX\E6TqZGId}eգĢ,[!eVIT֗ҍOM0 I%hLJڥWh%aCȧ%DLP'Ӳ#xQN#0ݠet >\I={$guRvmR S9B0X'2ASI"gV>5hO\ܥw)ZS_dӝp?u3PW/ *^״J5f1Gx3]VD _P";W.@: hҠᠾR =zVMPz铀4r[(( bRV]: ^6q7q4g+$N%zMFrfνO>䳡mDByN.S8Hn/j::(*`i0@L٤$?!L)t%.*܀jg8E+ݳdm[;^|Ƴn v?iPIx# ܽIG{<Nɨ'~? uS v wjI쑠('A6D- 5OwYk@swf(|uZ_Qڴ׾inI]כ0bX|#H6ӂ'~Vaꬰ 2f}͂y]@6#m^4&ndlR䉈  צNJ5߭},AVԾJ#REtAͽBАyh. UtHك`bq.a`⻙=䨯6qFQ2)ÕDܿt-GK0/5l\\󼮕aTzu.J O$>= ^ *&T{aYޚn73'm߃/bliH_^2,nĪ28iE^D,dҵo/̜ij1ʗ@s2 f}E#GHs Q͖&Xg S#`b83 Qo;2T 112/gWƠEP^ eZcy*̃~PmdyjuνDtL0wj/b0تN/of{X"u'_AvՔJ?WJ)PSҔoZ4>sěĚ{g*pF&]K3ghkn7 )}Iu]Gn:r0u|q`I!|?́T&ymyY mfk}FzFc}c#jaL12iM1Wpz?[qEm;S^N0̄6ѕھ&8 ,.A5 R GVx6A6`A2vZܞGY5SSX>^ǭΦTȄ Q1@ m{zjޯykլ-|-b1"+)_z%TmJ^AiY, ↼!WOMmmeS MɱXg ͬ~Kʗ /u)a|?0>cyueOM]EYp<2e%yk˵0:Lv7s~0WR]bvkaeq_͂  o|K\:FQ'#A$`p3zt- ל |Vd-aLʕn_H׽7wQ<4Ld27u x/.Tp(0ѥ^k?֌L2De/²S\2e:dp1q -(А 0>usKUv~)6O Kk}e;1owEMOlY+ͺT_êJg⚒{keZG/;rvp)ǟ-Xp]"~D5lf٬\$cMeS,{Fp޾od$rґ(h,g);&+ڀ 8Afؚ] XafES{kle49\>e%nzmEtHc-g 5O};U/u ЋRtx/hr~B2dh%.0UrƦxXwjt@RK~>u a:(ec̲mVZ[ggeoVt4O.G -KX1`k/s4X/~3k!""{O2zG|FpL*iHA'A|p Ɉ4FW{50_|:{F"2@w^{ދ> 3?|\*4f$=>?:3|e(9'G2evSAv,o}ͽ"dEmVs$ivx\tKæ1&X8$+ -m%V)t{j^KFG5B1skˑQ(sS0Gp, C|! EyABvQ(gS1eӵ^5]!sb(wՏXgV@j2(lby$wܣCe&tQ%KKel at5Ե3fhl4DZ>mQby(4ߒUSxגּe]b3]։ZK)R{uyOzuqgG~ [aZ$ )O[rj&Wx@K =WwYK|VOR;L6@(¨}0=htt`/(AWPõ#-6ㄤ\ˆagx+\RWsh"1Px?"*IݏGk@*(Nᨪ[uHT7S/ȦL3i+J 7ppuͲg$MϢU'%vڸ6 9Cdᛱ wjۼ׆h\/Ÿ5Xz"MGW/FWa'N OVk`5;DzqEN3ƇVGв޼&xApc',6i*""'> [-K ܜpX-H2¸r 5D,MoӤ?JaQ9/ @_L.~ηmx_d+7IP{Jf@=:Lɕ1~kG4x4! Ǐ :vt^ɯfL?tCs,B :`5=y`==cG*5(J%0Lt*d,X@?jCRֆ8gRJ8>ǼS۶Lt-_1(odt:2 $.}.hSc);$Wt(L͐~l;T9'׏ X@9RjAraŽ28 '|ra6eh9,tݚb\hO{\X#;}(r]'ƽ!pFD$rq}j5tP\9M-L3TcV A eTBjr 7 Ҽls%vN\͹I6΂%{rJ΃ѥyEL0OQͲ) ZvJfu5p U` 7?obަ59< ܔb,%jW],Sv )gRno^S=0GL7j*P ݽCdW]`$`nj\?W i@yLwV96ʵ$5Qg!R2幵b?NxR|9֎&Gò sIFM6JMbbO2Զ&m,F7Aox,tLʂzC[RK.i0 ҩĚ 33Sm>7'=@#;cfahd3Y!W\6YV-\]T"+U8ZA\z=l-'F'y 8_[ZK h9ݲCo^&WWp]XB}d{BTYj7z\-+0[l\Hd{.{fy8%|OղmW€bfi%nva!Cʞ 4s5PPϹbO<%`j;yjZp#͹jK!9(෵;"j: gvgLXmklN!j)J\YusŁIpX"+n!϶.Wo-y{>̺wҧX\ܚ.+Neelqh-(X^Y^V|Orه ep6;f}Θ1ܦ+).^vԾɠ=a&/\n.PKc`'d?8/]L`WOY?tj'3j;o[܅,Xrm_ok\D GxԏKKdIUf-N(x`̵۲jWwČ!3\̪COG`vt<B?i?~aCh1ܗ[K4 ^d+?_1hq>4zOW_W_MkMF1[IsSٸh-L#Cسow ".ˠvtK"D51.BpCj%Sbvnh 0Z %N()3Z}B~Ch nmڋCP"%b:¸7\w/.mFG`uBY0ZmCK#|" JZ~bQM\h,g ^[M? \jӠj-FvLY42Crsyy D!DCzcEA4]׽Ic7Dlbcw*U_0*4푄r]33FkdڮV(IC7[m9EU{BCGIfhwvSA?Md]nϣbmLONXܫ//7!p38}iI# lGA`r`ҦCB2^~xvTۢSź^Nk'z#5"υO'aW7[S>b ͡o(x ۯX22hl)>$n*nJB)NBAdAާ29ϣ)°9_9kŕiñ$1e e5s4MRLeX }zxs|ʜ.0r3q4nN]Nyv)oI Y|!;Gdkܫv)]'"m/h$#?DǝMA6zM0qdCfxp+a:d/Bhu:IJ@BEҒL#}rЩ# !0:08?*n(}YQ#uCj6x}:8]oCJ!@d2*ڠ3(jQ{o8 py~\ėjTյ! >B* = hpȳgGʘy̩8;QuYwoje'Ues b [@DV>`7M$'>LA=U9e!pChpɒ4)p6?gH{bmP~lU8rgK1_7Fu>1ԍ |qhBJSs} ůï1ÕOö2Rd0\rZYpn_6̈rAS`T̝( hY4JO[ >͹Sϥ\\͗i{/\V@>!:ID$a)A?V $*KG} |(r(~q(7,q2̈/|`9+nBv| 9NNoó7p=<937wdftT^jVi͸xzLiDw>o1Mߕ{|J-K-K7kKf]%tM{U0T=p=0BLK]Fћ!1(F__PHD+|:T{.5g0j_[Tu- \Y]`˕g0q ;VVmA5b B$ Ǖ@[Mx{r[vu>"J6l* ,~4&He=M5VE\A%oR-ɷa0zaHH$0U,KY3i?6qXzzw9a+85HG1ng=c3em%>揬==}Ra]nʼnekfX96QJF{ 7$yT|w2"4o3o~dFBu狨vE_i#Xw!\p;[jĥEG-T^y4G:Y%N6H_Ӌµ)63p=%SV)PBeRVT_7u'45*B/& £dH4 UPSƷ0 _.{(4:"fq@"elo¯K-l@6ݯ[ɬtEn\ PyV.im'\Yu5E(3kO+ZV*䜵PCY7TZTvzQE)iEqtM Uؖ5Dy@f)m(vb*2vhv8梟/Bwtٽp9ځf0rV*fCbbaM܇w12֝4FJ/=Opd2 С!Y;Й>vOvtAok$8'dQ)or`&C1`tjޚ 6oUX4=2|pf&VXٓ

b;뜕U@^sˍjxiPsJȴslimsrN!!7Мlbs; ^ͫt'!̱iZWpYf]/#7+?QNgwp'jW<#gW&fp;PnrM+ɫ 5̙~Ӳ[לd.gʈ4s ~r:٧GLj G>`*4 OB!e͛zp|'wNO}&!$x~{"u8D:LJv‘ yQ 7Tu~^%Pw=1 =? o ~HGd!!P։ok#f*yO Df09<+&F7"OiO1&6wsW8r*xsYR;vt{0ÞbUueyݞFpaAٹK88M w4X#PyEf@U}MS?/cYzeX+Lxraf6pȱ|,A]3-fU&0-(s׊̃? +`Z K-bPb%.^W@(_vwS8ѠDĩm 30p@lll,fB #7і'OЖgљ Wǘ&|&Hٴ-h6#v!\Urc%a(nò3#!6^7{'-rn UOw< akŪp{r59;ԁykl2,)a潂u%HG=Yø&!XRtwƚT[ep9LPMM MF3/ⱽ`0"#1k8!)~\R"𳼼C7 %+w8%TH0< .!['A%&+6{d|v3d,SmE¥6ňJ&5OoL4o {*5l7+yhAchȔ[ZザN|e [hCAltƹ%9Ś9ǫfQ& @gpdCCX`s+ j.rzjҢ_8]Gy=i>Յ-#ɿXIU'|4RYl\`.}-+tAItjdd3[țʨő%2]m1m}}Ń,/ I ?ƨ  ʪ!9LoWsU( ! -i-pǧlCc,Uֹ ܩxS';UU饣nmY[  0m ]l1 TLa2PZA7<,\K(bOQYG!rqmĨԖ(f]rkTsHؤn]NoC0&O':A̔Ll tE@aM&zW%X%Twy\/xa[bEݞpiaщ}Gl;w WQݬݓ}G $10T_c!s-7w]ķ[ZJ u K]p 3&9pb;oRC(eLQBT!"&5=zQwnf1]IƸ2lЈؠ!KU^]9mZ{ucWRTY-ET -'hM} ^D@TZA`]bY rAø[9 "5lq9- js{6O,?c=aW Ͷ]qm-K-Kߑ-XVa`w;g!M!J=@>,4 ILWѸ3,_$H.1GҒ"[b͠ѹ8t=<5O`oDD72[zBhAju ;a.8jcLw%'fERak^4MFq>7?\'m`?+IeʛuܾIz5Աri 8Dv/0ҩM"cXE`ER(}cdJvX #LVNp'uh v/4ݔ ݤ}1 5 (;0Ef#X}1'q|ߣL|g,DZas B mB=VL`Vf 9 $e(k =-=j8*cq,2538zÕ[r4/ҠXt ICslz0?/KXwa `]fid\uC$1d kڞ7-`%wY]b.[v6U=u_hKX٘  jʏj-{"XK_ 2= ܺIlhnJ"@)S gSLZJ:* + .8H+Xvϼ5-d=",l7qn.q8:։kAV/f S$ph0.cBua;Xl1sX<ҶODy+!bȥDQUVrZ#"B?rGЊ~~aVkߓ7wĭ"ܘc2,  i|Œ-`-4<%(7JOT۰}\B׃ LsTJPu5E0cWI![#=! V|sdtm_u{k0ESn1Ofcb#BBܶ(CwƉ=F)'7,cna ˚ՄBIn}YY'o4f"bU ^&rE" Bs nv5X' ) V>S#MO2b^oqrp2sejӕUY{Zg50=ȡX'^@y@浖55vǼ NWی&}'I?9dN+BoVgiס yzL/i/6*sZ6XY-O 1ԉELD>= xefgS+Ԛ۹ijXekCStRbmQ_Y?yqDx EA$wRQEʒBaD^5Ep O@T B ʠB(~%CD_a#xA׋; )0h16CR;,zW"+qDw/ђkNWa(½hDxemVjc‡#,A1h_z26X9nhG`}{x|O4&3/1mJ÷^!Ddnbnb`&ԇ ~~|*u%ďTϬ~؛ՃR!`!ؐmxj853k^+gjy筿ReW+3&#pHW5V-:9=k+qvBFhu:'np2{l 7U2`6ۦ5#;OAW Ҏ_BrBZt2 74Ld I" A? 4D/(\Vzr+XDBնp [y}aڥ3x^݉8zAx;wC"ogapN!6d26papK0q0DUڪZ'^k'½wGR5uI*ywHW=D%3זRfXGOF)P.] Q8J>L_UX~hud<[+t-]5\K-~K%7[;CQ@TDK˸?VKU6w;]2y wO;0Vw5wܴ?zusFar)N-4l_O8B֥7`j89;lTE_3ZxzHeFPrUNJCPYz r@0z2vsd>FYH 1ls*j8dD[1a?gcy=#_QǧR_K)/;P?A!C'B< E!ԁqfʋkQU^HڐD`Ҩ0/&yϿX9-HgK 7[16oprިlxH*2zC" Q!_E܎i":6xO{Vɛr! ;J! e/جza! -12N^[vwi r=h(QȀ~dDh*tG+W;weesR(ydH)DK}$mHg(-E2UxS߽zL=dU/~!Sv(zpD| ¨Vq]j'`VO G<ՠ:d^_ëKt 82F!yqШKF*/_L.͇XWGGnE}-FrOh kh&l.<\ڸ[!5L `*$O9= t&< 4j`eYlw G:%`ktJ܊8FxA4Nܹit8Ix\m/l+n_:{q.^>q`Bco"oÏ5: ' [*^D2iat/M%Q;ͧO<|&;SՂ$4f$.>ɧ= 3/,>L #<=ԙO/kat9d0ĦBUENڹ`SwNN|./1):J&,1 y,cbj=̮Ū 隇 5Cg"܅8sO)6j[LKd CM{A F8^b~>Ϊ[9PX63d\F\ЇuT>F{pM' ZS<NIny''=;.J`0uk5\ǜ2-bB{.dG{ t"J~}muXp.Tƻ޶C.B KZĢx?1߁&03|O%q-@-?>/Sg߲Q\/enwwпLb]V.S)ڞ[i,UvN_hM Q!1%W X*I';g?o/ %TE'o^;唇ɿY+?f~|\yhi.Rܿ .X[]2qY?y\[¬)Ɲ/6|f=z7F/_yy&/=/ػ<~s8al]?ㇱty@.<~ +bl\? ,j8&pt,IF~XWŖ:gQl^9Hr~&?Z移M~uNe}^sx 9S/GN`R']OݭC`K/Οx^iҍӭ K\ N0}Ϫ$MFK?W1BYv?;3 ,m 8 leG3̹KBgi&D-ģ~]"Rڻ1 fYؖ}Ũ }cEtƏF2[ ;:Y,LU8-+8҂Wwxx]]Jq4:@?7*ek(XsV1m̚ ~sˤz9fyy-A &Fq1v~OfzB)EELlt|tY饃 P7 2qp"B1e|kq0P\U/2ҤBWՒG.yG.yG.y{ȈC-frR1*ot0㺺MUh'9Ά804k) llx/7й27 Q04:kց'Կ2df?wjH}ԿOzh:o t:dvqfeT@]>w `UF`v8b6@wQ~w;՞ii]B-ثty%a[/F,x^v2ټ L)TsnH"Ɩ{=+_j3hP1"7WUr!W#R zjL) 9F NfL_Nv/4S~O)?S~O)?S~?3o&x0