#!/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=cf50c6a3994c866294d4315d794dccfd # 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 ~[;ksʒ bs%qnűo0ȶ`"޽augsowC#!VmR H3====?[o_{f{۝ݷ/ag3Ry1c/­_ kE8Iժ +s)@ojTG$92:b`ʒh9\S?g(:7,7$F8\uǜxiGlGw?/h&[0fh: pPHpXwDcMhLֿKʄ06`$lM6/' &N qc !0!E0:q-0Ăh84բmzDOy$<-tJ&3.h4"!G h=4H 4]qT$`(b|:V:4QʙheX-ēD2 |1T(ZVq;|jmGmYw YӶ.kvAWMƾf ?_me>s/:fwn9VtO Pno8:ι3AN/dvn[gu>2`ʎmyܱq2byʞZ @ Sog*m 0 dͧU1ӋDC>MxO790F B[gќ¹Q!,cE cˆ8|9DG)֐Ҕ}LSޖ)nc?D1: < $OUL=6A0Ƭp v/)u1XG̰1^ӈ$UI<@Fl&q"`'u38@ 5~91U&~Dca%˹ -j\$g}$i蕆dbfD2yǷs` dl0 #(Q~j0Sh*K \YdY}j,<-]f@x!tUO0$7GF+`s'@PIƓe7`Cu%3t/?{.hmvt~]:ކXxe28n3 IK :cC&7HN&U)~rW"HP8*8 ;4fy1Z10c}NcD'=!p 1 }BftAN{AO3 o056\0|W!d=1bgC7<* -*:;`OiO wlM/!:% 4Ǘr;ׄ]ALNa%  &W⬳Iq!B}#3L$N;@lT?1n2!b;,b)aEE`W\w<Ad>DѓذG;HI&o rbL􀈀H2`MbINГOaX  D(zRaJqB_YmUP:%VV;$d56SL 0Wq e LWBƩC;#w@K8h`ߩ T` V` l߈Cդ? FlM1NN&tՅ `u5 1nLFzG@śLu/;7Fh hR[)?ՐRv0Zy@![71*5 kh6cO'<5 aM #DiI XN@9Ihs{4H%1X>\C+ ~hldkuvzr '7Q.wOwnh8fA!9]guwͶ $y:e\5}W(3wp WjL-/g &L$!e֠Li ڌgz628XZپmsy6 D( = @R@de1 ɐDN B]RuVsKu.+ָ;~X~[[c'Rl{}({K7 1*H4dK3M,(fI'+v;VhxYŚek ѽf0nDK+&ҌFVO02]7VQK LBͮˇ@Qč݄4xv-#a"I3%A Fg|3O0ZjփlX˜˟'AE3HA|MN.ίLdŸ:SA5'ߟֺ Y݊1$RXah)kY+!J9[QU:, gL/y E#\x_'`,gw[Ͻt/nd fīc)ZqY /b802a"2X^g]Q׳}PovDHE2(rԪa>"̱P/Xm[1yD]J}u+  s+\@cPy{zl)'M`wWCVf<露,3bD-͏re_6c `f)Oyj{23~M0d~cl @|ٟTִ64Nm5G B2X3(6:| f$G*466af`?X~ml0^ܴ:$[Xk|&_|Y=le~>n JT W:,ufƑ\8.T& mQ$T + Dph&IηDjx++E1|^J Gs&s2톰^J'$|^DLRRD*&"V%ڏL{QyډTߦ%6yC\@ºOH+۬^}X|Ud ($}&KJ*ghk()-ȥ$8ƃ' a8tǾ< (/1 R\.~mh6mYJ4@ʄIsݦwzwiNȥ="*=R }ٟIOl`D:lK#f\R\i{_g2bɖ3dP`eItH+r%"##5s5ir/0/rY;lp*a4roC K[Ul+P+ns0{}TwtduH<l^;vys}뾷4#c(~j,WI;vA{S7Wx**F!bh`iM'xb]D *hԹO/)VIoDys1DwAcD8Pr<XB۾b?_ŕn87);KWXR:' 䈀 i)v퉮ZRؔI-cb [ r-`!KWwV!yUw|osbsK; dF8nyPXld9J>1c[3]vڜ rr`!ڴSpt<"0\t$k>^ܺ3kiDJȝ泔;Ka] Z{/_8P1H>|@6# FGqBYm]D*g BDlɲD  C_`n n=4 9dx+p zs{VWejӼLr)ϙs'ssCaD&@z#yS~ 6rcwF*=ka`7KZ" N7)*c U0vIUM0yntL S3{ђі;L?qu."vo7c.>dsAohyy.mOuk fL60:aZr|aRRWӝh# 3В0OKW.UkǵY,lV ˭eζt1Ӡ )A%򾎼p{f`L{p0HpAK&D 囌ŋ7յN\F6I>{iHAsV)V<4Daf`eT(\qv~u* CS{yO,j_ *w'!"4{(!SeGsʟ]1ZP_y8CjRbV.A:P0 ׆ u=`v 'IdkUzy=+Y=>q#"hAޛ5SS]v 8m=XuMLEX%T]Ѩp؜V^sǥ9B_9 [ΝZ͝'ѝ$˺5clF§5ŖB%2sONjlS ksnKڸuWWqBK[ Rj4EC'~װU6vsJy==wى9P֑j2$Im_9-ku-B2l-HHz8}vBy<Ṯ/5ʜUF(yhBpJp %s'ax15pt6nۣӽvaD_ &,hݦop>ܜSuTW74E&lRT5b mۭkk(Zx9k ~F /ghm#r%P}ӷ) ۭ:5.Yr y;CC.5$a۴=J0J! IɱX ͤ~K/!I%0\pnkԼod.p0*/$omvFbu a:,R1f,jF~zr}xPBjF9=zW;pئF:ؚC; ֋0ϣfͽ's3 p8@;: "`,рК I9Mct?]!Oੳ׾aſ#Й`MPg8ħ0LX4/HȎux, G9"8=ż h3E~-E7*RAf;o\PMsF`E,-A'0ESdPl4W\mi 6Citgr-ē|g-;J9QWe>,5Ybfal͆LcU{b *NZGN EOdg'{y5OhO1tu+k1H_?ϠgEq0³^Xb~?P] D#|*hoDIT}_ xԙ)T˽tVv}t^-nWm Q57ݚ6W>$8>;ޣ6ۇHM.q r5OBմk]$ 5濃p1 OX{{<`d>>W+{z@fWz?_+t?} }J2B[a9+h rHTʤmE(4T$4M|pyZaS<Mc|rQ<i| P'a((ZaH&;6L=˞NOw{j/]Ci7SYLi2M@ 4Y,ojG+-3J6p!=$hN9M PŇr#cڰ6O](R籄q (m$S嚦h*c<@> Np QÀlsTED9VVnc!2"DaY /7r>ٳK5S7*X0rO8GBG,sTڛ3f'QB)Kg] cqZ%I#l0q.Xϊ,]۪1$F l&G-L[XKlKK |U"#jf vl5= GN(q ROsuZsCę&M( 54_KP 6Pq NvA5$/?è_VY@".>qӒ=\y;0Ok-צ'I@@\&am/z}Rr6v5!06,~m=sd5wDitp材e&¿3J5go"RMk Zc*ɗEZ BlĆUL5U,wkϰ~IwBlNF=pF1ٖJg˺|Ir]qԧИ<UZǨS34ePr]rs8ob gG"€3*`@XYfy(-?]O]E8^-*XV Hm{'<O%F#%ѕL@e$RDYD- n 'CrVaD'V[2G  1R0q#j?OaS`v~pF.F㉖u+1b0R^Sp0c2p9=3a_)%}%0|5{dZ"xF}X`FKVsc];CDž:యVa1[-<^/"|M_#5N'sN 9brKѸ-sˌkJ͏艉"FMh <9lgw@Y JWkY PSJ.?Dp8xC㺓֛DM_gۨS'l *Ө]盘~ NXU4mhT P->`x&ɦ;0ݚW!ɏ>VcPpL%QfHՂX [6 ,gI%%IP0^^>Xjj1sR sSA_b䦖ay[4b9j\K, Oc+YWd+YxB̵]B, ʂXQi%URTcnzXљVA5Dv+eGiu4յeJf->wfgߙwfgߙ_DII;y7ҦA=X1p{el㳽`\ޤK7`W.vpn" _WM,#OFX;ŢpXىЯ 2^;oߜp5 XڏC~wKAJ߫ܦ;D&~rSw0#pB2{Kco LX1anNX;o"~Czfd] ZwE~#[*7̨߁#ùFP", r׼xU6~ͩ0Z.d\9NW7P|T^[.WξuA\HM?i(n](/Ej#j̑3]q1;o ߚߐJ|?WTQ1{(^**сRwpcdzK yT-Q  8PЬCPX9boZ ̀Q 䖴/o!,CBעs3@e,%"f(m6djz!f3-@ٍѼGciM z]QTbI3xNn9xD!g 3B eySR3npo]q?qv;N.ho={нղ44"tL1HpbUR3hk49^P SC fy=.Pgu k[|2O?'dL2_[>;R0}/ cc#RSآ`Cqk+<@ҼW? Uw *(@4)*J]d j쉢DEh'q'E@+d![x`o,{ +a!4f qΣԴʩ2=d+tqct!1hcV#I-P; a>1uF{cPC:f'j C\їa0G@grZڝ2' 5G>Y,Z TYܶT~SF27ʓ0 эqTZ͚^#>) vɈFSd@OtPD/- #E~ʉyt۫v[`%i\Ek#R֠P-bBpoChOq;!fP Ŋ! FA9h_hpTȗpl4˖2V0=åKE]𺾘N1S!|^2,Wp(ėӨ Ox_nz1tȲQfw[|RJY.ƒf4e&#TF#h]05?DB3̀ ["h/, |y!8e;c\N9eA;Fkoߞ:o/pZ]0M#%RX9*4Kas@h`[)z,0GK$MC 9SVd{4ؠF\W6 (XuXE2< sE (pi.͟ Dl&bh~39E+4_=}F`~'iK`˥M/4@@0ѦOOHѝn^4F))E 6pvj?ly4V;.&m/,LfL&2o w#'ޣ)=6@8#.!wRQEʒU BaH^ N!kj<"iFZP RMhC42 "wP݇[`ȶDdHO n9ؽ4 +`ƺao#jEq% ɀ!=(o d۽K0ܢp1MVjB[ Gc'@K>Vt 4λT2rbi۠`TM^X!"=p3p 1Ipt'0n2P] W@akƬȱ7+8CBX}xjQffk9L-^sVt%L"-bH0eA+&uRVON?}%=Ȉq uN]uNyZƣJr±L&Y݃<[P+wiǯV!F!A-b#:;-rAIaIN`Jn- rh{h >{ ,d~O.y+A= XO"l{{k-(?a+/c$_̊A&/4,S fHqr+dwD2HP%aȀ ﬌ 8 %X&V 04J׀H0Qpt;ߙkKRd5Ji7ssf^oyf^osmEhrv܀+rfª /m@ \HJd)4~5*@9!uğ,xUP iBq(> nZe@X=R K=3C.J+e,V LK"Huxnp(Fh1 E 3#-/oHz|2vy o$Q!eH3d@*=+SO7_D-SrY2c|F Wg!*OgZ), ~]'[[jhc!ˇG(nĹIe r8[)nR^?(񖅗 !ձّxN6ac/BŠKqS11 B,n)rDoʤj,א T^䅗m5fmv];]D_/q>ʟςṊ*h)uy,[$SRv#,N%^`&]0݅% Mig8E,=mc@k;oޞ$(]r9Ox2cm"7=f ' [*AD2it;|(B6[䀧蘔Jl)p~3 (I%)FO 1;)CB0F 0.1 ae[US2 1!}8>O kLq<&P"Y3 vږDV3`(} bRl2edYb![t[DMNjF`}!ȞuDdbcw*U\4*墅@a@bɴSPgQ{иę°>pA ; 6O&ԴNͅJT#hR)  PAJ8{uꓴ*⤓0$t$Nz-Lbn:p8lbWE`}g M TT; N8(O$;’l1h6I1N?<G<-RfxC;tZJ"jxU8м=fNr.pi #O.PQF&N|j߅cr.B2ϙEtNd1@בQ|"LN )+ߑ< p\!uZ3dʕ6'#\HwoD+4kwGk1yN4Y˘RF暴͋g ?,6Q.kS16S[}jSV0*h˳A !P> +Q2<",^m#VTf73&`pdlnLǘ#4oSz$\bѻ!" s*qp=V4NMr8s"O ߘ8EcVJ,wx G>dAٜ GP3#'0jG O.Kс+tq6n(Mu?NFwveLFPOjF UcmQ7&;ı0Pt[Ƭ W> ےpKlruwJ8S1i }Xj:§Kw hw60]%8 @k04~ <M~7BT@ $JH@ݨf?oa%\?-O!'I}xz^]H DzyfroކG4|T>=4"}zdXc>o+1Zvrf->offoffof%3ދ"?aMU0?7}i[QgD>`fyQ}s;J0(F_ߋI4NBU$/;*+ڱH<9)lYv𢡄˕7o(j^حmq>M^mP[mOwZX)>a$'J:Fx ɝM#K; .(yeTVf" ƲSZ)ĽX+OaUEaVMI$*X8Q Ji-sQ"Y86I~-B C +i1Zk)9'cb oOnˎ٘9G(Sy Vo;;*j|[q\?~E|qTcnTXLLE\A8ηp[xŇʰdꅽ#U?eI"]5v0MZ8c!V] p NM2Qʇ񬫔;ݮ~Lb-1?䑵')bq1ĻU-C wӰg3hˎUJ0~5@~CG%I'#R~o3o~FP#֟ (؏ Y_s44ohݺT#.M,:R~t2X 5>ʣ7ԯ kp2%Z, 4b[ۻQFT睏kj0{ES!H2#0TعQЉn"a@\tQ(JE:xӧ%/V9E`6߷6`JRm [7ПMKoE'2q/B!Փ0,]j-,Vt>zkKhg+g,ְV,&Xmk=TH9knZ4X<|GIt[伶.DWu5e@b)M(vb*2vhZ] ΡcfA|qtݡp9A[ @9j+_-bR^,l ;Ԙlad50}"SF/ϧPDIde?Dg>:8қ1JBp6nw{ zMc;~oԼ9lhKDIhf@L5nz \w m9o8N;&[l|Y&8=ҝ{r87!M]8;cūOKq]Z*<3hÚ6ڽ?qe5q}Ofe_Wfe_Wf}-G 8.V^ghڏ ul-hƘq[`k3+z|>cWNcYۣT*;'ÝZ}dN0\lrg `nT.G;g5S"ܠE'9]4Bsċnz ; ^9tEP;̱J,4\& i8K~MP~tb=;s2|ɯˮ`BH Ǜ;͒.ѝ@>;S;*\s޺Z棲,/'Ks [qX)D3!n ĿrK՝\nTˈTzjPJXQ tiAG?a-c XhF]-fѿJ&sR kNXgȹ-^4-J1(lPR W@(OՃ`k!kC9ɉm 30p@/fB #7іOЖgљ H,:Kf  R6mڼ͈DsWxDXacIiX-쁄۰, 1dF"6:^7{Guro oȋU6w< A4 yjUs? ,l"8qi5N9ed|9m&Am55} |{<:0O=. M_Ha X S텱bL@pJS+INS$E ea$PVKVvwFfbŬ* 2$WOfTVOY%4Ґι\dP沈Ih:8b#?=kl 6̻uQB='øAWkҍcÍ&P jjV/4ľ텅_ "0%.?+++c"I1n^$H8t?DUiκ t&pACb,rWitLpNN\qPi]eJ6Se3tћ -'hM} ^D@TZA`]bI rAø[9mto$f0l*~H?<1|叴=h\G(juW*J|נ]chkz&j-rU}SCRo d܆JGRs-ug 6f> ؟ - v?`b~p txwZ1Xچ$Xrmw\ D 3Dny~ZGSYa/,=ZC ZCQ7fL3ogD.Q}aN#x'RS=2@5U#yt?RF~>Nji[vx:$m;TT'K:cIHr5ƃ( }I86x}O!7 42M No{1p⮏9-ݴcF~p gf N wtH@{5Ndyake [;-!^Oh<:e-ui3-=ڡl6`Fs6Cv':eN>FrQkfR XzI3R .zbJ|2" 4Q*jE1upN$Wo(Bȸ?A?n@\0k#z EYV6W3 q{mķwU(l^}u O 6<}85淂6RY6-ifd9v1Td{㡸aC=}wujs,zXu" ,zQ蹸\ZS@7Tq1x{֯gk@4)z W|k^#{Y&v& TX \NaxzxQdчpXpwOcx-Mqh}TɨĈS5D8Hu K}StPDB6 aCV`K7tK#Ծ#7쭘%>9j0], A+9$ߜIf"@:Xeiz(әKfb66hns^R0(;}dI؅CCBE 0j29~)KSs|rl3 bxGp %AaRl:@zO=O[yY6uюl.zx\+@abWtYz=hJ,Ġ7z,:nћ\%cQO 3=(F|dnQTctC?F>=qᣏT*хF^RiD𔈏2KC/&r^"zu&oReǓ<by JFԢ3 x* lGx"aJ~(^GMD"3.]L$: ŭ]@s.GDĭq޾9IJ4xBf.w8x0 DCU!7]DhbJ X)\xe,ЇUޢ?%;PC,ئ͏k|W-Ϝ2zǻ ONjiy5O ;xs7.ZhuQψB?湑껕 {#01T%N?L7ۆMZ(*uDS7deY&<U #ly ZAy0AS [eHKFBC1jxB]YC&YqJ騗`B܉ \FBd1xlX=^\c/b_P޻'- l7y$jIA-%AR UadeZOr9*i4 󦪝S: hRdޮPjѐO25e^4nIA~|*ۯiO,n2y*zGڤKpm",q2 4Z;x$Ҽls}qE=iLдƅyELdrgsr|~!>cnij` ϴZߢ-LlMo!v_4H"*=En9mYO%B?,@J Rnuijꊱ˛)pYk;ax0>:;<$ Aֵ¥D[cNbRZƞcSOm0W'NkIܰpP <ȴ]NGѝYv̓*ϱf1!=C&՟6V.6Dz" QThlrۄ1b:*h^MļmPrH4bꈌYR}y EQ,hWIـpsl-s#間앸z;k/m%%=KJ1eˮ5GöLlX/7X;!u""nr;2`xkprj?Rl[]ؖ <=ۻzM&guuӐ o0)OJxe8'>M0&j<MҒ5g˸dז]`y+~k'x5%?? +?&"^h|-G}?? AaT#%5.Q1jwl#8;<}_CmAO_K>Gpr.O#98<}˽>sGmx( Oɳ86Rp h]ne[w4$]/=]S?[k(ӳO&{VjdvΩdO¿y.`/wN z,&f@!n0Koֿ[nBZ 0F:pv"L߽|-ZZjOn:1;`O;sUdIy?疓k`i|gmZC_ɫk&JY&fvtFM/C/p4Z@'?MU1x,955iflj7"'WSQ-5˻H*o-h@" d#ݼ_2`SaSH!H/K-`yRz`'`=͂X>HK)EFXA+2"Ӵ|'=} ^393939#!6LNR/`7w-t݉}C8$8eq摃G)MZx`D>0έs-cxb6s+p0듙 ܙ̙osHJ8lqC pLfNPw'u̻IػX0pVx2 n`il.s; {)ZGK2ЈK/ DyId3\\bkN/ `>^ʗ85q!H=7Ur0q[Ͻ9_̘ yDgI牼.񥓦J~v43GϷG1ORwum}5v?Lo͕K+sܞPҲQH] u (Vw>l-c6.+^>'d}O>'d}O>'d>g40