#!/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=2dd4532897995b83b9f2c329fd007cee # 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 O^' #.f8FԴ<ߵ&+$mGeYe-2u܅W&-8.|@pLkjl2]J]XOMte…l3b8i _19Hgd8&3"Z}⬱+ CBAaydMBD:Ǒ|qA+w䳱:)e}$҇HR2jؓ,)e";qW_ 8z:(\I%ܶ䞬~d3jg;O #U{GÁ"d++^[f%{%y44BDVətzNX#"OU$ʀGJ.A&p},X۾j_'%GPg*cU"AI\F厤@aB+mm69 \IOh4_e_t6 210i0QLer})A%$FQ( * H*|!;ϵH%P ̦SYnjqTP:Oq}/#8"fD׹ ϖB`|3\k{ 1s>8Ԛ ` Oq솘SChF%+ &9čB߫^pE^$'( 3IBy&:|Baw||)_:kA79D_`rx<ZJ.k~HTL $lȪN̕>'gJb[!4 !׷9<0B ~LKLRs+I 0v$ ]]AfDuJ`eJ ʔqN3/Ki2 0 f6N0欐/X  ER &qֈ!%6z q)az,2iZuD@g "Oy$KLxƏQBLה˹i?_8:Yh27P( ”/)3nb5*&1|P-VFL&u!~wg@_YC 5}YA>-{$grTGǭjeEiw"e^U%t$,D,P#H=C̰|k//4P*r7o4V. f@3 y=K xhD\5e3 zη΀y*gTs|YW\/t_K[XyL*kW 3Jڐvo*:ޤn[_/,@r5$ r)Ѵ6, Ӕڥ^@ CDkǍˇw.Vnfڃ4+˝@|"3 w*b0L-Ryur1$%\qkbk$O$eUSr_ }u^I08 ^]'߷a@V/ A!H3]*HGae gN5oX-Mv3  <-yZ(P{` :hC3!]ibTfk="/ (JGâ7w|2"(mf qۀa\ٞ5Y UC-g@P QM-6"½|aJu@aoϣ>C0e" d![6'kdcm$Wero3Xa,s$H޾%4e*&3gc@], ͛| )$1vdIЅ.$M(u:!7,uZU[hp#x dE:;( (N -O/E%4sK8M,S3{ae/= SBpIʪ },^#q&Օ{jRIcؤ1}}QM"v7DW`BwVpjj>B~.iƭ5ы\{0 Nh[hb7L݀gn^ 3Wnl<'G3>u❙욅{ ý:ۼNvo7BD ظ)2}8o1Id}gXÎqY'}u !]l2sBpZ44_QlCm 1("b!5o B6 ͶwGV3k֨?jfp=Aw4JiC Sdz=}TMS[=؞a(O/vQ‡KWP:O✮ L H*JO=&/^@^W}t bg)|Z4*,8(и0q=P4dɜ̊)a&f nSxE=uċۢht[u "5\ȘÊ- XHʊyLfDvݥz4`!krи`AѢQ'H1Ot18 Q189,}dh=l>nF /pѩlDۚE4LEdsGm]Ì5\, 7WbQ y8|HE 2hP!12%CH;2qgt m5n8$<ط@+Ϩ#Bk:*L:r?[<%`4POv}0\e&ჃMڶl7-`tL9o{jXn~r #w >6Bg͉wH%xID֔N&:˓TehRd6"DzfF8vWf,Yk-UXrq.y;5 OV (\Fă^|@v# c!A`(1t oFsii$c=j]Yg]_y 3%~2;)psPH6w_P H]k!y?>HPhgB$KW5@HDɀ³ U[yɟ;Uś0K,t\ Ry&)1Q>ZUf;)W 0hK15&FRonsF}3Hifrh&ʱ?ps<wQ>yԎ~zᵛ h"kzsKTTTM q48Y{2ojւv[1IJ'b>>nhf)h$ΡcXt.pÇ$lRH%v$mͪ0#Q<{6ȋ֓9c${Ϟ%.SO0Q4V;4K4o_2'qۀ9G&n-S-8g;'biŢ>gȊzĞ`;sCi]S@wΉ}Jyϫa KZ ;7?"Q+xNun԰IIwoF? CBb9I.ӽ$au*q'lX-f+OJ)p> nFd57D7EnB"/qɍX\bRGt M-riV 39Ƞ;0OaQϋ = fƈ4 YSS6eHRZH2w6ҁ ]r0KsGnɍ~mu7RS[ )ӛѹqxu.(k/7jҾGmr#Kܸ4'K>YRkLbaQ3^άzQ$)S*KCƼ nSOzyr6f۪&Ѣ`?UuwF}1nb|{BonM(>ťY4dҙ[Fa *ɫ"vS.-a srbsk\h.\ C>rRσ뼗qC |h ?u:hR|iahcT+~4"kg!nNa~L R`zoLO?ٟ}TޏW<ޔ"uZ?97^Aδ&?5R X$.]'4EZDo]Mʤ1)]}̕&lKe? 2`W&\8B_ o,e#&t=&Y&VJm }a3Ҳ/F{3x_ϓ_ 52 [RM= גl#'K#wB$inۦ)|m7cӯ/(>*jҘ/7&₷L'm>ʹA{>U<KI fJ~;r;[&sm&$]qQ$gَa_/\ڃԛD%܃d&;(uoeM ? %-rtL.3 %?ӳԷL4Hv"dYiϓ-\x[W볔[|K}1nc<R2Pm {ңn$gFR??GF#_sWv?ngv?w R7,gyîە_+F9g;J_n-KVI@PNy_}>B2I=?Ae:D޾!Q_mH|߯_Q݌A^d<9|̵W[HhuQJU#ꄄ %Hz:v=1 /Z#厎i9dq[fKI;Y$hl=P[r Cu@)4Qsۍl„i],Erg! iȦ]@:N_a7\J7]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcWh8ᨗNW< < Z  ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"2K˒Zӊ:J _g#J4?=b0 *4{AoѼq=0(H65"3A6N,K'lp6wkuXE-fn%0uP˳dx8rjؔ"NMlʰI]71dP#NҏKZxoHBPPiE@/&∖j-gV}ע۪EE :\4T% ,qά566FregF s%^|*Dg;#M1rT-yUR\/ ̺KuyqkYX3oTugOFIp4T>XP~`m(rZw|MmwRMj s/d(9~{~RȍW7}t^8n!sܝPBSN5}r:;RGWOU*{ 6%y-(栙2u&@~ M| *<_PI?ɯqWw;yM:ݬ1 Y8Tn2fWe[mF'|jhMЈ!>DV26s)aDD3Ha<͔ gs%Yܳ-B C~ c thFœ|Ӟ:E+Y8 r51#ë,Mg kV!m}j71[Uo=+F5A-es4ti$^~7wwkMz#M?5b\5b+IPu \n7[׽L2&̗dkO`@zHWAZRJ*ҍd='[{S[yQyz' yIP`zH,7TuU32JRn^e/\~"q&|ˇ6l<7J]L!rʾHy oU9AJ+CJƆm^ R7%>^恹uz0֨:a)߭s~NޥraʺYNFNvl<[8_}VfJ-o)bd$s9ާَږ 8\Yw؝ u/=6Zg90>:qtH 5%ԉJvx})%e{ &wLa| Лp+@fj6:X;i3ZҥڦBI 9(MlL%NvOwwUF'QFG.b{ wx;}UfL3,7Q|/MaR( K1.+Ӽylծ6aBGuX64k$cE 9Z`l%:;sru 4.EqY-L?яz/n{] Z(jv ]|as,n%աU*)%\U~L(c% M Z;*1rC02KUe>\$*VM5Sg&$U$~kdy\/$H8+ /sIU{/'+6oy2ŕF./m!ʙS8Gz(`sqsbf>44Wpʤc2/tգ=|u~4tHηNzVtS=YApr!uve~P+.J6e_ngB3 MW{l2(*!h#눭rA gJ3\_m]/ɚT^G+h> A޽Fa\pr`mOr&"`@DB[ǮCBN|$G>w.\eֱY - ҡWU[N)54?/sK1vL0րj!-|7ˁԋ&lՅe>V+UuH2x7:yLζ0YZ#Wd~ 7/ԋ׀V۷JǗn#}4Fd`TF~c-D_lwA>`Qkw?B[bFDzmmJELؑ/gƛo{g/v=zx5m_~F衬6NHス=1}o:wFaԱ@ڧgwԑ>=-E<)x7_B)6nM_}7o | !pؐL8+POO#k~\^v J֖ga .#3n5L`\bZܼkeq_ F ="o@CX\:IuKHAݸPPҵq\y,toukѣ1N*Hү #.Tz9Ώ_J>h_IXSo@=fҟEHq{nKopA?5#rPLCj0>yO}hd$Dzzp f/^W{hɿv`=G$ {% .Jݓxѹ+C??R۶"PcffGx݉ B.BV@`]UA]>Qs B\#&|N/X&x~A=gvn!و @)Η 8Q=ZHj;J? Mh+~WzMI; f u  ٍQBu}&X`˃:n-Iū < .Dc nt2jqz?Th|s=5 %fO㖻2q1H@m?"zP:*֜҅€Z,5yDDh懜Z*҉} n&߸Nc7ê>֮cyA9WKWq36jv/^%0x`% qh=pbpيmykjJA4 LN߷#J"xX<+HLn}8,F^|` svA |?n"K5Ө._=a" RT 9U$ڙo^h pͻ:'&Pj Ru,8FKoj=#*uF'LV]b* ܅UՋ*\?r˴X!U, ZbXF3Rb$>wA!U5]fThLN,e/ቯx>!fAC9,GԞH8}NBlwI٤Չ--mL#9-lH|TZDdzLԃ2H7W|'CaQ9<VѭO{O ]ț3n\Q1M @PD dY@X))oō Kzxsxen3:죛Xe> :\bWH8;c͕e6Y~Wu_bghȀV/GJo'\H2>^{2!%kQ.FLd&3ok 5f<m)P-]!-GvLـl]FtT7ʒrb!yt勮E*HUH>0:&k(`֬v+LYK9_nem9Y<φE [8%`V.Ji?zK2h 9뭿8| =;]hsJi` oPHyߚ,+Ù]$n;[%}=6[7]8KgɳF_ڜ=\ͤ+y'3Ƴ!% Z݈n*#y笍A*KK)"]WwGGNg?^c?kO<^Y[|Y,g3f?YWlAHۻ,OH 6p4hx$WV'}$xi Jm%͆E Jq<2r|1pjpar()?Ǟo.Ŝp7Jp5āeZFFIVwP x6({4xSJ$l$S&myA*:g#y@(#9po o/Uoy'e6/eRCG_'T}9.e+rռ62-`;# hcb8ꪇTk-f&iڜ>nj,6%068/㥂ZG1[P쓴:1H; "7bMgyqU&GXSsBo%œQAx#U/R$려Qa6eMR>NRV|G&zBuښYS| Vf E&3aNP5oa?J9-GkY(pѤ-pe)4^va&xI/2T5k;2jh:N\$|N1o^uԍr_ס *Y,Cz5X$uW.g5~Y{[õZ#yC'Y- ><ҟf#L]ak Jiҋ+S:աb*BM#dj_lYP KA#\&qt|xk{{$BYcbx&g-jW/6\f5lXA ~E'$\ޥA I/+hyG߫ h2PfnzkfS&R֑v?7*N$'xX6?3{=g3&w`” ["i[Dly^pڎs|C̍zgwzo'#.><>PRZ*W..>صY w)dܝ7ԜC[jP?d.ԨQ`<^EkUQ]̑c?gVԵew"5!jDɈ^vo0^wұnA'񋭣WgяN6~#H?dS^?1jXt;mx-lF+chQ'HU.ڿ?^ SӪũEֹQ'{ڊǨm+?%l:#AM^w8a|wtu}w`OEׇv8HnyҍȠ9aiz[v[i7Uwy`x"r [6EģůCTONlZ-&ZDHuk6P7p>^]╢ִX0­ 2q|f$m]ڭn64yp7V=n27"8Zx*{?\u^BhOBTVʊXZz]rgWN.@ 4P ͽ%;f#n"0m֊A%[Ca7E֖-gU[ ֻ&I1d0``y,Ty~k^K mf\  8 IZW^X_SlrQ) .}K87םwb/,Wo?A |}g8F٤i7GW꾗+J[_KI%ҍ\tRYD!~k'@EKڛ)fva 7y_EK1WHR@=s|kwv?E3y+na)5:;+-4y< ),rL&Aj~7qTKPFNR^ pVaҢgϢJz\?"s[۫j>3[TijQ Cbg?m{DnV%HZd(\J2g_cG\C6N5JN=-(VZ -==hwovz*a B]ŶZHG?g[!Yr֞ԝ[es9lACg`n.ṽ@\T|R*gee FoU,j`;9b4At!% '}{Zhx[(Zͧ.f/eJzaBgܝ(춭D1IIT5[|9O[:GK {g@I_]]ZL.5AQrDWEGMA{oz+ _IET({JQKDZC-M>&P: pP GY!AO!TpyV"&6G_g W. Nm stJr^*u(gѲq?8:dC衧:[w5-"IJX䂎q?[y6v-N[ˍG^K/ݯp'kO2?/DnA^Ϟv.g/X&t#db90-/D'i.:Cן"(G\Gɞv*#I`{9#x8T_f(O&mr$*v\JEPb?mv%X:tsOz%Nk\e&SЇ4@@ RYO9sVL>y=3 {QzvTWef\އK^5`ӕf9=KĬUvlLJ&Zx5%%V2$׎ n\u%&\/cܵG[r4 Ex4QPr@UX,j'dkaV_K,Jy"ւr /eX2w5\kp1d۪ :),%RaA(uzO ߥPaj~%/ɥ:`&71 ^'y!1cVس%_ I !E%+[] D[1%Њȍi/k~CmAͿGxw1PuxlO_CڪG*:<SKag~,߰.\A&HUQ'-1o2OF׋>A~H"]y5aE▊[uU+AUG*F2i-DmEk pŃ.n@?hiXZ=C%3ނ։ɽ̛3 Dnf|WN%>띍؟Vs,+tFIL0WuV^P̙{ -,-%t`węv9:Egܻ6 HYi,haq?$s m PͭE\w mO1;<Ӕ 6}hJdsƏޘu{JjEqT1@p#j)q|968 N eg(etE{ƍ㴛X ?z Fi %S idd_W䠼S":^73ekg93#wHs nv5c'nՖZܶvOτ,2y]vθ7|ق 5U8Sn2q窪#|nf?V⣎u5֋ֶcYpkx O"Xcf ">>g>2 u̎?BhcInL`Yj 볖WXم6yy Fĺu2fd`4'S+Ԛ sѓDeiw2)-[-V_P1Zy4@FIޣ*=Qn@8#EN_{R`j>y( (!=(,eihb`ADD:WQ tuݏwڇ:L~B J3B2 Eu-:޴>ǝ(}F-z^;^;ɀ "^z㋛DB ?oNu8 Mǻ̩L'eԊؠ*QEQ9MIil:ptưnzB~[ɞQ3@qOcQ蹨UJ!`#gxj`tF곭<0zgqY2&¸O1 WA:u{vuz~׳PK%{ECߨ t}pW>.|蚁ܴq\v9SB aP8r׻"MQzЊi0mA_&IaKaNn-q=L )f_1+A;d\"c=9a/Zc_6ŠAo", fi9yA=w=Te:,V o\&C|:#A,>'5<(JλXԻy9"RGoosZݘk/It9}@Z_u)f+>;ۯOkR?~FG$ŪK.qJO=9)]{.nWG% ww n P<?I{}o'l-O^~z ^wr07Ldu x ag̰njッ0%ЪQqtFbTBTZ1(y4#ғ JÂqvtض!%OJPW)d$8Tei3Q Z0`u|ِ6،[nh ͧM(>ܴ?;6%;LOQh(o*-4l\žɡ4Aѥ7`z8==w+^}l%3%2C+nrԭ. !A<[ sruُG"%Jkc5V\r׽)te6cղrvV.I0>ZzyYJMyQETPr#n.tiW*z%z={6!E"Yuw)gT#2(HU''[mCQ^_>j 9# /d,bKL(qo2t}f1s\b3]8Aq|~6(ɡCw{13 :kS ˜U^dlL]tĖSS"| Af2eT]u,' 5# 6QpPXQߌsa>wuyc@fl~U.Z Pժ\cQP bC݄LpjBw;}J>0?hP7x\6&@Me^ ^ݨ9[F24 E2џh#wS4813S|k!qk!#:VYOÁ?&%Ӳ|1{(I]P͐j•)3 L0`Y?T+2 g^P=CP?5_ąIfN$jo+ӑ-KG#(sIRs|@5~1s?;z=?߅H4UnFpL#lRXo60#/DadT$x/Vf^'J]Al#a2YDNda 0tp\&H9_o68VetQ.as%4H'#'ݻ;GkXRTˁ"hixp7:`8Zi.'ɴT[WK [maWVns?U{O AzLZ!}6?(蚞M`%IǪ:z*,֨b"^}&(ܕt52[<)eT67  d}p+Na%l3bSN1H{*["s3nr`evFns!*URifڮ9.0f:Y=3<> HB(@%4.,kᣬ-#>_[@dhz K:LP'=۬ư7=t7&@\-5٨9&o2`IcBC_ n#` EA٫×'T #VO`$tĈr,dXRbTYѴZZEky]).~mEtᐷ&%Fm(Y(e9),DtԽJN$ + n^Еׅk4ƃa2! %qYfn@/kWM>d.R }G-W8s"8M(^:Q<=Љ lkNX_3oo;skμ~g^3ߙw;-MN* 866t(8 z`}OvGy g i5gF[Q IFbϰT .,jB0I$F=Pj4v>WxzOTxUR֞,)i]%l$i &yh{"}}NDu.ĞGn͂h`e hb|i?ĶiD>-^-Zčd@Hw6r҆Q 7|liPRyz?VJ] 6KNjq)3mFyEB]VhH@^xҫ媘H`"*2gя՟j=Vם$K[ ݟ태A)t,̮Lwt_a`~6 `fBY|Vn0xgsB O}f=huΑ^ ؍jEs樈lp`ճ8rćWTt{g3ޚ~Hsr}MYLm%j(شx= ܺsöйF=-.B/0fFwm79ޟ0CE?KQ5(߷?^]O벛UBnuJ !D^::I[?)rbZ%N%/멿!Z/ϵZ[ࡆ]tYn.;=J6\2NAl%miP]۝ f\nV6ʥ*[vҸ Ejt]>FRwNIw|w)He.2]jꏥrYuhQjj߉(xSz\ tph2Zj/@JA ?t|]kDQ0-jNsiSA?.6-)ve9.>Ύ_nsӲ7J4$hoB;`|_zD!2Vwr.Y(msOOpADzb]n 7L-蟍15" %z f~r\)ozj42HpHq1;W#HS dk0£x~0@֐%[~NS9"޿@Ws+pHS k*=>=!Obsس ;DC:M;+YX1 pҧ=Af{n{ҀYC|?_ @wt!02]E\zYm#b"z°Wȕd:'ar)ܖD,!G=3iP$=4WBsW#^zl-)GJp_˯9XyLu] (-ru+?~fo#KM6Vk+sȒPӲ U j=k@匦fsilL=3cg3~f?g3~f?g3|lt.0