#!/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=92a9cb4be4ada393f4da43166ff65447 # 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 [Ʋ/='c& [P%#iqf!Mc,X0k@+զ0$؎oG,hy{I`R= DBBQc90}J;}8㒅S,/BD:Ǒ|q9&^W)Bk<&H,{mv#> GWÞ ˒R!rӛtE GO8TفdpNQgrOd3>v>6Gc3Gd8 DtzmJVH(^/+K#d@dI@g'dծ<:c)^(C#-Dڣ"tW `d@=HBALX"AI\F䎤@aB(mlr@2?(2Kd82(=Hl. 3eP!/%hd( $`0#y%}'_H^V2MV@fS)8 (CE'Js Aa\gKX4mZt\ށiÞiYǞbQLFI=gRo9-*<+as0X X@OǗ.u%e R>p> Oq; 1僟KďJW. :VŀBpG$'( 3`QByef0_ܝ~ĕ{{ߋÇؿݵ?s\LJ93 /zqTohzm!W?EWr5~u_$dLSlFf3{p12uj{Jj&EZ|=@~~' ^ Ajޢz7b,ܺtVyi¬.wCţO+\tJŭdf&7fw7HR…7 )Vxן#pkݸ;\bMfݩ#G 'nfQZWzLÐjj]bʣFT߈%;bX/T,੢`6 qJ-sa(YtM 3 - PVe*<{F$SR\bL><uK%Mh.cBb*х$Kt^J1s5t5Op+5홳%^͵Dۢ%VBĴV}m1\|TH6Ȓ֮TDmQ,97=Zw} RtS1Do aCgTJyoh+9ZQK/\t*i:L7 6+ odcR0D0c.j)Zx(D<fA.+}+1]daGF5:a{cםR 7-ӿ'AX|U ?&aZgֱx"kAm0bMv߽0\e&ჃM6m}uoZTy$9rLV\h.]8$U"'iKՇX ٬542Y+F՗+O.V<'qxݜIH;|o6Bg͉wHXS:,Pw&?+Ef[DhR93~M`_c da7;|Tmb> &h OV Pfs }BaC HShj$DNJ4U}P{=,c q,㋳/}S8/kN 59O^v$ozA?>H|$Ytx{_]X_r=P9U5v?/{z~ت?[VcW#]sW?w]߮))UAUf[byVI˸(3/Q(mb8RTET(O+wU ~$u .vW󄰈KU[y KaJT7Q:]u&y_Kc~I|+}dͪ%ǃRߨe`3yK|1u&Fhmipfc3H8 4Iyw', xn6?Y'=jQZOT?8Tz矷?&r1眩٩$,&pB,fGpz[)3[CX+"Mᛡ1 ] õyOvyv."mcaXNu)s$Dg;~,P<]&f`ui q求ihbC_֚3KfEU\}%b,B*k$pʭ?{1U-4KF^J0CiSbL yDZϏC)oy?,a1%7؈BkD[ָov3]#"wm'S䒊8-$ߧC!dG (,4H<ºZ::K B>0^94kW#*zVM M:V D wV۰…c6o_7Ś#FjKG1qSǸI_V^K6j_@7x6y[oShdƈTPմ I)CJIf[:t Fri?{=!_)bݍ0zkjKV2.UGx[ 7{c18s{H Mtt\?To̫6~oe~TKE`i&/&;nb|{Bomu0>ťY4c4ٴt,S(LY ?{ A\kwOjVvv\;K*bHj*iNŌ@0gL5lGYFÛQt^9(\'xL4suC#fRY^`Ez&4^1XfH͎b<NfAq+x߉6  t?ys#%p͡yxb(f#WWhj.0' pE%R{4ҍs Xv[x֋"l/MbXXw(p6oawڇxd3D6]|#7˚yE)1+w`8n XsG!x+k(w|M3kJ8ȢK(~gIn U(ɣC Z)*@mN<ڂS7 ^(IJl9{` QTCMܔka M5Z< +]Z2hץ4@07!ŀ(EF{(r4 mKXPMt&~_ M Gd3JdPSV4GKFGs‰K'M$M` a a0.*ђmP-&n+(?*aK6_ X ǖ(cZB/~<-$tv+ON&f l.ZBy:Q?\%kUv/=LD=@AQIwNM. "vbsgvHJ&! Tz5qѰ.R ߓIHRLd1x(y=Yhc(>8)*odzjnZ44 /EPZ #0S_82bWRVUPM -5uUbOFTgvzA`Oo.j& |T6xF_4;ubU>iuQ;f\YszDI-#qAwqOh.#-Y{vS0 {)/jdȨ'}+b 6SN4:JDzGƦęXd!Z,5%N8SYkAt֯Iݣz'5޸%=v9NgU NGl~ :ݤxRǥ3Ia34dn 1y[mBlU0& K_n!M0R!DDCf4Hϑm enUeM?-!rFmqB'آOOΔlXV{WWCEܖDcǧ;PWHeW\#1;<v=/c mFp=FDKqpwx0@{.mw4qPpR{1J;Sp3A*H2Iu < dRo1М'ӬmJE. MP m=::'{g>(<>dՊT)@ b JQ%c ؅8PdP݁ɔ-ZDx) aT}B{j*WzumabK|+)BS1SZMD0p" hIELAINߞNI̓z`VZKA="P]0Sqyl.7&-$0l m8iqFQ&P{+-qpq8 <'.?H#R^31iA1uii<}mF@um:A8>q.a`Hs nf9є,)(%s=0zQBKZ1/ 5l׭ey+3b> \p,kcO/ׂ0^GX%gVf5=XH8K /xUv|9Bnf4QݼVm^x 5IjJk.ׁ&2 f}#GHs L<+QXcb Xԁ#99;Tyx)o ՠq8AIQx85(߆Jl 5) VFأH*Y&CF'[ Bg$J3\j0(ɚE('+zLYj 3F\3h[4ͫ<|X'Q>&m*jF2VCS+52u-͜A,ѸoY!tV6?ڲJaʿy.:JQȸzLڀr, ˮ.<@YG*d`Il۾lsYXe>(ZfQ~{8S}vB <zLs.i镉U&F Jp %}'ax56ptN&M,~hEN:K&,hܡfkg*&-OI!(0@|f70NP;/wن'#yI񽿿/TׄA4쁼b דBG6F[g=O_($$[cMEn+_B(yEis?~`}S:"S4um@x%ykK0&Lv7q~1SU.1z9f50e28ӯfjz͉ Pwsgǥ{.ٺ#A$n(Zn9~<d-a`+vH׽wvX xhh'abyUdzo0L׺tPå)pĝFC([1g0q SXCA< A!ǐn]O7mLp,@0 [VDk. 8dO6LSv/2mz`Xi֥XVeUbה۫,'tb¨n616$Rh?7 N nMa8hf5"lB .۟bk6J иwߑ~ҔQX/RC6!+ڀA,81u9F&`͠13&D^c+Ѥ1~.KlqSoS5(G%m8 y3TP~L/|L/JrMdFlǛ!]&t4 W9c_h;P' Rpi'lȇЩ@)8f4DmP?xU??=wm< |ޜ{J}8hр4/ Xo~gx7" {nKox?` .5#2PLTa{zwOch\Տj`$7O^rxxk9:c}6ΌRj+COedqSAvlo}EpAV'[fDyհP!f\ ԝc} 8z|3aidU2޼m~IhY(&.i:BzqK,qh:rpόw@0ybѼ !;Qr)NZS.F1Az˻GlRSBa!5i6ywʡ2L2 ᠬkk/k4f:4bW}ڢby4ߒUSxגּe'TuEZ2Y%ak&iN,̆lX\} QM-&ׯE`*9'p]u0.wۘo'TEwۭwqC 7G38~v=oKrhi8t(^FrS;<< wOv]L;\3D)IX4[wRb2Æ Gb(R061PLWY>v0~16zi{p6ab[b!A,G=@:9g‡h+hf;t5 [8~j* G9ᰠ[{UyoOYjV\trf"}9)Z3!99%[mix[&'Q<yaH $%Ht&ZtSؓ>@I{S:d Pc`|mxoŏ'4x0(! Ǐ :rl n~遦XeLƬ3y(=1Ǝ\kd6P`S^͓z "_8$k}wRbFzN#JG bPCU,8jDl<>ݧI4֖vTRKP<(bay^5ߍiC.w ar َkj QKRoRqid;qNXIll(, SGBۧwރthíaCfl0Vr &.8,Th#0!?RW'T;`s3u81j0Ƭ^Dt㉐@E BB ~ȹmy ̌y0i 2((FBdK4YeBH&Y@.V%<%84 '$ۄӛ=*J'B6aI'qO`wI.#r/ A$XƷ 3HӀuw?. ps96؏sT%O&N 8 U)"F˘M4L:}(#I 9Ζ,׷#q5N\߸߃zGd] d@et_fSwa| @cNkRY:yLZz bMؤ㠙Q ?U_hE$C{{cI:$+6(a{ZV󟲷["SbB.wIʛ%ЋY,+ LJeUpiۼ5dv*:de_o;qu'KuK)$\ vIDzSF'ƱFePnS l|Ŧ(O`1bXLj%cewikw *_Hoh,Lpj>F~mRLޱ~+l\JzY+ţ$q3sҏa-JWЉFqڑgk67-V#y)fa.uؙ{l& 0@IrGKV"7s91͉#D8 A(ŅXZ Ch9ݤz5l_.TÔ 5dGle UwnQ9,2CV)u/[@4Š@(m$.R@0֊-Ib/ՓYX;_$sz-mH)McU xH<\RW n$VNǛY)}G7oɬl4C&0{ګL{͸ѦguwӐ _EuDs4ɼ2e&Pkr$}n3tOJi}rR芕m!U2)JFr"29:L<<.jl/4.woPze TJӰ&='S,-UpMJvmEWkxן1jg6cy5+r+r}VMPo57QbH?+!p0]{32[Ұ^@ ;˝4km7@;qqQ J?idd$؉A./\,$-s(7jbF, M4!WgNgtSz#[B I y;oZC7,1ä-aKѸ-aC %Ė"'}>THhYJNhu,eծ:23J10x(4y:ӟiE[ɮRșȿHW.X5@, S۴Liefߣx2DUPiEPl([0Ԯ^J=l%9(DXYg#Fyu4:y )VԆ4ؙ3ݓy)g:Zk=/?3EaTu/ieF|*ђ @fi&f+:͵b7V=ϱ).LH`^.>LGKEL:~_D[ N6fӡC_"AçSSBZo%QFjMD՝]^[a,u4eAԄ!6[}MEcQ~?)Ӆ, NFhØ|԰咛lXD`9XKyFtP./''@?=D${'wighǔ7A,Wld⳸l td"1j`7#M(U(K̓nCpG ( JqM*vAgr/8ۓB#aOIZVXӊ7+^X{tenàAVm c`|^a6iPyjpv%.‡gAtg,O"_٫p. *B^KlFӔU9l$Ɛ@_Ƥ❸Z4X;qNFt@&Zms!n!|rQzf&ސGT,LBAH6oԓ!vjhU @HV YVm\=\s Ӟ Ys%hĺz?LXaC`z~p"!W >+۝Y1F!pv׈þ(2Y~n/:Z-5p5lY]5MvuIXdD Û±0%~DKxU})pѤ-Pe y> S6SNn?tp*'u'S"eApۂ}"&RzY|ж }3㡋HxUJ P-π#$=]s)ָ$?yƯUAa*2QROZP,& }WkKێ))InL&6 5v7oV9z eF+Nl9+On4BIcbwMl zm Z>?=39YY?{sx>?W&?֟ʓGG_=0S'HZno=Fz+©:N 6gxFOv4ƒ,Qބ{m`=ك9pU V*salXB;f9݆t1(Ups& r·wk`,=e/V+Xv8OU#,BP%X߫V֪t7|s|g%-7˨19Qתtjqh wZڗu 0,nIyPկ(:F7aTT=Uq^^NwεV@!ZSbrYIfVΕ[A>*8=o*h䛣th4OCak#$H:!7c)4zd5֏4r܊7r֎i׽:~#EE]C.uR 4 @ LX`g3%Y )n/dq,`= L N ͇(K 2oι Pճd\,5% p Az7q33UwBz=PrFb齨]S Xò ँGhmaN+,jm: |b86RWrYK49Ś˓ ZP&a Y㌃,Lg0,.aUxk?ZHvwL]av.Q_OhG\G@`3ekN+e]lu8zE2 :無dQXB:2[ț z2ؑ%YX]1F׸WC 鮱V/"?kU[AB;X Po=9 QblS8*˩xS';U]1mivvcy:@`ezTj1 1g ڝ28Bkz;f2s-L=EgqٽRZ(60 /4;}5qt5y ؛j:u!%~9E@M&/pKt.*)TwyKL?%h@6lt.V4 ĀNM"ª} *P(W%S1Ɖ*%;==p*@bk,DP.+SUkTP .aNcz4NUb_ѱ#)u FDl9DCԀH$QؤJC &tQ&$AQDgJPOTEsmsx܎ii8`p٠A}z9p&s8G''OZqT+TeB6Se-f!@QŠ ډƸ` ,.z( w59zNaSin0C0,Mgψ"\J{q1Xb4|=ɠ:Q F40%¿>Nd xۘSŰ\^N]p`2Enx'sϒ[4ل{-+$HRtEY8=p$/Pv\_`'cybno9^wł$fscKkd 'DqLɬ)$\HτDx[ϖI0aׯh M OO=Lٍ#%'QZg}>Epߎ":b?{h'Dy{20rh 6n|3v8$W''3n(W%VrIO5ߡN2CLFG"T"E!zdU$&Vx5SwP&Bʊ3hnmH|{kOW%\_ex4.N2]] ə7/j' c{q{[?쟣k2յﰶzZngBYp}(,P3 @b_W$r*^KaĔTΕ1s! LB06V30i,CԇKk[!+($BHa6VF8$%dYZiFPAYQ /Rd[Q!y +o-(,1ћǞ9w]։UN8UsKomY:bi~s3ISeĿ}*DFހ*S_@A~%6ub=]q5"E) Lp3h1ax560! f&LS4:'h kh0D^ŝ];6Ó\^t2}N(go`hpUm^c`>fgXeqBBnk胟<1i$q(.9;x9M B.Tb|Lu*uLEtH*5̯<|JQGy[5vDzPUPiSoԱ" PH]TUz DxrO*i/.gʹНh&qDkI`߫b艈Y1hӯ0Rp'ҭW0R bR`CkglϖGOb-ɠ4tb/ ~ x7 ;i 3z]IE+K W%8 yD\B3yE, @(Ы9A "wsmLF3`*j YC֕x8-;Q9w&ze|s{-b[DW@a=~03tCHzk$(7 |#;;9l9/=Ut,2( go~U,YI9:ptƀP=+at_&{hu5cV؛m)쐍xj853k^+M3<0{]E'JE9c2 pp]a˩m;g d8拆Qg.}]yZ&Q-i48혅;<[P+)WFPvP9-1;/mrA&IaKp'7"m_{_\ZږcT p-t1/kfE ӷd]3x^݉8zADpD2P%aȀ ﴌ \\fL}0x,8 tMCpz)&;ʯ#z[J"e:{7ZFtU0F⌕Fb 5uǩ%竺}G?YZoi5'um}5F5?g^{^Ons-9=wG$Aqʉ->Џ>zJp^izn?8%7pKߖT58lVVKL@_˩MeJFeLf\,5o$Oovtwz߭ l_zGw)FVޚ쫣v.gihOn4 ~Y&$>7&|*Z*G1Y^a {4T`/ \ *J`kxy~ O5j;uA u;9ٺAQ(< V98&sL ]ij!wK\RɁ+x;jCNX?'Tۆ&AjKy\3kO^׎ 6ÚY 5݅?O@NƟ8~ GӋ !? {(ȯ 0x־V]` Nh Q?`p.6v<9<| \0 jm_G?h1:r)/tM{M9N<"pؤsjAjqX6 u=@ԽxcmU0FR,n!*N2&,M3iui vZ:\L@`.`:ekDydA@q3RԋhD7Mщ#d]i V!Ս>}V*J?̲Bkr:8TYЄ, 44UVJ 3>H͒h(eYtPcg0Gm]NdM 2aq8?Q?GYOk?d֟y*ϟZΕAJ n{K KW!F4 A3=3:bՊ16&11\!o]W%4̄rWkIg1X[IGk )a yW`r E82Vl;bK@q-8L_Afk0P2+r2|1!iF!+ h!;D1z24HBPu#:l2z %铌SdAwZ{krDdZp 33ڧi:6TuO;_'' vx)\pTeSH4 !1@d`3puԩB&*N9FTu> }}"?{cVDp~_aK2A  Ws9H7 N%ݙT'SQ?byߓI&IŒ.cڧP>va"#YFL)3xOd: )eD2#YTCDռ=VIv.qÝW۳GS.Rǃ+Q:ۈDŀovP70🃔\ &ȨH<*b~8Jc[q0hBsJ>}5[w{w.B2EtNdA`(>bWD\Zh|RXf;X\̣ƘH'RZـr byI(.;7UwJ W$ߩOƣb[6/?NCs֨אR]{(163[N̡}?Ըb$5U81gD !T>̣2DEWW+,SO'Dĉ#cscj<HdO I2 ĠGGeG!ų263XbRN1IsVuƚ]ߤPgkg #B^ܨ֍ݨbNlꄎ>۱c9Y!4Ϗz&$YЁni\XV|W ̺!(΍PNL8NRQ&R0$O>&Ƒn1Wo#PaPWDj2nDQ1Y*c&hc^0f3K%!> 8&0xA ׻S"v9E!ґg/.1T`H9dpKEMK>J"JFx}1'Gl`EZp0:} ?h`XD-+ cučÈmPf8ӕJprrsq1$n( u?NPe,FšVO,EYS(Jnӈ~׊zàkBeL{p@\S] fC.] 83f§@wVg9[R 8*|1"Oʊ ACD x˿Ӝk1\ a?ޟ8|8~ |,јo:q+RD ԉ.j ^5I O!'eEԕCG(#oBūd 3XeDŽAdGklғedÁg9$h>UJU L3]z,֗4~ᶣ~LSQ̼5;4Z!OPfZ,CfVN'4R?:*m$HhOP]U6+jDmcX1s9xx43)a~w|}̗-BM4`M? j*KQ^. r7U-gXPyt?5 eJSvKߡM۱ɬi"Ԡ*iuK4%/|l)b)\[6N2TCLBZ(Ԥn嫳T*eh FC']a#!R3Ʉ`&MQ ly,>I|Ra20A<#~1gX(H o4a! }R<p9P/v.ؔGE[Z {>qSY5ҙ88xkU[-ڒ1e_*nx/2q+x<>N`}h¤Y}o1yiCbbx NMO6Ȑh=jqS$U+n7s2ϋF@up]֥vEuG^s^Pȴ VHٖI`Wl-e/lDhA>2h=zMܺSMЌf= *B VBZfYAkm'L@t#gjBOQ.FC?Ϟ?_ڏ'geue=w-UU7=(}Sb10%;ZyxdC8Dn~Sg#jKQE!f{iGV ߖ:j_`ۭN) ob̌I4(/_[f^m\,6cbv6oJG;k`i`eԂ¿oJPEt@֕;![bdL*143{9rEp_ (9 QCN1\~;q?sŢ[^%],\ ;p12+(+2Ca4 * JSIZ~7(=]y_=̯IO}g?p?,#ZgOKJ>qO{ 2||9ONڏ'=_Kl<_yhy<,_q}p oCP%Un!؁5|*><~χn?ٝ?yx|_uxx !?rux0?rx Nø8V(hдb}ߔmoVEAR.IrUX;;؅{t-(LIuw_*ӻOK;}*dnΩbOB1W,Q?Cq )m/7q] 8D ProwQt."yo1ON..1geF-!Ek@Ly(|Ds;X`|cc9^>w&P(9c@b}/O]\j4>~~M][W`Qa0k.JqHyvU^_I'Fjw28vnj7nWn 8u ec`v $ gDnj/a/`ڔHh 㮾 /^N99932270rԍѠ>zvE9.8(g)tV? h@27xiпց'0knf}20۟PrGs_=h GvZ>C S%sJgqh&0AAfRxJ#B܂9uxzҧKם2VN#=%dѺH^Uy)dS\\RL! [|tCLj\Q1ʙ_1 J]ԋE, Gq[;닛3x82j~$/K|$\)N|[=e̟{Ɠڏ{>WV7֝ʳ\5q[sKdOPҺaJ*=PWb Ir?bicёvrʐ?????????????????@