#!/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=ca77fe5f4af8bd9dc9e5cd394c93586f # 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 \LOO.[:¯jڋOFZ55hU[/Z?$*<_w ɛ=X?tkn|RHzݥҞ K=ꮩY) 5-w ndQbsVAYIJuLw˿!;+,ӚZLt%uS,]gmp>f>wXmZ8$8lA,BRyę4 `V8k db;e2@X>DKsZPPHH0jC L`A1V jzCЇ=.Y>u-}Œg LbZl4"E2f LH q=L(0jJfS…h`)tsx&X@#esC< `Q/d(3=\GwrW)`a$_bJ#]h#tF `o+0vu~8 FDd@G*KJNoܕe(H|)l@28#ҨsS'،g#&H;^{DpHJז/n(YNDhzI^/Ur*Ӟ1VHS|2QRGKGVE1A'/`Qɀz:t8X`eW;#)'7PƊtjMH@fקcEfғ4<@W  L̃>2lF> bC\]H>B2Q H`0#y%}'Ks%+R &+ `1cΒF\fj%iwH|ȁ0u.P(X1_ ZޡeC̜;=f2:vƖn3ZP:#y*as0P X@OՋ?SB5q1!ts11)Q JIjq\&I J-i=&wo:xq)_&7"G?< Un~ZQKvA6S%,%{+*sɩ=<u8 j{B dN+3LE@8` E=QR4X2EN3/Ki0 0 f=6N0欐/X  ER99 &qֈ!%6z7 =q)az,2iZqD@ "Oy$ Lx'QBLה˹i_8:Yh27P( ”/)3nb5*&1|P-VFL&/u!~{k@XC 5]YA>,{<'rTdMe(J*$f%2`yDE2' d{ |}`R96X~or9UOP0ﯘӔ̀Ijf4E3 9%o/vp4OS9tˢuz\2meRXÿRԝQ҆{xS& vw}a ۨ! ~X(<Mahݞ.4 zN<@؇$ZӽEf?n|X>ur&Yy]ć*GyW^ǽ\tJP2 HMM,p!MB \7m9 pe{f/0T!bTA@PD٦6\w:T)alW9= ”loڜWHKv,Qգ\aʽ=8bqS l̩2x#y4Ҕe8<itE_+ׯ%($R@dؑ'B>;4֝³ jYAo=v&l@{"48'/<i-$M?Lc0u_|/9ZQK/\t*i:,7 f+ /dcR0D0c~ b5G zXa:RQ +(+1ys LҎjY):a[b? 2ߓ63H /,c"k O6M!Ӧwc 6LD-WIq-"-M*X4h$D*\Z1 (-zچ|WYWƗiALkN 5@m/T;W7R|Z@b^Ϡ<e݀ebcO8lJ<5[zbw2G%TV[du;EE|(+/qGQphoiov\t_k{6PhgB$KW5@HDɀ³ e[y gɟ;Uś0K,t\Ry*)1Q>ZUf[)W 0ЇhK15&FRonsF}3Hqfrh&ʱ?ps<wQ>yԎ~z A4O5>3U=;U=1U=jpc`2Zu% q7 ܵ C,;"zk[lō"Lp9|xn?\x@JvџYf{`5gyQz2gLSv|se` &ʛf^j}f&60Q)sw 8cpH N0aBߺ;ۂ.&pc-vyV,sبJ vj3X;0~$bH7Iܒoa0dy8]pW-&Ms6M n6kVe5xAAQ3Ƽ}<ķ_7d:i`lI Q'XLRF6SbNf_ܘ9\UIR'0kn3&Q3"9vD R$:(` S6&6^?@y,o;|;,3oZMg(hِ{f"t9N(,ٞfҧAs!5M~lu޺,_Zȷf[_[tS;H}A%>c Wh/8H ?*]I9(󬙎4 cmoHI_ҞnU‡P`ҡɛٗ FV=Uei?G"[j.0$ uweGN잌Me\~Pm<륾;KthџRk9(Joa8j2b,,*vVڪU'$a(hD9p쉡Tx)w|M!2[JZɲ }5 Af+yd*!<`7LiǏV1n`&Lb.zj#8 I^MSG Ũqt V>ZppFnTX6o \")NuLax4p`K਑ l`m_XPM_ E `a8 [&*V(j3s+9h6_ V&%(řЕ $h?PCƦqpݤmrlgWLh!uAXj|}?nG  4NͶ/z1G.Pk9rkV-,M_w \*y,`gAspf䬱1~({=3]+P;|T1&"ijɫH-WzQ`ֽ_yƸ pM͋[_Z U!h L.;hggz?^]t&Mւ *ӸRcAyVQ ]ji5[4oQ(^d:}q=ֻf ڄ.hṼU3o^HkN +OTV6B^fJ%,`":PsȆn!)7|3^#w+ac m:9Ôq^)6هUfUzDI-'0Z$ѲD.1SO'v3mWf11W3[NNTi,Ӈe8mCix`nRl(\nRg뛽#c/3pn(V>/-LN:i,wY6TvǒΑ\5$SWe#.ȍJ% +JL:pL)3Cܳn^sۓM#VYG6t[ ӠROt0.#}S B+~ h=|?*ȨkZE}dh3y]Ne&!L#OOl%8Qe#ZGN`Zt1TQֲ&S. 2Z4RupYkpמĥS~V>;[٪W9 Z`߬\1 Mxސkfu>,%6PgG[i^*kdQV9?x2$PG =|&d1Ǩw_)ٛqxle\X9ONMTN`.]N&_e֦đ8?53P΄0oio|A叧U *ߜVf~ؗD"e9._*pk1"-n3fSChr q6򴚐KAT'" |$Z8GJo)ny4lJ^7) o>@6dr-/H~v(WHeKt؍^'/0oJ?d\@wOݶ iST{٪zY1Wl)kL# 򻡾c˿X om>"x TϚ5[IJqH2uae 0a&3\{s@=H+1Ii]Qlڞt'WsEedS;*O4>3$5>/)jTQ[:=`.TjFf^AZkY̢cwf"OnyǠ؆]mV@)xB)vЭ*Bie$"(MtC~TJ><0q?%VWI: 8;,yEqڍ{@AY>Kۛ g ΐv¿-GF2W}-mIc݄Px2,Jco u)CN|oGV N\"i{Aj/Գ|/QdP)v~obAznH^Fk'mG^Kt]۶VR^q5i!ì/*p"$ hEloߞʌItY;E2)LEa' ze7>\&4CBg/x0ӆF~q6"}HC!1G ,] A~Fepr`mOsӴ"`9dFǮCBN|A>wR\eֱY - ҡWgU[N)⳸(isK1vL0րj!-|7ˁԋ&elՅe1V搓Uٶux2x7:yL{4YZcWT ߏ/ԋ׀V;JǗ^3}4:`T~cD_`Q{w?B[bTz4;[R&v$D):9fۋݺ'Yf =I 1}oS:AԱ@ggw ֑>=-E<)x7YB)6nMz/xn ]| ! pL8+OO#kx\^v J֖ga .#3n5L0\bZܼkeq_ F "`@HAX\:I}KHAdPPҵq\:5T ^~ v=GX-,-Y-@C;ˤx'0 { nm>TB= y-|mM*q5%s. ­b9-R[%-Xp]Jl䱁mb ^;[VZpIDIw/ОM/-?+?wׂ ؈` rc:covFH"6Duc+0E$ :[2t&W KYHѰOQСL%RZ,xϼSB19d'QdÛ~6y\-lr ҂fHnM7θ}pWLHy>`>Ħ>61f,Dm8x8?{{xPAg8?y(%pئ F:`M!eOzvi3A8DDCwIEN/1 p8A;: "hu65q /50/xO] -2@g25CPQgc.T+Ys+V-zp]mD~6`ַ8]U9zyלe*ɩF#F4za/:i'Ѿ1&X< +-鮑IU ނg1nP\&luª{: vn8C.=+ `Ҿ 8чJΊS-ۡN1SAfG1Nz3Ba" k6-[E$wڣCe& Q%OK aVh/f:T8}yrRSx^e'Tr}E :3ِ%k&N,ní46U.ai:PH7nWVpVilG>Ԁ->u˒[Pzҩϟ@ӏofso3s9?3i{!Y'&Ͼ 7m aWN`6(h=3>\An{LS My@昮)H0j YS/xi _&By!T}-ϕ3P4Xi3r336-~w OLS(5CA`sAR]8y#Rי/ ud0zh"%3 H\6G2 t8ǏEm{6Π3;9!pqב Ya#q͔,&JQ 4]8K{9觰Y-sH81(m3 eit.cJE "PCXqLw'zx.&x.Ӈx]u{A8xuyJwȾid{kN:DYd6m?MXZ3JR ; xibև1b:3 <*ՏyzG}F[bJ L*%2OH.8].hSs);F)*:ß nCSQk{J1g BeCB݆>~\bNCЩ,hYİ[X2HY(k5z̨V$Y(^£^]3|BM+VEzrLUYT:24%p?p}2^Fͫ,ZR !F$"[4oKYTYDhdKFԃ2>A-7WycaQԒ9<qV OqdO:6OgH)7Znfj@)(H/8:WqB_kG=\tЇzOdy.GM"NF ݓ߹]H9U|l\i9Rtwҿg,(X tud$x0+ Q]Kzt0- 6mb'#KNo,k@3 7Taj %BkDVv d)Pˊё=,$][K#>W+PY5WC N>KrúNȏR.d䯲S^Tx5ޟ]`p"LbKY, [IAmlw!oFFFW 7Qo<Bpzg"?vb7/T|-͕AYGhU+s F!8ȳ5Wg!rݟp1##DxL ,eD1Aϼ2L?_s[ѳ՞j5w IFn* D :xd50n BTxxp$!#4;1Ǖh}a+R&2 ʆL1e Ɍ&]|03'(Fhq(%FIɌ3 .q˥%R)՘{*B" !j Ifo+:u;R;o.>뵡c7cL?ʧ g'K1g""\ z|q`UrkQfU](O& J>)B?YT NI6-H68[JO9ۈj^JyjxR[;vjBv-rcކ8ϪR3L|F)rI؁(a(.RT:s*XXC^W tpVV7 轃):d<$4OkH*ۃƐ 5xMYeg3K9ѓ @ Ui~Y O[5MLK-F8&9ɟs˭wV5ϱ ĵM ˡ΋xQ<$@hL^o͖3G_#ڠpÙ9!M7OaΨ4D)إ_2RE)+S T=Fl:mĬQkhXsO6FF>ϳRSB/ue9:z!dOErz1*k*|p0 ^wVx6sawm6 y)NB!L"Z@ f\nSJU#b(EW{aɣwMڢbg)d|{ݬ=`<|zT5 '[U'c+6\}݂!td6$覍?m:h\ X#1K*%n١ 9~%xjUJp M#teWfesڅ9œm9%5B苔 PdU:odIq06q}S0ݥGYJ0LS]rW9! EsLLq_A#vjn>@V 9^M͞=ks Ӟ ysZ%hdȼ;LXp)0<8k댜UΨ#(%k_%2%Q @!.2Z-_5 2`ȃp$ +BnXxI๚wjA*B2Q=Bє&mv;.Kd  s6SN n?D:$xYɌEK,p׃uͤ t3&!$wey>2ʒ>TwX#ERw%qgr[:׍V$hUPIV*b.,%SWZARʔlju) PSpEf5W [’jPעukC1V]?:y3+[.w,O{OEVXIV{ ûQ QYW!+gYvmVaTV\&Bj3/14zNtQW7_,.4ȕGem ՌƑcy5xʬoz:M[ P0X*X@0o+l-+j^K mf\o  QHZ W@_wv㣃3lr ) [.}K8 T)L?ҿZv#WYMU._T݉cMІ 1^7Q{' 2׶ `7@usX dv5&@n3AK)0F?}1li~C[LprK{c~wwNGE" `FC@JId0F"F=#T.LhW.P:LZiT@/'dnk/^T5| -~?b r8ҡV/7bJܝs2InKYT@k(kQ(ɥ E7QGGݮAE3,AV<k7Jnړskܹn5mPS`%w N8KtV n>PLY憤f,G.4MĞ!VZCyVSd&9Шuei+%I <RNx簬”΋ؤ'V󽩃ׁuֱJn;+Pp@n~_Т_??yM0Nat Y͸Yco*s|-@axk_Zr$]B{\<&vOUƖ_W[GEP`+gkζqUr=[#q6E aQTA> [( 3Ёإ ]M][;m^_.g(EKAAѻ6+*3++H v SC"$ߓ5!H71W:tQ6sod2@y)-hة5O;7bO}SL*M8|%!bkΜ^] ؊DО'ݱ e~P)=T"FJeH"(L%uzkO 1@:ir9#!ۂz>p)SJ~E@am&.HKL. wE+ϘGрm|C_hSLc:(JCGl2wOqb*\S[;R H2q*FJ.[_w2>>ՍE9n ֺUfu #+:vDl'z[iJ* DT"Z"$&]zhi1R>d"H8J  ˜mG984<2bАĠkuYu[8\'y(մWR+T9댖-fM!Q &Ƥi1q'U"t#=-nql,Y~H?=ql_s :X~w;s߹?3/HA7gdzߒ2{9=5ưШ]Z3&/ Дd8P-lMʔqX 8>:Z8[2A #F1gvͱ8FQ"㤣s jPbp4wEt/זhQ⣛dЊǣw q98_gJ7I{{AQ3qG_͋`zF0mRVQ]q0QV+Xh9NT]2JX# Y`aS"A ऩ@q 22 VIAbhTjZ@&ô\o̗7&7 JNr>*;UʤMG5~!<CTuK_±2uayhYHAW??p*D|=Sy]S͐ Ѷ$A"π~J{q928$|$zGͤWi?0dL, s4!',3ju):Mw˃=ˤJT\"0hʬ/ w+d5AH^`T}gd6%Ik?Ex}!dԲKL"%?Zgpap[.;ǃf q0пdQr{wG.9MA]fpu8*D[f?SKt@Q².e_|þ:z*cor UKXFTF4Q'EC.Ja _/G #IwLFp[*nWtwV oZʄ9hhb J:nh&6tֲn]ÎV>S">~dSc:4%:M"L-vy&mHB_y~`hhf+"lb`;Ϯ$:l֨Z@ lj S$@LEyi/Z' pu/ I`Hi.{>y:Et'o4g˺3^fG,kư,'N+)ܪ-m=#YdbqQoIjp2seӕUUgG*S-)"'~0p]lk3mvDz .W6I$DZ,cE 5:ǺΩ*D|r }d8A"s:D"gu#Sg-ׯ m 4݉u4|e2.LiN^9kWp5E2vK꣧CtRZZbr9ɽ$ޭGSz|<pF\ (ŝ2Ts~բPRTA%TK{8P&Y&( QuЯD`n1#"?u3`5=ZtiX};QoM+83Zʎdm0j0#O`w>Wj?:qc~_nT676׳6:w;;GΣ~QyKas%~sz4rꠟui]&DS"Ba ^az>V.kkI9\ͭRΩt=X´˯ErVF8pNThI\9&Nޖ_f#Ω.8s*lޥB+qNu~B!,m`He xt&pf[ lQ*`Rq2zTZ`륒U|g`UŚ_ z7ڥ'IKy'?Ǻk?q p3ov0i`8 /׍7мد^4'_"oFɳSW[ J]O0ƹ"3lMV͸8yrx&dZ7<6~R $R+%|syDѰEig0ZYpؔ>sAf ꪗ?EqǕJ,m1*N /r`3q mݗtIE@Їv|/NL1l.c b.> דE'cir4}7MPtiM&NdO?)qdw79mR*:l ##*+ET= )A`0z2~s>Ksos@8\57EdD1 chu7qv~?Xxs-<ksnd-sK0-sϙ? @>G"7g[^d.rTS|fKx ,v%DŽ  bBaFF qVz4RޖXa|2FZK\[jYrW?+oM<Ü3Vw%ըn8$V {^*h;E %(hx5a(݆dO3ϡROu!!8'Fi tD,M"cVy=U3Yyқ[Om̀% %ʔQuF$:=heD̓NqjF`]vF}3΅]<ㅎuwUl5׫NZ.a@xɟa^ElB/;Rcu~xk>+dR0 @;-? ̇+ñy` 9@h.™; 4 c Տ s/shX|敎%u1S{Xe!oH\&mf 8ٲt4"r:!(J)TSla;W;/gP ]x'] kFcTsń(l2bAʌd"aӠ>LZxLav; [&^]9މ,<'+²&ߑ aiԚ ~#XcD)<$w %"Z]v7thr K j9T;kmպPG GK; $y&xzj3V}˃-ʵuQy>L؞ Y+DP+]ӳx%XUGdܛ'ULċđҘF@f', B!聬1nyݐ,,W }&Sqi\;cuKP{wv́CLҎ@`oNU>eVA۵=8Ŏc=Y'4nGpEIࢄƥU-w5}`Uk  S_G\ k jDg v>!=z G[]$ETF6&M :ihL\\­PRtw С(k:a=|yJ0/ yBC!JG !\B B7\R`J%,|YKeʉʡ]TוpYyC 1/ZRaѾ ,B}=Xbfs2)+A#af!b M|vUNNLC|\+c|(zC9Fdj ᪙Er%lR1nj [y,$Y]{Q4jO{]i0o޽p[q0n}Uи(,7ݴK)HTܐ:ii`.Cc)eS" Lw#=bU +K_'4}xyLDcL} iO63soo;wp{ν~^s߹w[.TpmPJC}n!,$5%Q{AAzj0v?NGĞaE]C YՄ2*a6Hz$!h}iճ%U;W 4eg=YS*̻GE\cyqF]].A>u^ OcNYo>rVEv߱$ QG( hsU_Hhܬ_5,1\ceŶT{M1Q'7G>>AT];/S7%RaEyԃM*A.&ClG=b?O|ߦEܼNdqg7Q.'x5qyijjyˣ eYTAaJѕ`fO0vW*ԥ^䅗m3G;UXN."Q(fѳh࿲ߡX)G k>?BL]oo]\OtC'KT%rϘSJ%מU=y1H~0U ;M||H-WHhhRw"Mh4D9r ۳|dl'-7 Vg𫑸h Hl^n*g%'~=0) rg9)WH~o4YFB`ȸWQ=S@|x)qըK:R;G4kwnږeVRsħA)-;̓3{`툘#9m1~2 l5#ō9Bh<Ɯ(섋7%)vZ݅ $t(n==v\ź1hsJ6%":׶벡xe0a*qԋmף8>­ 10l hԣ"c=`jt@(kv@ _03]F?L9J?KQ5(mn'soӾ쥿G*8د.kÐW>D[ۈKi7ij}'uPM!DѩEs}i%Q+]}aa~pӪ˭V]h>\ew\E+W#i\FWيkq|_ct] ngNGG#Xy:Zib8ZMM5ct5Lʋ߉(k>Sz\ *Hh2ZB/LAʬ>t|]kFqwo(-knkW`Xj{]$CUvi  9E;oxqOq|n݃{z wNO_yz.OO;=w'\8|ޓtzxON=9='/|ޏlr4*gtji/|P- K'%i{ryh5ӝ󟷡0%}L>~O)ve9.>'v]LiUp/AסaW0xJ߯&N=J;ŋw?97z޶ק |}p8{p^.&VdSKxr x-!<1b_XS"2u:WV^Xͻ.`A][.7|kcc[N+AnF+h(r25zjaԤV822[|.oS=̫ohoH]bWC_7L`W6)RʮZ+DXEA:E3B ,fC^/a/hTLYNz*=}<2\Fsy.#IFF8߾AT^pq_owRFOC8$rG)N8h7й5bi_$R?΁'?dnZ띒9im$r8C G.JAdU $8:(B0O0$-A;' Y 0C|?ĿAjg@4wCBe~HGĈE`++pqtNBRι!HY-zVmg6jHbDiBٯGu}/*rZRT+ ^r3c! yf\N:v/ʳ