#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=fb62412677cad630ce7703cb0e60e73a # 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 tc)uʤ^^֫mΡ]:[}@9aqG55cDM]kB@&YyX6kP2l} S]xo$ ǴݥdI݅$KY[&\(ϝ/=#c [P#iq!Mc,X0@+'0$؎oG2D\=@L(H$$5W@܏& }=T!Á,t>b3Ag@d&dO-6"e3bG@& rMhh3@)k4X0xB2Q H`0#y%}'_Hs-+R&+ `1cΓF\aj%9iwH|ȁ0u.P,Z1_ ZޡeC̜;=fŢ2:vΖn3ZT:#y*as0X X@O7?SB5q1!|s)19Q ŢIjqXKD$Ar`Ҵ?6C(;Ϸ@]ϝW?L򎏎6K.ITnzYK֪w_MT @b ʆ\srt/u2N= 2"WpVȃb@J`r @0 ƎyĢ+ N)LiAR;)Sxp3s26u)SF"y@< ƜY!@aHx=16uAZ"==ijF$;y`#Α %PQb:MT+ΒbA t5D4ײzOX4JrTb90]W G3KX榕` PR2erMAiI T+loݽsY6_ 1# gq89FRmMeW*$f %2`yDE2'd{ |} `R96X~or9UP0ﯘ̀Yjfs` hj@.c1VuR_YUa@DSg$Τ&E( MjJC$mwC|&t'i7$Z"fZs( 0\/q3{? f楱0sfJKi&s{4ӈa)S Iޙ:0LYnanz6o8]P<6n(d_ë-[7mְcfne]}ȇ02\>V3 F8Q*{b RȲXHij@Pƻvsjƚ`yB'Z 'F,,#{O_)d~jƔGV4_%f8bX/4gIO/vQvKWP:OҜ B H,*xA^$ ){En~1_UY~&{ AR~6h~UNXڱ_qW`r p{thZ9ɒ9R nM:Yܦh-{lAEEw-"hn Ej1mAC[ "BId3,`KhzC媡qtӣ%1Nb6$zcp>7 :R: sshY:z|܌^zSIaٖ5\ix&|ڀ!kX>.m %Ģ@ pd^G\CceJvdT8\ jpKIp}knd @~0R,$hC$|5KX,Hca!S FS n݇ 9QkUf>8hܤmˆkKӢ O2I (dŅ҅NR(r|Ƞq^@Z[Q6\ʻՌǭbÎ%+5G0)>qǐӝQa#tٜyTȋDd`Md2N<@uYX(n=^+Ef!"L4Kgf^i7}",nRQ%2 C\P1d02.^%lA< 4i79 ,H/Zf4 J)@^Jx!Scb$f:i74i 'f9%C8Cpߨc@Ԏ~zj78h"kzs9gzvzb {<&pB,F^|̛Z+lk HmE.Y !9d=|Z!ݳ8~>R ?I[*jcd8`? !óG +L7ͼN=!+6Ml`(js>d{"Sa\c >y*L`'_$Z4T^Q/Czgy(kcJβF^8vtPv~^KXL!i10DDZ9ֹ~8SîZk$]${Y||  '"N I*T ?q'lX-eGNO)p> nFd57D7E"GF,.1X Sʉ 9Zу4bxXәdJS1<FMz"*Y%)S/<^j7'ͬ?8CHZ~0ZYY~],>OaQϋ = fƈ4 YSS6HRZH2w6ҁ ]r0KsGnɍ~mu7R[ )Qqxuƽ(k7jҾGmr#K*x`miN}Nh3ªf 7{c18sHhSB]{Jy8ݦ2 l UME6~pbb^CQ}K[Q/&$h'ɦ3d-q#TW!E\ZOf#J쳓M/xb<_nwwnoU"./3_gI5T2~dbnR}ēp,wq#.< 2 B봇\{EY\X蒆=s9{/uFR[{e|op_{ RlāAW[x ޜwW݋6^_3:1ՠ;I-'<ع{?9/~Zs{(om_A V;?1OB},99-{W` 0{{czqO^x1r0Wʧ=+ș痵feX Xľ-> 12K-g lр[j iLA+F+sB܄-}B&p5aW\ʄ+]Pȁʑp"A͟s$ÄW# 7JI (-Nm\WbKPo%UyA`|S6K1p"4r*P[L6mlv3Fo>o棢f.y qsy/o".xQ2t&8LSţNЍlĜ̾1!鷃[ع*aN`2fMgErF]q¥O\_=X0HAlMl~X^w\f޴P3PѲ!HGD 3s>PX==K} ͤOd.AkN2uY>Kyo];˷/ַ.s馾$ã:x\,U+$=Fr6l?(x|<μhngv?n{|6lWqB$ bM0 ;|ɝmkgjꖰW;1tW^=P+0J;W c>ЬajOk qeٗ%4LEʹ  @~2 'q%d29 I2;GV~rXW+UTWR029VdYȀbfM6°G Fyx 8[,ن]5fR?!>cu]7 ᥗ,8?(:N1 *6;cmIq}/L]'(C(0n|`[%p͡xxp5~BFYE/a`~Z$Թщݓkwԗ`(4I8P*%-Mk{,fƢb)_iͪa^QuBL  z{ /PrGxѴiq[fKI;Y Jj=PG? ʞCu솠)4ASF mi@b,EOrg$cԑ-00g`bvC8:]R|чPka+ltMw8BHY*y{o \")NULaxs .Q LAFƂjlҘujU(J8e(SM~feďWFQRcҥTߊMW)@XBwp)UFe&KW4m3 8J/ gP0qp=/}hf|F (,'!/V0wQ.F/| CB%>{`T(hѼQ=\0(J4$#VA1N,O>'lp6wkyXD-&n%0C×g| Vq%t Ԑ)Ef4ian.Zcyov~&ݎniA& 8 6۾f"hY]rfz/ZSBTbܵn74|qB G X@p2@Z[c1b(+v.P;|U1&<IzjImzaֽ_zXM͋[_L:`FUwONy UH$ ւ4TQar,0`o(|ھw}fMmrDf\_̘KKO WU"A/?5]hku d3 3u,x !ӨmG lˢZs΄5\.=FWD=G?Ŕ@*=Xn%}o:*d΂ ܹJɐg'R8i״t&#uZ]vO:8QPFctY-ST6Ϩ~F&U(rG-vW_Cd]tzΘ/dPY5X\VmaÝs59v-i5V rdrR))O%tSkg95L=4$SF 7X* 6+d-~U(B(*ʨ&B]6vcFQ -O,9L[[n솴)v=rdUuάLa̳,#I}/YELXy{t~Tr$ TjVE۬ H@PKJ3\^RjAKk1J]ݻػx;WQu l`};*OUS$>-)AAXQn [ƋFȆ ay7e2QKɇrA 3LxoSTfS\U~PES-z-0MËMDbh0tĭ<0RǨ GkZIpQXpvt0@G.w)w99!pt&ء1cC9Tbd8slzvmJEW B ]F~eF6Zg4 ><vtHDKb=p/HRJ3ULq7c&7Vd; Mdb5KږCpF-WQJlÍOQF^.b; uh;}efLZ1,ϢN_zIݣfX%JNޙw3BU:ta-v2YƷ "-5ŸۈE2-690_F¤/r@!׾5Zܟ{]-SW1;`u|no4aGB3E~^8}{~l~Ii{zx9EeqZExo: c~ٵOӑOȋ):r9#9tzdhSvҌ-*2}\ܵm[52\}(&S5 <~`rtEƁ1:~#/=hgsPex_ XSّ,Dss<xppmÝ")[>HBzoG@Ӑ@WgPc/zU_gFxf/~`M &PG̅\B 39hh("PjT åǶDtNb;pDXŎ2xʥ) b~c)ho%E_X"Q{W!;'5kz-/gjM.0S1!*al:"!wc Bg'W (N@e63S2`JXeh/o6m5(y' g&|LRJld& Pä(Fд͎XW[2| #bWvj hCu-aBD8XI"dEU-2% zN4o 8Qh梽G+^֕WGE[݂X֋N}?$C@xxG_gaaaaaaaa2;vF;W."͵IOjj :ꟑ=i64NCow~zuLz? K`3k_QohYƽw9ke߻&=8zlx4P@Sa@Tr`)T᪀&'W oĦA[)و @)19!/p{szMEwL0+*%5͏Brr1?t19 8 *n#B,C-z" 0wAĶIA9l08xuw8u&%ӨTj^> :;_wn-Ya[TQq#ZL*Ӹ)qqF6>2wOt9 +.҇ސ߈U{oBt٫S2jΣSM|иP-Wt@5M@4$& 8O BN+SR'RO2qX_>ƃ%,϶_C4&)(zEe! y_>v8m5Gİ--?m4.\9m>i2]` BUfU?|up$]T`a2h_fc2NbwwN4]&hK N,`˅ Ǣ]OvK9 dHZ WyRp?=3&KK'ض;w6>  BgwS" t=5!LppNˈ%HBSfɠXd.C;eX Gө7'8~#2O!l|_PԅNJ<0<=+N\ށ(#PM6a!SYQ`CI܋U<#aUsn~p{-ӿ'`0@邍+Y!F] x,PQ]v Ϙ^&m3`C^F%BEB}Ez224ErC!4cTgbh=j$uE%OafvX22ˠwu s'k %tʲ;y%j?7'R,p{_C dcTx5wʞ pkdoɨ߈\lHy yG!P[>][3rlGB6ߗD 7hȵoB|#^i;V ]l[q\?Hs ȿ}tpKq~H!KFEk&75 idtqS5WCZjڎ=GڻVn%ɐCEkѳe:XOg,Eٟ &Ft9$nY% tb+D~Vڻxi+Ǖa1\Ӄ VFR`l8/7Z{)bԒV +DQtjT8r-`*\,u-%eZ@Msk`o<3Pgye'>v4URa!X-py?5KFVl%orD2y.C }tCoy7-Ua˔:i6L)!qYc>;k_=gm}Ѻ5~f?Y,g3f?_4. ^Ef* ymH8"n.ts52[p&(v;$9r"t(+ z(Mk~;>n}V4eYȈ M2`T'Rd ҊPSFǹ,6@jZ&[{)o)/DHϧ4|zV꫸ph_$Zӝ# D!(I 4JmA Sk}~B]0 .kb0%rvXcηCpx%d,,@(Il}C~t|W;&-18JΙiּF(摁eHnė٥ ȵ$D I{UBUi'W;Cd̡o0t헤64pjJHc1D2*m*Ed4nצL ѱIʊ_[N[Skj8`OAL0d!F-54Z鮣h-Y`-7 ԼzWH2 Z'ۢy9I=C (vN=-U46v߄<%!񱝖L"Z@fnJU#"(S~Y2%B@7INR7Ȏ$^E' *(}#=|xԌ/L?'oaUg+&\/=J<7lj /^8BʐlLgmvIXN/aRX?(;PSjU"{>n?Uk/Ke4SoӜ.4\٩F,>v&<%;;4XԢκG8yҥ|n0LB\%Cxv*L7ң촛M;aTϞyt]>)(Zeq’?bV-4P*P!ۻ٫Gsr v|tә!oW-Y[A9 LN$?=gGjH o:>kLUHC ſ3vtcFu]3鶃y|aEXijlf+_ZJyxkhIGRnBœC(-|wa=^xj3eFV2a3yz!p~eQ7Dݰ~٪އ6DW/-H`l=]u9ۭq HmruSkd /}īE+l-ݠU)MzqeJG6:TW"j8,6\&Vsx˂ZX rZ4#7ã;;ʲk9 hQP28>m+l`׊DTa+-!irTd$ȉCiK}*-ţW*-,2v{5#w ϟ2A<RawuȫGv_qVqW7UWԞTn}LAޚ1twAú8sF彈*? y=֪&Û@je>y9Ԩ٩Y-ђ3@$cs ϶_F?8X>ﻰ٦yw} UAVǐPBLyfjHw~i ^HM)c) Ar '𝫬+sMmpQhu gYaKO[Oj  wРܫ:Y mU:uAv :^"pYG"\m 4lZﺛ[|kj<%kЦEow3/ආ^XfvK[ჾXh l'gIآZ%tLN|wxtm /Z2k8+%!s;>=y}}i\~'>I!ۦUfh';  }&hgZw6&_iF?*s^1^k.dxh(=t_QMv%#vДzvat5ۯzOۧ?,½<~<Ƥ'  Yo\?'??<y*ְƣWכ?xvoYCW~zU Yv\JC<vSrXh]C:lhw^m~tM,@8 l4o2$O~kɿ0O;P3?12GLpL sY"z7v爒6cyb:<[d8:tu]'w5FUjK>\Tk(xkң .X mF-`΀Z峻r=kBb[-G?`[!:^r7%ԝ[e93قJlQit# EՆD&' ?զ YYY᥂[4 +hd*f"a2k䎴ݤ>B][CD'N:+ryl,#a3Mz%A;SܸJ+i?2hԺôPUh2:Eqċ_U8öv0\ KZ;/Pr"SL,ՂDJYKxǜ᳣W$ OBecpq}YxUJ2 ,t_6Մɭt |"rIKGzҡ^yWt +g9_e@I˸_gu#0* ՃC˵:}@+`zUW1+!iv=*RVvF zUdR(LQBFZ#ݡqNTI>ψ,w]|= 0pJN-xѐE5:%REB^}p0LZJ-~)9a{udq3x,(o`iޑUђq^ltY}f\XtƼ )!w vȀ S& z$U.дR: j؊kyR*'V/v+ԪGoO4vLQ/JD<1Vn֞~U.brGB ٺymNx4|k'Y UgڔNZ?E \GڔA'2nWz/'D* r;׷O<ͅ `Re DOPӿ$! M|W@ eaT?WeVއJ^=/5`ef;ULv!Z5%e+z) ^؉^oc޵GG۫2//yx 4&Pot0+<^*O:Q`ӧ ]V_K, \y"Uֆr9ŻB Vay|ɃIf-D{</ Swfsqr=D~/0z1mnuDT$qYX}JKycfuDjW2E-+[] ]1%؊ێ,kX~CA%槰xȹ`:p.ݟgj/resgj yR3koYOoy HvTT *Tg ˨ʈAѷV1C-'hx 'D O lÊ.mZ$o >:R1^ u`ͧJUmu<`1d0ij0J;`4FXcn&F MeKf"1yҚa/7vr;gx1hrg| rÅ`[ѷtl2y]Uθ17|"TRn8qc,#Ih?[Fkď ieܮBm㮡I*fN?7hJk"uC1_'I_#ȄxQ]@ 93u'ɂE ҠOX]fn3lN[2/avKVJO+gM"lM`sU铸|i}TZfڬhqAĬo=z Sw 99*Sh'W-#$\B;yE2 CliN?P*LA}|O} 3AyZڣEG֐ux%i#1èE ^[K1@]Sx'`[ġD{|q`\hzR:筑^7N _Tk3EdPh=Y9*ߤü^s:cP= qx\%̩K2?\ S p\ E50T.Fl|/4nj1s)"ܺNg'gj{. (]%ym{b!5tqis&gW'43YQO!E !PbS:9MHaIn" 8mbh Fv\`;/_ma- ;M{No=a//[we_6̊Q"2ۀg) feD`<ÁeLp=NV]rXkK]=-co a9`*Ǚy b<\'2Nna{PKtM &SKIC:li+ u-P] ҆86]ÄA5Xy_0OΏjWwFqڣU?{m}}u5~g߳F,{=E}ϢgQBI>ދOHRCO:8.9懡jJV ^az}MZ.7d4&{5J=` Y0Zt{ɩr-X%Zd9ThI`9&N_wϩ68)s*lܦB+{NuMx_E 9e]] nN/RƧ{/b?vJ` _*_mSå#7|(;_` P?x/!%!(~Ng9\Ïnmma.V*O\h}՝>8yuG_3>gĩXuKy\#/㣝bݵp6I5t%݁ Srb8{x›ikhvPN_uwQWY!:iu_F35pnj>ȣg%ЪQqwGb@Bc1(~4ۜ#ҳ !|v-!&JPfcH8Tei3QZ0`u|ސ6،[$>0/bO F$>?2%;LQ:o(*-:sظw)z?ɨ4A֥z p.{9W{u=sV*J?fZuJSQ2,oRi\9ZOLLZmQAw|q#_X:嘢5ȿQګ)o&,\%#" Vgcw?L5~3י/d,3K0,3ש_ @^"5kS^ y׉5|C2UAvCUq>TjXoT*_Jd\OקcT) ʱp{5DX!b^.?&Ja`'r`F}8@_i7;(- ǧKO/b5ux?+ol-=$WVw%:3o; QݸL'7#[<*3%Ԟ)`O>$EyfT]ruG!k 9ko!8;i.`}mbe%Wְh5~WNrnsKF`i\0iق W'')-ZAݓ?g#GdBo;^NAד=)`UX퓙D7}H?=5-=fS w{-SZzYo1r&C䢠mA 8P`<lpZ!%Ttg*OaXU6{1$ 3t n!Ú/ ѷC$n3'h; Ȗ@ (  2֢M8h8YWT !]2@\'6``ڹ88|L3lOIGeڋfہDS')>}4[7K{&-R&.YDFCGFfi%lHkGcKH&)Jx;rh.ڽkothq I j9@r=mnGdGw> Śn e=J9 Q:+gn }ȡθb=ѩmTJ<ɚ=hMAjuc3#cG0] ]˥ƅew5|e!D+ |GXB %dKE (O40FxF(w#tvрh=r64hf'@'Q m>tp+i N_GE28JSaz"9E(/*`)H%ÜJ쥲ODn*Jފ}Gee4Rp5V:gc?¶5LEZ^xA]i Lj![EGG&!#4̜xQj*W%4| L-dCE%>M08|L6SXGVNAײ9+~Ю@ܗ!dZW^Q-1Y(7,~ 6Tc$gFsK1>a!`(j@d*߉"W ܃f@8OfyJ#[̏k3a.RS'MV'5V= kp:̿`wm%L| tJ^+Ni8#MЉcߓ_h}U~g3ᅥ{=y}ϼg^3bdYtw3mC/ =/p x .ɠgy;9֗ F==5[NtM8hq(mH>pz֎NAMY$p ei8XCFQk ~> 'QyIg+wUR*)/Z*'uh{"].D9Zxh.~:/f#PKzHojucd~K:Ki8<'" 0|1 q+֒|Q$F}fQ3EtcM:l/?#_a*쨎[\u4<0iצP&5vl@dmIJB( 3H >D Qӽ孍Hr"7h{ClvGd?*|ߢq rT]4bK0XʴI(ؼ_:\r@LlC,TS &܊PTխА`zeK*v2gn4 D?~T>**\2NR6107+>PnڷTǭ&ɞh̐;Ays?? MZ)6bS\CSl6n.g"'~P2m1O=an;vC6rb"Gz}*c_࿩M;mɝ3WEd<[^ >,rXե }dÝCZ㭕o7tUmɶVsI.q^--'M5}vc9m|6~2%ld7 ihJm(_r(fhO`fF6A6Ehceu%pk.Q +DT]*т!/6.NzOtCF7S &{/$pKs^Rx@ݽruaV7U l,KnFXX_7r3%2Q.}S9~Y!p`` |Vr=v{#g{g[oSq;\&cTKR3óhih!$h958 GKoI:m\Os(Х twhf{L LZm}Z#:X\QmWhBz;~A?.64>GW_S9W/Ĩ6B5?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.np2Ҩ\>9;>#1J5#>\,$2^.ݓ=x,>>i SR7b/_ĘN?TmE"h9.Qdt[͈.D$1KR71k3A#Ң)ɮl LkM.nFMk=~zu[,"ip @ -uav+$~gYzyt}K̞\Dzso;~$iνI)nOGH˪nM$nVwdz3jsVfUUX$o2$Gn1^#tiq;Lt$[ʝ>t̮ =ˍ>+,@| 3` H^~yz;;_//qVZF(֩Q3-sܣi$MLˍ+c