#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=d956ead1ca1eca0eeffbc6e08c5271ef # 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 C4[LkFt2LkF! \bOtX`ӀVDM5v2aHli LeʼnI)o &$+ ϡ& a<-PÆ,4:6w#3A@d&`OM6[ڂ"e)3"s}Gj;.@&  hh3@(k cB7kO;4 ʈ: 54/rVrѕ<8SZ#p4Hr :% ? :H&~Zʨ{:V#dǺZOD8IL#ҽZ}+%{N^" u/ *8= ȥ4j_c*،g] FEm{GÁ,dӕ۽VRꔁHBV Y%:I8cImy @ Wtx AfD׾ϖB>oZ|s1s>oԜ`94H8O Q$cn&IhS1|K/o :t?<W;_Ws~g΁kpdITpSQQy9׫Gv}{z 1XMLiY%XL+iȔBaJ͖˔x70:wˡ-O=P-fFL^cjMdִ7a eoܴVeG(qfZsLKrmJYilu=juy+rT""KIRr%LsҞ!Mΰ|o|)_(j0ST!+d{>K3yRYry軳 |{=Oޜ'dQ]ϑ:ˢu丁&4qcyRvYÿԙQ҂ `wC{otʷaC aNa4%ڂev{|QP ;aa6٪.7{QCwvL<@eܹt긳_WtnXJ&4üE.GI[CynWۃq_*Y=IpY)X (> ARWp$s`lǠoTrK$a17T3]p8$I>OՂhuu:f.΄tՖ2soaO*&^k!yYTw@QG>Ttܹ,%fu=Q+5gۯ{#@/dy (PF[^^{J0% & ˹cDl4VIxԁ${k4xzL#&{:Bj#7wH=IYmσJK[}6[*r D ;4qCz璪e7,u|j[K:pp=x d:۰Q 9QZ^$Jhp͛{^1c{48+Lu^e,]R֪+*;g\[t|T,eU=kJö/Ih NT  #bSgTKuWo9^߃aBB'Yy/LEؚRRqh.M5bXJ7LM`,ܫUV/>f u—Cp~#O"#J>.nK3o4þ5l7yYi׀a[Y\xT$02V[wpIBb!5߯'1BKfˉUikڽZ=lp=A{kҺSz]ml&f#< |7Z$1ݶ\/zpdg W/v tn.L9]yRLQ(E?sL^ obC)){M1^WY~!{ u ]`.m~1^Uíѹ8KdVH035d5q+5%^X[EmR+@nTw`ǴV} m>X<¦JJ$%]s_/4ص{`vӥ16I|o6pFdgwiⓡżAôLo "ns6&L6y-Cx3f"Yf2-l %:A4a֑d^G\˄ aۑR3+&X{p9l)v^,5'A0Oƞ972]Y:Q jpV$L̒:[$S"u ȷd&iӹs" 6̉Z[R~&mDFO]zh(dN' C:NU oR` l42W/W88j\>:6~9k{JpݜIH;lo 6Bg͉wHl%XSr3mc|sj0u5vuY)4 Fș,GnJE#X ~CGƖ\ˀݼdmbIK7f>xJźh08'$H6F,JL@E||R6bsiħc=j]Y]_fJeV\,i{ڑlrC]'s̅ ;*d#hI Xt{1./R|__٨6v?/{zzب&?FuW#]sW?w]߮ *)U~UfKdyVI(3/V'-|8Uo)Rݗ`?pjSH ',@b]JR a% j˖ OQFQQ R+ lv_(KXw"vjIe^ k4 qگz 1cO0Hj 5RmsW qKʳ7 >AqLTs:9=XCU7pep"3ښ^ɘGRN G.QOpTtk LluVa4F4VZobW9=k DyHN]D@aGXN "U6fIVY*?xL]xMeb,ҿ>Կ0ީo C!8/JĽ@ }mׯ* jTP,]׊ER*J#識s`먗=~~JY*a1-.WA 5mkZ>%誦FyܗG]Z[-'_?%rS_%I1%Aj!-,>.&4l\I'APWc<\GG_1f`)$ Nv5nTDj_ԱmŠ3 5-.DyS kv[Ojq'*q#"&_V^Kk "bFz-+օ n)#RUBSCU6U'% )KO$N{4҆Mq݁9rOf$ku#EսVFo-Om^LQW_oOY-ɍ,%/J5 >lKF|_ Z ĘՋuKL#)4uov@lkڠ-7J- K3y7IӜX j׍ nhLHЌIǓxҞFa *ΫBv.)ant:\/xTJ}r?Wy{z8JzuWC]ǮcW?v]߮㫾%~KLtl(H}+a7p*8`'&g/ݬd~(+[ibԄwre[;[CvX6$vbE.,UuIözǞZ%!mΜ#HE`wB.׃$7ǫ{QLI=C'94!3mR56|DXo:şj/}S-R&ϒ-!&K=s$alۦ)F|m7ccgO@f.yqsy_DU8qc#ORߞM:gB7c2s"BeT _%$[&sm&$]qQ$ga_\/X&)ȔM k?Ay,o;uxjޤP3NQѲa֛࿠O|BaYj[h&Y:Ls4dKܮg4mmŸ_ #a1ɀap"H (h3,wuKLf&Nk=uԩfhN8CkĪ)v h5s:8S`4ߧxr1Oګ\O7\so~O*0J;W c>ЬaZ* Gm藓eTT͸ |@~ ǟI!!~\kwvfzrXݗK2bHj*iNŌ@0gL5lGYFëQt^9(\'s#%񄙒i3FKeq0Lx`w:B#5;n8Pl3H&*0 ~)|BymNpY̊T҄0: t(qA#Rp''`ھ>NnF΃E9PF]qȇDjS51T{j HF4F@(~~PT^q4swYnj< MR1&H>PaG *qZaCik5c?+\{5@BTb5@7nҫu*]LBg@% &ƈ]Dfĝ/6"ᣊ(rd!3#e)Q ~U:`.2j [aP¬mQcUSP4\G6WՓ|M/= KAiT*}ɱQ $ѩ4GK&k"fK#S]tK ' pá5 [lACP'9,ᜲD8aPf(6_3ȕ0ٕZ])lhauҦӜxad6&M~ݩ)L1iI>6T3ٛr"MbC.Q 昡|F+6+kXb+j̴s=a P[_c>>[}I2/eqt8vXVJ&Y$*s#Z5rN)k6_E1+㭕/֏-+޾}ǰF/@L썀K jg:M; IɇqǘA%ĸt]6+o䟋ٰ,iqPn027WhjRzFn8 duyO$y,EIbuirQAjKECDVD SVsC9׷U VZ8-*⹧A>ي w)D6= } ˼5c-5qUY@AڸF^Něj{LHKVBb}RTܴhj9h.P_렴G`H3KZpe. @<%V4ZkX,k_֟ BsKo?#)lU =6Zua,L MrivbU>iuQ;f\YszF I-8 kvV,ݾdl}h)ܹI7'շu2aw'd>uS%Rei?c3cSL[AE-c' :]W LʤWI|@㫓_Moܒs3^|#H6snRaҙꤰK2f ͂y]@6!mjXGT%/7U dly"!3{fG$WȶR22ȟ>Fpy96R;oP,3%n>VAŐn&%,0Rf:l4nFү qsmtM}-ٟb*Z{Va6OY,#1o }K3~1oțSc>fY^#&0P/-hSe&xӋ.R`tIJMx&ր[{jP"j-ض=IqvQ-nUmfFjx&z'tiI!SjxHW#Hj*lP&֟2rQט.? Sw:6O3x(9/Z68m!Pʎބ ah/܌?د3w)CN|#NVHT@!& ^X2]CLL٢ůMkB_ ƆoU|/oJc'm^qt]40!jXؒ4J_$Td{cxzR"N$D-i[#99I۩򇣓w9 yR`tJ )GBX$f/>O\&ԤC$͞a 'ò5NԱ"d >Zqw%.qv4"Ɋ5f{4S!Gv)lZצC]f &O4 fXJQ_MɒR2+S~ 7%b ajK]K ~ݺYQ_kս23,@y Ǣ 9x-uEXzfic̬F<۾+ cI\./'bWm fx|K(ٸ ĸ83I\M)q:PZRa̬O``i.ᔉZ?JtLQ:=ww:p$'ja[ C5hNvgRc7ήA ~񷡼CAʲ/u0.;h(RCAqQqĖ✪пL0)׃Z7LyJ&7=aa:Ɋ^>(nֵּ.=4ͫ<|Z[%Q>&mpCԌdIխWjdZ9CXqe?Bli”\*H-uR}q`Q~@]]~e&imeY c٠dk}FzFMO> %x72y̑:7Z#W&V%zo0E(-hŸysНھ&;8X6u\9, 5r=g>iX<^GTA}8Ac۫ٮW7З{9n찂@?0N’45a|uKw/Sމ;]([1g0q SXCA< A!ǐn]O7mLp,@pi;S8Tehk].@qh_hDzs7?3{<CĈxh=n77@mQby4ߒUSxגּe'TuEZ2Y%ak&iN,̆lX\QH7>tK#5r/0)BQͪZJNN|V"O8'8[+c"o7>d- oۄ?jǂ 9/ A]i3nSm0]Pn^gN$d8e_9>Z 0 J®#l6[_z)aqߙLW;J) CA1YYk#=spf1(*. Ϗb%۔Y@XTB11f}|8Ҵ#8lVF81̌|] Mfd39W7{ɫEAv/Ytx4?$'V'ypފ Pr33ok-tZwfpSWd":i_ F EFGp( Y9$t޴i]^ub At16(*V;<qxV l\H{-{iSlڝnQ`ӎ[7Z;찐F%ueF6p鲐ObO<B{v3.Oyjq#MJK!ꈐvye8'>U/=^IfN!ƕJܤϕ:Q'B8PXEs^ap }]ܽbNBj4~>I.caac ڤ8Ֆ]і=_^cC^.z's?#m3ի=œ_W_W}U/:A< f* ^g2tft(\ @=j=V~4q Nx56 I+ 丨]ُ! $e9ڭb* vbK2* ǶqʍZetQ2˧9%f }UǙY' sRCCn%Ndƛ a{E(P'Rz[DL)椇JHPEFGO|1Ю)~_%ɡ0:бUf8#ADN)A?. 'mZmGV;ڑC 93j["&htd*`v <8\/{P(vA+J#e c R✭5Q}5i=T9";Yq!9]ޕEs [ۛލ‹ LI'OLv" JEYœ2aV:ry|ѩ>ݮ1ng]R! l{#&oY16R{uͥu]"љ+VVa3#5:HxY<cggj^KoC{$SB9ud{H_~+p'¨^ӐˌT%#;@xR*NVJCu⩛k˽o*zJ_b!R\\J!j}tlD{[ NLfӡC_"AçSSBZ9o%QFjD]^[b,u!emք!6[}MEc}~?)Ӆ, NFhØ|԰咛lXB`1XIyFtP./''@?=D${'wighǔ7A}诤L%7ɰg+) ! siD*b0nFtPAQFG]pG ( JqM*vA'b/8ٕB# OavOIZVXӊ|7+^X5}tenàAǑM c`t^aPyNopv%/2‡gAtg,O"_٫pd *B^KlFӔU;l_$ܑ@Ǥ❸Z4X;qNFt>׶@&Zms!!|rQzf&G+T,Lw! k 7ɐUbW*q_ġ8UBywS1W Y货=CF Z&n^m 3lLN$$ge3+H?}Kcp/L}ׯ/Xv8OU#,BP%XÛ7UNf]=JZoQ19Q ڪV-o×+i_V $ n_$]C3X蜚^[QQ0.SW{ ?8>Z ~4z冐jM)e]gF8`!ZX%:WNo%R:kCS+{'{xmJ #~dܸ@r=X?n=s+(*U[;}_..>P)\v ;EyL,X[]ՃUk7PB7-e~Be|ښ=Bcql~ *2[NdhfwەGr*%;aI鴶gk罠s޾Fꃲl b| [I鸬&.B@աBJzgs٨Cu_aA5j)el wj0ަ^s3+n^&`NGl{Y9 WាsWP@mya_-J4O4Cl_H3I48ctghk7c\\4 ݝ.[ ҟ1?K㟥 fa Ea`, $ FZ$B= ´dH`6RB[˰hAX#q[++: QJL_:J&|T*}R/hѽp"K0es 8jܒ5FѠ؃n`dNW h#{֯k3hƞT[%pc)lA5 Fk2"ik{Q6 TDF`!>.u,--R 4 @ LX`g3%f)n/dq,`=3M N ͇(K 2oι Іg7$b)|Ykʅ? 7g6fX"{:54{QA$!e+AIڊ>VX9t0@Jqm0mkƹ(~35?ᛣ3jQ& Y㌃,Lg0,.aUxk?6$đt 9rq;B;>55]ɿXѬ 8ޝ\G@`=ekN+e]lu8zE2 :無dQXB:2[ț z2ؑ%2] blNquɋH]]c1j_?D~>?nU[AB[XxP=: QblS8*˩xS';U]1mivvc~:@`ezVh1 1}28Bkz;f2s-L=EgqٽRZ(*70 5;}5qt1y ؛r:u!%~9E@M&/pKtZ,)TwY [L?'h@6lt.V4 ĀNM"ª} *P(wD!֝am *bǹ6+ 9oKUYum939-9 3h 2Yw}d QʇTSbPcU vQ =_[=n'°4k!hO&2 KS<1i'lkr'xr?s?s?c~~,CL.L(Ytˑ#+n{ Z kJ8_?TwIK&EUQ֏k2݌eE@"~ PT(a)aE!UMZJUDFQ;[eUPbpīYplQKHYٚ_CMoᵱpjT۵Y!KD{@:#D9 }6KQ hK}xWM_VEV͙u4ZŢTnRh" FDn(ңBN1vh\pԐA)dtw\ RPxhd7АSMk\+w3UܸpT5(msia*pocQN' ŊCTeiOdPIdRNXLZE}55'u)ͬN,,Sde75Qߦ>ψ"\J{q>Xb4|=ɠ:Q F4Lv%¿>Od ۘSŰ\ :8}[ۥL|kl+<ɜdM6+r . 08x x!]Qb*ήw?aAfx5 ԅqFɄ)FXbu[[]E7nu 91MP%µ2U~"8BdLO^gBa"<-Lg$vKhj8mo%w@ES)Q)18r0Uy"ʡ@ )m{Qs:ܷCo}=^4keL=u|kC5ƭk?HZA!jT+AO`oL\-QK4(xᠬnu~)-)w,7vn昏cϜ.Qr '9sӷa,Bc4d j$)JKA2_~a"}K#o@r\ ٠KXFTFH06Kfpht5ԎkG IK2}!W#D҉u :1ހ)NkE>%BKKqC3a6U?׭6ZλD-޼ZO%Q~h) |K#@w>hR||f35TeNd6qoL/q8:VZ@*ljB= f2S$A5G<Fb(LóEOI^CYq.x* |DKy/9AD)s<DFY*jnƕlFrsf>EV+'xfls06k QxЅ g ÍNЕ<3Ybb 0`|vN2T(}'g\d:^iѥǁ^[qBxCQ< 0UFo4{q{rI]K4Mi52jw',QWQRچ[͐`-DXwZ[NP73PowODBצ~NL_+.c[h:%T)^7&6" /F&<7rl$ p*7@pXv=z sga5>ZX ό 1D"t ȘDW)VixËhDIJ)N^1W53Kgˣ'ASdPBV^BC1XmQWY?yqO鍴q9΃H%Ba@^=E @d4KC-( )jpN)l-0d["2Dl9HVu%8޴4lN7}N靉F%x_%;^ʁ-;р6:DXemn"L Pod:R9 uCNEK>qO,#'1 F%؀o*C,}L?$œt8s:c@~~~'=U:Pؚ1?tyvF<5 Z5&Z[ɢM̜1 }r8,0ԶNOu_s2bECݨ3tup>q~icIxTn86bUN;fauDN<"J .$$"`NKKh0wRؒc@7 Ep9nCygf^K&%'br${gVrN8FEͬhd̲2`ϫ;'R/ݐ[Yb9 !󝖱 L\t8#@0^`hxEtw}8B>eäzGcU{KRXg/F+Јn]([HaB8|Uwc'}^+W \܏H=d/wWS<{^{^?sεlnH8[E}t׏>zJp^izjjsRXJKK %yh b&wwɎ2eo2mzh.䊷IT7W=8=>IiV /كw;V#UroMoAJ;ihLmp{gz}&$>7&|*Z*?F1Y^a %{4TkoC?g;²JR(쿫nKo̓v]BaՎptJxP oo]hwkỴRB{gpj-p`uŒ;^i/ېzqjېm6Ԟ5(,:OO~N]a3TA8`w 4k{5^?2CN`VO) 3xY[]ah7:Fc81 FT6b;h ,r(}idDHʥ0J~468TkAca1bU"d'QQa40,eq3 Qq1ay( N a7K棡e}HCA9 wEM87*H'VBoe%=œ܏{x+/W]{?ZΕFJ n{S [!F4 A3=3:bՊ16&01\!o]W%4̄rWkAg1X[IGk ^)a yW`r y82Vl;bK@q-8L_Afk0+9Ztp4ƐCdJ S=AI c?\K(ӝ\-CxKVdI)| oJ;59v2E"@̭߉p [<NdIT5a0E DLJ(CF%6r,`RIALN֪&\ Q=eDtL:7)U7:V<3)ڴ>Zp 33ڧi:6lwݳ?OO" S8P]+TDq+hZA@Mb  A 7>ӟN2Qq02Y8 ct ?I8X aJp8wxAp\!+TҝI!N}8 )z)Pa=dT, +>}[ c&q)+!:1p9ehĔ2D LRF,c>%y@5D^ce4lW~~8V=$82lv"8.PGdn"7ln`8B?)9MQxT@{qR"%"a'| jnz.B2EtNdA`(>cWD\Zh|RXf;X\̣ƘH'RZـr byI(.;EwJ W$ߩOƳŶl#沭Q !лLU'.QclfܷCYAq HkܫqbT:ǗlψBϩ|(Gow2DEWW+,SO'Dĉ#cscj<HdO I2 ĠGGeG!ų263XbRN1IsVuƚ]ߤPgkg #B^ܨ֍ݨbNle k}cr]NBi+LHDѳ $8uCzQd+#v) #pL KEHh>QǃM#]`H_Fhà.n;jJ"JFx}1'Gl`ENp0:} ?h`XD-+ cučÈmPf8ӕJpttsq1$n( u?NPe,FšVO,EYS(Jn݈~׊zàkBeL{p@\S] fC.] 83f@wVg9󒛒R 8*|1"}Lʊ? ACD x˿Ӝk1\ a?ޟ8|8~ |,јo:q+RD ԉ.j ^5I O!'eEԕCG(#oBd 3XeDŽAdGklғit1쁿)4On~LGgBDKS<na[Vn[V4,v:Јa@Eg8 0K IgA;: Fe;k 텁Ofk!Ė@GqcDn*"ב_]H2fC R8d4<3D'*3!UW 4eOHh%F; q|q"?&Cfs!RehSj9â2nJ'V<,)eL-}6[lj& U ҊPT-є𱥰-Qa겣}qJbAIvS5+Bugؿ}aaC9hYʤ_n[#)\V0rawl:i!bB֧&voޞj P)?LFS4w%:_HtHCxKm H&nD@>Ng|&;J~1_ Y(F>n6 37Ͷ}dr)Gyz3Cl9F;t8TH;K"?T\k]`rJqĸULCj`vHktmM m/7k{p<^eby0m>Z4aWꬾU7AO<4b1xT@c<W'  dHgE5)Ձ Ex l.NO#9/(mdWl$gKɖKvDhA>4h=zuܺSMЌf= *B VBZfYAkm'L@t#gjJOAt˵I=d,-/&WO.A9O)ٮW$ w&f vINq/9KFe_ȦJW,[ C$V|[;,[狝&2.~S^p&}aP^< fXl ߔU˨ߔr9= 끨+!1vۋv2\$֙8퇢y\ t!| .q?Xػwq[[VbQĭB.t >.9\r vTF~(lAeWit9~*ƠeѺ{>V^~Oxf$3˟ifǿ{*#ZWk_}AOO/  ^.)q'lJgmi%?x8X