#!/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=6154bd5ef36076ac9f40de1695d3b712 # 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 dRnqѩ5/~UlQUW|Qk6ZQ=~QUk/HG^+]B^xG7^_|p٭OJ2WkWjFdۧsuc|NG\QwM̓"Q|ךIV%M5u֖ 7 hseψئ<@"d?EGiH :ЊhƮ@& ![9C4񼌽$Q01׭u6  FchI,a:jAm_vp% ݧϽXLa  YSF䶾HYƌ):4< ECBmZ) дp|JM 12n.ϙ_$+#ޒhd0BsѼlnhY,ꥬep^Gh^J]r:% ?K\z]iv }u$H,{mv#> GWÞ WeI鍻rBTѓdAMHJu.}&d#\V8`xdrgkp< s]Y= `V"*Q.۽^W@3K#d@dI@g'dծ<:*u@@bxԑd"GJUg `I0XzR2x$]! e|:V%r1ti^H) &"!)ݶfX*F*eP5Hl. 3eP!חPLbm"Db^I_R#a\ˊT lj0uGueWZ|N2!(r`6Lt@l)mW)=õwh3cOY ƣevwHJ-ӆmO` CgbiM\n95D|,TJ_&~jTrhҩC(.;$< Di4O-?PsIѦtj G?nzYK֪v_q!mS1U2XB!":1W)Ëao]ӠGia鸈2\hCX:g:\1L#A 2'SJ+SZPԎsʔq\}M]JdH4i0+Fq1gxrVP.:>`EL.M]p5HFt,ѻN؈s$H 3sfyNʭ$*X1x<]+ ͵^bzS5~<bX-LumD#$i%Bi(|Lw믹wijbed[www dk8-{uY}[ yE6[֫&<_SӲtE+VHqCFs|)ᤥi5"WQlcP,5FBj$NS6 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kߞx~[l\ҹ|jtMfH2]@pppPfSK€&1tLHkrz3cX @ /p_Cwp{&0G,Y)"֤,m ֲΖxt[_t-nXr[ vX1p! IY)/TH6֮̒T:dmQ,9H7=Z#>)`N7Ӱ3*>gJNf J˶M4YJۄ0XD;w =̘_ŲXpi^@-qE hWT < u .S2#wVNDZjVc솳XOՇd[s ӕmb!A5j^&;YZbEr-V Am0bMu>@Lm̉Z[2A&m[6DF_[UhxNR@9&+.4.u FC xl22Wޭf,W88n\ v(Y=5A7IH;|o 3FD;D^$"kJ'qRu2DqZ)2 aYJ3#xO 0q`,5trM,ټm'+݄`u`.aA/t>OI1 m0D`AE||R7IUJ年4cP[ss q,㋳/}ӂ<?y8k9K^v$ozAAM8Vuc$7 uԣ@L 6X&n0_P]?R?jGV+uwkwowowowowowowowowowﰘ9R?,OY!,.Cy9}^.#ESJB{פr|j-mn酯HܪWk9ϓODy(U `zEtVLVy_Sc~I|'}dݵN˩wR_f`33}ԘIA AIxO6uN@P<7؟<:=:h~ HF4/E593U=;U=1Uq8 !FG#`ZMZny5Xv$GlֶǍ",͐|x?n?\xrm@JvџYf{d51yQz2nSv٫Єe` &ʛf^jېf&60Q9s=IcpᩰH uaB<ۂ?&p/-vyV*sRԨ~j3cpgA{|g qpm?p5tRI=vO5߃ܣ{W[/OC+ĝbG]Pi EBܜƽkr0yH V=1=d8P'{/BwQ9ZeӞ~i`5LkӫZ,]b߿KR¥KזFh@KI4&5{r!n\!{; vgJ.({H8rF9RaBICg̈Xo l$jakm (-Mm\OŖGTBBBpT-L ZYѥ;wU!~b4mӔfc1Kxo65siWC xqI6FAf͠=*u$nd3%dō IľU _3-u6mE8(3lGİ'/\Ue܃d&(ueM ? %-rtL03 %?ӳԷL4HvdYi/-\x[W볔[|k}1nR?W8KU+$BJI AA{@Jx99:n65w?ŵv?ng1X/k}JE'D $ lI^Fj@h1xƞ֮n ;{ŽCwuuX4kأړnZy0GYi /!SQ3mC/ = k\F *{~aCRn=zʣhUjL$Lm,'bV2ٰGM0l'Q&ëQr!N@|6K`ay}WffkOX]|Bx: %0al3qt"t6JNGivn>kC X%`Rq} :I6J $>ؖs ash5-%`ͬ_Qj s!"8d+u."dtydd*;Cnm]/%8> MA,N;JyI)d| t(ާ!y;rZijWTqkw'f k^4-gZܖRNm4/Z6G{${$Q'xP]!lJ+ME>|-{[` wAY24ud. ;:N_`7ZJ7]mP=` ~ޞF[.vӤqSXg^-8ȂD%p8l1<4&wzxx}#T_YQT"Řtt@eGU +?P6DJQR@U.MLC3< *" BtE9jK#!Zj;C+JjoIȋ&]Tpfы1_1OLW9<:l.t@G$ͦk=?շw=fP3]T4sL ٧>X QȞ{Z|?5`aeREʷR",- 3Ɉjt ~ \a{5VQ[)E#̦P09`e1<_Uj ]@5dlJn?M&v6{gX`2fޛෝ3nEi_~#AZ4NͶ"ZG9{ދn֔w M~51@gA*y?9лVrdi?"ʊg nr2;_U0`vCZdR^du2VlcY|D 1ܲ*՞.vÿTePR8Y޶  ŜrZwue<|MEǪ㭅Jq;0ߖ.5;H9Z[\Ӏ"?dy_9t(9) HtzskgC 5H]L2MeopC7{SMWٙtkGNj.uˈD]HNjB\W0혤,K$\vV+3h's{9*!4- $iܟbʸ`PER86zT.n1U $z?V%Dk$FlcUnXkoeՔӼR#T}<+v(T+$8/[7uT0XL~[8bzc%Vf%>'?=? * (VsZu4:?kKZ/y=*kтuG>p: ԼlJX}l@>3#j4LMYg~Z{7k8?OrZdݾ"L(-' G]89K<6p.0:zFo4uѳ۲(V3auzʹF/t8Q3+g{ϑ:AxO1%PG :=|d!ﶛhp_`wR2%I);'䭔1N5-9HV#G*ݓ%i-2uĠ~ M|3*8QI?ʯQא;a:ݬƱ3Y-:Te2!9s[A5s\M<139p iZM;YnDfJSfI"p>D':Yb Sk BM3@:B 9Y=~K8_2J72Dݘ@T.zB"=~֢V[6!m}jϷ1YUo3+v8AX-e4,Hnf19KdֆaQ@8Vޞ?cD2I'F*Ul3RE=QXOD% R;<t 3@e;ؿnMz َB{u6X'i+Ez钸eQ-եrrTb6'ۻ{?g'* p#SѱWNCB)N9:yhV ˳(gaRD bSwylծ!2|,鰜 mi%غIk#׊)s=nK.uw{Xid {I4߮ {7 (G ǿ_ɑXVKC9*UR(%s>`zQ[ =%Ul`j?42sUf>\$+VM63 t $nAf㹎K1\p9VT_$<# 'r*6oyy2f\ [Kە^#IjUkׁ67:+fC =Gnt` Yc{g:NNClM=@7N'<æueڴ!W$Ej8"fY-똜;=EJU/✭i$kl1j@Imy`U.?_GxVl7k+@|@6?{D 6NX=-ҔV}d =mL_b~?m- ћsm )o (LO|dڔ/0jN*۶LU:&K˴Z~e߰>j}k:~o)yT["RPҘIѲzY *nۙT? PSZ.n棊k~eZnY\Qi+GjhDw #a5B*lL pBpKp h>}4q|16xgLnto vNe*;0鋜9Eȵ/j^hpUX8_Gf"=MؑLQ128Eߞ>>߮{Rr^NCmV<?.>ۄ=?%HX_vt;b\NH٦"}f4#i(iߤ(:]q5BKOkUԘ ^p+!GXa& s3lE xJ(?Uxp)@-迯X(xVL&ri(H'_dXJ-[,{j ryVjz-UxȎIڽ^˙h2tfk#[Hȷ{7ʮSv9Pv}kYLĔ> ت3r0˛MD?`s[e?7J Ù#Gpc0)w6J&4mc.ֽx="(ո h觠½cÈ]ml]AaKc;91V-YFmDUl;L`^h.O3c\q;68lGyYe<;<^gکGӜ_¸Y=dܜ,d̽{9?k3?UMǷZ/ &,#40 3$k!ƈ鵕Q!$oӽg'v|*H=<'gG/뇁Rr-:pG-D%Bj9hx6D D !‰ ^)87Ap57\&g7{*`m>o2/iĭcl6bFllGJLe_u^z܀^St{]-Sj;J w -hfb(%˷ @ k*E 8]27m$wX-c#[,ëdõ`- ~|9p]p *N1&*F)K'T۴rOGF(s \Up)淢WUյqFxͳol. ҫ]tθ+tGbs>B;6?~RN[PuwMv[#v |:\z:Q{M ,`|q^GD&42@ec̏/]w~8m N | Pn˳xw̝E/tmAogPNn96[& }7jNI40ς[ jV8UTro6὆c4ncądAݔHE}OvdH=(3\2bqI#y2 V0NA t  -r~#'ŗA.4u!EӇRL-)#aO4GƊtw ;TiCM=mXb *Pa;bHy>[cE nT+[2Ŭd ʌ&^QD0 )JMiEu()_sI 5S-wὔ㷔D"S>WwO+UM8F/N-ΑV|u $zF_I Kש>?.^sX5bt]oq{G;j1ۡp8<H2]B{YyTin$Yzy6ʾȡtˍRG`\ _Oh:U`rGNRGL4k^\#Lu2NkRՄ~Zl[qU7%^R(f)/Q N̒TO(+&"˗ϧ;5bl%춯rxTߔ[t|<-^O:F^V/F>dݥ`6& H;*; 5xd.WM|җ@b!DS]W`ygn%Zj0<7i/99ܚY,~1s۱3Iey1-B:a_b**+!h7KRDvj85%EY\"Lk6R"E^Ix7kS&Ԅ@$eadG-_55pZ0ϧ epe2d}uX#\SztrO,_j^NN$^{f͓mѼܤsʞ ߡ; luC'͞*T]r oBoNKG&R-AlN3n vmN,Z݈!Ouڤb')jd|s]/]ma`xŞx>ojF3 yV8bP+pve%BĆyd?u !eqsZccq36h;$,'TJ0)Ff\CW*=P7еݥ2imՀO.lT }wfvG,jQg#7@&Zm{!!OjwQvȦ0gc{̐UI֍ޠ~‚ w'rퟞ᳊#m5c$ŷw\z싵E&Wۄ_^F;1ɺmtWˏ<D] @5 6Wr/Y-HVȊ< G}5S4AФ#Pe)L7rYNa!>z;I0/Tբ BS\{lKnPa &2#X*fBjb5HV9x eA-N9p-X_흝q eYo(]p|skE"x*Jސs]Kc*2 ^VD!%WkM Hz+TR֑R|5_㵇~ՙg3??K-`H"Iߺ W&#?̋Bv?b>[eЫ~;~)'h/ _|0hnZ[#w.NOkYs˼q kpU껺JyգKuG8+޸+`jO*s>Qs oˠ~a]\R^D<\DkU G L2 TVlG]lSz {Ձ;>^ +cHAxnrbh!g~ڤV.tv{տ]\4c'Df":|`!|Z`㓽g02:D돖yuиjJ9:S|@ևkT9PpXCϠ #v3wCHn ty3q$O;I{/b&돔S9{UNnЁz(4:H೬𰥧-']qq;hЌbhU*M Y;_íi8#[6lwM-bc5`5 h٢7;Gg p[ÍZR/l,3A_,4MihlQj:I&p`o'>;<:6Q؄s-m59ជE⼾4Hk em*ww VENņ>p43Nǀ?ҿZ^ ; Mb#[J@fe52[xȍE#= P˼+PJ3t2܁ eܯAcpZo0E֪ߘؐxf;d)+;p#LGq=*D 2)H?ɨi# 8'$ lgDs;.G%'ݖwhȢKMw"}>Fh-H?p=|B:W<T74*hɸPA6:y3YE,Ghw[c sNU;d BwuJF=`Cs{* hSxWs)YTl<) j#7YIh(n`x "bqF+uzkO?@ir1#w!lj<6iR)QToW#LgFݶpQ;#D_zǬ ȧ"!ʰ'DA} :PnJ O+vk{xSR#͍kX9}+W>.㦱=>S]Z,& fO8v(7O_D֓-o+*%aԄjSWwF4%d GN?ԙmζ'CSZp:4ۀ8>kFuYU;əbV<@~:{UL}Fsvd K7F?>SsbQwcs՟,5]1S+oꡀMomxdwK]enr2ic߆ݭxǫ߿p5~f3{=g3﯆. CCiJ r(vp/wf8M~ g u"1I $jhRjfTOb̭R J8I79t=1n*o%mL}XXV+^,JpKzmn ]F[(>Nx4|k'Y UgڔNZ?E \GڔA'2nWz/'D* r;׷O<ͅ `Re DOPӿ$! M|W@ eaT?WeVއJ^=/5`ef;ULv!Z5%e+z) ^؉^oc޵GG۫2//yx 4&Pot0+<^*O:Q`ӧ ]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$o >:R1^ u`ͧJUmu<`1d0ij0J;`4FXcn&F MeKf"1yҚa/7vr;gx1hrg| rÅ`[ѷtl2y]Uθ17|"TRn8qc,#Ih?[Fkď ieܮBm㮡I*fN?7hJk"uC1_'I_#ȄxQ]@ 93u'ɂE ҠOX]fn3lN[2/avKVJO+gM"lM`sU铸|i}TZfڬhqAĬo=z Sw 99*Sh'W-#$\B;yE2 CliN?P*LA}|O} 3AyZڣEG֐ux%i#1èE ^[K1@]Sx'`[ġD{|q`\hzR:筑^7N _Tk3EdPh=Y9*ߤü^s:cP= qx\%̩K2?\ S p\ E50T.Fl|/4nj1s)"ܺNg'gj{. (]%ym{b!5tqis&gW'43YQO!E !PbS:9MHaIn" 8mbh Fv\`;/_ma- ;M{No=a//[we_6̊Q"2ۀg) feD`<ÁeLp=NV]rXkK]=-co a9`*Ǚy b<\'2Nna{PKtM &SKIC:li+ u-P] ҆86]ÄA5Xy_0OΏjWwFqڣU?{m}}m5~g߳F,{=E}ϢgQBI>ދOHRCO:8.9懡jJV ^az}MZ.7d4&{5J=` Y0Zt{ɩr-X%Zd9ThI`9&N_wϩ68)s*lܦB+{NuMx_E 9e]] nN/RƧ{/b?vJ` _*_mSå#7|(;_` P?x/!%!(~Ng9\Ïnmma.V*O\h}՝>8yuG_3>gĩXuKy\#/㣝bݵp6I5t%݁ Srb8{x›ikhvPN_uwQWY!:iu_F35pnj>ȣg%ЪQqwGb@Bc1(~4ۜ#ҳ !|v-!&JPfcH8Tei3QZ0`u|ސ6،[$>0/bO F$>?2%;LQ:o(*-:sظw)z?ɨ4A֥z p.{9W{u=sV*J?fZuJSQ2,oRi\9ZOLLZmQAw|q#_X:嘢5ȿQګ)o&,\%#" Vgcw?{F2h uf f3K0,3K uj!/w 亦dubvM%o?C~b NW΅AꉄI+DⰟOFt䳼Cmo9rU{Z#eD1ƇGs8}5_ GCr, @& pM$1VX. mX<' 3Eue"jN6J%{KӋAjMqmƪe72%&[GKO1ɕ],b>ȃj0M͒0"R,EU{|o>s5]>.L/%ƙ-QIh_{6[! )e D5"Q 0Ghc`E<(ha<8aS u^iCxB@Q8ko`x&foT7"HV1iLdI>` ؓ9lQUdQ%B0(=yhGZ[!ΎhZ XGXYuwU5,Z ժkQ(b&DfLpIIJ>01VhiP{@/;,Ssdd;}yE`dfE+FmMkOͥAKx^罖}^a7=8EpP/(hi> =(.V.tA ݙJS0|U^L0EBDd+C`kB0 Πq9ej,JB) |*(2d1s?|"~swVp4U8aHk{  DMao>F3pv.? SFEQᶁjev2IhzO$M<^-I >gѻ0БQ!xzZd|[52RZ!{aƘ"9* Ad*;vڛ(9Z\CBZ`O[ǽ5Օ?IC\k1V^ɭ-ϰxV]ؕo vAkA_KhuO/8 Ē7({_ӫmX1XU#LEVDÚ'ܘGCf', rC#Q&rq&%lBYbRN1H{ [@r3n~vxgthUROfڮeC{tZ]GLW`@z`FAr)qaY] slQ¬!2&H R7=gA= ^ʦ]4 :yO5n٨9&I IcBv|=Ļo/ bx#8g`5ӗc /GX!f=DQ騻!% X ,R0E5{쓢i)Q9áRb@_2uQ{M~)\٘zx0,Srd ^PnA3D/21b.kсIEcz}H- -3^{ZU~j +;1s EQɢO Cr3y4S}M&*怤U/|е@keHV@|nTKL'! o U ⩾RO`3sZ?,Y8ﲊwUh &Γi@# 0DwR|89. bj뤽nKgII wGOBe+9"2/ݹ El|Ey  ?/+85ݥҳW/Ê}Z>HS=&tx{p$>~?~U~g3ᅥ{=y}ϼg^3bdYtw3mC/ =/p x .ɠgy;9֗ F==5[NtM8hq(mH>pz֎NAMY$p ei8XCFQk ~> 'QyIg+wUR*)/Z*'uh{"].D9Zxh.~:/f#PKzHojucd~K:Ki8<'" 0|1 q+֒|Q$F}fQ3EtcM:l/?#_a*쨎[\u4<0iצP&5vl@dmIJB( 3H >D Qӽ孍Hr"7h{ClvGd?*|ߢq rT]4bK0XʴI(ؼ_:\r@LlC,TS &܊PTխА`zeK*v2gn4 D?~T>**\2NR6107+>PnڷTǭ&ɞh̐;Ays?? MZ)6bS\CSl6n.g"'~P2m1O=an;vC6rb"Gz}*c_࿩M;mɝ3WEd<[^ >,rXե }dÝCZ㭕o7tUmɶVsI.q^--'M5}vc9m|6~2%ld7 ihJm(_r(fhO`fF6A6Ehceu%pe}5~ZMC.hGQ'iuk='EPN]!ěѩE=8%VxR/)< vf:_0p*6`LԥAu|j7ov#,r(lEjtM>FRwIw泽ӳ}|㭷)pe.1]ꏥrY UQjчr7ФU6zӧNrYBRۅ:һEP{ &&6|>ouF~,.èЫa4!y?Ơ dHCǣ+?Z?/)bT~?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.np2Ҩ\>9;>#1J5#>\,$2^.ݓ=x,>>i SR7b/_ĘN?TmE"h9.Qdt[͈.D$1KR71k3A#Ң)ɮl LkM.nFMk=~zu[,"ip @ -uav+$~gYzyt}K̞\Dzso;~$iνI)nOGH˪nM$nVwdz3jsVfUUX$o2$Gn1^#tiq;Lt$[ʝ>t̮ =ˍ>+,@| 3` H^~yz;;_//qVZF(֩Q3-sܣi$MLˍ+c