#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=a84ad97e33995840e4f6168dba657f87 # 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 XdRnqѩ5/~UlQUW|Qk6h_Tk RDuQMŗ,\kvRLZUZzݥ=z]S8FԴ<ߵ&+$mGeYe-2u܅W!_,8.|@pLkjl ]J]XOMteb3b8i _3Ogd8&3"Z}⬱+ CBA+aydMqBks/v>6G#2E"\WV:|%uH量Jv Y%g>I8c+E36cEa[|S+)*HYoN\! ~X,Mahݞ\|.5zN@؃$Zӽ^|x r'>$P=_< H:8o+EX4 %S TtiݿD"I k&ZuE(}YՔ:q_-ԫy=IGTpYݫD6 -\)#Mn74>^jJc#TzKVjVixy%fb"7M KC[BL(`HߩibRdwq;H⟧"W C6bhӹ>p&TAGk+Sx Z+l{GQE] HU{X gFL!I1 UXWglV#@/?y mjS˅~M,p~}J0% &X(xgBl4+$yC_cz,$S hu 8)X6TwI+i)P1qy8b?|tVoK6@QN!#Ȱ#O7i|y!ijG; "R7e! ; zv ndO0Hgs4S88}z%Ifn iej/%>s` hj@.c1VuR_YUa@DSg$Τ&E( MjJC$mwC|&t'iޡ$Z"fZs( 0/q3{? f楱0sfJKi&s{4ӈa)S Iޙ:0LYnanz1o8]P<6n(d_û-[mְcfne]}ȇ02\>V3 F8Q*{b RȲXHij@Pvsjƚ`yB'Z 'F,,#{O_)d~jƔGV4_%f8bX/4gIO/vQvKWP:OҜ B H,*|I$ ){Mn~6_W^~&{ AR~kh.cBbBѴr%s2+@9ܚt%MZ/n[EmR+@np!c+>.Dc!)+兒 f"YuѐB-UC%GKbDه? l>I|o6tFtγ}Su^z|܌^zSIaٖ5\ix&|ڀ!kX.m %Ģ@ pd^G\CceJvdT8\ jpKIp}knd B~0R,$hC$|5KX,Hca!S FS n݇ 9QkUf>8hܤmˆkKӢ o2I (dŅ҅NR(r|Ƞq^@Z[Q6\ʻՌǭbÎ%+5W0)>qǐӝQa#tٜyTȋDd`Md2N<@uYX(n=^+Ef!"L4Kwf^i7}",nRQ%2 C\P1d02.^%lA< 4i79 ,H/Zf4 J):RWj*k}/)`羅Vi9uN, qRbƣ#779H4H39i4)٦ @*FGvTG͏~vɈ&r񥈾7'sg' #nG!hdqW˼Z -oˎ䈭[Q䢙R8oU= _H .5lF8Fx /JXO؍bَ9<{LL=DyK[cb,ҿ96>g@')r 8< 5.LZ㻙b[pvO.OJ%}^rOw昇+6,ktDZsRްj5Xb Iq'槆 jω5qv2]#"myHH,@?%qZHR_bO;a{j)+}DR9ifQL1BqbDzbX0xӍz^na53FiʚtGʐҺD,Y$Ddb\;rOn%$[m#E׽V,Z8Oʈ3ū7Eq&^}>edT{=jYJP5/Ɠk{NsDns5-F$V5>O1ř>@B:St\?To̫6Ao_6(gc\j- $]_wgc&Ʒ[,4r^\ۊz0!A387^Cδ&?5+{R k$I!\tm9+Ohd޺TTHcR^^ +&l7 3`w&ܡ8BW ,g#+&t=&Y6VJVІa`ҲF{5D^_l ~D%x*$G@nIrĠa0~ey8]pW-&Ms6M n6k/y7fQQ3Ƽ}<7|(d:i`li Q'XLRF6SbNf_ܘA+\U >R'0kn3&Q3"9vD q¥O}\_=X0HAlMl~X^w\f޴P3PѲ!HGD 3s>PX==K} ͤOd.AkN2uY>Kyo];˷/ַ.s~! qTB"T[ ٰ$Tf8_+ngv?ϿmپWhHb'`kC X%`Rq}K:I6J $9ؖs ash5-%`ͬ_QjKs!"8d+u."dtydd*;Cnm]/%8> MA,N;JyI)d| t(>!y;rZijWTqw'f k^4-gZܖRNm4/Z6G{${$Q'xP]!lJ+MEC3F mi@b,EOrg$cԑ-00gabvC8:]R|чPka+ltMw8BHY*y{o \")NULaxs .Q LAFƂjlҘuzU(J8e(SM~feďWFQRcҥTߊMW)@XBwp)UFe&KW4m3 8J/ gP0qp=/}hf|F (,'!/V0wQ.F/_| CB%>{`TS(hoѼQ=\0(J4$#VA1N,O>'lp6wkyXD-&n%0C×g| Vq%t Ԑ)Ef4ian.Zcyou~&ݎniA& 8 6۾f"hY]rfz/ZSBTbܵn74|qB G X@p2@Z[c1b~(+v.P;|U1&<Iz?"'7OW% ."ì{jF"k+uF5n4zy!42H *iTOU!!%]H P)y~Q^f[t=Z mY Rs>$j;1 (SAI34AG?&p6PT?˔!\Fp!WLﭽ?t0մ}ŋIvo~}/RYxMԅD烙.a.u ӎIRJeh2v2'B\P;KRi`)f Y$l]_MS(ypA"WIS;ؑlUBFn6^EJI^6QM7+%:Klɳz1ZYn' BxIc𒺵~UG C+~Ci-|?yq[gE}`f)ZB3yދbI>^OètUӨ-Xx.5c"۷V&,/ 䈬Z SupY!$֞3s܅YB9JK 2QN9: 7@ z9z,m,ʪ:LX^31#NktE / N 0<!SL N~.#-YyȻ!Z2ܗrA, i(z~{RyJ9 y+vM`N'0o2RUed>C#q~e k4>&9Lg1(=_+0Ek*_NgThR+w>o'}5Nv؅N7q"AVeYseemv5ϨѝO8W3hwL>BVi*m G-'YH/I7żzXACr0%mh~ӌ2PnabNnR W" -j"ec7f$^Т)!pļhUnH2|j-wLV[̊tVK)<2 wLaX(΄OQoG%Lҩ@ljY$Q:zͪ at>SU5 eս*sUwi !$O_5IR ӒRu? ih$l`WzwZ.(h~@>A8*|-d۰=ô6(1EeVȏ<.U7) P:8բ7" #4(D Qo@Kܪ~#uz0x֨:0yM ? Gi'Jt$q9|9AOirNߌ3f9<M/-F3Wz<ͦgѶ8m1PpU Uk4WLctۯsu)KN|o#aG'یmQOTD(֓:Q /4L|/Pd)xy'J;p5.װyr9|7PŪJJODExlBτm}Iky.\ia9"s: U(y ̂]x&:"[-hesCмx~ W$\Uɽ$‰ u88yE޻y~>Ȗv%x;grUuMōΥƊFϑ[&CyXcm%Ё#9>9;tS#M%I6;ϰi]jfg6AffѺ3HYy:&NOR8gkZ:qZ-[2oh[EXtK// 6M욮 %^=aMVojc˱e4UBd[F6Sφqmy C$\[FC["# ~&9Y6D%ʶm+SU2Vnٷl:ZߚrJaަy.:̱T4fjDV}[v&7+˲"zCnVg[Wor&+0Hogk ۻ*E/h|;܀P/"\Om(Mo_8^Y*ӨhSs a!L"g$xrZ#52uV'HOv$4STu NѷϷOTy=/?SPvU$/^O6c/N :]4䎼#:CG)F;oG/Hڢ"!s7)ʵ*]h8VeP#Շl2U8&GWdx!7+_)()q6\g{5ɒH47yC   ' A > b:ٺ! -nhnI_xy ; |9:{5©W~fgvj2rI`u\%+t`0C0+" (O0\ ylKD'4*V!> ^GU(g\" nxA-8R˞Z.\^/q w-xRvr6: 38&~V#r7޾(tvr딭]]ZVn>1%匱\f;ܖ)AY3ύ|p&l4.Ahu1L ykD M옋u=^ q5#9)p0"yev6[WPl@!N)$@D#`$bKVnQQ">l+XLhr0%G܎ ;[=Q^VY'+>N׾vQ4(0nVO97' &s^Z OkxiumV1K L<+"AE"4w> |1"DzmdiFt3 R78ѫaAQ Q 4:l?&-0&yF{~pb?"ϝTxDdQzHԇx@V[B'\? @, /N iQ?n!\Lc>$xׇȔzð66%^*/h{Vk҃#φWJ#.;eF MA% ƙM X[`@xxuzL@6 Alqr/4s~97^tWnR]C ($J.CI$򭂩Zh mQeNWF!M}&VX*p-~Kū`\:SJpu e@>n.mӑ\ ~{WU5k:@ƕxiUu-ogfz(^EgG{;~*8#jfݮ936 9ѵXЎ͏ԺT],q}*Ʊ]8. .f:l^<9z ~aB'{aO)0=>ܶ*Av|z6ѵ `_[)H0 `S/(܇˂42*.TL!}:9i}:.O _$8;+cE+<:޻th7 r N _?ޤ IKRkro;,$xaR{?)u+ua̜q-le` 1|=I-p^Qhapu&=g$6ymb~ %mƑc1{K@wy sp W`OiL3X|Ģl|/?up$]T`a2h_fc2NbwwN4]&hK N,`˅ Ǣ]OvK9 dHZ WyRp?=3&KK'ض;w6>  BgwS" t5!LppNˈ%HBSfɠXd.C;eX Gө7'8~#2O!l|_PԅNJ<0<=+N\ށ(#PM6a!SYQ`CI܋U<#aUsn~p{-ӿ'`0@邍+Y!F] x,PQ]v Ϙ^&m3`C^F%BEB}Ez224ErC!4cTgbhՋ=j$uE%OafvX22ˠwu s'k %tʲ;y%j?7'R,p{_C dcTx5wʞ pkdoɨ߈\lHy yG!P[>][3rlGB6WD 7hȵoB|#^i;V ]l[q\?Hs ȿ}tpKq~H!KFEk&75 YdtqS5WCZjڎ=GڻVn%ɐCEke:XO|`,Eٟ &Ft9$nY% tb+T~Vڻxi+Ǖa1\Ӄ VFQ`l8/7Z{)bԒV +DQtjT8r-`*\,u-%eZ@Msk`o<3Pgye'>v4URa!X-py?5KFVl%orD2y.C }tCoy7-Ua˔:i6L)!qYc>;k_=gm}Ѻ,g3f?Y,|v:ël^%!Y; 4]-ÅNS`v@z}Y՞tk%r"@N^ ?z~vBim؏U1bg-3ʖL12IW>cCRaSZQ~h8`sfHMԄs{ u]x/-%UJ}w틤S ys$(_Ev,L`Rmq^LGK:bXפ'iJ $|gl6=9t FNM iQy,SFT%HWڔ 85!0:6IYqb ik*bM )H)f 8Y@峆5W^+u< ׿%F0SIמBAkd[4/'7\wh"[If3v&G$!>ґT6{@ h[ӌmBjDE{u?IV7Dt6I1ߞD˽dWa[X%Xo;^'[-LyEކ/h+4PMl\KV R"6QoM4puY M胜t}SsϽNR!L U͚z (_f7l&aS/:7ٯ/hV/[߆HaTZ lM.g5xMѢnjvx86R2u%TXC*I/L&VPX ņ+2j^oYP sA#\f&qxtx{g~3CYcbp&g- jW-6\b5Z ~E7$\WҘL9Qt[cЫ~;~)'oh/ _|0hnZ[#w.NOkYs˼q kpU껺JyգKuG8+޸k`jO*s>Qs oˠ~~]\R^D<\DkU G L2 TV>]^RvxjhəLjxo9؆֏wۇNt,F|t9 M#Fެ?2on.,sVr^$r6!jYy돠W&c[)6H _2 o3y!5 fIsMNc9_lGﻰ٦ywAzy!ɉyiz[йri7Uwq@$P-(ByrkYOlp:?Z"A5JP(pVJLMZQYzCaQ=Z,̏pۉ`%MCC#}V5 Ǒ< *$ @_콌?RR6Ol*N;WY+W8B*, ϲÖe v%<A3uڪt6+,gtRY?4D(Dl> hذu7@gր8x K2,Mgޔo7g_m 7jI?얶}P7֧NΒEN K$x탽`Da^ε#epVJBw|{Ӹ"N,|"Bҗ׷M'$[Ow:AL(8Hjy-%lLFc7Al)Tc\FQ z2鐿 {?>~[J F>)X6j>:_?~UO\Y{5Y_y0]ydI@|1 Лi؛yyGb hֿr%0ހ)=}s酮:k3z4T=%+7/^X㡋?s"Oob8g1 NHW3\Jt_cG[5n(vf3dPXi=/ i= BUZ NY@՟ʮBLuė>)*'^IWXՂyĎЄeb}`t VBX\"$Ư&ixqR*C۬Ռ˺ƫWʗY`حGƧ&LnK)N_]=ң̻YA]>`͡Jw/*NZ:ۯ4QWJ]\S`Y Ig(MQ7rtTOףݮB Dc z7sJr yFd1si{TrmyNj,4.y.kmaR |lOw-fM np@> Q=0$r SЁt4tKNw/|U^pxZ[;{ Mhn_[qo75  ֺUf!4]0{isDI}"B7ly; _IET( K&T[ZC-5 >)$#`< Ep(͝7$(1 ns=.r҂ıY3կ˂mVvN٫ZTeB.3ڶ{;G$Y1˜x,㮞pdYE邎q?ZySmzo$[\*s)Nß6n>^}pu5~f3{=g3﯆. CKiJ r(vp/wv8M~ g u"1I $jhRjfTOb̭R J8I79t=1n*o%mL}XXV+^,JpKzmn ]F;(>Nx4|g'Y ugڔNZE \GڔA'2nWz/D* r#;׷O<ͅ `Re DOPӿ$! M|W@ eaT?WeVއJ^=/5`ef;ULv!Z5%e+z) ^؉^oc޵GG۫2//yx4&Pot0+=^*O:Q`޳g ]V}_K, \y"Uֆr9ŻB Vay|ɃIf-D{>/ Swfsqr=D~/0z1mnuDT$qYX}JKycfuDjW2E-+[] ]1%؊ێ,kX~CA%槰xȹ`:p.ݟgj/resgj yR3koYOoy HvTT *Tg ˨ʈAѷV1C-'hx 'D O lÊ.mZ$ >:R1^ u`gJUmu<`1d0ij0J;`4FXcn&F MeKf"1yҚa/7vq;gx1 B jKo{+8fdbqcTQol1Djp2+qƀYU'sG* -(:'~̷- 5::9ֈ!f'] ]CT͜~2oDєD NchO⣓'G rEgO+}A>i~͘hg֥HNe_$ ɳWΚDٚԻÓ'qAӌ䩴(Y]W3"/GYq<3Y({8'ʭAr%sT66N دZG $Ij)yw$d0QUlRpS)AfPc7Gk]׭!$J q GbQ-cFN2 :C>: tZt[#/ɳnӝG̹'fȠ0*&{ 8=\"1 ZP닻JĻ4+B£k馃,VMήNi# fB *tCBBBA t (r }(NÑvÓq=Dq7w>_2)AZw .iu{y^^0*l>?E.eR@>rskˈ x˘{PזzZrTO3 xOex)*ț@L-"uV -A3ZS' q8cm>R {`kRa;ծյG~:Y,=E}ϢgQ߳YlR1ůP7"˄(ca(Udaxl?rgGKmE++M^ͭR%oϩt5XB̯^r\ V8{N?87݇G;;kwv~ۇ󌾝8t3kPZ}<;~|c88:W&8;;p'?%'6ᩁbl-v_=`z ^wzucl:8QgnhA8=S fAÉ<\ Gwh)q)=CG~͹N>"=pؠP2GZlW@Ҍm bxum?FqDJ%QQ6VW 90h}a͸EB?/@`AN#S3ֈr٢0qI Id]y 'Lg첗C}WKܣY-?g2DmVuMNZJ0%C&ƕ3ET=T VDkL J}G':%S);P^C[EfȒU="`:8Q}ȯS_{G3_gF`:,3K0_-ybx@NzIk*H}'fTC8Tُ>'qPOڊğzu\HG/lj A7K@>V#P8bQWJ|sPl|x*9ۏqI?_ڧXS@z4$* R dHcn"{@p+ц~i0=]^YW_..b(dnT⺷$.=fZfj}#\aU| \YݕL,࣊a W\$K~Hϼ1F~jk(D ͜ ^8,#[F14N(4˘§rX"C@6 o8W/'{gu^ GS.wjqKĻƛm4 Gh1Ͱ=eT$nh/Vfmj+N]Al# /aH(sfY {buNƗhpU,#gfk/.!s2P(yMM¿hҝ5$)tuܻ]\]s0\-4F-Ci%ܺ W oyhՅ]Y`Tf*&^2㙐aN,Y}(PH5ަU5TXYDaED< ~ˍX{D1d6{Rʒ ?=Bh"'kRF+%(G|`%!:;f@'nGl|F*Qu+u$kZ6=GՅ{d̏]Ό@Nt$fta/b51ʆ%,}],cIl" -.|߳{F??lߍE"Y:JTyH^cr4F-iC­ V7sQ3;}10*AOy]`CBP`" s*Y_>)C[+<:+Ez+N,Sg9꺗kHWX霍j ۮh2%i9Kz uVۇ2s>G5_姖и-01 ],48$7G3՗dLbaHZUP8]HA&Oq_Di_y 4FdqFY (P ꋞ- 9<>H~/Z\Պ*p2a<4rCt) L3?l3?ήa fN릚x6nH]O4ZpWXy4]v(/3ݝ RTʶW@ 2~+8JX]*=2>:8ݧ4cB'G> KOycW~\3{=y}ϼagӁJʹ  @.2y| -$b[?" dWi}d@3bj* ^^QrVMBIUb(`fO0VW*ԥ:n /[zWӕ=s1LEE4ATQTY]w,wA J{Br\K†,qD[U痰m`K%\RæuJ%5>ykﰦJ{ta).P!ڮppо:n5I]n5G(g ۓNGmhm'k;Mq M|zP6C~aaݬ͔FM`U(5Wo*Y5eNH3m#s oKCl/p!RUT,՗KʹϢmtP.i?Zzq;M ^i<{攞+E!.]-\D 0 w`R`j3_Qm2j F3l ZpKD ?_yDdr_QmC\shuvyvG||xErq[]Z[Y[ Eۘ| qoq|n݁3tNoyZ>+p=xƕ~ynqݿ#Wwv;rsG^nݿ78 rMKiT.MfeZͿLu/Z]{zo)+\ezqIW/cqQ}wzdΟbˢh4HJB([2Z{L/wfD"VC)wQelaؠiєdPQya&o75E?>-{g8{g ^D0rrìm}yt}K̞\Dzsѯ;~$iνM)nOGH˪nM$nVwdz3jsVfUUX$2$Gn1^#tiq;Lt$[ʝw>t̮ =ˍ>+,@| 3`؇ H^~yz;;_//qVZF(֩Q3-sܣi$MLˍ+c