#!/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=21df603dd1a627563d848cdce1358db4 # 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 5*XZtgu_?ݏzeZMZ,F4N0q8t'+H,!'Q mZ&od^ wn<'AxN] VHɒ!0uxV _,ψ"<chC-"Td bb pE$.?]6`C0麌,R\5 G$"@~\`QG8[Rh zBY1 ]kgN@%Fأ.}ˣYAtG(a8ܓ EEB}Z) 1%Y (L' 2-JS]TE2 bG׭Fy0;Z}NOCrD.ݎ64HׁhGP6Z`]'<jAC_ :VokFvw{  H?]JQ.N$sr ۗ:ӻ[\pȠ5q5$p74utmWZ DFĸluYZL Tr1R;Pk  c  (j ?5TC1 Ni].ڣC v3c#\qC~ۚqL}1mlhJ5j HǃA;tF?!`C\_j>D2p=RH*~εnhun- (. uU+IQGpPCjX׾g[Zu}{K١mXΪU?5meX3Z5C}02d[=4kZ˓?:1oOf%Zfzc2իUNFUZOd!:@!%k+cno> (S!+yoG;?wZow7'ݣloV!lai qxoCTE,⬬93:D6#$z*3NDK rX8 "V€E15]]Ad z_Hr;bfx onbX77h'khF/ _}n8i)Nq LdmhhޯiI7V"oѢe@Z~:>C P!G(IQ{4AۗlMDVÙKAs `p?O,hC"DOGA~-ciؾ 5k,JK4Ԅ&dU_#+]I k<볹ȀOݤ={Ri۔ϑu+CoG)[ RفŒ @"S5&6.C҅1uj zK H 2 Ph6u^`5a!3ue;w;_l0(|tk5\u*5?sk,جѸ~50L%əj9` fjspU? >OC ȧC>*7"\I#,VHdgAԖĪR`AњQ6 gPZLp1Ώƨ›yXOv1WB4*y<\ߍvg)f,ngXx\64( +d'A%*nzmD/Ҍ!Riy7u<.VܴHOf>qw$sG096aPnIbtٚY\ȓg`M`2 3cyp-Zq๶In#+%j.Bܙr8o&H9׶9Eri &y_)Uɧ݌`Tu`&a NOG!ȑmP`B'qha˔2sD`[ gMYMnd8/k25uO774*qz P8V Ľ%g)0\9.7(_ bk/_/_/_/_/_/_/_/_/_/_/ R{ `A?vpL)q*֔ka9xߔԺzo dV~G#'6A'k >^VJ dI]D8Dv3?𨴚V2>M'ٴA\;tibe9 S8xU }.bNut p:uL2gQn jESX֩kfEDSH6DC4Pjb)dnֱTƊZK|D~$uOOL Cj9~8Kt )^o~% _J-}MxzT4pЩ[>PF)o&ɚk0Ap$ †`֩RXȃgoHnN޼b=[xhq ( 8ZʣUC5~J0D"Q𬹂Urh16)OwfTL$|:rN\J7oX.'!B@y 1ړ3ȕ q67[NH*JZ|C)fdU8Y5A>Wt& QPl޸ .G %g_}T\U|<0VT0cs͢f+WIjp^tĎ:HqJue14xUF! g V+`J^ڈ&1 3}BŽ >?$D;Wvư 4 pOl7 B`nq0lPBz)gf"Q;tv.dަrQfHax:զ PqWnFurO~7~,!0n1QagȟyGrʭ`c I^ܨƽP\`new[*ӴlMykƮܬ|IQX*-u$5`kHF{Yp,d3 b#HS=8(HjrwNY&> E Q\]::He8\ϻ z4]"f?V7><@rgEhjo(ǫ D1y"scBcx8D5e[('\P&0ٕz78]^j)G&%˹KglOV}!\Z`~WN3X'q sjdV %x)F$WWZ.KQtDdjxR)ހ #~xq5 Oj3!✥|*,,I,RBq5|F F\v= ٢B+Pa}'Kl:Gf> QcRȠqs;M*I0lM,ma؅0L"+/>crGODswK.af`~@jWOĺ -xgEqA0Жxѷ\ pu˪8.|yV U`K0l Szpȓ(toH#yԏ?+V@9bG2 3'n5VėXD6꯮S>K=+r@ΊoAӓcPHEKykIүn. "k0'ßZ2ͲMQI^ ǮG T]ea B*;n`]52W hrՠ[kxd0OUjٕjiK8uWWqd3 0e0s>Bj@M``>n ;=Vg}lt& im^(lT݃սݝ&tPsTOxs +VW{?O|sV}PXEI0EJ;z%@V𺺻 :sP=* *fpZ%ݮSjPuemoLL+T*Aӣ]zۦ{;()*6Ԛ1(T֜ēkG?ƪiO'ԓßj&#g<]d>:WWɻnw`Zm _AukNV^?(W?dp&²س V+䂑U1h p"oΙǕho) G?GFA8GRYMRpC2({Z,~X"q((KZqˌ#:tǺVfM-.&I CJɷ{PdY{L2#LhؼF| FH:K+m1;W ܢ-+5ĔY S?=]]qϖ+{|#W9G 5& 䚀ME;/=4&4 |q}vª~{ދ&XwPANS,'iԣʺvyd&X0u4 `x}Gæp6O+Ie`(N@rr]\ p_岺`pG W'e xIu G-݆G|C,̢[6xC,5FH T2$u^,m擗NK5C7L)2h͗yNqs(Ha$GDū&ΰlUbcco [Ix$&;{r6Nv) 2:s[zP]o+\2_F_XȦL#g6Ҏw~[v=.a\гnՉ ,R65lտ5%DћG1C0>ɳ v=wt|wu)mNT\NixrxQslśwCerqU>c=a& m2e!XQ<𩷌`,&P`wqĖn8,fzMI -4s(7_Qs`F/>E2D| t}tZ5,X: X$% ^q=&GEm9tx8L7CX:ݡ'i0tKud2( @&DNj (lxZ4呧Tyy~2|'M8rRPFy#p""& 7NhҼ":y8n`,v Iro$M'&4aye*ǵIs=ļ,S : ZagoyLkiUgD~A #ބ{#0fxB5 {Z/ߧO |O Bl~j nw(giSx e#ax^â.jhƔxZXy"Q .;+|.sjVҁS/q^ Zs#aM 1 Xj..bN.4g@|WD':oO)F1^m<4E@R?=a8-t doԍ DŽA [?bIDN0.1sXsVlWNh^v-eŘYiGģE:p ;OF[n"SH9咈ipmII hwx876Q` Fg_>S)X-0PaL/ƘcżEk&<,?߻$s@ $;0ϲ#T=x1 OACeQYRbC'cQorۄ1tT7m;A= B|s#:L;3G4c*=JzIƯ֖ hbԆ^3dd39WL`X­AaVصݤ w#ו -i:4%/ yTYr!aFQ:oj_\ub A6H[*+[F}f1[-)9^Yxa+Ea=.IZm SlٕSYF_gJTcB'ԕ=ad+HC s,rvG&D;){Y0v 0^!$Ԩ=T"tW5N>"^g[͐Z:CZL+;>hT=8}.^-=>ܩamǥJe~\6 $, cI8CohjHF*;tz=VB'0Ӌ"%p1؄Ԏ6b+%#E)JQlo087Mg;~۠8Qh_ ,>ly697b]>"xmƐ~Vh&Ѝ<V*ojX#0i0Jj)ʤjW(0- ru۽u m5ثBU*3z-|?D%YM9zUn\| w8;%`ktJNáNÌ.L[>8 Z.T;^&) )g՛Ԉ9TO.%[HoOt-q'"4މFSIB!@;NOE"g3ud/&7#q XO>5Y(&a) O\'0 RPg>)9V氛}sqM4sц$kUI@h8"=7ZL*wf pc9745U!-#H(+66j!˓HM{٧i O,6#*gX5 LΪEh]Bٙ9O>yo+CD xaPfB5) &p!ؐ8٭ǁ`]1ic>1L` 63eR; 4墵~}eM[zRNشqZ[A \Dcm'L`zG?ZMJ͋2F{Rͯ-3?y3RBd.^BI ,B,v'!d0{ekȱt1,0G>P´Swie?\8Ɓc2p鮺A̲s['Δ"6h>K0P`yB0 TeE.͟ eieXJGx|&(֮<_=}l-Ü6m7LxJm IIL82 0D#t4ƗѮ(LFqs0QvʘIldJ#ATMF 7j25Aĺ45@NqA6+׵mBŠ>i~ gE@A9sH$!SECr49Xkd28EXN`"V*q8:}J(^aӬZwW(&v}%Mj lѓϫb(*4OAԲp&xXrQ ~m\k\ cE:Xx~ґqXcۛ)hl͡ ER{FkNNC|^4 $.Q/ |sr7M8jNC2ѨRpu౻V oPN =b/Fe$O!FIWn=g#&wsc ;zBX m#Ҹ;) `<6%j\BsRvaio/~")F.GdHCՑl%`,MFQK ; nYb 7F xl,`ͮGN;N{ɵAGqbO`_m^YjWǁ,o4fMD裈mM8|nz7.k>I&cSL;҈ BL>W:]\~: Tq&~mZ'KneH{̳[5^*vᤧ$?̩cEm,: W'>yd0jOjozdi6h~O30ҡ/ycOH)N^+Ԛ۹ijXekCStR"oSn.Pd@FA)=6@8#.3'\)ȸ^YR0hpYS#ȓ̓fiB!q;!A_P KTLFn7iVK0Ʒű^ˢq%v'ݍpޅlqB^Y1{-bu )l|=6X9nhۈFvh]tenQ6?{y֫b9ߣp3 q#@; up0VRt\@akƬȱ7+G/84CBXt@::53k^+Ć'ND~V1 r8( $rjYF(@s2bECݨ3tup>qēAQV-sQ%i{f.YWs4@3H;~ m7 YjF #D h0wRXkDMEa|\mД6lh^PM.x+A=9ޕ`Z`, 'ޭږc>a+/cd_̊3uIfeZ0Cԝ[8+}7$q#AW G`V. Bӻ$3qLt&Ԡy+9G׻o ňѠ ZXJ^e*(msm)Ul^F[DP(tGH Q8cQAi#gZ-_U%xoWooGÅ60S'pkp9h8lW}_XA%uw OtcS æ}_}O¯?գle+{͢I2n'kxu%-e}MܜL6Hk| @HÌ vG~|3j|g_נUU,: %'9_;h9ڟ1۾dx /H<)[dD̄R:9%h4+7f1Xo@6u2z>دELBIRwNEaD327.\hK]'偾)߸4l?M^IyZ' I`[Ĺ,x-tcؼlc8IyPoA (/{B"%@ 5yhbSNثn Ev=@'&)6epٕb5iy.DB$*hǫ+Cx.`]Y-\_ QYWF&8L,>bFp3^"A@M/a`b3 LVhu/Bcc:͒YU0b{[ay #ra+ S1| _b W@(iU=8<:Zss=8w|SureӍ#7іZr4mi^64&Ua)\]+=桚).<ʦ5Dwx3)-kD|'iU3?-goxȾP j/QefIlќϝFl>&8h!K:uO_:z,E@Lp]TvSp8)Õ$0HK ^(x}e#FGd1WK6FJ&|X_ #ĭ!HZM,)\pRep6N7dTWNQk5ofZa>VK૭0NvqmCvvcI׈cÍP jj^h2Z s׿-h% ?.uY^^桂2 hz@ Gd4%=CyXbkJgm)rAj;hސ䈥e!}I3?LPSMƟ*z }OTjB~7-h? `0Cy,c2`pW2Z'O>2dX2*/qцhL]ɍsg2.9Ś)ZP&0k!([yY!a]K~Q5Hh we+nTsT6moϔ<&b%maΣkPť&#(4g[8+2Z]l Zs8邖;-͆3eH\]]ѶfwpӼWMx\~r7*t$2FWmWsU( ! G!r[|cY7˃Cbt*wGe9u"o(IeDNsUUa_6UWWbG ={P:o1 OT!؛R%N8uZ)%~ ZҊE@fM&\/pK,t8Kޣ@Cm ɩXQlB:m33:>ZImT('JU>u*@ Gko,D}v6˟ySkTP .aNaN`b1sHcE6<~I *@ $SؤA?2Hm1) ͝.A!QUpnf1]Iu2lАؠKU^u9Ɩm)e^Uk3U@X RK4Exi[dkE3PC!xg6J3V)K .B)˧Ob)1f [f>Y  LF#> cT'HA 93*H)FA>>b%FH{QM*oVTfU6>:c掊@jŽhJ4ˌG4NMnꨘQΩ g"1eЈQucU1I@!s)zɏC'Px7$,Į8 t+^S];&B?h"!@UCL4R?ј)H@+a*A9SAm:n0"*Ss6H&r ,>=x7I'"Pr^@~Ob izldsq4 )D$}cEud>"edžZbnai@[㏍bU6f7wDL3y7j5p[22%"WVHw(2惉 bVyxt?%(f^~aE#ւӍr\NrK%S5+UQh40/k[;1a4CF0&Teg32)1M_}i1$(X :z[h8dEp tHމ)QRj7pl-qQ5UsvYԳ6M3J%LI֛vX!^=ARPYGqNRTu:F]c&btllZ ۆi]OY?4w>:ye$EbVF+F7dG%eqMc~o~4j饎pFDKqQrKCy,s:Lk2E?gP>O]Ï109Mx+EN^#͙Kɱf hD_ћ B`N_ZGtmN2})~|p(S*(tF­ SnKFC qhС RMo8RµjfhTd)C`Ƚ+Nk[ QlzŖWRlL9;ZMfRp"$ hIYL{; L|H`t6F0{$JXLsl.:yYȭð 4iI#XIb:VDC#,<8;ag҈;[>UOjf1(WgZhd2bmۥPj]){:ud< m]¬q16Xw3{X,/dNS2+SpގtѼX(JRRl"E}Yfً.HNdF, ZP0gSuEg=9n摞x} G$%Ĺ$] _NĪ2 o4OQ:P^c^$T83gz Q\2,ήFHT49Ǻ]s(}ϐe_˻;u]kT4SA LjԠW+0T,[+Ra͑Ry< "(6<12^z^ bÙ`\_lUaJ/#P5a Q|1e:xnڈfϮmݜfi^EM2ÔoZk4>  mQxN^Yoy;HjmKcX|ҡn-+ Oq(5qMBƃ^ (GK2 AA]ne&Mde*xy!~yl-sHr8SCvB<zL~ X~eΪCg#fTܜSuXW74"E&lHRT5| m{]UKC.!ofhŴcScG[?B)$!)ۜ59=̚D%9C^^m|2ES{QV<YNQT; s`sɭ%_9۽f^V{Yp^s!wVchoH -_azO@Irpͩ~{cNT$7e\\* hmWIGVOG)qp36 퀖sU#j{.-KCԢLJǘ1l$mkAA X6-sX6b^fi^gx4xh=?F K T3Ӑ**$0y/86&CRNb]{k 䡿_|:{H\/LJvG;~6΅,E^vo2__v_2 j;k L {zNL|IJ; Γ UIJ1:SwIA&f\"ԝ1^ho&n+J[P_<54 E23&֦#Pfa*n%o7b33N&O, #GMDǴϦkuOhBLQ%|KV ƆzWFko\$!#&43*Y_*#ac[g 0EdPl2N^mj6DyItqGYYTViʾ() eR5Y<_00%n%aSb% 0Xe@&UY!֓ښL )R=¤)oߠlڳmO99'"b>a N$w9EjĠE yp󛍥%au9<>۪1n3Mugb}#VKf-,ץvuť1|U"b݁/+}o5 GN*{j-憈3M_lPp{ jhHg*.lXwBq PvA5(/?cè_W[Bi úMhb^fFLE+ Sc˵4?<]1ąI R7Vl{>GQc=Pl5"=d&$f3G޿rG4g g iP4swFiHYD::R#ֵ+P;qc͚*yQgt0ˤ;!6'k=pF_1=0dqO 54dZygܸǯѰiUǨS34c[f>wͻ=6l8LEL=Ԁ Uцc{/+۽d2_Ңl |w]/jam#\7)Y"LA:E "F XӲ +06z06 4>qp;mĦB%Nx lY;0F0cu\{CF.f$Ov+j]XU Ay\*BǞ?KEof)]&6uH 3n R\Cn<5o`M3CIqAzғ0E|J0tWSxw?}|m$fQjwHdd!;n IB׿^4G-pPp## 7RKY6fnbD1T:$L^fa|^y J>1AXl%5 OHK$ZY+#-佖*ই5J0hZTCdlhkXFno<ٯX?{uLyV?|r;s;s?iC~0DSW7Gu +^>$n`z c,0NEER&+:2?=eQ*bE-+F\kk`FwT}dx/WPl}!s XaZzβe}==˚(:W6, sm}-G"J-"L84D<}*7*+̽z퍊BUUXUBH60(2V2V2*PF{#thؚ_,¢7G1$74ʵuN-^sb[Za2?f>x&m%fd`e֣;E?х^T1. B`f)DȋpH)P ѡQcAvٟXbq\*5:$*) Cp 0ϳ{V;ׯïY3`xﹹ%Yb:q|[N;I/MNY;WKJ`By8lj*)G|.Z x=/;ٱ~H?7< ͔pF,i{"Wox}'PjU;/km4Em;{uyٽ]e@im~Te:,>|rD~oyot-4Ɲ[iU=qpens3W'J]5˳0&Q:iű;aP9dv&_iaSr3m2.7 #gŢ؇Jj(y%:WN᭲TLkS4kҫLr)^}Nd+se.9D UkL`wcyӽ^=s͗ªKZzwmS5CHNrfnN2rxu_<SgFf}}. C߾"gmZg'&#@/$@D(tܴ v6D5[<Ƅjf|A؄0Cgҷ)Ol/oǿl[yt%Kp[JzQwY|X|Qin>h7jQ֑y{Px>}Cf݃=: ۂ·_|s>Z5{r>%'NPq> {Rp>{Ro>z{Rn>'{Qm>'QlR(!G IT,ַwNbѭJsR],9~}Q,I|T=q 2r'ezyEg^xƯΩlK¾qXhԅa1ZyIIqB;ۆDKɸD%EM{E?ᄈt$ywXe+Rm2Zm\%E)J}򥕻4h%xXۋP7UY;/уh[Qf\&6W͟{m(ZjwV4X8рi#zy '73M}XM!"&.BtY P 4 8g؜yXdG/#ȋ4-_zҤBыŜGyGyGy;pQ60rKe;Ǹ>;`8=Cb!YgN6HSQ~G q:FrB#u[P