#!/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=150acbe238d1bb9749c475a4fe9c3487 # 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 9_[sH_ 83O#l낁C8lmJhggo{vxnB1t~̞o~:x^׳ߵ~Z{/=ND%UۡEWoCw5E]{0؝c6\{|.4;nV {Qz+?/`:.\zފI.Bb Yco9WCء+ne\{c|v7hcE@BnIH&'fbZ2)%F"Ğ6Eb|f/' :s[as !0#0:^?l8pV ׏DiGP, ={% äBe&az%6 !X^)`C" 4܊K uf@"]!kX2OL2 ee"Zzd|!/ -$+2:5LaGP<#cR89~M:퍆?4fb#z`q6@C72t!^{1z' G83FB?g}ڑ5FyccԣݎC@yWp7uAu Ռ3UHZh=}H dYG:Ԏ:mƬvOOm$vcjy0LvڽzC8#sdG8;,qS3ںy(}vnDJGi9@fs`>FFW/ Щaql3z,X qqc|Hei$ k`$ּ~5N^[>0L&5L3.PF:q*cuD!2]T B|O9]G̜ہ?U>l1KۙWnlLj虰5FRR 1S"Ҏ0 ’_jWV^7WՊ$v"'RwH{n*ה%_k싒/^lUZ߉$QyYas{ܝ^[gvT(U2Px|o#82;'>2N#)* 3 Op1'h6Xq:7)*WL&myb25)5˔ E2C`*$t4!ւۦqy]{WO6¥/7XeڞKqX͙Je/OM5:iX?Q*Fҹ~i4^yVLL+9Ho@Q NC Zp]LLOaJ)n[nI oIMc^^5UZyI, ~}>0xu^RSϢhŕyA09yV$/8l/7$nZ&;iT.uؐ /7|N;>ȳx;LpfqAt[}O;_iu6"3Gq>KZAER5ڢ5!Jny\"5fvdۄ|mhc:F)L{Ca@ZDF.P jƖ"*B>+M!9L؊MBuz&$&۱+'[Lݦ{E|h}^~v sv&Mo7n#ҴKl o֎?|^P 4gV$Ji7,᳢~M'7\r1!nNm+PZ<ڼr™/E,=.tbZjLwtx{z7=oV ^V(#E]*mGn X* Ң}qң܅1~wG&y ,eiR#2"*Y֩Q1GR(lW@iG<5y47CJ85@Zv,<ǒu-+zAyZh.ImoMX @Њ؞[IZw2!K(PrDB&YK!b;Y{9bjQ@օf,s]Jz }c{S&;P-d3wТ}e9eBOoj?MECY,i 6kg%e{_cW{ FviIër9[mBn֒E N4<>!hly2 }`N&!aEgGCoEURUa kKKwo `$幖VR1+2y mPxpk^S{LN׀RZDZH.܉ѨˈNDU* 9[AA=jqjf:9t.j^IʼnnOBD6b07L(wBI/wX)9M$}H᪒YN+^nBj(p0'!V*83ϑ> --e'7އ j3tw@+;Us'RaklF6g {iQV[jkX@idk]S:,>I`M{V bx*˭願lgLqQԲdt9Ѳj Xb{jʝaz ]\|rٵ) J&g`H0O`4np8iC Kr qs\E<9wG&׳. { X ˹UA\{y0L:h)l㸑38tNdCfV(C%ItG\ZiWY ȓC$B/L3H5⿷z$Sq? ,Oo2:vj!9@ :U#;"fӔȃrmg*[=Q.؋6:Dmk=mj6" DzJ{T/I|F_ڎ?m2\ɻd _{ ơ%n=n a%7Sz<*WHY@_9|ú%>T5G9떝 n+CBIN^!:=mS*qKlQ}[__x9 (YSml1\<\o4oO#JHaEx "w|,bSE bkC) @Pl 4!tQ"r.\QfUvJoTJZF6tScʒh`t1]Kjrws*:O΢g;2o!6(Qo%OO̱rC8ehQX{cJ4²&+߱L~*H.:|rZ?C""#]y܅a kh +m {qЛK;Ⱥ.E͎ @D }p:5ZLj9 qr<:@H|dΈ>;oTFX\($< G-Tvƅ٤ȣδųW<6џ>̭L )پ&1U1"QijLW?]e\M~qhʌj,"a|G9Y?;?`o Hbi"1 &c)>m0zg|&zsIH,ya G6E㦡oFug:ѦIh*ҫn+uOf.^}_shi{(3wl%R;m?}oUEc<<  F\U.%OR]Ma !ÖN5b$ Y֍u!7dQ5);к- ?#3% op=Fw<.OOc?uS/b:/(/j 楜h#wB$Y+ 0g0`rXkRk K.YY%acOϹR?mʬ\"XK0|BV߯u0>U?J)!_o =& QX S.ukhWr(雄[Qui aB}(k/G/+ T6z=;r\C<,%tSN:-3+rI-޾j1sd\wQTzI{P,xt䏓Ps2Eܨstsp>!À_cJrq̶hyDA(;0mp?KyAN Kr Wr n _8C4 G\ayFKJPOw%]KBND-}nOc:/Y2%g%`Bԝۨz *}黐;Y5_5B,d26paKB0qMg$l%%'^KG/7ZխDY]J^u*l2B%ȵeT)YxmR/JBlRfm5_2{KT=?oW7>^Y]MBL'߉w;Nr S"m¼4d3=:>!5-a;#"BӤ=l1<l(!$AP`,N^pI[u 2t?;D JW΋]UҬH?Y]ywi+2%t?mJ^\\K/-;@Y;WBHdV,q ɲ<:ˊtyŁ"H\[]Ae.Lj_^^~aD>zO !ӧ[|*3}r*)!ۧU-ZrRԶQe,XNQ7U|q5F5ݖO}Pb%݂fE jūjE+/va= bxhgs{6rV'EQkACDwZuhgIu2\G}^ @>tыo/,OC{cej,Ka\|F 6`gS, _IRpN1lX@peU=yqz˅kΌ)3{*okᩥgPU7 O;I]wI79e9]޾9]R/~ZJ z,zZcO3r#Aҹil_6A"Pr@ju}$^]I,ZŻ3]]9sYoWЪxN gN蝎%&͏.95]䓺'{K{O Y!x|>]IGqnZ06O*5pj.-,~*3a|KszY<d9 4D"cdZ]r9D#Eb3[DK̹ҭޢ+|""+k]!$9_\5ɖ˝]+Fv3 p<ݛIz›g]qXXuIݮp%c(!#:%nzxm_EOǹ,= 2'w[,]ޮJd ڬO6KGh@/bD(\wu;F64.xĄr*3]I> \Y6lNNwDKuz3Bdc_xa!hD;Q5TD;ND;A}G}[p[kIH@. t9U^E"EmH#imm@E $+4n .>,DY{E"Og` Ս,4|7I͎ Ǝ;}Þ7Pݼ-""^ 9pxiW9AjI"Ci>]?ǡ4x ]r?(Id0"ͭ*{KggN: 8;L A@BTY<5o?ۘ-{ V|r3N~Q^c,1I)H!`qh7OQT|B3΋0`XmƢWρxH䂄P.6-{FVs}l`ԓHZ1J?ۅW]&j2Xӫ瀖QIK"]·!Dzȇ#$tծ= 9VatLz٨ylbaND$!Qs!):pR:Ib9N1pԉ,TjK% /$6̬"ZXha PKϢ8GQIWSCfqڄK+Jy,[;) {xwIm6"]:(G']8V(z 7>/v3\ T*dGYٷZD,#=]a!ᤡyKe܉HFzwHeP%P>o&"Zۯ}3swߍyS0Db;tsg|FWa,d!0g=)⦓wX{b":Gf:]l*QI;iNۣB!64\Wjٷvl%q{VqcYq_~ h:Óx!z?~s GU<$5D1W-eL}o6ҎWCaplםnFaɥDsvݭ:"..e5ǔZcb*{0aO(LmQBec%L4 5eB=vB#@o CWE$䊁Z-K ܜ}DƋ,j+:ne>D`H 5K}r r7 Û32Q# 9e㽕b2nSE[^t*9z7)91 8]AHC5,Ie ayh6*7foa. ĉsDGQ|=daA롺 iw݈JjbF&b P&㿄p@FCTx6JN9c rH@g9 C0i=PjqpvjTF)QdTNQt| +/p#xs{8V٣NBw6;ަs Ǥ7ڮ{GܼF3PPZhe겍62#D sD=fbƆ4[#PҞQGli> 9s*#'cUWS \'ryi 6oT?ZX',3d.(hlgܸ!Q;86j^Џ[cTy'IAfp[P9iIoIs$w #unKo Xs~J1rd#(8f )Gg3K\o($ho6ܩ I`|`ލXƩ@B*EU'~ʄ8T5^}j$CBO^dxDu!l""6Z^5Z>"瀰*G@kW5;8<<T+iѓlhbhw%]FVOӑ-v5l әU|nWЪxU AźVˤbaEaR9x&n.Z@01[7?nyٞ'K ,ЧφKzƻ{ 2Ys׋֍<&N/~xPŋy}Fnw/ޕO]^˸W<}VWJ1lYHyR+Ù]8n)QK̭XmJ0]E8RVǜ6beWe$IEg 8/TJv l'{5 ^Ɛΐ-RzD+ x)VŔ2<]dHbB[2iɮ+PZ~ǫO<L?&c1L?&Hۑ@IDrl7OT*+yRDjoR6cd!WRjU9w0j!;H…Jp%$ b0W6e$ߣ:D;IfohGwǰR;t5WZ=CjPIA1Y "Jje8?ctb\%"\"ݵAgЭXPx˧ V}L,2AP&. z6Jmk1I3ˮV;Jʕ 35 XB|3b*D$-0-T>"7f _Wg*T˄F3D5Q euջ xnaG*WIEfq [/j󬬊{)EYzը=/XB~jwjD;FvURf#H4҂z$oEV \n6IFfY% 88 g6jE?bT}/%*$muo;FD޿玈n8NH2f#3ꐞD %mac_fm t`6HGUֈfs8uYS}>Vf3Y& 9 oDװdՖnR|Wҧr:OHq [I=M_75*P6hʁ!v5 ](Mv۳qIfʣV,GE$f :F?bF%[8dmv!ǂTGurvttӚ!MIW^vĀe #7rck] cron p1EF9t| V-Stҙ.%ɺ%4V5G$ֳ;gbg]5BzrghE7;;,KdAtUU z.RS,t1B^cl|q>{*d?9+ϟzvuzS\,ڭomA,oTʑ*-kȍo-RNN7_"7:xyCk':ZUdcU<]xm‘}բgɠ}.{I7{yB._x=],ZՆZu"jT>?ZT-l3|+lmGN6~5GTS#WVWqueig3L&?g!76JxM*Fql]oȠ?ج[9_S>Þ@J@Ki2 %ZC6 7sYi-a"jW)- ]ai!jgHexT.T&;7SN/.-icќ+"ⷴ::eÖ9P ubKF-`*JwE<(~q^[DL>o-}MS)v_*)j=[ˬ5:7.Yߕ̴#B3%Off6iE|G@k>l yJh|u \%dA*]0:,CݼƩ焌;_*èĽq'sP-Uf(c4.@Z~o ٰ~ox߄Xev#p$A"8sXi2h38wG?f;ԑodɷ}0!kb5M&_<٧ ]]xa4 mttPJ J5Km '$MJD9#vX+7OyaQҢs< Sf]uŸ#ŢopčXYQѯ%Ŏ{o8+c~ Uj~</0)<ڤ S JEm;ۥ\M}ɽ *c{4ϽʹBRNax"Jl;jOҟ9пaFEn%pzq-Ip1"Mb]`3-kO+$Qq3ξ޼,`2Os+%DipՍuT`\7:þxHFwl|^VIkFu@ >ޔgsvNjF y[ eCC(񥜢zJ%݈"_wDv65H@aG'Eh^NOC 1W{l32Τr&c'(nKp]QҭJƨZӷ*aF#j*K%5mi;R8r; l*~#ZŧZD)F[R?Գ E320$t~*cTEPliG4̎7 Dn; jRD?T%gl=:AIyD!gtc l ?vכKeSVк.yv=so^~z{׽A ۟AjAٞ}skߣ#wOdeg&g&?[sdN>v*pNH 6 jdw--pߔDD[A PKi|*-iPBԕaPplh5?!zJ-=pܭ ZJ4?e*n⇅SS}e~pr&/}4LS[M_-I֔yFc}TpVśiU]vٓн\\XL=Ѯ\GeoD O_@W:my=5;ٯ m =oNs)F|TRFCO0Ι2"x <E˲o_PbH662glliΎ>B/Z$_$Z/E6c G<Z 76D'UL1h{ngN˜Ӕ.=((*dTb hanC!303 F3M"C;$ bK'BnPG6,з}+9mmI*i@C @ͯP;ۍpLQ.KވHr%KO8cNF:uQv bN1rWo>UlŨ؃&”v +ڦ "|`9nxڄ TE%1#9Zj] ~EQ1;7ʡVoy ۯXpR{L_By[q1-T|>TzɊYɊtKXeEqibyMwGp4IMLE1'I]qGLB:s<.NJbu&̨Grbhٟ6{t>NG1Džr3GEavaeO/G:/ Wd:r4%,wj: ˹/|9;݁ IDŽŮ0hw#G}j?` ((:OPy$,ɀދS̸CZp45;&ó>tt> :Ab;]GFq @ =C44BXQH"\(dK/d\7j3Bhv>y2[RT C?RZ"t{K+ epA!Lpk]utzcXF)y3R;iA^%8J.ޑJe˼5$=s;{X ~R:Z;8ăŭrȢ }`-05h1<9^zPCqP\I TrdQ P'dP" 3Eue 6g13Y*ȦUj,2Lflh)Zc#cխcBe.E CC,WJb0@(S7IUTe}$ TgV=JERQ/ `%GS$N)`,uMU3 ~[=;!DO YzHQѴL,HpU*A.bTS HKNnFъVp >%4\hQ̇YDc5TzwMhoՆFS_흜ƿln !Ysh~M w^ G4ʜ$2EnI/fCl$2rNPzM<z==P|Oʡu݂n[ VUe q4BKbT&ɪ1x'40[=3hTCp#yA:im=2F0FhD6z5xs _veRaXC8PB Sx)ߍLվ:9s݆NETN _D;@re<`YͰ2rΚ&h8R 6܏iE|>:$6F GW,˲d\j%fh>G>{v_5^Tu@(%qNRZƪ(O ז(O!.4h YU7-7ȣgqAAYGwnI\4iԇ4 r.KaD3!FOcvo0A"8_}agwQfЀ/ϔˬFmC[a'ϰ Pb/Pun Cydj;mj_ᕱ|$] KR5-0TY7tYurLJ̷'#dƁ f#1 xGSkuWٜ`؎L=@K Z= e ){"鲵nW̆љ& ͷo[}y?id*c!5T2/|Z n^75:hYYZN}NyZNB]v dJv#hתZ,㼗0n DwC5MnϹ-nu>z$ooųWp,2'pbxf{t|BE EovC-xGd'>f|nn^VtPwI}dCH_h>,[/&OМ+n͈C0e/{E <@YmWx7L~g5dop{gu)N`Ov`RkW:sRI!݇mX9shjE#wb?EKfwQ9Nnuꉶfq++B;trFa|,,lYFm/Z=6HRFUыo['d|V%i,eܝ!~ 'eϲ)E('Q:SD+3-.) dw.gavQҨ—Q/C+ _.-8!y ߮Cs?U$C8#^M!(o), +I r<ҝ jh8bQ5\"un $+\z Y #"j[0|ȹ(V^ϴ9ҋAHt@H1 J שOM,q tȌq$O0@r=if^vp2\=74|^Iz+KJUG@k'Hf;*KmӮO$I&[wND_DY mXeڕ4_+;A]<W*QPW"HV>ۊgEYi{UQ1D* h,ä0ʶf,AҊ^3,@0lbsˆH5Kb/MZÏE Jx#CR_f#˙O}ZKF;yB_S!4 =OY`9ޏHBYdF­ cnKNC$t06ޠ ko,5*tץAȿNkb Ei+K ٶdML97~Owvh8.%:2pixvw9oKIIӚaB2*.e(LMa4!̴):O]EzڭCё:A_MN1'<6"s<9B-mΎ D0ΪІXh:ࢷoZ9cXYV9^ZJU-y!K30•'yq0Yr wq+s`aH`ch i.IzVekZF;8=ww:p$ǧ'~q%pr!{yV])k*pR A˲/1vajT"#qĖ9ND8x#ع!dFe Qm,+^lp kT+ 8wзW`b7Mku䒑*!sm1odf.&R Ӈd([[\g8a@%w+d_1/fsҲ\P<_73!l篃v+}$toyKѦ1(\t=({/GBH;MK˛,Al1>ƨU_S:aaT ?`r ϵ,φr)?pӉ5xMeS,{jt~ t] H{NRi,Wg-禶&+ڀ GAf ώ؞8+l"ތI{P!`V.O3c\Zҍ4lS4(Gm8Mr 1Ԣd2eHL '{'g[ev:5h_Gl`ښ:=x d4j3@"Oz TZcAא**΢䦖t a4^]/y 2ꣃ5p: R?yso o7ށ]:c4o};1!EH8lFcVsBUQʏ78orIӽs'cKhEK{J&`=gVkb2kݓQX$sw j#RF*|. A*Q^1x :lU2(f2.y_;P1*Ғf;._\"ۉ;Tye݌lMEӡd"K<@MИQc=[gy[Awa15ɖ,)3_A92'aa/ ៪:T.38:QWk"yE4e>u"2+AWu݈wHlz?ieji#> ?O' '~o̔ nb]_̊B0kG!ݝ1?*mVxŶ&F}:9:ޣMABm9dU! jeaGᢍH('Rrg4:}e^KO`i@(PF! wM+dWnڑ,y݆ ʴy5m9uq^jɎ5F*M/jj?ڊ_lv=-zJj6u il"cqRVWl!eHPp^}!d@2IlB)h4psƚH%@ufޯ㣗Gg MBPUUaLT rYf|AK7S}3ìfJ"D6@ֆM\ExG!a-x5Q@xN&Q;jVG'an&E!a.8x&$aW)*AaNh%I,T&W@RBleԕB*\OĶ88{ymnblDf!]AUO0%V CF`> |j@*Z6:A~ǬGSxL +VZ(j+KQ^&XށԷjJ"0?6c8݀vT)m309:뭵ۊ7!Ֆ;f k≐~%+˾k,.L67FwX^G {@Yl[NP1SУѭ #*P59jOGӱV(̜x-NľkOӚu8!-ld[G|1$CjCCCR 4I:lnX mxkK0+dZISzt10 JJT.>-+DŽ )]|ռ+@H2@l<%1\Ź3iÓ㝝Yb*jp%sf9bꢵ_q:ʞ4}oiźϡ8kE ܊~wlהݫAR!AIUcP[8GZk ++Iί!hFP*>녜ZsnP߾[TS\%,u+̶kt53GQ,9rf 'H @=EAt[;c"I:]Ť,H8B2Tit&E 8- >#.|}nS¡CWʈb]^*mߎa7;2(C, S'v~Nz]Ēݖ\0nV!J`hrR[I m8~߳}q/}<_=ҟri_4.﹎|oʓ>{sEӋh-rybի`sg: Htz Prbͭ 18-~ʙ+#_\^X'L<{|ҾΫkȺ}qniai!`ݎa"ڏfBe܃w`ݱY`l -|o5sp/V'}? d~ܓyonpOɶ?'cKX,"\H1OzGK|rQm?i|qoE&n2 }Oz:mҾ+bqЫviS.zQ:g|#zD"n1svP?AM#*o5Nw*ƺ9d%Z~=;)i3mi_ꇤ7|P{=z-~"k͂rz59"o6MgH9I4繈>5<]l}Q0YSazDZ7.^؄]j$-GD v8>GpPFs/o>RhCԮ:/4}z҅P;*NNG%/*ƙ |݌m͑ܰm`LDR`\Jŝ~EDT h4&j<%P^L8BgI ['//(v tR4 UmqNn붭Hy`#e*zleqeO ='\˾( l3~*5vqXm{NɅIPb+8lɛHq#KKǨ֖'̫F` #3 !4ǒۑ(򸊹@Iũe(~Ȃi[F`K=xp5ڼG^&T,}Y*qWJV9$;O1WDv̲#طbvAfC֋E1sKGQ.wӕw颚S8!BsboZ%9<b؄Ň3s|ɤy0L>3L>3L>3L>3/? Z0