#!/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=db897c9be059bf0ec6af06ec918ec3f7 # 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 :\)vJzxNltqur i焁zĥuԬLjdDM(l9+נebٺ{OeHiM-U&Kɒ ILotP@3;_,{F 6-KF!)b3Ag@d&dO-6"e3bGpO& rMhh3@)k4X0x36c a[|S+)*HY$њ-*7q+K7 r'>$P=_< H:8o+EX4 %S TtiݽD"I k$ZuE(}YՔ:q_ݫW{4 62WW)wm`63熸m@0GlϚ,_F*D_! 3 (6QM-6"½xaJU@aoϣ>C0e" d![6'+dQ0f 8)X6TwIyCi2TLgƀ4X"ݯ dPASH)c 2 ]HQNuBnY,̫mwFv Ȋt6w QM=QZ^4Jhp͟Yfw^1`{<+L ~e,&]RުN+*{ęVW:_I:&AFcRƐE5xm3_ ݉jZMD ֻHã7D/s0[mWE3LtYyi,\E8RZI4bX6zŽL`,k5V/ u—Kp`'M%Ax}L&tv<۬k"fڇj]bb,-,R#v T?Gahݸ;\&X^FV3 ۸Qg=6_,,oBWp{&0G,Y1"֤,m ֲΖxt[_t-nXr[ vX!p! IY1/I6֮̒T:dmQ,9H7=Z#)`N7Ӱ3*g (.:4mhq[ȕ awn k1b5G z;qS y8|HE 2hP!12%CH;2qgt m5n8$<طO+Ϩ#Bk:U6 :[$Wbup#S FSi1S&s֖$|pиIۖ זE,G(ev')K:IUR!VyyA6k}nFpN+F3+O.v:&9o{j&8"G>}31z6'"f!$K"2t2' X\,,CKln=WCDhSGnʌE#X K{ ݸjK.e@6o0F?bJ7a>ĺx0:GФBH6F"JLpCE|xR7Isii$c=j]Yg]_y 3%~2;)psPH6w_P H]k!y?>HMe|(+/qGQphoiovRt_k>PhW3!ջj?Q2vVy'?a::Bՠ+gbK [#UnvZJz5}/11zs3H4A4F3PU0aq<+pߨcN=:h~rxz矷?M}MO>LUNUOL ak6ػy]k B܍,FwH,oΟ[dqE3;S3)q#'ƪ0{v1>$aH .5lFAx /JXO按xގ9<{LL=DyK[cGihbC_U3'q+#@EBpep 7xTl yIiZb^*'ةPcEƔ&DZsbRްj5XbND͏@ 5mk>5eFE]ڼXN~K*t/IE>{{ɸ'8rW7@@КK"ZC"<ȣut#n5K Bn8ari8EVͪz&tǽTt k{4mT'BȚm3zjKG1qǼIQ+?x5կ'"bML!L7yq!rs#kjjZچ )CJIm|]"'zt CL%tܑ5rc-!j)byt7:"RMVz|({&7~{ k_e=Hf >jKf2UGxnbEq&溥&NTHy8fgP? ٘'lDs\7IX ͣ^dLHЌO(OMKgnZ"2G0$B0MF&쳓ro96曪6[]꿻꿻W}CRwP|#aW+8d;-&,~(#['vcغ@v>gZ=jb'VdqaZKvv-SAl p쑿ImUxo.xkfbA^8p3}?bGx+}P ջcvs7gA-ozg qpm]t|:)夞뼗qC |h ?wu:hR|iahcT+~4"kg!nNa~%L!R堆Y3O>dG+eoJԺ[-˟O/!gZ^Ԛ}`)b}~],I}bd.][٢-.&eҘd_J{qw2ٟՄ]pe+PJvA!/E‰72RϑxJ:H?`F__ xh`+%PVІ@iHr އW5$CBLBpT-}u$,Éȝ?@m1niJp1_$+ 4D!$Ic#O3fОO:gB7s2Ƅa窄ůrN:\s6"tWyhuE#bؗx : &A k:`L$o{̼ig6deC֛oe|:g{zI],+ל6e /y늳,Cu5.:Zߺp̥AaTL"T[ PJx9G_v]gWv]gWw R7,gyîە_+F9%ԗ%,䕊L:r:0kǿ{IR -t%5y+R/l.6ˤ/k#I~>Ew3q^d<k{ XW0xƞƕge3bwPGdfddOTRH~;T+YNŬd@1԰Gu(89`/f]m ZߕYCsgmH)O^D{Az!e&X/f*ͮHpG1gtD_0k$xCJ:;~_w>On˾5(/((K%9BU$vх$d+u.#>redl*;CnmY/%8^XDw(DR^&AQz}HQEUC 3`aQwV:!!| C G&΁7p`O  Hc~%v{[0a} wSYHBdl:e=-Fm7,}gM5A҄#T4rZ~KXNq4b eL\GL`hƂjlҘuU(N8g(6&v2G+£(HDp1A *oEYr@eEU +? &D QY$b)T*c0GI JNiҧ>nNn#ЌR2軿`lu9z$CXo"==GLJ{u&tD5^k;ʟr8ޕW8A͘C뻪ov63 q @=H- ^$fc `9 #*S״^ Aj,Tӈߩ|;xR . 0$%-]gE|Q- 帮ҲdᴢYGm`;-.Fhg=} ^W[A\' d>J.R",-jд ~ \ah5VQ[D#L(l2/A,4\ A26%S&mc;2,dREk  bƒV+ow;R!58ql}}Ћ8e}tZ˙w_jĤgn7DjcN  "Uɻ`= B3k-%gMDg\DFw"ᣊ1,H}D4UK^TGj12<׋3}]dkj^:D:V Ak`rU~#;=)TRۧ0inP1ܝƕ*G 3ַ RDRWNÜ٢x# FA_*%ɋx5+I&uAb~eEZsڮnXyJ2a, 6_{ (@-FW!`|xMu)! Snw_whz妝[{vb qlQڵF{b 4/|SdP42z zF ]M* '\]/ 7*]*p*MV34co 2%Bv$[ YsϺy.r-noOW:B'Jw)Zlf}-EX\F3=pPAFm]*Ch/Ϟɓ_r*3 a Vd}uޘ|:gg[߄/=*ђuF?rԢص4r|f9d3 XS'4&.pV>Vݾ9f} ]a GE`\3~0`Y,ɇ2-9;RJkrhLHV_!"d !NG/<,$:BU{0!k7yp?q0[1(a{FhGiY"P` ^yʫ]0tʽPZɦEo66n8ݐҭ!.>=2̭c܏F mpNDKshvt8Dmw4sPqRw2rf#™3䱇p/ˑ̕8{f #h[6p8rEg7aGA*5 * ۂju 2ߛXeӄ*yZ'*^1#z*,1nԯM7Bo­ɀ:߫u`ȿkIk[ AZ+&-侒4 089>;SEN$D[#W1&됐è._&*}дϝTFWYdu,sBv˾etitޖS ,.JR{/s 2=5w@Ȫo7p r#b`l,[u/~Y*9ge9އ!?:zNӞ-Et29ՂM "%5΍RhŤ׌e_r0%29+._ơї9MX]-ϽЪᖩ+:^ǍTɄ Qqι|wI_Y{3zx9Ceq=2|xBL۔hP:u,/Y:ry9CG.u$Ommv ގ?3zP&$ͩ[:Ea-_BC0\}("S5 2y`};~#W4}xrYX 9x ̢2Xr<7omynWi3DC>3?Rajߐ"z7t-w׼~o|0z4©W~a,]*r29 @@E;KKV"G#2)^I; ^½vo1*v8=W.ip7,KwCkzFxnV`*4-Up\RfjM~@'鄵W{0PnEOOxk˺2_[ӪJgrMܿr&,FpX,nKcfɃ`p #\rR'.4yl`4f=Մ\?ź7?y5#9ڳ)PX/gZڀ 8AnYGxΈI7blE6DAg+W.1a)K)) :٣DJK%>wQ8&0Rlx/&]DSZ 5c6]:`&C2N;\YBf/੫׽a_LFW|枣Cwj=lj%|`o$9~}tfPqOTⶭ/;نvc磋*G/?OL%9HyըX/y'D8?w28zibx7<52 Ja[Ђ_2f>ڭydZXuOGmTG1~Qg0lX^$G?XBr6CY1ݘ{e;2)f1ly;IofS(L!v&q|ҸnZ{4sS!i]5/I[C?#{ڤ?j7m PI❟^"i#ZR7 g|K< *U6,;_М=d,zפFVO hsv8J. 0 =b·tuiԃ+hrX/!4;ڒK|ل}ON/:t vZ8Єf^㠌$4dOUPbV+Plͪ@{(^hgٰ  7qT*4 bAM$1& E)N(LF:wiC垎P7S8VR-nE4+ky+[ (Lx'>;>C\I3v)q) 鎮RYVl~`ȝڷ2fc,-?s1n:VtxlxQf[j_l?=X !Fό8Gжޢ&:DApP`'l}9d*ųt )^Z<ÂnidF P;t1;Ѵ 8+(n#>A|Qr[3 e̎hGHnv$wlG#nHE\3%iTD/B6@)lV*67y J CE1yY'#3RQ'=V5݉I21|na?^ #bdtU^y5_>@o+bYq=<ӠKupi*Ӿ5Tv*ój0ܜ\'{InXW 1=TJrlp?!@t(`֬v+TY+[9pM/yw@N62bhgyYsâISS-`u t*t(rȹL<y n{/Gt{zrY7ڜicZ!XCw#RѴpfW=I|`>VI{DR:Ǚ2䬲W+Y=W3J^dl҅*P |rPoy7*[ a2 : c6&!J}оf]~s?xx-~y뵡c7cL?ʧ g;K1g""\ z|q`UrkQfY](O& /7K>)B?YT NI6w-H68[JO9ۈj^JyjxR[;vjBv-rcކ8ϪR3L|F)rI؁(a(.RT:s*XXC^W tplVV7 轅):d<$4OkH*ۃƐ 5xMYeg3K9ѓ  @ Uj~Y O[5MLK-F8&9ɟs˭wV5ϱ ĵM ˡ΋xQ<$@hL^o͖3G_#ڠpÙ9!M7OaΨ4D)إ_2RE)+S T=Fl:mĬQkhXsO6FF>ϳRSB/ue9:z!dOErz1*k*|p0 ^wVx6sawm6 y)NB!L"Z@ f\nSJU#b(YW{aɣwuڢb)d|{]]`<|zT5 '[U'c+6\}݂!'td6$躍?i:h\ X#1K*%n١ 9~%xjUJp M#teWfesڅ9œm9%5B PdU:odIq06q}S0ݥGYJ0LS]rW9! EsLLq_A#vjn>@V 9^u͞=+3 Ӟ ysZ%hdȼ;LXp)0<8k댜UΨ#(%k_%2%Q @".2Z-_5 2ۆ`ȃp$ +BnXxI๚wjA*B2Q=Bє&mv;.Kd  s6SN n?D:$xYɌEK,p׃uͤ t3&!$wez>2ʒ>TX#ERw%qgr[*藍O~s uSkd*}$ED1GSsl+l-ՠU)MzqeJG6:TWWpg"sZ+- jawj5(qkт:_5;ɡPVZə@ڕhMYAg;"_Qn I+׽wi:fAˊ(Dj)>>xZ%ԽITn/u.~ӯ=C{s{=_ܽGÕ6S'x^n9hߑ8f ߂©:񵞌0S}߱]ՠ Mt~7^ct6NfE=\pzV[__(w_5T,_XxZY\0u(Wy/~Z|>%uETXc7FUyqb&?}cu$zv yu+Rtq굫ɥd8܆fOvGяN҂A3>Oz?Fd{CS^yqt}}waLMCy}$A!WDO^#E=\ {,wjpٿ{ii9\v-bEܠ}w>=5/#I| m;An6/vYpUŏ#e~ChfJ*g/P} ߹? U'BTVpȊYy][U9 n K ͽ#=lW, rQYۂ?4;n5qdr$D ޹2k^:n1T ,f9J5/gˊƥג*`"{i4Ĩmj:;Gףpk!\hGh$!qJw|K'O8+V:"(#}Y}ʺ-= 8d9rSV(Urn9{/HFrSK@weS4B*%0mŋÁoAOG_A@:*|fOSS}Z iӭpɗ"+ U|s 8=jP%9F=jXh~@ݽ5Yh%(sj#0g@pmW BX{Rwn;íP jQ2:Ljݡ DBFbVpAR!Im5*UAf l$e<.V'0 G{iVgɾ |3C)ܐԌe 3Jc|B6J`4v$0-`ed\A ױb!gAiØWyt0Aq7u:.:B_ɭsg h Z4}ǯ8/ 0!7kuWu袖7o-K]QKKW(pܤ_C.ij:@S llv6JG{kv9[=7.qF(cA0<*}a ea\{z:|[)+}kv7ͫK|E]]hx6ȶ<<;z{VeFqxb)n`jޓuADqހ{|s:)V&J'pTVs.fpMLF@(uW7ż ;iFiAoj^ ǜ$Dx ڙӫ4A[S;vq=JHPQ BS#No)!0R'M.w.{[PZϧ.V?eJЯza[ܱ(춭DрiE~O; ף8o { 3`Йi@Zg%:>Zi虍S 4"NL%kuk{dSI&#NeX|k{k; }Zۧ4>M]ZL.5ATrDEǎRBDoy+ _IET(JRKĤڠK->&P瘌WP G铼!AO!UUpmV#'&6G_ 4`W. c trr5^*Su*gѲŬ 8:d#7:[qݘ4-"IJX䂎q?[y6v-M]G'kxz>|<>~w;s߹?3/HA;gdzߒ2Ż9=5nİШ]Z3&/ Дd8P-lMʔqX 8>:Z8[2A #F1gvͱ8FQ"㤣s jPbp4wEt/זhQdЊǣw q?_cJI{{AQ3qG_`zF0mRVQ]q0QV+Xh9NT]2JX# Y`aS"A ऩ@q 22 fIAbhTjZ@&ô\o̗W& JJr>*UʤMG5~!<CTuK_±2uayhYHAW??p*D|=Sy]S͐ Ѷ$A"π~J{q928$|$zGͤWi?0dL, s4!',3ju):Iw]ˤ7JT\"0hʬ/ w+d5^H^`T}gd6%Ik?Ex}!dԲKL<%?Zgpap[Γ;ǃf q0пdQr{wG.9MA]fpu8*D[f?SKt@Q².e_|þ:z*cor UKXFTF4QLjEM.Ja _-G' #IwLFp[*nWtwV oZʄ9hhb J:nh&6tֲn]ÎV>S">~dSc:4%:M"L-vy&mHB䄭y~`hhf+"lb`;Ϯ$:l֨Z@ lj S$@LEyi/Z' pu/ I`Hi.{>y:Et'o4g˺3^f,kư,'N+)ܪ-m=YdbqQoIjp2seӕUUgG*S-)"'~0p]lk3mvDz .W6I$DZ,cE 5:ǺΩ*D||1}d8A"s:D"gu#Sg-ׯ m 4݉u4|E2.LiN^9kWp5E2vK꣧CtRZZbr9ɽ$͒GSz|<pF\(ŝ2Ts~բ}PRTA%TK{8P&Y&( QuЯD`n1#"?u3`5=ZtnX};QoM+83Z<@OvnݻTC55zw!5;D2 |*~{ J\}pvNS`AT:=BU"s=p3}r stN`A]*Q*C͘׌EoV)uhXBᩁar0a־Vګ϶_7Ji2hdLN.+Vͭtq}zk#Ts'|79]UOKɠU+dʎdm0j0#O`w>Wj?:qc~_nT67g<~4?yFܴ?zqlJvatSU[thؼ(=MiK+o4 p: {:W{I{%TfH~ /ibW adYQi\9U-'YH#ߨE$g|#X:X{C(ĘQ䚨)o&(\% "`QGc;w?Geoo΍BF90-sK0s/]yv Jb(7A-0g rn]L؉-&fdˋA<࿬)Qi7K(-Ƨ+.bDą%w ?rI39cuWRʳ*47qS3JR1h-уq,ߛP)xGuϪLe5~$dl @q:% j=2Zrqs!Ű> RAS~))AA+`\ C14,'{ڟ}e z '(>9 4rNso0=#jf\]n둌b $3ޔؒ|j` /AL,QK6$0}D+S&jt3W64q.^/tLȌӯ\eA^u1Nk{2 ]!P85sIR$B/Oiڇ&rAK u k PQP5KHWaؿP&smF`^{z9fS0b {-${-}^1" . |8VȤ`vZ6^WcH r\3wAi8 gj%_а$+K.cB(ߐ0M ^@tcq:ehDH!etBBiQ*D/R ?Av/_oO>x%M6*N:!;ƛm ƨ Q&IeދDRAs)9}7w.*LsY {j+yN&eM#f5A Gz? SyIJpD=B:rPMw:۪u.vIp+MՒg}[ؕOkA_^e|^&=Vz) Vg3JұȞ 7 Os#w1k(OJY6 BYc4G!YXD 6L3  wꖠ쌛*ޜ|Tfխكk{q죋 Ni o3 :0E KZjlAWv8A8#9@&Db6A:|15Bz4F(N>P-i3Az-l6jMț t7(<7[CQP7xu1&(*Aa_`C:Bn" K*YP>+CK+<<.+b^#VV¢}%Y{d8*SV8c!6 FJ/4>ۇ HWPr*>;k ȢU3ylQ}nM[tsi~/urotMȻc/CY/~ؒ/pK%lrs(g]F)}Q,Kn)&bXsXH ﳺh՞h s9ͻ aH߼{8a$8q QXnijR!uuӤ7nwS#@aoV g5\Rʶɧ8<EvΝ Fz yVfJ_*Ni8E҉1c?=d۟Flr~5-]]O&RAb0' #Kvޱբ]6qQw*gq./9 uBGpg5xk U[,J0P*>x.7x+>eypfOs:mA;fO=ʹPq@u :GgRӘp2"V7E[^N_p!bŭǎXW~:&͗yyBi#&DR\6;y^s]6L-&L%zуezLJu1mz[\^`Pnoe sh˽? &`ˈG)?_Gw)ؾFG97i_ߣwVsSnU׵a+-D㴛{:(QTb" ٴܨ{.x@jWؙN|Df* YVI*ݍz?nUVJn\rj;Pkml}WP.+plFxq}p1|.inURcʡW,Ճr41Pbb1hD5Ux)P. nz`n~x-j?pB eFQ 5ڸ;ŷaՖf5gFa{0~6?{p[M{dtU_o<8#?hbQW:]x>7Oح;p{^O>O~:<ݿw .߁;ru7N9ݿ#7wtNߑqqP.ѠFrct.@UZ!meaÔ$~}Y.Y|};p٧!N^1']>~Ea2:t1 FV[ޤөGt"YiGZoh}sӪGM{=\~z} "gCXg`2jEOVO?ɻ,ΌײkR#E5%+SWNs^u ռB(ZDua_rsWp6fo?FlQ(k2F[^l