#!/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=fd79b6636b54ea117733615d0d026095 # 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 ^^\{s8Ͽҧ&-'˒l˳vZm^:r&7ŢH;;ݯ팝[R 4~ 0-;~Zva+g};ΫVuEZߓ#} c77=zZN:v{괈ԂZozZ`NEOpOPJqOP•fa0( ED8ʈ:2hjpx9|>PKI&\(LEϓJ}r *EO>MK\}q*aԇґ2fx*kAY0Dğ'SQxJd O"rH`֗F d4Vc %qu\lHd(N{*IIz<v>@&Tz0%t2E%7o+đBKa0 0#qE%g") D쌉ڗbOA(X4G= A'"H$L?5BTYA% C=0Oo68CɊ\}qY^I=Q>!̔6Ed/(@@g@g3YbړF8&4A;L ƌ8~B`C||eP2hɠGP$JJF@G=LjQ:M@b]P^gLp4p:3+Ήп,Æw*Mjttk +{*L|e\ga^Wx69+MѮiUM"GajU0DP.O﹫aOkd"\k}m-=VժAQ ;V'k PM׽Ga 6kM~_~OϿySzprtmG|v)*aHTv "1֚EdpہSO|\B1t=R.lܻk.d!r+Fx 8ƞq"&Sj:KS%JHA=Fq,x¸5'/D0C8B@lp|F/Xs1 P5YA"2RGKP8G(8=wH4H,pgcjDrX$-PL5ӜT)K#J2R=`z L,=bRtry77. ~Xe:& !kF||93GZGVw?Rtn`Miw[DWC?>_ 1Ȍ%N9k/3fX8yF"d3Pg!ssyIrL@ 0ϓeezLp^&Ug9d^&[fc2LzO a w.yQId0y鳂2{sʂ3a"ȊҖCQuR9ȐFtanr>v3\PqI@ʏYS{!=QvTƔ][y~U\Y]ԕ zZg5ջ03U<ڠ>U*OdܻTcKqr+H@ G˪,p,W u\d&_AjIbݬPA2EK?!~ef2xxOCOAs&A-]0#ǃ"jcWm\!b+9oRTw6 ,!2k9 ": jePz!#B1ldb ''sDϜWV8GϱzX`%?|kcvjP縒,dڠШǸ$~*#f!a84㑍&!SqijP R18BBWI]opgA`i, ?[?_zm7ۓI$`{= ؞|pdB7KS×<VZufBA&.| 0mTM0U& 1U||]8]! ʪyTieWY׻R8^J&^*N3̻MYN<}A Uy"x6R{a@'!f@8޲ZrdRs,bP}+UJ;tj{:dmAvGSgm3 T{B`TA^b:֪7[Z^;paM* Iͷb ꛅ}!zPD k%P*r Ic ӃRUfPCp  JO4 dÍc|yn]`cnT R#wFȺE5 d?YZQoH*=VŞk60@S\@H|vp"?ZPzrjt*dz%CvNVɓL.^]D+Kb> {izp+;Xnr.0(LT6* XՙV_<]TJ̈́1ZJA7J)+#؃rfl6^j@L³Ҵ@i}~*iǶbʹ3tx+6J jFJyf\;薊u80S㚹{ݽ깰ًeͣ գSoDIpgDg ==q|ÙKKpvea|kMqi@"FKl{E:#_n(6 vHJk,JGs>dM=\%q{X5vw!p>* ;txH5~$ǎo*I4DjURv+$•)L Q-l 5†@l֙#[ˆ!5"cqk›.ݠZ {マF4k,ةG8й~X^ȪZϊd̯k9DZisiX<|".>9OEҧR{"*P>T bz*>[&"\ID0$ѮyTDmq .rn(;3KpWcX|o6Zjy//G;xO3=?>24?󁧲xHcG=f'Ā?C9\5n6̒d #M[?`*"8C,>"1]taG4u=)%A]{;A3 L b|zg/6,hA$ֹ8n '/dTghypjkIn}+]Dhr{fvL~ۤF {uM_;?,0L>%y')OQP%-  29BD چsLH40L)3=WCNwWX?򥬰2>M_ 6~a*;A]^dvdwPY ӑ8QzD޽'ǧ,f45q.B-|ym mӍpF*twM P@-V?)2g=X%,XuĮWߛM˨N> G/F'>*okCX'= A:A: !aYq_Ƨ7O~!|5V 2+@ּ$:yk٣I~#]L)՗.y>C6P`Mvo=H@;zxm32vMP%fL2L5+Trh_ L؃mIпD4DCqZ`_l$090Ws>'N+JM| ~veyy9'=^Tg4A\' d> .)7ⶶy^ t/`:>q quMeIdVp2<|ґ7d8rF4t8~jn—qB$gY$H4.8{Pv]KTRnxoHBPPT~s#wQQZ9{^nIK:|CķCݼE\JY,`2䬱1~(}=3]p+S]wb٨G$EGN RْW%M-WzQ`ֽ_x~?HaF!W) 7)FUWUBU/E{]kuւ *ӰTcVS@.U.ۢ^eQM0QSB4q_{G^[xѫ-r8va Ehk؟^Tcx ,77{x -5 1[aO`|3 Dc ahTokH(Sx"8,ӲPQAoB1aB\CL$PK|*L9 Z9. @uXkĔ52uӹk%sc}ľHVˡ ]VI4bvr>Ppx_b3{W~@YXS^=|?*ȨdI}bh- yЍSϐ| Dr,(%8Qi5ّ.5c(T&06L™k\u7 gIҰ×?s7_\l?+V E| pBZVN@6Eb^ncb Rۧ%>^恹u ѠAY<'V@ ä%>zwhå9|>K@!%xeYZ -og)|d$s9Nߧَږ 8\Yw؝ u GOC~QNrZ{8: Pgl'J^)%#L)&t7Vfmtvv_鵤K׵mk E-WrP JTwO*B HOp?\nNvQMjL3O,76Q|/MaR( ڡzdix`Qsw5?B[vTKMCH ;Uy;5A^9ܯ{Rb^LCYm &WMث e>IG.>#'ŸdmNgOql.4oET IUm!qkI)OO#k~\^{þv J֖ga .%3n5KҜ_-W^6/Í3*mWc7h(J| K<^z%]5'{+_3A0pUA~qi׃LptE@CrNӒH=OC;!.Tp*e+I޻+Yx+xTbat(H;E?_dXZ[|3M7sӷ Pp! "C4UmmJqԶ\ z@[>= y-|mM*q5%u.) "N-R㟛!8XÁ]Jlbh^;VZp^}뗣wОM/ ?+?wIhA :[1 7;"6D ,!e lj%[܎g QDi_"%Nk;(tsKx-7SDS8mO֔&tg\Ѿu#V++CY Clje8FmN_V>TzYvNTda1a6ϒz AݽG9tk?@~J{" 2EP('=Cc'$v1^ \Ke1׽a4_F;"tfCw=l78׊tDFmD~6`Wً B.BV@`>W<[|܂WԓN}8Y{|u/_g?OS)?R?/4Ar3S0}k>P \k$pfd!zAucbSQUU~7sX^}W9٭ӆf@]eq N`4.>%NڱHpI_ ,.ؼ/%([J`f( 7o׶?5m\k Glv-8.`[s ΋wR,LXcr|!IEh&-uG3|sgv7EwGxwﬤfi04Fl;Q򘓍3^J*o\i'9a>[\8{1gL†JK47>+KB٠N[Tija CdG'?켯Er,q1(*A*o}E/\Jрp!Gu̒tovz̛a>V-V?g_AB֞ 8ҹ J6RCM3 CFg0*¹=/{'YI'X*T f,nD)Z0Ez1LO61/4,w V"x E'5crYihu `IJI4jBaq[ xk@SAU8òv"L S;/F"(X ^QBԭsg .ͯ3Z4×GzV*y- YdK}`/ <f9 ][6}MHR.;R<p?=;ƛxo^mOѽS lflv6JGǽv9[>cvRvszB3z/lliW6Ob+tevov~yHZ+e=:h A+hkMauXU+H7v SsM0tĉzQ5F [X$)QY\(/DD^wuS[AUJi`AkYQ盧SyR#jv[U-v+ԪnLAEx~;$d&rS2[6 Jj;B-d * a D5@nm&*[\Ϲg_x8,D<x4fsBq_&:*I蘙UF äG,R9Mu{)P8&k/0mrey@~e .hOqWy2 fMeTU#B>r +*eO=jHkYKӀ$ڰ~ RK97hU4<2"ODkuY{-[}L4{e>C1@zOalA8uv6䂎q?[y2{IV8mf,7F$zGfX]N>n5~Sߩw;NS/+ɱWV$9vF;Q) /ÂbS- h Hݘ@Hif\k|Nm;F |(h)T:+x1m3'\~;rdL7=- ܳ#V7rRC5dm&_kY[d9 ĖS#+^5j;P3ц0eʨ .˻**A ׌gWvdu;|ȌӯbjPizW;ѧe3⠦!B*廟$T85|M$'& )?. < n5FBqRfep-@-m0KήFGY'Ut۽w*g %Mlj(> }jq]>ˮPւLF~FRŭlBȊ|*ӞjJ#"._wҳeDѦmc |QpErIW#$z-}^gSVxp99[p0J"z=+ٳ`lV,>=X(f7~멒أp!w./">) ݺymC8B:v3"a{Xs?Kc`ąq椙sQt4{52[EPuɐdd{ ۹z:P?@}JeKͮ3D,E |4 ^%6Pʃ!*lDvpV ދc8G9TL @8>%"0:+a*6@-,,m)p,F!_K MAoox!uNt߈VG(9$RX>i&AD hia8Y4[WK&& &=\*\A Z*/ߝE ggXlFrIcQfuChQհfM޾=ڍSӓƼ4`4 AB=D-|ěEj:b:U>`~Pݱ%θ%J-HҎS r>r2R1VZ,I'5 Hue5> uƨWB#ԛ1Cbg[%$0|'ǽslE7II 5|߳ͺ[w4nЙ!zTluQ \WF65FC V6)7[!Awg9us'oFv:>JW*t`G\lAɖ||T<i͋>+CK+Ri\C'ů..0֤h㽣>sF!l2JYD:STP|qq(u ?0E?l L4I@3Z8M6&NgK!79񻊌 f\x| WrC>-^lJr*B0RC 5-I`f\H2(d1#q].rIM,m  n;hwMbӊ!ýSG>QO3Y=i]MG|9L _Ax9I" dݝ=lb깒d16/= ~ɣ|C#]}oI?;TG~&O6̐B@~ +v4W/Zؚ!j]b sqrkXnr(DU0"quawXkiAnY _ x.%:,VKkKTM_AM׈ȣgNj%~WaJ7A}<=T zgR:J/.*ju8EryoH}/9L@X}m5L)FaI)~mM2kC4royK'uKsx3# 1ֆZm$ip7 *CGux'u̅ӗYOS]&.ՀޡONWYé\=`~U2#! @0 ` lImr(*`DTPu͇G$/tsO.*BfϛSɺ'璼8s u8Ge$|ʦ O.x|RZNh-L<~6 ! dl]৕"4cK993uEbe,}?uY]:] ,y8I5u4Jz΄s7 Ѳ?iY*K^eǽZwjӣT q3 Y"O613 `moI76M%SN|.I@{ :;R]Y?kn<^\F kRj-C-!gmق,,-)8Ӿ[*x;+8 &rZa1 jjT"Nc(Sh<  0e4"2G`iB!U'j]/:2h"Tn)aBEA_m @VnU>S4[%+?r`BSEZ*b)Ҙ/"AZ6vwF(h"c@Rc8DzY2 BEQ-G:K5 @PǃyPL49șҩmirؿHF%P>=E:،71q/Y{&:N;ɍ :{W0iBd:%h m@Vc ?螗.ׯc)A|9^ny ^j8“ ,k]!ܪ-m6!#~g<Ʈztg,=M_ BMT|s򹪪uH WdIvʁOxòɱyզ5qU̴'\GÓnӌ~2Q7<1_TQ5J>R9y{􏗇fY[Yj 듖X6~y FFk ̔&xvZc$ctx>z04-'e0T"-T@fAޣ*=Qn@8#.&;e"|IZD; JjpL2OQATߑR!&Ej_o^(lF=9#z2btiX};OѨr c1zɈrs:jt*nW}C+Co{|qSWhz[Y7kߴpFm>C6iU, TԌE-dz Lt;9yc-mJQ‹/h[@%vOT77On6 9f޵x_0;ÆϘ4wO_g;Ni4wE'\4hAV-z^'׋uzwFv[^dG{peaʞFV(sLu+Ǎd}NœsM 9IN$j)*5%^́ws2^{Yn(Y_ԓ:>ѡjV؊, [SC^DU4 6&k"6 _J/:eN.9k:*e`ιar;Q&1$9 ԫS;?-,6{/YyrRI,EpYcİKsb%e8 $1%0d7 N(B&T'uZͫuWzC*g-t_]VTײV&.Ɓ=\Nǩ JnV,'TjYѵ(yS>"r>]zK}7,Y:zdށb^DS:&S_,_čdP_{z4L)8 ` 1zf|!qTsT"/[F_TEM;C^6ŞnνF"{aI:!&PָJFY&+fuS$'^:ƍEyhV$˟D Nj#M)EM>~TnNCm/Q6NᄧC69H} ZuXU:Ruf%Au̱kD@k7'/SJm ύBr#S2u%/mkʑ> 8EѪ;{{̣pJrX>QGmYf1 '@0΢O; v%Ivvy݅3|Po4\^(7dw'`T4zڣL(ݽJop ֓PuLYD6"8PFi!#Gtbe':eVM؟M @d[ `ׇr '.8N vUD[l4׿s^LGٸϭslPRCoɗ׿@>ϴeo `i_ۘX!umq׀fl ~#pm= T)1ǯv\]| Ųϙ{ 7wBLpoӪΓaeWAPr,Cbnjj ӄ:d//pr)ʎyQEz5Vu6D S6uEF-6Ŧ'X8<8XB֜ײӡ{ 8i{1FZJN^ 94J(,#uC7l>Ѹs 8ȳ5WG;1ՁcPu_rqb˗Yzv|!:p0P.0mx7Zs) 38L wۓ )AHˈ^PJ}mm!f2ۈ^{:CIU%:<<T;i4|&"><ͫUrTXGBsE?+Iš@ȣ+[t]^6/.Tʊ4Q.^Q@V R(- V뢵Z7?nyŞՓ9xa;!`>\ӓsӭlMV@8A1pjJ}ݾ XLL3(t`E"O2lOϕRپ]=ޓ^eҫm΍6>k+nHyM +Ù]$n)Uk ml nj&UL#yZ諕]RRL*9~2A5[N !a}eJ?-ӽk5oGg|B<,!ء5?ΤLkD׵Hb^I|>i[>S jCpT(H*< ] F8OGa~UF-$Rj^ & (c!ͺ5_so/e*H^&q [p+YY[xoSvGuQ}W|\Bq;5ܧڍ(a(.RJ@Hv)+] u5=\}>ٮA_fZkce}ͣn4\s$7\IQ2ݵSb0!_OIKR#ֺ:.QdfC]/J^:mϵڇL+3"0'7}аf?%aRR'SB/e9<z!OEr|1*k*|plڝ̭-Yݸwų SnaM9QqrwIX.b0n6T9"֎:fCe=idbt4X5Ax R7)ߎlsCP n1=ү̝QCZyB|3^ӕ_> И㚍td@$উ-?=Yd3`1h%QJI\  $]=69<uVdu]Cɸό/&!qYfa2Kd7#aϦӬZ ,-W&.c/k}t-I~K*?jQFc=6` [Kp5`UJ_ґ3Ujl5!ܬVsd˜ZX[ JZ 7ãW?; E?ȩ]l t|v@e< W+[xBu]Y$;6}jJʋMM[K"UyF$-pJnuGvn$s8`G{+}H&3O(@wMg JgWUF ?!8VnLT~:2qBvGOj"> F*(1=8Vn} IOe,V,H6_t:$9qMl]IÀ-&wP z_ihL(1(#`qp](FMȁ,LyՐgs!J:#nozrg?ZP, E0_2Sq A,dr ܇v{bXSM' U*ԥN䅗M[+z자wGp=?D%L9zlxJJ c GR3ײ]BeqvV]p$I){%)Ϸ|tͅkK٥+{/_W2zBJs$I;@eFEClE$ʠK}>T& 䧯do~r?\_yK0DbrsWaDćVv\ O}f$׼.fsdî;N}hgMEsT-F&Jc@x7Aʷg#"s"ɐq?;ׁ'ҙee!59Q)]:R&X9tTLm%Dۨ <_lGz 5pxyJ۰$Rg~ gHuNMcw:-y;T[' Wޱh+iSϛ f6\(+3l8qFG#C^PXyz}=@~TjeXL:6G [J ՜*N r*o4jfVVG{n~G| fo*?e5APGfL֬Ya%zvU.]dm|u)lmu.fskmc=b3k~P;dsAJ'>:O#nOom@SVү: tk:=o^4?l+1f#;lޝW+WkWwZ>$n)=҂ =; &@yѧfFKpL n&Phmr%go"a6M7}[O#ӹnNu-|마<5Ww? a19VC\٧fj1Fk"ƒRs]kqk4_<%.H趔CQ? ~=cٿPו̵ҫQI3^C2nDiE=b_GX_zo+D^$3oB,캤aza3֐1u܁@f6GjzXNr3X}'gLNn؍eZ$ 9m>k>9 '՟֟cͪD$x-Qj2IOtRZPXL;|?״@xy NG[gP7{җl=Ͱҏg]n~NjKn#~S٫TULtrp砲 oûny[Wȗ7hm_N^K.Jo^{qϿ_'_Xh_:kv5*/sCT%wCjETtE?czg]>/srxNpx8<~ wrnx@ ĵy6<~ bCi 3Mfy\oGQTb)KPؗ*?.}'M~TߝV]LqIga֋f.o OZ[`ߖooa}`+Jnhm&1.F.`>Y=Xl׮"J83_o(1I)$Vxr9wb]"U7]|1f᛻V1yFzE8EGpE n1N%_v/ťF#h}mTb<)z-4jp7`LvSDϣvKϛU=;Ϫoh@h]i_ }]'}]}|L!Rv_.6BtU([; P Rp&dyT} kxpH1Q\+GSyy*/O婼3\ 9"}NEMEکDxd/jɠ݀IvsD<Vf64u$wUN4h~s瘐aώO>D"G`HC"4G%˱접CVO{{n>({?wA@4wCBactq% ^!Wneq[\2dBB\Q ͹_1z^Ţ D'q}~-?wfrKc!gNQx>j=R\.N-ӟg3L?ӟg3L?ӟ?I0