#!/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=e50cfb77fcbde5d06c5a62bb0e5ddd77 # 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 0[[{sHͧc  vF(d-Bb$Go}̪ iD\\m(eeeeee2tiMg>_={۷vC;|;B"ZǞTC'1j6LcpV~5=iB; pǍнY !|-"\E"9ܸ>Q΢:s B,b`2 w4VY!gs8xb6ܹف)&mCh FJ&;p,&[ +n[|$uBLصy(܈y٤Bg36Vf4: ϑ\ Ōm#'!Y1]ˋRӂC ;5.w72Gɖ&Rzq$4 @vѐ`Bmd1gBY` (PO;4 ie,s h|!/ -TB7;^7A3aN/wd3v ZywgLvq4Y9꭫NsW~NNS FeG;dE'*;@iGhm}8[ "vk-N4Qs.]#cC]_h>@͒ƚ 4f`DP$*+j\4|C>׺`t tLFrdPgy#Ӳ25u^!4R]B*BO١;ׇyJ] ZyFxnSk+Fkj}+kt~sxqj[3` `c;i̡\Y[57~-^9jGƒQ;lola89FE34EYwe$S:rv^Wd?ޯ)w`L9S397 X/L ೳU6Di s3xobsNys7rZD0 b[g$%VTA 04./'IR)M4$M4+8f8QyH$Bc)y@>&F xFE;>A[ LuԘ!96F8C PeR9&I0"%)\0^%ևT ( Vl0慽TL\)\/#3ˋJCNbǰN?p: aMb54"ሆN301=mv5 p\j vPgow̓@ rd$BH˷+Dy~`,|C,9se9oH%o͖%oKz|{ L^&eF/3I7gLL3y%Rg- Ga1gM"Ѱ/.g d`aKa'm.Ve5sC iP oqȱm }~4GlRIe?nL~L>P7="Pcr0l5Dhf26[W_!uESǴ !*LpWL&l B38|W66g9NXOpȬy8=,ukQh rL9NEKa- 50&DF|D/(ƭƈ"v@D3@@R_0kla@D}=*ЩHYua4| *eH`O;a9FO*ⓔ m0ŧoSX-U`sOPdd XIv;3!B҈[3 >%}Lq*lda]@l>?GYouBmǬ{q;JfX~]ƨVP [ؑ&d \G|$7nus[;k^uGh+="j \;"P.RuE쎋pXP\vh{{WU5ڗl}4jG5fMLCom{O25,jA8 rH Zfsػ[#1 0AX/K Tw/ 'Ѱ/fkj8;J&c6BT# FEo ZG *}4RղO"ӐUxPw;MɎ8dݪI? )\汳%TI86ٍ޵hu5^IAkV(&5ܵGN"&{%&@p@LbXQ{wc(s朊3w:5\@v':a_m,@y~e :{O5j )N<GU\98L-}?RyEdpq#a[K(PYe*́C֪ U`ٜX$8d!B@o2IX զy(D/"Ab޻ G%m*WL6g*KZYR7p=*fd1(EG;7򑯄!ӯ.[lN[(\@- `.1*2 7FѓwXW68 &ny]Xa PziiIg)ˮY tپ45[P*P. I#WԳYJքΩ{/m'S'^ĂoR*$뼜G9VF$l̶x!ސM=hu&]JzR i4]%u\tc zKs]: e#  yGr5Ùd  (0Q At&&=vֱu{((l/SN9@VrDƓ+YVB`D0xH1S WFG6TQ'= ~|gsL(f|mu3q @wYI?֔U\9[\ub,)]ۧP9E`5Ok1%+QmD[)@$.jsQZk)U SOzgrNWor@엌r,fo29=VTR9v$PɟI @3SHѧEzegeR1B5I3htbUxD ~&lshO]*Kd&Yvr]}l̆K xnoۃw{+>?|SCX@r>a8}gQC=aE @5 sYQ@-񯆝k~ $˾/y}d|genH w>`5vrĝe\}Wg{{ $EV,s% ѓ߇M:-otuo |qFLI)3\IlakILMc^<.E|P V\̕"S쉋t% ;On~hAlyv6ɰדAOʜ da,Yh@Ysnjif j 4MWtJ}go &MusP|Lo\@CL[1L׋+_VćF$ |sI5RmDx V\U,QT W4b *UeM|j# Goyq^;P'%XӧBX/, Oe}ҞrapPxԕU5I7!_%`TI?̄08j@s,6"" GR6Ez ̪501VVֳuG­{gKiw֜=YEđ^ )%[i^M cFg[՚ mŃ 'Q\ꤗo,;i*<2KԜy\:ee. ~Zb}Χlx)-W5/+;%B\^reH\b) Z(K.ǁp>\[ / BnoƬ^~,.OIfEL0܀ +l=KԜY',~q G5x:^eeiZ%Ro2׿n36.ȋ[L ϞX%B*VN| Z~f+Lx1,?o:ϵ~q%5VY*qYtj PU{pm=zpIf]WE[Z (zWrg+>0@OɥjdQ:U矫-Fl""6#-7v(FǧŚgj3.ݲO~^s{,]FyJ|#[+}6N<&0A~f,vBj@6%IUL"2*&,/5 Ü-@i;๳dnίMWK%@sM9{ 99۰P汦i/f>K{WR3W/_G ME2i`ʽu=)ʑ$4$c  Q]Uݣ]̑J$㫰9%eAݫQ2lV>@YdưviÍZ~h&XXfd?*ktjqŤe?؛"-9%y\A0q 4) &[yF,S4 дn Sx8 c4% 'ЬuwEOI^C Sz.x7-Ė k)$zBlF|ECag gNw /!15Ձ֌Yر7+8CF1眈CEffk)GW@1 r8,5aS2BiyZ{./FL(J!mt1/hfŖ%L-!Nɭ SJ eP%aȀ ﴌ \\fL}&}ھhEhr%\`hx(FPzTB(Kz'oͽT),xQ7ZFtH0F⌕FEr"B~Z-9^ݿ1; ֖?VVj[殿7ͽ~s7ͽ~^f{ÛYxqn A?+'R_YEut?b[muΫ0lJCE^i WmLO.mcj=hR{P]v On*^x_}z~P@ykxw[ , !/V/ͣwн/wOQ=ija==_nuF7Sfw,;po LrT42vH"t$ZHv$?18D񰹪rlH%2#-d&a6{ rZ+~°10,eQ+ Qp1`y|ݐ=V6U@Vfw%PzчAu.y{_TEXl=Pޥ[(^&؛5uiMBט]ņՕC5Tbx /I!a YRi\)='iP)#/rvY%aX(3>HYA--yj) 09dD #jqwnqrB"O.?\s.w[El݅nZQ NP D{(z_® vK0$=4*xWgF+l5f ~5E589Uc 1dc_GF مtBFoHd1Hqh~Qn=V [{{ʭg0\>o(4=gzU3`ZfY1q~8N?D'iK:˦B8wMMkz\|Pjs8P e~#/&č$_҆tV)ѵ0H-"ԓ;:=e;͋b.ߡŒ@FϞ\Ot VVΘdJgs':n_:8D4M~sw%js9Hx2¤yѐR6^>_pB*6-UcHמ͏с"FD }#0k.{x-C-c5 kNB ZvDCBa[*­Y= *ZI Uף<(n렺by77 G- OR%onvt#Atu~ 6=]I:a 82n [Bՠufx+`J.pJ_&9/\.WHhhRBp4E)t$уt/_r\ YKЇbrWX|>;к}F`ԜՔ}L} lmyq)W[oF"#>|XYT XҘ=Vt"=si80W;hB2bv@AΝJi:dBJmrc}z+\L. Gҏ! ӳ 홖2e_n?<>8 ['K:E̖%ES]8=D-36%MӀ'˔;Y4_\X)ՂmTgRrnSOB'q V0 jcؼjdEzToCCT=i"Ȓd$O Eb4A9ċ@N{ĆF@#S n'ʲ)D0_DQtwj*Zma<tW+>, BuhxͽN-*,#i% n@`Bwgu8 {K /3#+w%G0 18+?ۋ:ql!K(f (,QHLO &Qo*fkAgɅuƮ73fPJC mBKpww3=8<>Z3mxi k҇bee\ӑDG2 ~aF oji&s<8.WCHXe$8JHC9C?OO<ػh?<<: [isvg6 ke#w`5:?MӺKAG_9Jdf> V$w|oN;2u!n<:ݪkqw8?#tr`2k>&``"m?ia*gWyq,?q8)Ý$Uu(]K> mUa҂W0rgDx]6l<'.^b |sz!V2Ó_N6ՅRv"rUH jهp"K0e,F@\C2NwV+ǁ?-v Zb_)+'qmQhw~gIWs` XS0نF56Ջ(4텛ߔ3h2K ~\T&𳸸S7he6L4-0a͔u6)G@s # ^Tv$Y(KL+g)BՂҶ7{C3—b&LjiFP0b7 =ɞNC(9LeKnt$`0Cu,Ia`%r!Vjt)C$(B'u`\!ƹ3ӌbMwxvac^(!1l<")fiE.o_hcQ[ImLS!2 G aR_" <V\l;)[sQƋݥVOx9(\tA9Z?frq$tvI.LES̮5.yd_-駄j ,(1F_^aU1`w057B[$w(߳n*˾TrE QpUWL[Zx)LKБCc?)]4s *A^HП'1Ȍε2{΢ {#FG0 4;SB!Dɀ<co2JtQwnVq!0ՌJe X崯; 7nіRh 2Y-&lx L9挛HaϠ :m Ƹp1젋,.`j*Jv[6f S?Dÿ<1|a-RgouiVW?ononI_3Hۆe79 u_m6ce u>[r)@ !%mL4jͥӵ!a$ W hqNBѾÓ] Itvp{")D[N T֊޼dPF鹊-A|Qo5J&b.O:\dvy]7h4BKGŕ$ 郲 (‘/YP#dX+XKT%#ā@2 W 7F֩Fx,y8Y'J-x$G5uBB/ ␲ vu?fPg hjao/n+Bi$jT50ŏ(%K7Kͣ7ᄚek>TDڟ|"Mc(ˁM!=@>}PBηqa+9UFlQw0QIS=S6ј&ݍ-3i ?VQ2>XO˝8jaԛ55u}1;&tx춼oYrg^8 BX"945!4v/h=uiɈ_K•ߦ\&;cHUտ=o^%rzI< CMC|Eֽ 'GdV@2i%~O#vDC"ɬitP΍ZNtuҺ\tQ/A OT XZ?V~| f~]ڬ`{ }A=Ǿ6Y F\{lՄ9zր _PsαyrcyӅJ%.L7Dӆ̜9kF_f݃qa˂̈VKNJ>Rc_͑`p;s, 0p|R6;]ql_.8h|`"4 " `sDX'=rIT[uU-dyu໒Z6)#3 D$?AHcddn9]ZBEĮ|8i+=I|&4|I-Ț NOs ?޴hHo6Ǜ=y. ųۤx,A~;BK8a;gP^kON;; "{ 1$Ѱ5/|yE$nۥr_>fGN 'x\Z-__Wn_Wn_ OTX-൵ѡV9WQdnF\'KbGӚc $<1W27. B VzQ0VG]i~$>?VFe(&=90O%Zr4.)%%GQ_% Ss˽2e]}`501Q eU0-E$:ߓ"LmcG1Unm,fˡo-)i3 5Ҥ4k)4Fj6xY$_'$) [ fI!$MKcIz>)ӕ, N І1ganWs#BPKyڶ+qJ`H^N'@?=DIhXMEu1*֔ ͠ش;]2r{ 4=&K:lQn[td"1jfa7rPAмW-PXOqdQLA{U;0S&) xK@3*}='ax,߿xE "6˔lS7+XVϠ V dce~}+aV# ض|lo#8xy2([BWq2~a9n`m8ŪH'Cu$@$IΛG@> ;:%#=Sh֠iFvع0a);DB |2z H?`E9'nЕ%s b, /DP0|(kq5˽!SFk5=actM9]|FACaUPl/ɢkW|=uZIhuȃq07ii<"v dzyN/}GMh 9NRe J vڋ.LلOi;ɻ/xrRw2~#㌥mx6cn'obѪhû`Ub>x>wЬfաZ~t< 9_5$?P{q}L%YPD/J?jA 0MWkKp5D$=1)# f+f[Gjb3oh9߉ oE1r88<5ܬ`(rLlU?|256O6tlGD"[I` I+׾w $AJ+i#-J*c怛xxv*&P2X2r~Ǵ4GwrՍY[߹wn߹wnMjabX3sT΍})r&>X.bc]1r.GKPEF戁ʨ @D^ CLهg"~g a萐i)(ՏV Nbi{m{{qb ^$6Uk׫$TUEw\l2{Kl(s(}b$0d˲SG~R Om3&ܶQ-;@:>c"^YEln1>ZuD-hRn"6V`6y-ۣ]]QC:,8KD~ ͥD|G~^?_S%9k;^_UFF:yjwx.2Q+ 5-ʹL18. kA z{䰇YAoU cQqWV{ ;5r&RVfOzwӗNīՇ/I9V6FJu"c{˽%ze/]^XdK5}NrfNf'c5F: _{'LΔʢ,"+2gmGF3Te}GZ$xB5Ѡi7SIOpc,({ap.'KMAÒLx&Z^Z^L_r\so7??7]fnj%R2cvB`Ko*p-i̝N?1ڠ 8`q\/.flt> n{=`w |:`]ͷ׭P,\᧿V,ͽn"g!ărh :(؜'ʘ*P8}<^L~H#! `V99u 3\;g0|35Rpt_2_$\N 'NO*;XK8E Qycd^KsU 1jlOmjuMqs&&W7m3s_pJUJ@v?xf}'^g a tϛ&#?DȺV`@؉,WMД|G+KOFk2fd[2ޞ;A u0+ &R#p*¬01k ]  U\1:\ N{rO/NQ4"0XZs ' 1zL)F!A1 >uaf: {]`9dJAy#Q ^#NAPD8fxγP2 99-1rڛE.b, (9ڣ,HR̅LTzϸ )(N+}.mĊk;0"pȌY9Ή, '˺y)%fnS L+3 |0"؈s6eO2(nM!\]tp4$N5A}fS$#xYST# GK; Gm#BTurrɣt}KڎN )5A׸Wp9;?{egB_ait~ϽGy5u+oKQ k "B> : n71ֈdL$S {T@\#TGE{ xW^LC)9Ju1T{v5$5n8P iXM91vͲ(Ѣ=j}?anDH3OE HXԣ\$8 bnCbUlvR p̫4^ n#$ &Db:A4Zfeu3.h6@,FvAt9jo0 paC ҄<@UĠ}v50dv"xzp(D:lЋ#l^;-LA dSq(TtIѴ[ZEE"9 ǂw<-Px'i+hNMb b";P6V%|`TE(B}~U*Q/,bnqy1RTQM h6UMEQ4o!ݪ\ʟ9= W>'Nu)2M.DBq([ mJ,g^r]6f4GgFR'Jp$.Oss77W poS c硉z5R`6Joݨߋ 5zv7 6NLjQް0KGE>qMtSH5: Obsh˲Q13Ae_](9 J4}1' 'Huߢlr͵]Z˧}ы>JlCq\߫oTm}&vfV﫟$ԡCN"i"(ğ~?\c"TovN|ܻxR|8&ay| wVeU.uJo`n`e}O(@8X!j /ݵBxu:Y`3^ C47{wE@ͯ& JFB4j!hm}"|Dͫ>xڪ=d\eF:s7Ë`=;C4f(|oG:(4W(p, l(,o oO47G/I[A@EúH.X@p?% 2첲,nc}ݢӜhTŵTv:JMN["vi0U幒0xia#}c9lzvK@bV?f-VN (&v.^7E5}y5vmר4).\|FkNR@ E/)O3h3}}Oֈę=q\_NqC}ӡka5Hϲ[V[N Sla]MLXbEoMn(5R$d͢k ׄ_|41 lH7;foqeu$I`ٰ`&9FN5Qu,#!qLT)~lY_h vH3LJԐOX_vIuiZt}\$&օoRk 'l !4?䟋ٸ,ƃaqИnY4tQjT4C3IM Kt8J0^Y´5vx7ɫ"ynq5,ÿϟWR,1⹧Az2ܥpw1f@ FrAk$Y ?_OMפ=V|^X6i%U\(˩/)yfVL#NòklrH$9ҏ`[.1ȶai6|@[(pS̝#^"^Y^b)Rw6s4qEݐǣ!:X?зQ?=h@C\Q1"J7Xrxuh8D{람@Afl's L]&z½U͙ bc2^  h<(|hE7qF2})~xp(LTHBS D^0,,/Pdt)[=zS =P3B{yT:;i=pӥںB-I󙯤MLL57v OuOl7E-i[#98Ioc20"R&qİH>,T=bK}MI#o I: =ADNŲ5NԱ"d }t#ypu 8F8q}>1iA ii<}t"^$պX^vvA{ܣK5<9`2U'7*DFKj>Ph5l7cef+xU`Q 9eOOׂ0^GX%g&< ϶ሄñ$q.Ge+@pS7zI,6cF6./8Yu&ׁ &2y< l!%2Pt\cݮz#ܴ{pz,4tHN7OO~=YSP +ٕ0Aѯ06Wbc1HYVa;0U*#*ύ#̵fu$`LnBt nhPgXG$kR{SÚ,^G8ʴ5;Njqrm]di^E<4291m~{B^Y [oy?&ދ-a)]K3ghK]=+}Ee] u)Ovd詵;) WO` ZPd (HXn21="Lt#/d e_N(GI)qh!9FHUujlĊ?ƫ2hK[@-Ꮭ;) )ZV\Awj:H/p[ovNwR`"x% +< 6A6`A{䂚 ߪ >ܜaM|ljL MSvSɰm8? -3J֖jga .390Ӓs_ S^V//V2fÙ)" DI?Te'\0Z4zX`+vҗ{9nAa%UTzΐ1SP%82wns`$F y+8T2&ba tH;pp -(А` -}}疪4mmL}Gcldt=ua زe-nzmEtHc-'5O}jʏ:Ov#ӋRtx/ـ.9Q_ױQ:IPkD< W9c_<h;PXJpi'lױN-#ˤq3fB`[-m6T _-P?oZb۴/`c|"Mb CQfcpuZda XǃtNC0<: f4 Z!)'40I/zO\ -8vsA7'Ԇ}ԙ?|\j4'{QyxvpjPsvdꦮ/16@s୯Rp>9SXy՜*IiFG\ŝ(ja;D~]8&X8:P 7J&Z%ͫz/ 54 e2MWg,5GFvzqK,qD"C`Ģм !;1t :lV+dQe۷iJU(LF2&v(.߸4>CD{bG Lz2Y8$ Y4E6@fQ<=bKw*)BgЅ؎b`d~$͟GA+Cc԰rtz ytOkne7[nn..DqXTTGᛍXRc|MbIcw86G"1U_~/ﭝ7\yY|L?WMDw+{o~~m })*$v?:'ͣH3/̏?w3"Sq Td1ܻG%x OʅBb;I1l߰~NTgi`HsvNߚIZ uCx?>X`|~~"0u?!0?j'H:;8MX{[0d$PZ4wJ;):, ]i8[0l7x3@(GsiK~]"5$ue@)!+g+wɾKeySZS8Ʒx8Ԏ,@RihCik >4ĪESh-9M^4@oMxWK7(^}租^ZŷJ~47PfS'WӋr<}0 BԻ UiVnMnTQңTU4Om/vv'<دoUMyA7p3@S.NŠzƝZ@!v׆_h\i܉5L: fώpA}{؇{Z,U+P0~.vQY%(3ژܒ;b^C(R{p{eOw>,ϘP?7h؋: rw@nkؽ9 f[.b]lu?Y}1f46P>pv[ .H >QEC8$fUqQ@SA͏7'-@h[1s\Јn '~:z,Of3+2c;"/ 8} |^%sHǨ1e(`5G H:I @܂9 sCf;H7ՅN#(2h_K/zyةdS\\ Dq)ܐKE-zZg:!cDnLޯyL-"bXRWKn+ffL|1<9t\,Nr|+ds2[R#17g3Ӎ7HPҲUe}`c(`҆#hNO?'O?'O?'?0