#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=1450903f466fa3f67d89bd3aaa49f20d # 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 ,\LOO.[:Uj5*_|Vk4ZzxVUkg# +]BywٍOWk">Ct\ݷB9aqG55+15Y! m GȗÞ WeI)鍻rLTѓ/eAMHgRu.}*d#LV8`xdrgkp< s]Yԭ0+K}(^/+\2 JN%}ړp2jWIy: @ W*POg<.p2>UTY9 L4z/w$ Xn[m tLzr_FP( tapyGHGD`z( G(Y&6BuT fA"W1/sߑxdE*dd65:f2TY҈LD>#{90&E x 6+ZK;lyDZ֬PPQG2xԍ[}F Jg$U%l r_ iözbWRT0ҡ1xC&.f7Ĝ"ޖ*&/E?6*A_P0T_!n^+$< Di4-?PSM_Y{F~$Qyث9FUkwxPMT @b ʆ\srtχu2Nru q+dhYtt % 0b cG<b%dAOT VL9)Sxp3s26u)F"G< ƜY!@aHx=196uAZ"==ijF$;g#ΐ %PAb:MT+7ΒbA t5/D4WzOX$JrTb90]W{ G3KX榕` PR2erM^%4$ʈ:Doo-~+kxAÿ施p& <{9Zl{GQ}^E] |He{X9XFL!n=Q+۳f6} s= z"6tS&_Do0L c(ygLl4d{+$~M_cz SaƑ3!ecNu۷,Cql H-Zy/@v@D9$2"Î >i޹ET'FnQB@ zv ndO0Hgse488y|%Hfn 'iej'%s`XZaj@.c1VuR_YUKw$Τ|/WMQ4 r,5Ԕ2/Ih LNT nZM'-B~&k^V3 F8|2W[wwP[C ƲȲXHIj@Pƻvsjƚ`yBGZ 'nF@)mhyLÔj2n5cʣw{3C1%;{i`6JqjJY5!tBR)@s€"1tUH+rz3gX @ /qҋER ҎR kۣsEJIɬbpkj6WDkSgK-/koAEK]wK-RÅi;ByJ$`fIk]GC (W -pTL'iQ3C;ϢL9KNf J˶M4YJ˄0XD; 5̘_ŲXiq^@-qE hçT < u .S2#wVJDZrVc솳XOƒ`}knd 0R,$hC$|3KX,Hca!S FSn 9QkUf>8hܤmˆkKӢ #O2I (dŅ҅NR(r|Ƞa^@Z[Q6\ʻьǭKbN$+5G0)>aǐӝQa#tٜyTȋDd`Md2N<@uYX(n=^+Ef!"L4gf#i7}e",nPQ%2 C\P1d02.^%lA<4i79 ,H/Zf4 J)0wG]촔:x'Ej0_z)1>8H uҨoi< @^6rla?toԱ?O=:?o '^3U=;U=1U=jpc`2Zu% q7 ܵ C,;"zk[lō"Lp9|xn?\x@JvџYf{`5gyQz2gLSv|se` &ʛf^j}f&60Q9sw 8cpH N0aBߺ;ۂ.&pc-vyV,sبJ vj3X;0~$bH7Iܒoa0dy8]pW-&Ms6M n6kVe5xAAQ3Ƽ}<ķ_7d:i`lI Q'XLRF6SbNf_ܘ9\UIR'0kn3&Q3"9vD R$:(` S6&6^?@y,o;|;,3oZMg(hِ{f"t9N(,ٞfҧAs!5M~lu޺,_Zȷf[_[tS;H}A~#+ؓ${[3JNmپWhHbd fq37H (-󷿳-acg>q]]˩S=qbj\ /xj%IU (hpvre2%a %[ج A2kz >!>cu]X GXfElJ스pyHt 6J7/hO]'(C(0nKCN.ja4P^-THb]@HR"#'ZvOFs?fR_I:ItRI4O)6Pnn0XtUT5d@1HxGI+mVW0p8n X?z PF*k;:ƃm-%Mdن>eF[BmurUATYrKn7z w~=$/DƦ#vabvC8:]R|ч Psa+lt -M8o8BH#7*uH]. I: Zd80z%pH@60/o,&_G\ᄣ^f08]2h@jk5+#`~T"=.09#.iZQݭ)qիzԌ9jfg< aw4]42En ɀC`12qMPfL3L5ʷ'оA,#HRuZX2 X.-Kfk1u\j=jG܉h~>B%>{`TS(hѼq=0(H65"3A6N,K'lp6wkuXE-fn%0uP˳dx8rjؔ"NMlʰI]71dP#NҏKZxoHBPPiE@/&∖j-gV}ע۪EE :\4T% ,qά566FregF s%^|*Dg;#M!rT-yUR\/ ̺KuyqkYX3oTugOFIp4T>XP~`m(rZw|MmwRMj s/d(9~sҳ~RȍWׇ}t^8n!sܝPBSDV26s)aDD3Ha<͔ gs%Yܳ-B C'c thFœ|Ӟ:E+Y8 r51#ë,M駖 kV!m}j71[Uo=+F5A-es4ti$^~7wwkMz#M?5b\5b+IPu \n[׽L2&̗dkO`@zHWAZRJ*ҍd='[{S[yQyz' yIP`zH,7TuU32JRn^e/\~"q&|ˇ6l7<7J]L!rʾHy oU9AJ+CJƆm^ R7%>^恹uz0֨:a)߭sNޥraʺYNFNvl<[8_}VfJ-o)bd$s9ާَږ 8\Yw؝ u/6Zg90>:qtH 5%ԉJvRJLŠ7W&t7V պmtvf_鵤K׵Mk E-WrQ Jn"@'Op?\nNv̘DgXnB$_¤Qb]Wy%ت]mB:-<  3m8iǿ:Ic#NJ)8s=iK.uv{ꊃi\^Z:~I4^ܮ *:'Q ?–ɑX V,KC9 *UR8%K>0zQJZ/w Ub`j?4eM, V}ݹHUkhLHϋ 0ѫH2>>+=f^H1p8VT_$<"_NdWmse ͋+}ql]^;b]C3I]Mp:PFRc|Hai)iI~e^5ثG{@Ti o覺{LZC?VEʸW\-l =6΄f4آeHQ&U&CVG[ Hg͹>ۺv_#P5v-W N} {)løZLj_EMk 1]LKu2QI&}$\ "c,[ CNַ6Rkh~^:}c`hYBV}[néM_e٪ }|Tq!WBM eouma$򥳴FȯU;04#!JQ1Ό7EΞoޭ{Rj^MCYm {{{b&tlc~ٵOӑOȋ):r5#9|zd[lxSn1̅R4!9lNݚ鋽Gԭ-\Ffk Ē4yl˕p̿J$ z@Et fЃq?k5Y GcP1/zU_gF\x"/~`\d.z:(8)^I; ^½vo1*v8=W.Mip7,KwCkzynV`*4.Us\RfjM~@?阵WG0PnEOOxk˺2_[ӪJgrMܿr&,Fp,nKcF`prR'.4ylڃF5Մ\?ź׾_q=%ڳ)X/gvڀPAnG ~θ I76"E6=&DAg+W,1a)K) :٣DJK%>wQ8&0Slx/&۬@^|Z@ 5c6]:`9q 51/>{O\ %2A{<5C Qg#.T+YvwOWGV ??RWm[_1v@ 3X#!H!+ EU^0~5gJrHa;M^vZpd\ x ioxkd°Gd|[<3<[ꞎBv*:b4x_r /Dea"2/H(᱀t :b1Tv(dScw ԦPHCM4GK֥q ݴhy BTR;G)˺-YtEզ4x5NE*ܷT8cvF!;}ى+\G_Q᲎L6dɸZɺp3 kK@fҍըUk*5Oݲtk_ @1㕵lf_g?g3 ED^hExv=MI]}vyQ?a|Go%%ϢXy=k?_QmhYЂw%ke+!2zlxP@SƵa@ Tr`h"Tᨀ!.G O<3A lĂ~ ~e_u^z(HtzY-a`DH&4C+G$KoZg|o :eLzƨF!D.c,Hv0w ؤU|Osh"1QNx7IvB`B5˸nM+?R>ߜQU l~3q]ZU][j$WB@ x=@(YEwkNŒJa@~Nwt-<""bCN-ľՀ}7o\NaUqkױ g5/Njw]8C`Q8 1zf|l퀶ݼ55M B&a Z]%ST`<, ^`O7>tK#M/L09BxA Z+' 8A $-hAR0ggflh Z)9uz;>6'D(jt 4 ~1)p F1k 03_ `d f@>l1e`PAv:Wߟbxh|=O̊ӛ;N}5TSAM⥚iTMEB0)*l˜*p76;Àth_о? &&:MhHBFl7Nb23N6?Cu,xalv%ri{n$v [tM/ w^Qhap &$e.Ή "x#HD)қZO tlp U׵=3wsU!8G f2-e1tiG`2K T ]? edUM#4K{EsKx+r'OȶYnPj4 'R6qߢ[]R6yubKKCbSHE~6)c"o=!L ie(FtUf(PqXsTdOGƧխbtq!?-ޓR1G +nuP1) J9 EUHC3u4嫊B?C\.z@yK8>=wS=<9ߓSZx\g,P`Ð:2sVV<Sx~ 2zgd*ic1ȧ16MbT%zNo,k@3 78qX'^}aj %_mS;Fd%).o@F/exZBLbiPPU si_K*eicJ 5ZnNN䓽$7*_9Mr N*;EX#~GxO]_VWbRbAH2 jgcU ys_׍52 $zJ3! >(+:ӵqqIor?R}t_A'^ yGuҴF8 bqK,=BuQp0Њr[)B6IY&kOf2! b-#ʅ؈D}mm!frیaM=%^S*8Ȯ)pQ huFYRN Z<$|ѵ=o]]{F D]x62P[֚Z7?nyŞՓ9xi3!`1\ӣ ӭl>4p^\{hcԔ} ]z?̊75%Xi1m']oI& Z4wX:;޽z˴Wۂm}4W1-!;)[ee8$>M0grf g)PL#yV諕]Tb%/rDyyx;"Z>A+޷ܼq-ZyDY:18?ȐYei>E$`V.ȉ?vOz߯<3f?Y,g3?t::k5ItH.jCzMatp^xְG'﵆.Dɰ@%!B/P =I;W^|9WWŗ3؄$jeYU2I>TCRaSZ~9]tRfrM!tJhÁ GÈGre|J2NwΩ]lQԠTzmP###wX&rC[R9O( HW.@XeTin$au ʀDZiRGHQ Og:UMF=aN$Rs6<(c޾\4|-@] LAR+γTsSJQ}PFJ״v8-U>*#J1)c$3=VI{{:*+r!xБ7WKrDun85'IY\"4i7R"EJ6kS&߄($ewd8Lj-dZ55_0ϧ`epXd2d}uX#\8zr,$Z iYNNd^{fœmѼܤsʚ ;kuC'.*\؝r oBΉNG&rێ-iv3. 1vmN,iZ݈PQ;&mRU 2 9n{ JZ\8Ȟzo-TyV8bPWpteeAИk: rxBRo:h X #1C *%q#pa3J.!Z8OUGˮR4 Q5'b #Kjtm7)x'mf<u͌i.- lն':fa:Kd7#aϦ2ʂ>TwX#ERw%Q{r[:藵suSkd7/}$EćGSxl+l-ՠ"U)MzqeJG6:TWWpl"sXK- jawb5(qkт:omoP(+rLU_LA``ņˬ+(Sկ(VR޻4H! eEvm"O[{VM M[<~l¤Z*c@_:rnFpduu={=g3{{8Xj0zH=j4/a:sw-;^S9}mӆ\;sNQqaVjsΫ]W#\+O+sw^sBo^>l]vQ9pFP.{/_`=^EkUAǩ w8>ًiU=H]DTѡ$yi7w4ԝl&[v|Y̢߈/[/~k/O}$~?^{ļDh1B5vB!ԨE'+Uu9lm'~2KV^^wt6 Q Ԥ Qi)E鯺yq^'{G['}!*[0@yu(o+7(xjhɛ6灱Ka/u$v^zy/ "gKeC8z>P>T~@tn8,dJ'K9h\Fi Op WI̽m 5*ہM('kJ# n2wE.!E,fj)Hwc֟(ko3ϧS9CM)|j eIx./VQן+ ,x/+6UBad{Kf*[6`|EPά?/kf%h8-[UlwMMb>`5!,Y^f:lQCpTu=\κ!FN nP!\Q❿moLJGǧ&"\ >BZ Sn3\0pn;+")^$}Y}J-d1rs1n}'K6^rsKDe4<}B o(O36ȋ 7@uXF?=mTM/? O6c'8[~ btk̑4}w.+F\mFv[r>yFkuW>Si4yRzY嘀M`~o02&I5br,@r;{Y! u¤EOF ~DrW|8-fַ+gHYŖ~>z+欉:gDGWQ Jd*Ǝ¹l5n)|bZPt@Z15j=z${ U4ùmN(5 ϶~C/n=;HV_s(قJ 5( Z[s{Yqc"!#1+ 6U OުYXA#Sv6shc8RCKq#Lڽ~xdIgPz"Be.NjrLٍi0Ani%0;`p@fZPvd v2 `Xg1px 'u`fi E-o_5Z1𗺢IW PyU=t`yi`z{oQŧ&#ٚl\\v.sz^_"<%^^T,FtA99 Ufޅv$w v))BeCfWoW</{Y?LEU-m!w kʌ ҍԼ#c³D4FRve̕Nਬ.]ś:Y(PnyK3+gЧkEs5jN.Ult#hOXɂƍ2 .ꖋ[#AR$G( O:K4ܑmAi5Nt)%Bj9qǢj۶En&ˇRO~ <??3ߙw;g3ߙWg^n~pώ !1%w8r4z;{u"?Vֶ˃@S J @5),bJV8kXnJ%$Ɯ7ǰXID+8ꍒN=,,A3ѽ\^[BCSo~3 Z3nfk<~j)mJ$r##F }7.*Q ^G*:xk7 n`JYFuG~ZPcY+(RvӔ* '#$d 'wH1JC>jH r/HCg%o8%Qj /M Zf{1_\ ߀(7:me8-4lU)yGl7>QpRyb.V Q9V_+RR| N6ֱAf_e#I .s}l!Xw":e:Β7EHdmg<BR=.z+TdÑ$ꩇC\06nGV#;cI3N̬r+dnX,w$MF/w.Z[w+(ϳ5Ng-qky/Gw/醺TS16JvLDŽb[TK5Ύ5VU2XWQyymv=\ǐAIq6sS6AcJ'gFa/x-[ώ?y40~GׯhM c٣ӌk.yV|ª#5'( -,}0T%]|(K箫]'^4eCi8 Sn5D dF1ՇҝjYʟ,@wPq+{_Pޡܸ,"yYJKɯDT oHA- N,1Yӛe쟻h2zkQ…oHoA>f6fJBBΓE&mS 5*0յk=)O$ZP8HaY*,tr&x8x ٶN8&0'5y 3/ YTf#v ԫŤSw>qZy٨Kr+IMLWcm8h sG@ulWB҂o@#oVWVC波cڋfP[P9N=?7#Tu=%ᐶV*8]dfbCǿm.v޶93%⓮[ JV5rCS+.Qa|g2{/)/DN،wfb1 )v,_: Of p(, Q@:KsT\ }Rf%3 ,V=ee5W Fm!_TpAx! @`"St4H8uy{kM:،58)A"ЧϜȠԕ>`mq^Vx gKK}x[԰uU2כySc#m|^o*hөgQ/}|iciWs%NPh5᱿VQPXv=Jv3{OV<%Eθl~.G̑{w< 6찮7cGb"·h!)fbӂggLxnOW\I ֶȱt*#ͿnD^7%1"/Fg\É$ H $|߸\TwvAGubW(􃁭 vꢗwSDGoFs{,=pdF8|nRf rBD­Rۦkqك=ޙE&+./[T g*M>W&9]\U~:y<Ւ"2ʬ}Gꐅ{ζH1fw, rn3w ORsɜ>VD_s뜪l|QAǧG&,Z(>a?It,rV}=0"K =qa}r1&/ϰHӝXN_& ̔&dꕳvZ$ctx>z04-N&eK*FK:)H({t?'Hg Q)C9kO W-'E$\B3eE, @ R,P*JA/9"RpS ^(A9Za ڣE֐u%ָ)#1èEKd[+1Tܠp'YC+Co{|q`Ghzґ筑ɥ ';):l9/=Uq [A%#_!*277))0'MΜMOȯ?ȃj0M<ƒ0"XKŠD|nxEH;}V]dJ/)ƙ%`H k/V}JCI/G8Şۙb3NQ6H Z*@e|̂p P`plCy B#4c2f 1*@,=SJ-ɧ6 PĄeʨd# G2AlA8so!.;@.`}uB:;U]TяU'3m7ǹL!ŌSP3gQ ,E*D}`b-Ѡn 0^;"6vz-x* @uw*,7DV[ukO@/Tr FLyy X݃"^dE NO+p)yXvA5Cp$3͟glb\7$ycIes A|Y&I9px,NG,)?4NH(-Jr>#8hp`Et|W"Ta !8_oMam>BpRmQtTF^8Z1{ܞL$,uq4Iu(̮{rī >g;1QP|vbd|ZXY;RX!,mсZcOk!WnO2xGP;ݻ;GkXRTA"4ixp7l:`8Zi.'[WK1 [maWVns?U{OAzLZ!}`6+X隞M+IǪ:"{*,+ H(@%4.,k-#E_[d|d:RXP'=۬H7n:0muQrZ.FQ Zl701j?VpqyBo BY\0@nAĘ ݇ާwIbQT:lbT2,dCZ*hZNT-𸼮M"xZp[Ry!6Xլe^ut@":}i^Zj9<Z67g?JN5LZ.,P.w7z epZt||hR-p n2zGpaX\\,.8?ǽ՗Z 88I5""D2tс{rY217a ,6(Oc$Z`wS`a,yUi}HG7흟t #' ǡY5[ݰI{T˹ &Q9+0le?3H\ؘRM>,=\t/.#x8ܙcG*a{ՋN,4}hxyLD!Ql__wʓՙ\=\g^3ߙw;y{&r~i:xRdyq[pH=EdxMI'#3^_n>Aݏ҆QF#gtPu*F7PC}E5J %Ih(5|;DZ'"X"uQmKOFuXS֛wS.Jy;`k>QSTQZRN#]?L]on^\OtC'KP%r)J%PՇ<qH~0U ;M|迯H-WHhhRw"Mh4D9r ϛ|dl'- V'h Hl^n*g%'~=0) rg9)WH؍^w8YF\;gȸWQ=w@|x)qMըK:R;o4Ǜ+߶oڔeVRsħA)-;̓3}`툘#9m1~2vCƃ!VIMcNvȐϒZIoyJM~^Q:.;b]9P4_~9 LJrk y~2ew0CEZ nօƘ nt4alqz0C5Zta5T;XO|wM/."r֟m|e?LަcmWVWf?O벛Unux] >D^:N;I[?)hZ%N%/멿M[/ϵZ./u.R+?,[˝&2.S^ ̌ɒ4._[fNMZ.7Sbv7íp݆"Xs 7I 2'F$_η5O7ߦ ٟsL*qt[9ꏥzWJtPC>DW-A@Y#m\gϜsVfF:DKz'd RfmZ#:X|QmWkt3gl?|R?5†j/+W~x؛5|=;`]Ndx]~X~h<68"_~NŢ&Fu܃|zh[}~Àuxzx/N }8;=_~<ޓszxOnN89='[\.Ac)s}SiY~OS棒4{Usw㓭60%~L>.O)vE9.>Ύ_ns7^4$hC`l[zD!2Vŋ7V=Jo[\ӫ\?`]?/u3}zIަeIQO+L'DZ-I(͕\(E^.[Kʑ*@tEAkw|/4p@]rJKp\l|+g*s,W& ssdIiل*w5XrFSXP46Ey3~f?g3~f?g3~0g0