#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=73168d579659c898ed3b7d967d1ff3f3 # 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 `\{WȒϿ$s6 &1mZ&L9:BjdI#2~n=mHݳ`]]]U]_K95vig[jeo[;o7_6Z;#?02^;wu5xm`OtlQlmF܁Fd{nQא<5e1F}9ǎp-69]zriFp^0 kMз7̳m\5fk8("8lƣ]bk!1OgA_XLdHָ a"5azH&g &5Þ񠱂0#X5~ /0=,ϜϸҚlfD< 'L%O @v1ܦH5f9[0#X@ڃaG$ D n%GCyriE a5Z,2B<7>IH+cM42jh^00K*Ucht* ~ Ԯe:CdN2X߅hC jk0j?2巳il0dYOr@TE1wq FO=UGq4ċ* \՞:H3>v46;kGj@S.j^[=U fe?bI˯ .]*;TaOh]utFW,j@G;S:*(cMRՔ6č\n$Œyr]̝S䵹~/FŘ|Kj>u^`*O1yLş_Xܓo6~=vS2+Saj`[~/Jp Gnxɥ9F3#'s}=32W,C`͆W.yg>C;!/04 !pM)٬vEaʺO{tAUv AU&ǥb{:0x.D.4E_%r)^A Ě<2u/lIBa_0nN=qqp\T˦  E:uz xΐg&kD3_*%^ÜY7Ͽ'3|ϭ"Os eKe Oz057vugM&wC`b -&Ѫslu0ϝHB`y(JEB >%悔=a# 7u" Ka0 X(raoNH4Fj#bD/͸]`eïo7;A>lA`lpP[;ۭ[a!ӽ29۩v)y%,"*O$=LJT']'RI;RI!e~X*~/Z*|\*}@S 4)z< h 5-HaS 4)@iSTS@b[簏0v&!E_!Nl:S5 uL C)lF٘PUPP7yLhE[\~JQm 1=X:%_C iǿ!Ν{Lucmp7 vDB|&+&lX(K%ZhO\p3,+m8 ݞcY))_zGycnX:Vu\'&l J  #:!.5_ҵDYC bf4,XѡjKNmN9rÌpT*@M8z3& yׅЁBLmDG^=A O>ė]^]j):HV+a~$#[n3"F\_ T">KM8ƫʥ8 ''E@m{UBnҾY3?{@`qcTA*FDqv$=,_]fh֕yoW1DS#{ ^eѰ"WJ12iyظtȢ]pP(&}ŝJڗl}8/{@}&R߈Y[eha2B)gA AGoj'j:UVE_ V89 W MWWPܤϮ>7̽qĸ;>:|320$KyOO,ӔxPv{W1+M Ґ' -Ov D%J ~!r妐m=/L*sN3ddsǚK!HLRygx)Ȯ;Kf/&%nn (둓% Uj&&ą3P эؘI`^䭐YFY,vTuw/]06+0%Kʹ@Y`q.1 uˀhCݭ!0lŠD݇S@ S F$M m{ۈ"`_ ?Dž<L=XvB!< "/AwĚ}6$aI3:zh P mI\Y,bRHxm-- P;XR g99`W8#Z-,nE:5Ƙr.*Q.g by{6f?#<OP>hM"w+XHF~эU,U: <}Ob}a&޹S MÁTTNmݼ)O BZͽ\tn$un=A7 |T85%B^& p&"Y>aP~o)`W,Dᒯg_1龣@w+=꠼H:Y~wKt(|ROFVTbiJ4hg44C+LCSYH=P=]b&Ug-2,Qe-q=2}&~˃}aMQ<3=t^SK*]Bqҳh;'HR'2nmDuҮy.8ˡ%E7nd/߬W[ǡг5!(5gb6q:TߤCw#PRU=bAO棞⁵mڒRMxTY L8T$'G՗v@2 [FKyRAf,@5Χ*<щ]ߜYYdv1\x3 ?qo<֑ob8MQ* .[4mX[Yq~\a EFlqT Ea%x+"T9"XIAFmU xtxՉ%x٭ Ib3I@`2dD / C em%;Pcd@d0#+}FL,3#lA`c^\+Km[h,WuKC23RS۩Nk̒l7&)IdLvl`+6el0j1`"2f($YUgfӆ+QiϻeN-tX㟨|Bg9[BߊiQ4V1ToIJ)ʔeIC+g&wBح`+w(v33nU-B[ҎCFzcxy,n<-ڛPb6gHk2MӾALcX6IM&v̞3==mMo ̿gWom0^~5LV {a^X}g[}7ǽ^ |.4(\dy\)KmguG#:ӲLƿ@'d:l55C!dk:FYt Ud(dRӂtC->ja;`bO(W+\>P{.>)lR'bhBH< )Vw0Β@i%iRkz|hu }-$kua%m;4h\KoU a3 q+Ɛ|붑'F|5OLVc U=psTI)Hazu\ˍZ!Z}:Иs(Áb0u!ªb ؇ #J0hqF_vˌˎT&}gJ[wk]6Glo=jمATr*U ce)ѿj)ʤjW2- r:"u 5JFE>nEGC罨()!S]g 'ڮ%fOO`y,[{+SҴ$nL8Ng0mehH-&^&WM)r9[+]v<;IwR]J0ޓNTƵdZ4I  Q:}||Λ_>1sלߌYS0Db=tg|'O{g1Kg&׻8 IR">jТ`GJگ)hĒ?ޥNqݦ"30X,)^\[oYgRd}AF+O(!ϸrXayQnL;vZw9ɻY?Ѷ{S Y~!<}~>4Shh]M<4Ո%U3TE_7?oީhtJ ׼Wk32yp= +SVk[DR:Y_-W )vӦn*`+C]&!Q(%:1ctvDjLز Dy~]*1a3xcidVv"7.%C ;Ԙaͅ4Q4Ci<:4$EyaDW"+wIۙ|$rB8 „ǀZM׷ߜ=m%N*~X4sBXfK8k1D's`@_-y ,kÆIDz9JmȗdG.3j+/3"+Cvw%5mfэ"<|~mcj.qh%'e7ߗyVKh||ZGCa,mn#l!±҆F@6;h3 N~spu7زas|۞{ro*&#:弹CC FE6PZ|"7cڃta]> oa[- o?R~Ow:i=,4kov֙ A4d4|&20><݉*W՚!k Qx~ 8U /,JZIIsL-@l$EXި,W 1n?^;Ϟq5?OئrvNCA'yXu } ~nSNяs5OnSmP?-GuuTQ =SĈD 8.E3?+T犿"~7̨à G\7)ʇFT>' 9N`I36 |޹Wo W7gmT.$JaT;%RQ3h`q.VϖճHڈ [#|Ҽ*-E3vFZE y{ %EE(Q=@qfDJ]O-1s 57A שT"]cCŞ0#.Hf.8* =~ !xުdkJ<}KYݯjTS;[ka#4"lNkPٝL6xQ 0Xj+iCBגP9& 1Gei0@jюmwPz 17 :n *Lz]OskI=J%Λ# 1?g؜cd(r؈_eSZu]~>4WϮȱqLr2 {UhSC&߲='1Td֭?G1ffÀdVW8 ,? B,? B,?H "pA2{\b,9̏U Fpd*1½lFFfO ;b^{HMbx?՚U0I~ k+ޯUեyo$Q)*{eXdbaiJ]l !Y[k;YCTp3~+an@OfW3*lps.!#J{f!8%hb+/׻!cs؎'FA^wObدOLic3az8A{޻p)u?u @EĿQ4Go /R+dִ_RR!0]HcC2lLd%$^C~m\Wϛb5Ģyn ?u{.>nU o.:b~#'CmxӍM&xi#TQ@Ap1k^%D#hx2 $-K6aOp}(22=lI'm,Q4;`NǨ$ACx6a)54BGeS!Cn{s8~mY8K|mBVI{xYR?9QNxj]s] Q t܌<ܘzt^2uma ,9حWFI>:yCwX"Ufli%5_ȿ(h55@0+]ܐ}xP=?|;3\[Wꉐ[1"vݙ$RN"!|%o<53 [ŠLb\$ q2^DI9qp!DvbDVd6FqeQ >o`=8t~Zo*т/sn4%lLC(q"O"(es efiߞ:םv0`ԕYnھݶԮlO̴ )7&#b8bf02AFyQN$=h;"vԤ4-/KZ %5gn¾o)Z٨ }>(o\+Zp6՜e:AiQ4@Z['A9M(wUx!X\%Q(y[gK8/;Jn7r_1SMsd%dbHb޵O)77 4iQT&ҎǗ)PԩKZ;5ЛEgc43kpT 7XŪTbz5zA`1Vtr[c~oDA?!(60 ִBCpcc-y'' fcqܝ$< B9`Fe2ՄRaJVm1V=ˏx,80D>rRjH=[q@|.ڐ <=|{4=cl)rc0Q^ol1Drpf8c,,=ͽgEґe_7u3Rˮa³[ǚ0^*vѴ$ WND!)i *8o^>Z^}<=;!A9h~O3JAeϛcJFJp6JĦ &-J[bgPdM=4~/5p,3Yȉt8'ҬHgŨy5QȟB`CrwƐrȚ @dbc-!QU37d{J `{zI~C}43v`Y:D֛E!N7ݍr$9Gӿ C G4 5G1c=BhDŽ|3nX9nh݌Ɵ ?F,Tt6(hGh*C ת*TQsMaB} ۇOK RXJr<,sbGQ5o3T{_:~g]h<$bk:%I)IPs9[EC 2tup>>❀ybƣJr±&\٭YQNq@Z), % <iXSn rh{hbp6֠g9:(:^V*~+X"lOjd󆭼ߕ}fq! (vHJU KP+WJABŻZQ?O{^F7b43k"S.?9k,:.mLS`jk.Cڛc;J:dEOBVkѽVҎe wyİrQ*omϺ3tS&~Ȏ$w:TX8=pz(a/pD0ې!;84qGc!?bUX0fU0Ҕ!a~߁ H=G +w\\ݷz(nS}Si@ $ /iZDBR@D?ˈ 4 =ayЏזS;` Q11.S|BjˣWD^љo4e 9j—R pP$<;Ɏ>RJpB?+a6/>;;GJ^ȕ+k!*+3:_!TXlnO9^Alǝ'x ט;mIl4o)6\c܉~n^0Vpl,/a–E`̧t, d-?Qtse3|(DDymEjVhށԷJڇLˋ:88: DeJNlsᜇAy}}ݪ\b'MH.Av Vפ l.=w囖a| Ȏ'x4K T} C]蕾9} OKa0~e AO7~~sqI~r:VA[góóճjzE(OO?V޿ffs^;تOg,Qq:- -L|Η~|pxL %gZ&\NaT-)EO !P#uҾ2#5=:١J~`6>~M1KLEUe) fAYܝF>akBpv`4тqVADl(_)ԟnsy腎:( =z*z>ijr֗x_U/s~fFqeCX$l pι|sXvP`#ԤG-56@\{[ͫ\Uef.Xź:HG=z%"е.F[S(فB^h2Z!3" gh"f'$eKj]~* (Y@+J=V6o2hqMِ2%aVa6@$f(M4V? A{'#<`iQ&dH Ͱ=qTj~7s)NTuė%]*YLٟ9`=麼yK h[7j]^,UM D s"ԖFBn?J!7q0j:p SJ\FdkhL%D6ȲpݲX;ėٿV!Lrg =c3/|[X9:I<y_fշw*)`BF~߼cY*6K@|^h9!f3Ms-bL:b2R&!̑@PNb=cL1לBPȂ#KsHpeYLbj0 .o6"l2P|.adZ tJbVi핌]eF6g3֟-)x>A4Čیi_b(xTXF\0nV!HM o=.'1\c"lio}^[[{a^/ {aAxu;Bn`Ʒ|®e[>Fc7̧m8!pQQ]z#T`^ =REٗhmr N[y b 4`Fkz͍> .O^ź=6*O:6 39  E-E1 UsEK#84U /r5Tn\ tv&@N{*CBfhvr}J& ŴF  a4$<ޑJ%V">1HZ)Qx4,v 42o\~(, 2GiFʊ;%H"父h"bm!$-e1唹-^39#3!Dхڱw*l#; -QϢ0sMaUQ3&i-*"xwNTE 5tEgg8:o&7uT(DUps)Chn'G!9KӀ[T&Ӹ[Wb\J; !.lqMjZP}kP$ [3;VUx4 XNNke3zD[yƑ}2a0`Ȥ9m` =F|O%C }]6@-DVUAOR<naD R-EڌrUT*bG ^뷊v"…t `D#i! @?A;4Sr5!s}N!6$t#N4L1Q<.Fq!t8>H_,VHفxBPJWFI>vC2'HE|*L#qVl(^NgD3 ̈m".Ev ׄΜT1xҸU3f* Wa(~-_:3UdVԨ~RUMŏ r7~fKkX]R},Jv>؈S1Y#t$QbDD0XP,DEާ:~qn_:s$qae#l>Stm DsN`d v?BAMH>dm8ٯ\kߴkj ۋaU)Qx%*/S"cl,d$qvCKjlަ|`1IhPBg̸[:[~􃧖vx/lel#ST][pr$8-氙)BNG=7˴*agITua6ܧjLnj:sGIt)%chMO ;Du E s>{Jd%qD*f'guf;%ELAc1&kر&|##ȦNSrrgzp8>^N. 7g`tF\zY[*Ev%U:q\]rUq577y=XD"<,>Uiw5' Iᣟ>5cסۇd$×Сf:uq5Lg*s6Fc`2D$d ~ FI"ǽRWy]߲X)Q1#VJ~6eu vD.7ig-AcQbOߏ#?SĐ2 ;[P"CvQxmVᵯ(|uV_Qڬ 1w%i^ߗXz+/E|ܬ ٬t=%|u4Yt@G|#Ȥh| φ</C{aW=a4D,G浉j׾cЌ)&]]!?d玞C4ަc4Y S~KNd#P`1+7tw0%!FDz$|/nNZkVt1PSj:aoodƄ)3ʛSm͸{," 񠴟#˺ .:>ǽ*!5$ T-%6JF%: nBQ6z֦ɫ^Irݽ$) aK%۫'Hj=^H$)^z#INSWYǨkE1ހMMd۰>ʹ i3 +vg2VvԒŢH5p*G/mlQٺ%aMDbRi0 FY~oA4npQXՔ rKCxy,s–LkH?gHOŏ^&s"p/K̥ۿOb N["(a`0bM;m v)CN|/3EE|3p+HpےBZ(b2nx"p|p-􀚱FP+i+rӥږ1CY-K 夈| rwv_'GBLDrI.WFCbw7;'vz RRHaXz6>0{$JXLsl.:yYȭ0F 4iI#X&Ib:VDC#<8;agu,v}Ԩ4汒-+W8cs4=ɴО6aLm ]ԑQxq.aa⻙=dR/FQ2)ÕDܿ$֒- E SڒJ66e/5ѵ23,HN d"L `~3 gTٜmtGO

