#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=49160b9d166c1538d203b33ada7d7965 # 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 N`\k{H+*LƗi ``e3葥h # ;l9uJl'q>k>TsΥTιuM;~m񻹷?{O6|6?5O{ %?0B~ >;WW/jJJZfsh5Et: I@CP^Fca+H,!# lZ.] aܺьWY;umƫF% nQ,uG4"ܿu+b~eb-$Td2"Yҿ.aFϏ\`9C2 _^Z(`j-wAAb)(@G`*ǷW E\-Xz"ֺ)1FZW` 4?UC 9-ӽk(8ø86&b,nhwzW3Hh0]L:9}|az`>Ta߃u@L130Ì6Dh 5L1ZY0r݉: 8!QDW2N6j?D:uC²kp`rdP'iزtzt^   3]Lmr \[OWLvv0BO?gB$qv(C6T @*ʃXYYsrlNGd6BZ' 2U @p1dk_t!%E(L 0v5 Cf z:b2eʔ^A"3@ZbӀ8!<`"ٖ G2 fҁ6.0欐/X  E9\S5Z]ZU#Vtwl d .*Q%%HyB t5d3LxƏqBLo('.s|+,/pv6(eaZ 0(FaZl)3`5JCMbGX1n>1k5C׹>YQN8q9F;I.il6v7P8wmE+W#VsApB$w Jd52Pd.ɌʏkDB JYRYPHB(+zx DdBOR3)W| nfx )t}2ixÔݚ^E}v ÜoJ*}}p *;i萼/+i6!WQ!Zpnt QbZmF7 JrDrU%2ªAWrg,YZ?ȇ8fMVF'!2UdpޣT4SS:&UP8E&~n9"ET+:@^l| Ƕ4W0EYGXtֆ{Y4,޹PBv )ouiF$6BDpZ, :%,;b 3 ~ģuJg@Uߛ}-V;`bJ2FnPI[Uh2NZ'`J̠s~sylgoK4 FP)_,FV f4`'?~H+?򉿒37] mMAo]"?dLæ `?Y0WTR ^C7_bX{0Mo1.ჅeȿdHcr-EBLT2^s*5 du "ӆI!Ҙ/ (yj QDX:/`sc ]HVQWcS55ΒI=,,g) tMN̯A[Oo`EPoqy j\:gyWR%?95ߏKd4UlA[DY  Bts9W\$c26F7Ö'O\߄PAsgsו8gyz`9g3 (qj)Gy1(`@ _8GF*+`sts؛MϏ 6+F27?3[MmPplqTu:?}4U\ʐEmN387r Bѵr0w yX-G%"R^ J]y|a|,^>`{ZŜxU) Xqԩǫ)!Ih꒔jR@.ʼn59Dvdxw3X,I) l~кB;; |amH݉&PR25]5=97SSK(I J*Ɋ4Qr'rPÄKhuFE Dh2i؊. fI6 >Y,rKGT|#:_X`~se>/hc|Nuk1*ԶwȖ8+ A[v;J@;X7 s`ZK:[҂1;m`ڂ_i.,5*#p̝;ErxL%ば'R9EʃɁ5 F(i\|3%椎֋I=[u^ L8 B,F6<~2$Zy}h.Mp֯d8<3["ِhx!Wqͬ񩱟x8UYťFsj&Ϭx)Wqg.<,UML93~eILZe8O^,,  5 tgQ #{x >+rv' q&]Jyy(J"j|*I/?/.Z FB=ZOejfZp"2҇k_`}"tB ]L1 (6 OBA}%𴠖 dWHG3oMQ_"l<+?"ػO ΜB= y ܳ20+dR|]*_A%%>[>^d_mz Y}wi!?~|r;rtR4d&SbvsNY[wbat`7J~+}x7dG5welW`cՂ!i|n4kil<3;[xh}ML&cAI%jJ k}/EGlj jqW __3㡸df$!->d~Cbv;u0N+nۄF nahMA8֎9#ѺoFۮ5W7T[?OEQ F?VgJDGQ444lΧloCdZOmFUv^A:Ď@n<|;ŽU!%TBzOh(ٍ z,x /J63^ J25`*MWapBv6]DiO;ma{|ΒJ_7Y3  Ŵ%Ulamxvw+kasb6"U=vC  ~: { CLt̞GU75?RQ\j|^+3/bU>yw;wR`?GVb:*ap?[Eqz[ir}́4Ț:Pl,kɿT,OYX։~^Y{Z8s??k%bݭXYZwcF!(򯩧rJvP͙@v>V=NZ2F+U|+&n9-94-G$vu>Oޛ͙uM Mu]A$7U1Ak_`fqf HEO߾Ӻ\HBO@cEHЌ'馥?wd-pͣ*bu3.ka{;N_bTpv[an>}~ޗqd{J"a!Vcgd.8o#5-j ==K]6$s<Cwu-N:_QY{[Ռ! '}s`Ādyh13 094(ZҎν!oK3B,hKkAg ע$ޠN~ X0#SYсE tvc4Q,c$ 6JJ=iO!~v&%Hhi]j5f^ SN#~'w6~aNg&iƈc'_\PZwNYZpq@@0=agD*{Q`VN|:]pHVDOȉkTCaw +1n JC$O37o]G*fs7d8rp 9SBswSΛK 5" ;R\M7NoDQmv/,(?v `Xar( Ɉ: "Uʺ`#<[oٸ'0RC"8ǎ): Y:.yPj7J e L~w+iY1[H>)ndcٜ672 jrG ilHXڸ~եԱꐔzeԃv\bmjP}d4dAm(fK̠P`6AG=7EEoT<EFD YbuA*f`LE˅JSҮ&WN?υnAPiT tYf{(z+,isVD2!Ԡ?Q_J%QNT*ℭCiC<"]bykh)H\)#he7v#4cJF;U*90H'BՂZe¿O7M\@`3LD]k7U01`O63ł/ǂb>T dGH_R% ѕйK&|_թ/{9*LKJ%C#zr0gǏ `n102_} H|c>.b<ѐ52b4מ `vv_ڪ\zp/L-j_2sf ]9<6pE6<nez&2^ٲz>,VgX׌%[Θ5"nwtw%c G0 HuP8{0!w+VВam=TLb2Eq ['1lNK*^e=M#~ k>fg ^ڭ߼30A*_WU|5rK-(DGH͎|uieg̃vPYZ47G#O<4&hwLn"O 263)DDˉkf6͂cY[f(0iF2h,3,"'H+rԭ)G oP`wb 27t75.!,,Fz7MqC)Zd{٪|kYaL=͔b ~7McX0|ȹ Qޤ|O )Jm}+2U 8wT'5|Hq't$JTgz'1ao=%,+~Nq@i;?f xh Ǜ W dPSiYo t${@BW_`to3u)CN|oÃCXO]&ԬCБd3a 'r 6NԱ" >Z:ρ<8&gyNޱ8qvZK6[^psu=О;jπP^v~G0er9$U 'ߊ7ϟzcOl[K*Xs@?ԗeT-V5VELfLq˵Ӟk`#puK-nw v\ሄñ$q.Ge ] y)"=̴G.ef7Ay#v~V>_W$㛊q4P, wDRU/s%G:u಼!zccyGC[yk&'>L2P 7ė ^hڶ*[diVKo;^oumZq!qu5؇6Yv *vT?Z PjA JiiHE>:62۱(ym-!rasUPTɺL|}NjzCJ&Wҍ-9/Y@uLR0r,k_]#ߪᖩϦi䤶)(2aG|jc2;AvN^N램zx9i_F/'Xm K;;;'~ӱ$ye>IG.?#'帎diVgOaoBEoRiFьt-Pv̨ga]}<0>"/1*~#/=uɌ>e6 J:b .%3B|5Vv$F9{?lw_̊s3eA$cfnϻ' =WeΞ^9n_.wtA@3PG -ZB3x9T^Nϩ{3H; <%w%o'ށ#Jf=W,Lpip7X8R= `r9Fjz$=eώܚ{/jM.@?F%0G0PnwE~WB^ˁӪmg⚒x[唱\ &w SfLđi]2B5PäY/д͎Xӵнq5^{bPSSޱaD]mZl]k–0w BD8XdU-02F$z2x&SKYb~g+=*d%ixSy ON*qs%[#ϩ_sO)UMǵZs&,#T[*!Yke!X3al (/R2J$Dmplu~)%E?&%Bjh(sr8M z QH;FC [GgA|׈ԇh@V[Yp L/^cW}h9=J`շCc*uhXv'4<ՈHP-y;.D8ݯ;}@<\kn[Nn4״ÂROڭYdXXB'7cj,u'܃k@ "0LX4/H(1DN|Ltm~*Lo1)],@Qwb1L&Y'q|8B3=9fcrAU6vzoDvAß}C0^q7*P"~m23=ʭu VNĕ ((h˯Xlk ¤?u3S+G*RUjmt*DpTeɉ.(jҩϟ>8?n寐"?ӵU7ógaaaaaaaa0;C{يVQ"'՛jC=[qsgy/GOor7y[­ސ)$XZ+Ű66%25ݴC}Jjġ2a' I@Tta)T8"0N,.|+6;~PWuw=Mv[#f stp9rp6Q5{] "`W{aXO`P`1zf|lmy*jkMN 4 ſoZ!]%cTP c/xis Q^DDy!: v/v~"ٚ'9nZuiz[~&DŽ*4 5~5)p F)`)쁏WѤ0Q(M{upKce`PBv!u(XJvr#ꏒ*" Wg's՜'ѻ~C]+v<@^.n?XZ:s$OB' 3WjsRljR[im\2,q_?ڃ',fS/l%= 閛bRtz9  B$gwc$2d/ kF HppNKн YOAǃ b - N1yIyd[ 0Ȅ2Χ(vPJ!e$X⒎w2 Uph~dd9?4ȡ 8J$&-V D}PcN5::i@ӚIta7@@ ׺/1ydFBFu+\2c|1"e8`$_8m/G~8П'ug׀Hv()g8*@Jn٩R;FJGYO))P }õ[C`$j\ɚL:Beٝ{ȼ Vyl$.WE!=:Ku~ 3N{b&}'VEhqϼLfk,'W%\ ki9g̦gT8EFGe^Os'䋖-WWx b=QSe. ^Er jϥN_sof2T5=*?\;ʦKJu冚kGvd89UH :75]T82-$-o*\ u=%e{yu<2+/ZHy:/+Ù]v$ɮhG[%U6B9YPgJz^Wo[˝dJa)V"ODF9E 7zCOv-7oǷyo6{>M)egњߘ 2Tunji7Y^[\]sVW?g3L?i4gU>; *8i5WQ"?Մq@E3\$Aijl[ڰ'(J: T{"tI+`{(Mj^KKˆ lj>T+[RŌd J&J(|U aSJQ~Ji8`ܦHMԄ:!2H|Rg)HtH#Q:xO=Ru:TD_PE.^9@kt]qȻ[r!ۡp8d| eAḍNs wPfJ7\/{%5SŇJ&@H{`¡6zI*蜉5T>u1_so_f*Gd#ג0asqvޒ,y|l!]KJV |aF-/!J)YC:SV<eyXDpd@7mkM6웼`6;ֺR:.ֹ~:?V0<L#fĔpɰ;[_8{P~!/=\#ؙKGUCG'k_'%XqU˚`y gdZr0vU Nwfᙉ%o0t&$pbNH213JWo*EI{%)uSc(+F:ښYS|V E&=cCÚKn QU:Xyj!@%w,iO!ՠx-㛴Qgh"PI'忒g3dG$!|l'#ci 6ۘRT;?~Z݀!wmܤb1jd|w.mma}}{s٫0eI0; 6 Uo]ӧ+(bE& Бm !equRecv6h;$,TJaRX? 3PlUD@}*;B^zLL3N;U=>xU<iRo1>;q3M!_vNqui9kL`9WQ㮜.z&٤D|1u-s I7$’N߭j\P*p!ۻG}rvttӞ!oWM7z13l L.e?=%gG*H?u|p/+_yq_Uo4SjȃOFva&l\ F R#dE$ R[DL$%Otud0\>ܤPJ)c =mEkCDdBA dդIi~)}(Z`#~{,U0@RK pӡρ| $D$`I]J?A{I]v-x @Q* |W(囌V4k vBz7I=A^gAQ7a8גH>E)8L܋D 0#I,-40*4j`@לD^ ió  D\݈ͤA@Jz'rXr3 >ƜfF ڂקTvхj]a՛f߷˝ppg7aP 2!K( 8VHsf=_`XUM' `U*T:n䅗-8G:!<<(|d3e8dSV .1{" UAImW.?q4@~7vJr ՆP0T?L)ǐuuxVK 7d6.ZTǽdvp/%Qly8>iFo,g9+I|eH}$֋O-7{6Ta+,d! }R|M'FP92cWz\3$>*4F:L{ .axKlIVO<CFQ.Ε-0+k6Q`뉲Ωٕr8kpJ0bjK-BȽE ZpsfN#/Oi̛D";ï 0e jݯ)&tRT`2 y3r1N#9Oј'}hŘQ_:p ^a ?yH{ޠ&6Df¬$d)/WQ])DŽI8QQ/ާLz"V\@-\^!Pt3oe6-]>Ѧ}LE+OS7ASq?Hӥg.㳧+So?N@DN Sǩ'd 2zL=A& ;%/ X|Fif]X?06eɻQV_4:Js R*P-lMJ͆9bL_`W3l5NV%]D4uZ+I6)Jc)zw{è)&eJE~18U^$ʹ["'F~^ :8}Mw"ξʶ%m Өt2{fwd/[u8cO"zz(Vlb[xD<C esV@.*S\3hJ/wY;r<dyIg}Jmfwl"7PSd4SX~MLhB io!Q<{g]63w5A>vf +' íӖEi̓'&RsZ Od o,`! ұC>_#|gnW&(]PwsR ⓝ0 $1>ox@/Oם0:D9S)Bij&F`i=D YGdΖJ4"PYv+<CV(C؋379SW5젪u1G8ov:,Җ{׈5Y`l3D<#֥`gn^NA08<q $֦5Ô{ݵԕIw7$JO-Ha?JJjߪrR:LA~c`Ցʠ_VFZxKE6uZQ\ڰ-/T1)'m敬VchapDg+.RZe. Ou^h rb47.WdHƋޗNcr#av` K<rS$B?-M7qIt!fE#*Kl5`ŷlœ7~3r9Q)Tv8*jnƕ"lF ݣ͠HC3ggVҧ͚!noVn Yg%7z3kLu$-c⤰vw.1&F؟K;+LmjWszxFB{ݽL4n"9ܥe_4ҟ+} 2+viAGҖ^n"KW2m\QOHs}^ HMO%ZjvȘ!Krj7K@Ct3[pL"*4y5x6jMdťc Aroid=h1I@ax16Mi ;ߞGkؙ-ĸPɺ3d.@+KƷowCG0F! > zlÓ&|]8ҘXEpۀIspڙُ/w)0#\/8p"XbWmhMo^i'OwzS!B1GE$ɩ™Juı d-H@g@t/>n^yZ~ C^m c\f'\'q\yԓu" M |Mr`o$<<~|H` rG<S͕0H&,rVgD}cz_~[;n(̔"x&Zczx*}o14%'aFjzh*R;'65g =tq9΃H)1 'I*dKCЇx@uЯBAm.!)?u%(F =?HOrh!vP?.wHa2sH0+&[K1@ݢSx'\$JԶ͂2 ~:Iެ|= ˱2~sS%˯cBP 6W%r QmK;D\9,۞ Dz|#ڒ) YOrRjr2le jO 8=J`¬y#6Wi Vd Q/4SeIo3:֎OO~98\ _42 GNWwq8f=G 䦍c,VgvkUhu<`&?K C7.H!d4`^D AS4l,7 p9C9ZQ|tɬM"NRпv?جvz {y¸+V4{K湔 ]y|7*[ $oUG1ӢŌGo' $ce>9dd6X9_aӟ3;J:իg.공iO㿧i4{=)vO5T"v|v Wi~[^ߋܘ2I?onwKbuZ:bAjG< b|Y;EWv,LS4lIcwXyM`uu􈡿/s+W\xU|>5{oxo#yTkW+-kcg]]Ѧokj~| vMoĴ\EsJ0n >sOӼ+ Bd_J +*AÙzN* 3\hy}wFUQ HvOZuwU 6OX)Rfwa(bF̥46'w&RDEOk:Փ̕ {ZgwSm>QH?hAɏ9okK eySVvlK+QN&o]~o={}_J 6q{M8N>O:th5sz9քa~ WOgyyquɱ,-O?gjgjgjkiU kmB= t-LhKJcd$,/(ďLоx䭮x\0ŃٺLFOue#U$[gEzHx]XV}~||xoKj-e٫7_~HR;>ߚ%D,}?Q&/o0iZBHDPh ( ,fBaXPf랙R)R{4ߠGjگvogjكiP!4V_ttN['P* _B\!]x8b4"kx)Pd<] HR ^+u?nT:"t]PZ/_",ݳT/@"(OV(k!(R LOV ^VIcu;/%(.x~[V7ޘ)jʊ76o^/n Vj²;*O|34(#w=_2AEI i2@3ur29MfmY3i  bqFK$#Jh<ܝ~L:4?P|鉐3k/(S H 0.x䗩e0~GMM8E}T`aԁ•$*NFN&\ߦfm'd(M5q!MagjeIT VGTY#z^VL\Ӊ•1VSp?;} ߬,ӛN+Muof]Hڪ:ږ5prCKdP*_H,XAU ³&Iq@2aփ_o/}-ZsϰrEoeqW0,CbBhSY-aLVMTr9Z,:iOo\PrJPqbѼjT%Yc[ssdUd(s(lu%D.㔕( l/?y ť;d*n?(<אIlϡ_TӴ]~8/[."Ht3hBSfȧ^cYc[GS]{G/oD\悳a~P@WHMO ;X|̀MZaN#U6#硩Jp@O)YFnm5#A$!HЄ;1=0hU36;TCY+E_|81urg``d81R]lz΍ wpDX'=rI-T[eYE3S}m< F>PO0 ؘ4:<%Uo!iI$aR0%n{;/N2$r -%Ɋړή~ AwB庑_îE7xwHfZ7OƏۏcFKO+KSoӺJ*24+bCo6T7Q[?yk<70%H՞ \D@.J{{Yhq])mz?3?(/ZfvmpAhX_{S/[Pk.ߕr FFg'pp;7A ,"]jEB3ó`V,$W|#iD`!68 ;wQq?^JϠ Kw,:uaN03#P{z Уq|`7N?F$Nς1?˫K\ly_{=us~O^S{oF9fAxec/fDwi2vFSOa+t969eTTE϶*U!":vΨGBNؗ]ӭZ#VRtgWߧ1;QP{:׺\&2 qt8&jb216wR(l݃dulPXPS²UޛS*V_k' V(A#AQ(<5~S݃ϲsP;& .b{q=~lԩ:4Wf֗[[gGMv`?qIdKyҪOS)M؄B@-8`Ow;O;wj‘MS>";- v251/OW\5x425S%`j Z%? jAij\uWcaBB`&N2o0uB?D~g@Qw/vڌo8cD^"ɌLE\ )CH {oGC~nOwiC3|P{gNrui8SLck.~l"xJBtN=npln䌻! @=.{G:J8 as"/ҏCV'rY%EU#xW4^Xzj[vdjU-g##x{S_CPT y@i6?W>!hNwwPbVye=õUe}L.RXϿt_ >xp+IzیX5O+f6-0Tv@?а`n<( !0*g Ї?P5ç/.HjA?u ^1!d{"N .P>dm4n&^6 JA9ᚇI漶VDf'rdB/ss^CX.v,Q*|"D[sug7K p+'2Չ<Wn.J N5.ԤG JS@| s/o-@ZOgvonzʛabJKV h$GToCз3(N:ȝK]}04k8v\9BIAj=^X~DETPHM( u~j|L$DC`< EpqSgz9۞h gQh8dp%Il}֌:pUۦ(;Cg'*pX*UTk:eK0.wt2PB4HE_H."cV顀xtq;-\J3ۆ)'i Za5@/gOf ŗ_kvJ/z݋1mqimՙgSo}~,u3,tZ;~fM g*Pzbޠ!rB?dk)k8|%lgOW[<~0J BܽL2W:!(mQt'!%&4Uxxuv?@#u`/ txsxa$9y?L| ox (6<~Іa`+E AB0ߕmgER.ɾi}r$vO ӑ&?Nώ*&k g 3{1% f;j7:̷[h`nT?K>$ &&b_QlӼU\P]? l4bX쏒1ONtf@ 1jolՠ]L0G egW*BLs cfe$>O}u>ǀOT-Lxf{]FC$$c^NAg5_FML+D{~r7Qغc84EK `nȂw3"=ܖ(`c|S dp3bB"vc-IOpY*','+F+ĝy+8E1[1"y)!tŢ1pK>=3ݙXp.@( rSKKx28I.Fm|rj<ϗLZWSg3d٦0