#!/usr/bin/env bash # # Copyright (C) 2011-2017 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=2af39bf879115f369ad82da1def1f610 # 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 ,=XۏYОsl_:-~6,WQ!hg qT$1?8OPޞ%[kHCަ=k %Kt5MK !'A,L"<]DNY!5xhm+Ŀ!Nz8%^%N@ֳQpf"G,~nk@P#kCap/q__-o4< C'j_*^d_UVZ8ʉ>sfTHH P丮d'? dGᢲ0B>-b¿w}|N$t҇,s\t) 3~N?Ggٽ#GM'Cn^n ]6'ڑRʖkϳ/dG.{Vs{eld;f9`~H3mϙsI+עk /|pI"H : J.-AٴmܵF ץ! dG:I`:2¾%lCapwdt0+`tTC-lTۣ쁷9 |i6Ctm45_ Yp㹖xBC-rݿ14Dָi` J )Oȯb *=0}ctz@MtRWAOx?S =E|AKᛌ"AyL[s LsRoCqdlQڕGgLlhUnQٶ[ok{+LmryZLĶТ#[-@஥$3`mEzk Q9 ",G#pOCLZ}6>fs ȓ U{tF wl<ރk$bfۣ,ZPBC[iѩ:6$8W\%{BҚ{VU,Gx n_\>$vM n&'&  6eRGT#[-(>a N(J]qt5i`f-TYūu1 q(}PQE= #oث0tdI.EvRHX{ "JF SCkɐ)UR?7m1eFJK;I`8-WCܸpV1yjCa@c3,8M)AQcQ-*.C`х=FϾXu51:nG=ʜ +-o^?>?Ƃa^=١`&S-6#_ P` F9?;a*70HNOh" 0xM#+ @/d^@ =Fiowz^$Fs9xH/q|Y$!˩N^o믤_t|zWi~@m, rTmv51|֓ >?g4W_UlKM;&o_mhj<ԯ8l^Pa/kiU}dQ-o^`xEC 9RJ oIh,l1\ :*4*9Ova?#Owa?#vaG^^O侟%dui,pުE Q TPn؃£--6C/ *~1]!dۀ TIݸFKYШ]t"0(rnqYXrW8QqVQ fvdaooѨ`NގPj ew[s77 ^ uj$;#/ja[J?͏6EݨUƾ0u~F3S͛G15- iE=1֜|3BL>X1J({DH/ƺ26' 5ZAZqSڢV>`^p_t!$C=L/M)}b.HйZg/atVKSYni#-:2xH! IJ0Z.GJZȯm#:fjbeNFCF^IiU~;QT䅫I&`3W֔+R;Dx+19:f fL0!gCGZhOK(2^cѯ2BgC(ߙ&5 D|L29fWiiMqLc+(_,`۳3&(qPYJz[ #ոyp#pLt·갔,!p&5H_hlcKZ sK8.=QSEN ljJgYx5d}It3\iJi?Hǣ}_f2dwGS 4uB!b?IH П0hڊ~C)%0D͕kU%sֽȔBDGEQҊGkzQ^l=HE-lbW? <17ykȤ+3-_+*1*K;Jq!PۨE\4}W3T||d9ap)0+)$,YrPivN(&3*'9puD-ReZN~n. QkG|r{.l2InTDvy],ښ݉L*2xvR|fUtkNFΫFK>FKըZ?*϶C =K%Y·l &V:h72M/n5)x m_x|;WsQxTCYc2O^UZrDn) l~IFRcfRA7㪽GJ%v%NG; ډwNl(m2[*%ӂ,HePzЀPNnͲ82k0K৪8 t4HRjYD)[DՕmC室x߅qzk$ʇ-E̓7S-vfϹf?,)GnFsac8p* o "-5h6*`r)PXZ_kGtv$HLc}{G>E8ZI$a%A0H ]~3b;٬/2SǤ|S몓9S"UхSӦ3#M5JreT,IÂgOC, Gp\poV¾IK!-X\,b6> ("~W~QڻCR5:BEK[J .f#eXZFfexڃWGfm篩8Ȣ.UMq,V9tK*}S" Nֹ&L7ђQy7KjSw[&QțPe 'Wa9/Sݴs?0ZJ 'icY}q U*Ur(xJ*e8*Ğ;&^u.?1'bMn WNK+*jH=Txq{9fhwqVʖY&5*vF K(Rf۲p;IY#$nO|~Bӆ%7+PܚTey|T.5nSOލTA?˫,?*'pŚ)J!F B" l"v<",T6KA7^r*r@YR$5l Dx04 HٹG#ʖvyó"&/1O U=yF:-F^dsŜm9V QV¸<,=\מRLx1b]Cy ?l#܍2)DL2S ޲8mT?ЅDhk%Ţќu6׉4Isř`Ăjٜ?x8xVޣMƼ1)V'wCiH*gǵIoObGlލ#&aIn6m(N%yEߒ&D.,`>Zvڝk?kviҚhhsS5'xlϝ}Dha휸;a5jgU*-ׁކ[-PbJgolA_adp5:sj;vHͩo>Կ3t[ Yˆ@u4 Y{g# `sn#KS4D1=QcE4J{qKn,|ۚZh"*ǭ1&c9|$[ 淧ώvcw_o~)I DJ!DH0 Şl 0!aTfpȋD""6, ff4x .02 t>2uԂȟ 96b#1kH/(k3%\|Q:"n#H##jftq^(Ta2mCQ]/ma7%FX'xeIכqcg #+z TM -&^bR:Hޫuy&ӱ>Zŝ5G r̄2:$CE0H&zw+EFZ?hzXiUsʏ. qmh D;}D GLsp\;p>rQcɊj_>c_1LXd3'81?4Ncك<1Ȕс[nt-rW.N Cqh]3-I oJ[?#Qb^в~7*ni)b|# 4.ۅ6iE愪j˃^|]!EH,dGysL,^Ke([q5P<&Ʉ '|yM"~DrsA!fd!QK |zxZdH3~2&QjXD|BR} nwޭ2pdR^>: E*[z'oo?OڶijQb[}+ - ,LIWDIz-TQ{Wpo+﵂;vAQ1S feI .P_#yɟp"˧4 ⸬xL3RmPfG|{7B4?ܬW=iG #8h{3RQ>$ewTOC@l:Ft qy^`IΦe:Cft4a+`TDGԳg.yG4jM ic6mw>}#jtH6Rx @KLZ<:~=<<3 fuR\/ׂc89~gxZr^>> ?;OKك|?o[<^c>E+ny˥^`70EGsPVw#]l>I@~6Z?b~o <,ӆcqcS!ǩ!3Rv> 3mi{OxJjS|F7P jP0AIdKQXemIr[ВgmB,B6Dv7R%L(e)edD: Tj-f:<%܏dx={Zz9l)"=:-׳ ^r.C6iK̓ez5 B!X? c%6=V&*`N`' GSFcq^ڰbQ39mܬ9*Us ` yCLV]­LB5sP/\%(6BU̠1ṕ3 FrW !(m]y%/YѸK\exZp*rLr;L>$UPɍ5S~zڅF>stゟKuNo ZuMW*Jl*r5 jv)611qbj<"V9wQbedg1wBO*(6:BNԸa8 R?"PO-esBE7[FaØKCdzl*L0g5mvPQ>$S8H.l$XPv0(uӕͰU"e(uX''#ܪVmo( ÊZjYOO cCC(đ1׊fQ12׋XLgrw5$-uxKwRKJK/vm[gW{j /AgNA=>bߒj06G.u[|ꞷ60/W ^EoPix.l~ a&*QoN`ɜ[zT  }ʾDݟ4sGP/(.!#S$&B$'UάZy2u&F·?bPGlpe/Lk(9#L`oěd֘syU{[iUNxp;qx˹ς_I@\}yJ0BM G-7{Xkxqz}/Jc݄ɱ>" Z?i9%AL>Zq5=cD"M$jͱk?EbpTXmBV@ 7K2W{X[dCeЎK( \D$XDjRp Ӛ @OyRAbtVFTБ(#u-2b $<##v-?~6գz*Brl2)OnE܏`SНcQ KvQ+]7h-?b71'7?@9/ .t0p\aul= gh )N;ɢupG)]dǬMY><,~Kq9ՓG$r` ]YEF>watS6-hju2ʋ댠(1E3j!.b^5fGW.נ@+%( Vΰ[]폃[nA=10)DWr:>9$eY>2q۟b&3b7b- ,6WK2 9(b1F2? NQo;PjH=HF`Y} Uc9^=C1/yxݪ302./0ss"^sv? 3R<+u)7eM!,1VLyJfx0oٱeǼ!^%B@GELԢ*5쏲4*?[r)üe]-`(\(`)b7/)Q:Ś>*UNys$` #96{Qd).ZIB ,>B`ЕۑEH dW+LJH*㒃>ZN23Cؙ|$fXqHPDƽt5-ZLŠ(Pyje~7[l+7W$zu!?TE& JGCģ?h2N%u7isW1> `?I`LxiALLMrRrB&MĹBUZtK^Z dc@Tq@:%%ɐlڀBۤLgE 'LY|d{*ufH<יs/fQC#dAsJFw".FE rlulkE# ad4>fx ;wѮG]}Ƅ-ݛS<Pe_$-гM};kC6LguA'M@}E"9()H)~#'Gɖ= :.rd\I˭#`fZJ/7ہu7QlymvH'ľERT?>~O7eYnԀ5\nVr?7AvTCo)_ЮX90Kl $#qo ssпIANei4y91s7N$ ܁cCy8 sLNc`'SgVy{PGOM2F݄轜Z{yFu3:r_jOƫ_ "1Q:~JF0mL{l^p|" j:0N<o>.t݇?ckk,ٲRϿ?k^o)Oa+k_;@ oNR>ΆZ %+g 0r42hU*A.('R.}AoeL8UzGx*<Yjyѥ~X"&iK^?>94—YaQIBI{q3'AJ k?\5fsX8EL-h\{(iJɁTD{Ui)*x\(w):_ [:P老Dmؕ.DJs>lK}n%CҔK!_tDAA@BTT]&VBwY#B\ THI@fH 9FHἑGwTl$q8U)vW~+7TT:̹{Zu t@f"H,'>~V4;ZqER im)HS^h#9n{Gj#V&4֓RH1J̆}y`@OJ57\Z PM2DX/t]I|Ơp_8aڎG`(gMuTWOf4浦yq $KVzpX ^T·?ILHd9~3 <#Z1K4=;lEso:Q)_>.m⏎ .a{%QyO\9S#!f{[{ N=H"tN=e-;u&нֺ9!xC99?r]vT6 O'taa\pUUp"Lx2hV>H0n.Lxas_V+sQ}m.M`X SO)Sn;'Uܦڮ"jy0֜SC] @葬X(BĐҞn_g*{睱?Zb|'zae6 L ܂Y=ѧ32``.j\݌؝pMHRF Bt#DLA 7X@s1a"IC}z`Bˆ*,*2cl)8ۇBYE0O9b!]"Rs$z;*helʐGՑr 9Du -]_TClBI׌; A1y8/)[tܔo'SҞ(;ήٺDG0y F8'ͶQ$j:O&IO.>1؃ڣ4]QfQO¾}VYsu]p m|qGؔ[)MGr33 䐛.FG:66^NG#\պMRM<{wK,P`[21Q4XpT4G^)QF޳otW/lE3yfNC}7_/lK|8jSZK#gfDF,P;nYko;;Q/1_1ˤ^̖#ͽ}!JѰ S1(wE[2܅ FN_ߋ%L\sQvwJx ?gDJ]۟ԯƌ{!U+`͢K`:Rh ǰ'ǜ`Զ߆oiП`Gӏp|dpE3,nosXL&Q;]IG<:1z*14KZtoa^XM3̮fhJ>fE2J+T^0p0 u՛x3ynjaH [dˢG8u+&>EțⓍ}C ࣬x(4:Crכ+#"`C1>]e?4Й' \d&uj[ $0Q ݖ@ .`/%Л]A6'1-l\߆aXeB Ocw]d~@ۨQ3UZƾQIv[řFe3I5)c,|l$&Wld6GxX i #05i k2?+ ?]UXhy{udきd@ 4%=K$N IB`wT$bmOU^ٓ=zľ,~5]}7vAUaZIy"P Ɔs*-R}flR[lۃ/d|oB,&tqDy5̿P$Vxhζ^U)JC4BjnsE+40z&k8Pp^Z2Q8Y?"AKaXچIt#UQ( f%⺨<3_cVꔢHa?ҒR3^\I#EpFB$:"W\"&I`< z.Ęj+gz C4ɇ&>b%KO/=N/qL"lpk>VKj j< fU䛗ؘyZ̍?=xdKv8ogY޺+rρ(V5偙Q䅞̆ڈfzɘ[NDN43Q^*BoN'0룔?0t@0.`3Ajw}}qc#ϘebSDjWƧ"u/0iD4W2w1FVf|~1aE6L}v>x |8kK\"m5}L$+_FmTa 9kN "h._an$<[E, !Kjb̌dPNbuFNPoLso!()8.&Bp"P2x\f> -JйIM? M4)ptQxfpZN?V "R cM:jc`N7!`C+ |Ö ~npU6S3n.JX7o2~u: W1FZ1d- M,!u OKւVޕOdx؀U2\)ej3j-HjTZR4ނY@zdq1a'Bf[.*VْI1J-ӤFv.^.֤y2Y4)U620HQڶ7dv -b!¥FXu Xp؈d`@b._~,VŢʤ쒵ldԕ-<3-9;h.Dǿ[eLՈx)ЂQ9ܡ86Lh t*[P2d>~VZVJmwxSqj&N.jȧ0%Hsj a r{yX01igО(1ŒըPsa=l/[ ]EhKϷi2 6ehӸvJ=@h93!)@!#@X? Dx{FQ;lA Jƒ.k -P֛j5kZF.yިW{xYaGF{S;9#ώѠըj&)7n^޳FdO(&\kώNΏg `gqR=`Y;4azO=ΰWSfrU=:?)7XQ5+ w\m@ʻY5_`]U8}pO* ڨpL#@ X^9WIFTnϋVC1xɎ˧oBt4jUakc8U$7+qUΡ*a/tc`/;g*kg8`JF\<ś ?Y"T; Q#Oq7 \/v *͸?ΑmKMEJ)awEۘ =5.^6(Ml}ŨD,Xֲ ;u8-t̹ 3JZ-ąVve?֦X"Gyx$ ~Ÿy<|>ޙTh