#!/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=acf2aa181d54831ac1bbd1c69ed18923 # 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 ^5hDnk e!>L z@=R4$`!6M ǧ /&ce\<3IVF%`y<XƗB}{$%gS"HA+w?g`cYWH#IQ`DaOteI)MrLƀ'_cl@28'WҨs 3'?qg;O ۣܙ#2E"\WV:|%u+@JwRLv 2 J$}֓p2jWI1u@@b xԑd"GrUg`I0X|T2d$]! erd,$HwrGRNIo0M Im69 ܟMIOh2˃~ tapyGHGD`z(PLbmE0\żtѓ/~Gy/+R &+ ` cΓF\fj%9iwH|ȁ0u.P(nSzk.}д!fZVDZgPPQGR2x[mN Jg$J-S럋]ISB$6p1!ts11)Q JAgʂQ{Y sD$Ar`Ҵ<6C(;ϷJhpkԎvqGp{q\?5k[{՜m`s?>:tc }?3 /& <*7O3F+ Ws=s=ךtlvqc=+ш,rt/uXNmVyCm0丈2\hYt 0 @0 ;R_,zu} zu5ۿpt:Ki%0 P(Lr19_-i5bf%:DnoM~PY<8KТ])\dێR ۣ EUKI鼘bpkj6WDk3gK-/koAEK]wK-R݅vX!p! b^()NwDvͥZ4``UC%Mňr8A|*n'iQ3C;Eq>JNf J6M4yJۄ0XD; =̘ecʴA/D  0YG*ja@{Ep:o |)¶#w^JDZjugedu>8 4_I֙u,HcAo6M!Ӧs@Lm\e&ჃM6m7-`xĺx0:GФBH6F"JL@E|xR6Isi4c=,c q,㋳/}S} 3%^2;)psPH6w_B}h7hXa`y}Ibq8x uS^o){l֫]珸vK|垹agj7q?w]sW?vLI* 2KV8\\E9}?EiÑ*򿥽I=}JCZBj_9aRwO(PX^xXVD(.YejЕZ3ybK [#UnV-9z5}^JX11zs3H4A4F3go0}9Fu2Q;*ߣDCծ7pyh"3ښ^|Ι*@rn^هOL k-h7C,?[-qE3KA3 Q/c0{v1f2ٻBVBjwO<f{`5Gi}Qz25fOBg;~,L6>g*0^#K #!2`č@ }ʼ jTX,.6{Z18VtmL{`븗?Չ~Jyϫa KZ ;7/Zk<':}㰫IIwkF/!!$T^}*q'lX-f'8roFd57D7E"F,.1X pxDq@AU1<,4dН&JS1a{&͛jDTXb|"WOpx]4(&n!i8j兇9Q^X|"!V! $tB{ 7G͌*iKR%' bk]"'zt`.rp++ܬ1k ZHuovU[ 1EQ]8S:JEglcFVOG۾mr#K_ey fm[4gݢYRkªF֭άzQn=lhSB]X*@y8dP?l'lD:N^M5wN}1nb|{Bonu(>ťY4c4ٴt,S(LYJ.ջ>pgA-{|C `Fۄՠ;I#'<\Gd_\N-{(?QHOA;?:1 {m `Og(v,q-2H >;d9P'{?B_(4̻ղi_ALkZ,]bKR¥KצFh@譋i4%^܄-]Lp7ew:΀;]P"D‡?JH<$ǟ&t&Y:VJm }c?8e? Ք,ayaT&!8rK򾉆d(ÉRϝ?@m1fiJp1_Yl㟬>P𠨙Kc޾LD\/6| t&8LSţNЍlĘο1!²O䪄ůrM-u6mE8(3lGİ/.uPA%d&mY?KE'A\6ɂap1"l'H (gۿ層[dޝuիW Gk~]"'N$pOA}χ 1?ӏM25XpY^tJbJ'+Wh^Yik`GN5^pbU;49ON"8S`4x>vO</ϟoxro7\s[u?A(]@=j=V~4u_NQS76 Ik '\LJ?-w_ v7ճ|]z*\.M4Y(@ T s6tXvte4E~ %k ueR;RO)&gn`[Th/Xށ ̈́ GY(t:R#8x0ϳF<茽YF%w\=z?n:f_Bq'vž94:RR Ŭ_QTs`j M-EhsDwFsn+r7n z^I `]V-0L[l4fbQwfY3(:%&|C =K;8wp$Kֈr'xд,=,ϿFJ wƑ䖐[raHi< +0Db"> [tmX0} `Y@kȶY[.g owXMASe(3PRe%v]HS, t qRX|ZdXaJ"'NٶKDgC[)ᨗ:{FlSj ajF@|I(rR.P8ti$iwJw@!6D W'`ɬHe.Ms@7<4>2(Eqrb( +|h`<ZQ*XO 3^h2B>8 VHy&vQhK ƨO<ʫTV8fz>.\TԀy̐$q `‹$A}`1026ƃi)ɥ;xSLbyJZf&w6 P< P[lPI. 7\VqZ^?[A H=ƝZY ^w8{ [0/AT x>J.XXN*:gmt y0bsh6(csς[K6_ X ǖ(cZB/A{<-$tv+ON&f l.ZAy:Q?\%떮I_~{ z:Α&_]2E4D  ^ w MC/ja]Ji, '0P±ɷ1b~QzV* ,HwH,H| De_N%2<< 'f7Խ0r[ 2Xf:MבaL'_ ~n#RPApwxar,dy(.rt*ъɚ63' \P6$.-P و ^6T='h3W767^E1rƩyBGer[q $N(_sȰ0zxF :iP=Q\!`CPy&̋-r Ť,Fm ZOfFEq!*`S9_vL>mkڣS|D51Wܲn5VnfFiw/2,Z}LIR2e%եbqL9v>YV -|[0s#bZ5>SBmbV2\+_ <@[ַ =,*©}Rqa^DMp\1}7phbi3$$  s&cʱ@23yo.fòPQIoB1~^J $sQs[;v(36v#4ז~H9z1ۏb5$xoovg[i*`܋  e+3\pN֯$5/ƆmFrhwUe1kWR_iKxoo~y2i!!.YUpbvWQ)%ӳvӢ堹@M8~qF/Z`O=,5o9qZ `unWyB5K'&װYV9?%Q՟ۅ~FkS1{m >¾Y@pW#(Q`}v?mk( kvz͸Bx5( Z: q!vqOh.#-Y[gl[G]ߴe]ǤF:Y{3G튺X i~zΟұ쉀)q& Yߢ1AM !TZwh|mRkh|}RhƟ7n ]hJuӑ1߂N7)4uLuR %[nfALּ. sD[U5 ɂjH*LTo<QX3M$.g[I[UIrSDS 7Q84DΨ#7ND[tw7 k vrHhےTT:Ԋb )k6fgI{#قbu8~`tm}z/ٟb*Z{VhaOY,#1o }Ki~1oțSc>żfY^#&I0P,/-hne6x.R`tIJMx&րi(׶Z˼miORs*yA f`-*ޤI|Ir]ZRȔ$h%ھ2= -&d[$9F];'_W d۰?ʹ iY|\"K苘]/KCPlTJNƆ;^8db%Qo@K&;1È<:[V 8t[&hq8;A<)v;\n(ig%D$ $O&_sxi2)r h\JiVZi%"WvT*lCCF~if|aY9; O;:Y"s P偘4$vxcv!K0Uw`2A7^ }B/h[Ue*WzumabK|-)BS1SڏY*p8\[$"ٍ$mO$$dI=aA0 . L ajHz.V8kqv%lmP+ jR|0t۱GC"UL "ό#̥THgI5lպae/#P5Me QNVA&fpqgжnM4"H`"Mk91m[f$3 Nne94R#^.ҾOgem&RAj' ( ³iBɶ6e.E_惒ew?0g'ި'1#Hj^XH=OnXhZowRn# ]AwjAHdqj`@_ljx{bDx뻛R)j~tSj^mxj^M1BmBMMA|i`qO3/)r5i )tzdjlhUp6́RHBRȜ59ݤMY)%‹9d$y9&',=5 /2ES{V YQT; cr dw0E`Wܜc^ S^V/Í3*m6לyC8=~sD "aG@Irpc2ah ծLt۽#] r2aa%Uջ🦆w< =.Tp)e ;qX2 Vp ud#LsPv~1d7[|M17 P!1` -݊}疪4mmH>,m/ߓ (T@Lز"1dx4V2+no^ {$|[,4]X[Bz!M,qhqkC+ `yABv(S1dӵ\4]!Sb&(wՏؾwVBj0(lb?7.(t&ܣCetQ%KKelAY P^.h͢)1th6+6E[2|K3&WTYOiʖRfx.k*d 90n~a%r0SDמBs>]։ZK7(Ӥ"vYճ Zt?]փ?Kl<%?y?xx}w"(O#?y폥'5Hj!*H?[{,ʡa&"FxQd/=?9vLgĉ((R\hX^[eIjإDal86F"}z4*lKc\m,/*lF볓>k2d$gz&|l h1 ]y@۰VcDWE$蚏g)h8R͹HW /#{#wxʺP*ҶS˲lDI!ʘQ~ͱjK26!>YZڱ d CjP/'a.A ?0tw[L==/xݡI<up9Wv+~~_ԡܶc`?H`dL/ݚ5g5?\t;r (NeDrIx=PtsͯOOҧ>L;DKi\C1Wk<} N#TGIcPDUj]&5"6 e%k^E )X?^Wx09 ׯьZ9O߆ڢZl 2 㨁%7qn3:4"xW'M$Vj6 vBa6HF?e~ | =b:mְ!r׌OT6X\)NOFmesK*G Clk3*z81\R*}$dӋ2v:>}p\ˎ ̗y0i 2((FGdK 6YeBH:Y@V%<%8& '$|V ov+0FSZ8ۄ!&p={i%Y\WK _[ 6i`#ߣʃ8n׀@4wѐFPp@qeN!怛A'}&ʚ-qxZ,2aߚ`0L)RjE>iըӇR: I`ٚ#ly;=8`w$PFŠAzPo6uVy9;,6m-ɬsѭ'p8.3(`x$'-i0KIMz 9]K|1MS56D8w0GI8}1Cb"e.9{[O9<% $`FLT,^TbY7td `;", Zz$>M ӪPYv C-z݉<^7^JN9MN:2R6>15(,#pɨ,d[߉\l#x5$A]2VvfP{K;M @"M r8\ PǐPʤ-o XObl}x$n[N:죕Ui> :\tЈ9N;cj$3_ E8r9vm:v"g?eNb%}B )xDq!l"G_1N7=|m;iQ0e(CwEB Y#[ƬDiQ]tT7"y̐C2Jg]+U<M"q>(*FEv(- b`G-Kqd K)EK/8w@zٶ;ݡ,ŘFٴ>nva!,Kƍ C>axS]"˘ OGO6k7~mIl*#RQ8sդ \$}j)|z][v!3Zƨ9.jAv҉W1_;1ץ*Ʀ* ǶqZe%oQǧ9%f }UY'攎~sBCmeN֨ a;&0_KR n(͗{C HI`#~:u;R$Z}0YkƇLR<=. N'WmGV;ٓC 9oj["&htd*`v d8,{P!v3A*WJY RĬ5Q}5򩆌Z=T9"6I!N]ޕEsK;ۛލ‹LgHLv" J&EYF2eaVry|ѩ>ݮ1"kg}l{#&o@Yˍ=֚ase]jmmfMs?JUN|*<SF_2i^}ͧ-0 hnbJR4\[M/SS:;„&RGtTϤg4$;gw"Dv`D6Zь > 5Ң,X .᧌2J6Rh%$-Tں@(+&Iw$k*bM{ p)H.g$q2*@ 3-܌ªgHZ:3Bax9<:)$:4'٣8K8?C3(?p1 b?gf3$u$d#ŧ#GPômBr@EY]t? n@ cP;6nRE R ? n{پ bޗ}}=e}w~5~J~ײʸV使Y2v&Šړ+o(A :x=G`E@o[{ kHLVuV}Mc+yq<=+ Kzd[8#%A&"&5$G|բI@u26&2j q {ܕ0ň`30Iija+}o;Ldnn#OŠ$#j[Fz{A-`̶ͣ` 5ܯī-癙 M"1S 8Uޤw~wV AQc|0g.,Ze2pEAQ,pPUK|iJ_ըAQI}ണNViidݷӞfPs c >I8Xr> < ǁ x˗߫ݻjBɀVdtv/[V:]t/|{|oec7‹19Q-[sA#݅ki_6/wȔh;X[dSVe0bn:jjty9x:-Z\@ƒkţsGV2jV}VoXsqâ.SZ!穀_[|(<=8>= >'ڥ7#v|"e܍QHN14J2MgnłFJ~kݴOeG#Հ[aSyJTA=[!f/\!=թ+k}PD0Ecqi'rW (:]ݽTF$[0pcK:E [v v8ԐO2@Àd`Ey$P1ia[0.T_ >@.lb󖚮t8U ohAӂ+/twpݣ^xT;>9> ZP *v7Cԇsccc\R~'Eb, k1j5.X[Ryc"N6}DL(.q%aKQKY_ةpӕ\D\м4C}ȶ O“:47E:uSBF?=m@54?ͻM?x=2Zj_Ni8Ő T\wp3g׿thk7c\\4Pqu6St;QiݥVlU0OѨi(s]РsNJ%.٠w,#] lcktw+^|5D *?QKG-m)rbP+ \+$!mHDžzYCXeʝQYNE]ś:(PiK3K ,p +=)]6|sd㸌#:F m1sX^ Qez(]gCLIi%g lJj?!r@7t8!4{1CJ0r;Q 9lSl SK"=k["FKM{Z6؟bhƾcf:a Fq4XD|vgX{5G1M/Ϳ?[y_>oi *xs%luiL J*:bӤmhž{$KTw!iN4j\"8JL h !{E1-8m .3 .}U.z~d4P+N {eLhf,<#q;;$C补:D;w,se1q0r@&GI`0*f??ɴׄ^fX_[ڏi@=d?x+/rxr?s?s?c~ 6{ ;?A ' s`}-W{aoGauC 0k>:)Фf* @5iGvPflhHďvF %,:ļzIK((j2%0 ] x:  J:} 1*P|xhX85Ϊym!KF8#DY }6.JQ ^E:c:P$cm~rgn]yH`tLl^"Z ہV'<+t9> ʍ+-R|TtxwGdVD4~ŢTCԥ (sHE`4< Z~ m͇Hr>C6|{2xYT6/QM p}utV.6̃p7>p]vعP1hcl Éhp}C{UiNOd0N^RNXp`Fi 8dش3ZǗG7M;˖δcO.G~""q( *#PJ+-K&u򰇹,['u3 u46{7ᧀ%6Ov 嶝ۘϘSŰ\^NCpOw"Ypgl=5]`w @-B {L*J=r+ ;nb)') SlAlFlqDb$&fsgkd ִ'NL)$\ HτDxϖK0a 4&sK׷cL=u<5V Jr5ɯ$X5*ѧ,:W & YFd%@QhR||v35TOfNd6qoM/q8:VZ@* V= f2S$B?<Fb(誽̳EOI^CY.x* |DKOAD)t<DFY:jnƵlFr{QEV+'xfls06k U^xЅ g-KK?O{Е<3ybb p=`|Ϋ2$T٨}[Y;«g\١d:^iѥ^[qBxC < 0UFrt{q{rI]KLgL&/dh컓Ҍ ϫ (Qþ3r pyBTLH"s.-Z'_ A i']"DZ\-R4Ē7fn# ^!RaabA 8J^C}c;RVqڍo ƉݏCQ{>We_|NH:op>q()qX5ie 6qW$#6̩cE6:*S|/DY?ճ=ĜI*EwsZ %EjCOD/BׯID~;n8IdzZ8cx{d鐒YdP0*=|UBDf{f>&B/$ՁFYcWv8CFC?⩁.`̬y4uWo?ѼUz1qe'GXNmZ?=;T8=\ 1_4ԍ:OWwp/{l2 jMǦ9X,(l GB\IڅnBZYiC6N [r ;.y0qS=أb|Ť"nRv?ڤնd8jQ|Y3+Z%L-!Nɭ "r#}7$q~G*XCl|el*4=`*c!d5 OؿNRէ}TB(bUatCso)U3@hmKT P3V:5Lo(hlmSKWu5?3r}>$c<_1h'lյ߹Zϟ?w]3\s?Ͻs_ֹ·p~DBk}.꣏xs0 u6w=2}W Ϊ\ }IUne%!ôA >4mT}Mo͞R\6G'g) ՠy Ko^=j4}u,UOטAaIbPsn޵2 Ug3xTjD1Y^a {4dkC?o Uo |P5:|S?uoͣn]Bl6(^XN_c +wi9.PgՐ[/K\~a+x%6jCnX?'{{oOkTۆChۋXHd(eYQtg0Gmj]΍dM*-aq8џlߨ~P_[.=Ɠڏ{xk/]BS߹?H 5&0\:wF!~/Ȼ-?յUA!?\ohU:N#Umnk+:t3>tH\0Ҕ޴z_=Qg-/_YS||*>QW"45(@ 'ǥq}>{Z"SC8qg 5!E OVG{ ix8G˲Bwyb3N:p-»ۥCUʞ8uӫ blH_-` Rc-Ļ'JE99h (ْ0.c|< ^ LS_W73%k9\rH1.2.XW4a"aBDs>̊`N8_a`QcQ#Ayx#ɇ8@OUJ ~PЈ#]@ZgՍHK}[*!; S2Ry#Y iuAГ'GN"@̭߉(~K;x؉,& {u W eȶFVE@!_d% 0+) ԴhwZ[C}Pka0;JPLMJpeղB#n7ǩL!#byi?DT@E-8`ↅ U8Mƴ tUvЫD&ap)*VtU#Vִ3m [nHW? K-#d┓_eeqgg7,1hq-rI""B̺fq>vރfABVZ;(;*K?*gRK<'>V } A|}.L6S$#r$шY7D L"kSȬ!,k+a;Y 'єatvjtIԇp.#sq\1AGEL'U)r+b"x qR4Uɧf.Qd^FL{fY:2O8:B" s4B);X'̣Ƙ(R& * byI(H7ewJ W$ߩH LƓ‘6/?NC\kԂk?)Z2SɽK簨-'[APVs&j\1*sǿ·U3"Ŝdq%G VӉ#bUr-$#K"IJ15G$Cf'$b*#Q`G9 363ZXbRN1IsVuȚ]Pgkh C#y@䍲ݨObNleˉkEr}ΌCF#??0限أgArJqaY] 72Fa`HF5} , ma(1ETTbg~Xe^?k. Gdۇ+rdpZqQ0>"X:ܖ?6N`Q &)HRTъ*9wf~XA8ECP sp,pfXXé21S5u^7Vܥ,G]46%W(Z鈒/ !5^!'QNϋ+PFR-%݅«Ó5|Z>H2?`?=?ڏ@=L__?SG{}^G{}^^Ѱ@#f܆y> {<25-8$%^4Qb(>DJ4>-e lB B\~7FLrvv:S6N BjZ1c 4!Vk!8qP'@PW|} # BE 1/H5啼(Cq0K jA1,M;dOZf%){Yܒ^,.O%cwlp݃ ӣV۩4k<*wtῤ:nJ׹U I>DWLn+ sEҰ'Vѥ3SUILe=,(npȬnX{p9S&-hLJzඡҪ6/meO #&喹}LN[) /lmxR~ĩl\zD,3iodv0&(B6+E0A20A<#~5gX(H oܤa2k>=ԙOvCF;t,8TƾH;lJ"О? @C}`^#knSҙ688x{U-ڒ1e"-8=l;PhMxy}Jbg5-Cf!V = 26чvS;(j(V(_!iQ0yBAVnVde]⁰OPIsKe漠i^!V-:wEC, &hv>>6h=:MܺSMBf= *BЍVBfYAkm*L@t'( ~__G'keuy"*i]v߃7% rydcxDn~k#j\KQE!{28GV ߖ:Ȥ p0r7u ׀1YR, VY<}`a,͘؄bj9Xڃ"r98ʁhXDϨ D=]v\?=<Ĕ/!T 7eRIeVhXh}x,,5Ѕt,ǣg)`w q?vvsŢKM;K7`P3KZecvTF~( ܆AeWit91TkWWs1/_}̯IO}g?pEG+_|A/O; 1p'l h1OEwohx]|Z|=\.x\]_SQBm<Ӈ|y_pX~&r rnx) r?wDpvy.Ox<} Gsy@n.O8<} [X,)R9A)5[s߬̕~/]4zUV؅tm(LI*ӻK;}:ןe۳*WSdk~cX ~0AS0XYn7qqfm,!VߵF\SD#@y1N!.1eF-!M@L y(|sX`|ccq/FFEz@?c| (1j0'..q5XF{Aeu< ~6_(JV1OlGl2eq|" n\TpO@2@).J"OI/"<>,H ƃ.61a_MN(,Z|Y=9(r/r/r//cl/ߔZXR7F\;FnZïǭs\ UqQ@S2zn~4+ 6й5dΖ?DӔOaG8)MS`<3=%ORcp8@*S:;@+E c 2C >*uSa֪C4bO;IeF-{JLU"6_,mb:̰S曧$'er[1