?mgqGD2F74Lf_mKZ|RY"un-+ wp(5QY²K&)E+2 c]z*e& ҄*r!m{,xRMC_=]#CV*U 0L6` Y蘟ƞQhzQKmHP0fѾrLo^ ޸Xi!ҳ0GZKϲ:;˚pu͊ Ah\sm} cW3-j m/\wcP&)=gVeyhT4ʃ7UլD!Ye4~I 2=\toyuw>K^-X-IVĤ5fl"L OPN :w6{Z"kPhi׿9Y lS< g9=}Z_fLΞ1Cs6b:q|N;IU/u:#ZNb|%z[|G>\t{?IJn$fJeSYEуwx}'Eޫqj5w7kx5[O{<%>=ǣs:Jm#.;m~T}SNt2=߫9?rB}yGqg'ٴa 1ԬUw?43a1:Wkszx.SӛDq"Jxg"cMXwZX\ \u/f_(k5E\ %Εa"MYw* fMzuٲIN=ūOY+? \:ނnK-7'-uF߫^(m_` afrzlh Bۡ X $ ?z~ /酒`'MH#TsB5-EժjrPZ+Ac@(M^n,؛r< wU̒WB?5C>Wڊs^'h$ghKK a6-;#}HBi \DL(.#ŰPK*tOz@=IDˠ]bgЊVF^˻۲1-!Fn2}")Cȉ`9=}p@Xҿڅ֍8pr$F0`,vI*8 x㙑%m Fw9:CzV-?8A8[{蠮3A.E!gMw| A-5J"cxp?$Fm m"rx8y}Uc d)ll.G-o \<5ֻmV\FN?>.Et=gn]/j<\I`=pHs5.+k iPWʆбRћii9-t-yX!RA賄쐽}2OE8MO;@\6ǐ(Gw"g=;Ք?O)fdԸ3&,f+0rRǟU؅$I|,Gurvxٌ$kB9hĸ63u?aS`~~pF.F$㉖!RH;1R4顼RETUX0cp93a_)>[J  O&ق=^q2UmHsܣ#PqaӮwkpQ6QU|6#QpFU&/%Yε^|Dbju TW #`;EDS.fz2DZ.K e])q`,A@?֢ Sk\~p*9֛Nfې3'shS 盘;NXUמ4m}iTwաZ LMt+.e.#pN5SId(yLH; ’e%8$_()I.Lf 5Q }Ys-3Jawf1qKQ2^>%oo7S(3Ks2e, Os+YA'{;ůVRk߻YnAEh9Kޫ CXƃSdZ jVrm ϶R^|Ǵ'֪<[/L a_X/2Hp]m@ ea &JW5/sUQĨ?uR›BB,'X.,e:ű0'}uz$I)iJʍH.:X"[)АK(x.ݤ e+óT2fkB:FrǻbU9 7F.g={~|R؇s9 (d`9}+[ $f4w“i%T6㗔nwюF{|y}:jfO ՚gȃ'09#SUkR#\pI ɏ}R\G":H66v0Cr8[aTz 3rtI Jn@ыPLxF@hۍߕ;d/-cKG*hU|ٲI!҈JJ!aOLs٤y+ ÊE{MTP/dUB=Ŷ@)t}|V? gϸ5 'oYA޿"#}{xÈnhV)bK:gilS|~hh-LB8~?QYw|pzW *,o)Qs`O]>E~Ψ\>nw3NJ2i\4R"*?9L]wʡ2ۜ݌+OqEs Ii vOt|m79kOxp@Chk֎ VߞJszP)  +Q?p/VC|=zuyϖ;"0^"Z%#{-eOP1hb'ѢDtq`P?7ٍWoH?cj;lB?"olT@a 8k8on[&F2TQi~e/\˾ ftZITEg`O.t EgCֲ?!3 R)- c37 dkCčXG" 4VTwTCQ]8U߭HOFeǯ"GxB/]:BG9N"U9KLӛqN8̎DU,J/ h,Sᶚxt@GtA{s;!" yz8h;lNzR>?e)?]뭀w|5/fgo2#Ơ[!g.BZXv bop,C(1tSKsx23L g]Iߧ/8p?c}͍v|jTVZ''xRm :7byOR2NX6w$v޲,>#0