#!/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=dc151c9c4af7922c1c5b1a5a6dc9f456 # 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 [ q\Yd2\e,|d:k˄F4ٲgplA a ddr"#4pL f|hEYcW -!x^^(Ԙ@ DBBQs}Z` BZPC>qBks/@Lrq9"nG@ko4TƣP,-V(W)Z&JwE GWRF8فNa[gJW}`3+v#=d0L-JToވn7+Cd@d@g+dՎ2#)kn-DZ*tZW `d@=PBAL)H&~I\on_eB2iZlr@2? x0R(Hls 3eP&.ehdZ( $`0#y%=\Ƚ}NQMQ@aS)c8 (CE'JsU AUak_gP(X1_JCˆ=s>o;Ԛ j.&/E?6*A_P0T_a(,wIy 9s 0iZE!ɝkx t1ƣ翺>5#z5Nqf/{T}`4lwms.=@?>:tckAWmD'Q?vD)_:5wa?9]\? ?I6j)]G\r@F*40|ʆ\srv/ݵDAmVywCm0丈2\hYt 0 @0 rO,zu~zP== :>;o+EX4JlRyu|1$%\qk3FDJOi@i7ړy]YGFdetRo[0?&Ep5UP]y0>{#l*!P{;~X:io5l5@[  0" sæIPAtihK8.? {,<p&Tl+k`Gj̆ zD^Pԑa`j !軴)>7)Js'P9R|=E^É6tS&_D>@%`yPP!LhmWIxԁ4{k2x|2LV3!ecNuɯz Ǚ1 .HKudT"b ;2q>0/dmVNuB  jY^)tĎ dE:;p*M=Q-O/M%4sK8M,S3;`ρ{(~2KRW'Un(h*ęVG>_I۪&C@9&5!j:!FմfC9D]Qӌk幀w`ƭжЂ"nf9n@t7K7/G7SZJk6iݣFܖ>u ;3S)5m4m4ׁ5y/> ?\@qΈOEpmibxhF7Îq?nf!p)ʅ5i5"WQ|{P,5FŶH~$Ol5nuX,YwZ]z?Aw%ֳA4l+5Ȱ?ECß <˔ !ȨƝX5hb솳XOطO+ Hg~L,cEr-V <$`4PO{1a0'jmLmٰ3T0`#tٜ ^;kJqPu2glpb*gFO/Wf,Yk >6rqKDvkq'+݄ (k4es !$HL#KL@&R7I4cP{z6/e8q׷<-S)Y쟳jGz ߵP8gЇv7JW-h#&mxu_]_z9~Tĵg_B:p=\[;j4)o4kqw]wWvLI* r[߰ZAL\E9}OUmi佽ډ{JϡjM![4:ջjE (,ҮZcjLDjl8H] RBTX/>EE\?Y:=:h~q?m_MbRT_O9SI٩Tu8B,z>|c׵f^kB׸Ų<[b 7\44B yf-~jC:g}Xp{ar>B z0(c⢄dSv٫e` &ʛf^j+f&60Q)SoXM1,aUh$XEǫNŶV'%OӊE}ΒźT*z)g @ŠKSbT]qt@v~^KX^b`܉~AصBkD[q(eErᏻ޶xO=-!N~.q"l{{}'lX-f%'8rmFd57D7)'rx#?:7܈EWHj!0h`ТV\AUq{X_31H3p{Lay{g4mTš3&qRjK]b&yG3gה_@UOt]ۧB{An53Fim(JRZH2+:m =ѻ`(+ܬ1"-uo~[ 1u/Q8SX#36Z 1#RQMnd),7V9͉iࣶ6A,x5c_'1řC@tt~ޘWmN@/6(gctf5p^ Q}K[Q/&$h ii-~0YKD\yJ*lf .-7F= ʘlWQ̦S~ȵg_tzz?v]ǮcW?v/61w2u^ _6Xzn%&=+,Đrre8[vp`|V;"u]򠭝zoGJ-`1gPnd0r^!XA |kFsq6ݐ=~ĿiSks3f'p߰8o/[xݟ=zk3gN9AJIB o'wu:hK40L 1yX+ǮT{>E3-nNa~%LaLA CΘ~?HzޏW<~s쯿iM~~^kŒH#CtrVȜu6)t$"0WڋE+&΀;ݙpR 1~)N$(|ză|7`g̈X l$ <LPZQMr?sD_l >ju'H!II⺯zS5/´L&Y1Igi'/Vp9se%i:I;ţ|CD.PN'F{u 8@ 1?M25XpY^tJlB'W<j1ʢ;wonw?9!2 {UTSk4u8)"pTS_7l/gI!\so7\~_*0J;} cЬAZ:_+uGm藓eTTō|@~۟Ke!C@H9ڭ/Փ|]ZQV. Db֢VIs,f 9d:A+:2\3?5L2h)8,Uc3E|2s?f(mv}QY=iOt(;C{F_BQ'ž10:PŬ_4QT7s`0o MEhsSDwSn+r7nz^I `]f:-0L[AI6CId3Y;rZqW:΁{8wp$עsֈrGx4-=,F wƑ䖐[ҿamO +0DTf"> [xHG[`*! z 6k c4-00gl!jw*`?`7ZBwMeۡ8CJL0u)IO@$)eHaJia`E'*F4):3 & /7s_mnb2N%p)wQ%AI@CҥٓT উ e +?0EuZ)U^i%E4!N3< b\@Ƞ ɉ(9;`hE`_Nw^h2B<y}!6DcM Uã"24Q+7ʟW; n*TY8A9,or5MP1ET /p!,TQXVP&\F' wm6w1i^ Lxٔ?]0,(*57&z;hp0**{Q`V.|o@TyX/'M0>a a0.*mPM&n+O*a7ݗ"&?m4 -Q*N6_ xZH"Vw7)zF@d/:q:<Ԭ PFo/>]`\_1t1jhr\Zg1\%ToDVv/4rRdտ$L( ':sx& \`uB_Oh.#-YYelYEM?e.\ƤHݓ;VEY i~ZOXHؔ8 Yߢ1IM tZw&h|e\+wh|u\wh|m\k[bqoG!7kv$`Im,=c )Eƒ_B3d&gn^v5Oѭd -iV*ٳ\9̔&Эtk)Q8E֨'4"c1:kh{k`P{~> oIG0K+]|JQ1 u%3}ICق/ q set-}Z;ٟc*Z{VaRY,#1Ff _52.g7|YA:+`P[ߊLJX$u~E\'钔LpLH EKIѹRmٻ۲x;UPuf:D38TIWM) a5K%ǫ$}/I -&d[$9F]+-_l d۰?ʹ iQl]";]$(KI@lTJ^;Dd &aOKU;1Qf 8tK,jjp; ѐC. d^quRiPRů9g 4I{4g.4-Fഁ@K+; !B[Q4F~LAr{ vtHb1n%(Hǒ1BZ(b2dz-S$μq4& P, w DRT&/silH,&QqJ✪л+IX1ء WayWX)՛0,.EieE/Cilޑ57lh=D)ћ s;RެL|]_#7a>?mgrSԌdqխ䕦n[Z*KCZqe?le¼\*H-uR}r(a$`Q~@]]x:U4-ಬlP>L-+J7%x Lt;7ZC&V%zo0E(-֍Syҝ-;88u\z9s0!Ӿ9t=G>i<^GTA8c{]{]N7sD}"2lT5mWQX>?D8nx(C}eeu6Ř\g08Luɸ(nαw6*.c0ΰ_Мρ%{p{H-~G IhaݫQ#%yetPq3"s4Jծt8u۽vJ2afPZd}*ufsb w.\yLMD;n{%o߁=J=W,Lpi0@CEwOu.ؾ\/cc w-ӣ8fe^ˉhk2@Qt+cX"ӌhR?%7ZZ#FVR|%ZU* x-be6ԍoOD.fSHun6#1ا:Z[kƺrT!z.KFvAaXTNcߛ"#}/Onᨀ&"FZo2/hcS.{ǔ#m֬wmKJ e_Η 8>vɸ &ZVC ݷ {!Z$S,gZL.ʙb\`.:2C翳iF"ZoӳͰ:h9ue `\D DE: eUFV*nݖ)(|~8 VJ,e!op`o`8#NđruEu'.3JpT+j/%ޏcjc.Ǯ_Ov}d4ƹ0>_,_xPxsr!0|݈, akH 0m3%fl&e8 Cp;lc>d" ngih8R͹H #{$wxʺP*ӷmJ!ʘq[wjK۲6!>\* d CjPǯ'a.A ?[:|L==#7MxI&<.up9&FvVB^?| AC-DlbM75)k¿kǿKsPʘjN!"j_88eT0]Y-s d-b 1S!% BiU0u_5]V:߈zeG ۤջ]j1Q }W|7Ц%,d+cnMh|QGu,IsKF ;aWnKDZR6s A2~,OO mcyӡm7]閛f|\Btz9 Bgwb$e70[kFA½؏],#4.q@*$=E>>(60PF º@A 60'el]YW?,> RCL' 0p15,ē!0]7hq _z>A%q41} hҬs_ʬّ1TvOEp ;D&{C0a[ו%F ³OHHN3yKRg/f`C &J"N Q/A_ ғ38( m4|Φc/0OI2K)%d=80\;0eAFVK?y_I,sL[q}ĭUb/e|QH/s$O'ˎQ; ̖ 6\dA2? B"<ň3I-!6[P-t& 8Vޅj+nR@^3AзGIfN׃foc|;t/I;c;ȈHg(C^bg2/nZ,8^H^k LӟXI+T"4qh̼M K˴ј0"UѿБ>cV=Gwσu:*Ehz٢ŕU"XNr, ߫=B"e9tElt`)BYkbV)ü'i 2Slٝ@ Zkzx8VH"(%t ojdqZ'l; \ q̔I^2<:rݕXC,89!ϡpfN|kfz(py0Ck+I9+ѷN2Td+ɱ(dzN>l:u{ۿ+pE~͔N8馘>IFkaasPݖ]>և?jO~L{Ɠ?}=ē__}U/:j~< jF2 ^ g2dS b`v.@ƺ=Y.u*ViA{݆F<|@~;n>9.ڰˆ%X>nQiN3 Kdb6ܧ^`t@mR)|ޏ <4VDISz1n1-O/%xRI;t>O$2c'!S*JRGauvwO&d^+ إDmvtoq{G;r!#wXѽd:| eQd̥vc<P6l}]i^qn f=}%An 6{A*h5C>u^so_j*G'Ӳ0DH07c,[x _"M<ӏR>7CN/!r4(Y]Z|Y4EdƈowwI%A6gm,7d[kͥu]"VV%0pjp>M' HUC/䥣k"vTv 0ȴ{B"}nlp 8QF[2^3ͧ-0 hslb \[M/S9R:ń&SZZdTϤ4${q݅Z?nGll69 ]5)~j81%E\Oewm&MIZ%uQ#&@FQVb#DĚ:-2]2IdT68gL [.)UO4 tgwO !Xr[y, tSHth OGq|1*pfPlBc~NC%f*l/I/>dII6JOJGRS=Blv3ۘRT=n?̫N@P;:nP%uc~8 ɮmc=}e|p~蕌[^J$V䃿Y2&]+ۼu) Ƹ:RGE@R; +3ɯmSLvR}C6Sszld8p%A6,&=;oǍ$|բLj@762l q {ܑ0ň`3^w+^1F!pzבþ(2-_~De?Z-Uo6i5MuIXD H;aZ%D˚x<5S4I[(˒1};]EglB]~UNz&tBඅXM9 5M+ۋ.6ªN.",U)ͩC<xdɚKAe'ѿV>4L%Q&TQW JOq-j#t[~m btk6%%ٍIP0^6njl3oh9߱ oE1rc8<:{SS=NP۪98z5V6Owv O$GD"[I0׾wL(KbG&r%WIPM ǣw2-,!2G/# m?_IAy|I姹C<~k`ϟ}G,&yL{3<ē?O?O?_}&0S'PZnkޓz#{+y!i;Ji4ݹbfߧ^+qi'jmd6T0E͏.UT~3+ tPupP; WWpt_K|i#+٨AAI}ണvWyy7ewԞfQ3 c@ ]Ĥ~|&p.䬜A{!+`Ȱ7R{x)-x\η7(٭^j'cR娅{۴lC;÷๕WϢΕcD_6Z nGkZfsa; WWҾ/78k+XYdT^emfZjjxəZM+t4o K:u{3pRXׇ'{8mJ/%~;_O_pcHI8fBJ|A#̭X; \yow=?OÎRhܡpe6,"0Y_J6Zx|~F}E^/øbvh1^ E#c?r hNXGІkt?k[Cp&/_Fڀ7!R5i,f )FE Գ5b2N~ОF惲3 ЅIĮڈ=.C C]LUK"1hx)+ W00DhS|8Ѐu'` Ԁ Ty&Kr,TwO㌿p_AD-ȏ;K@ϚI^pr#-p&t}`xل3M JA9!"q^__:$ڦ /> ?`p%2ϣ̈́nx_5\IiX-5;ۨFmfdkKe#ģY~^Q}Td0ή[<.˜ͧ0W߽z[KpFKOW㥧+ϖΞEu/ F3I^??EV֖W5M׾_^o|էS6M4Οח~g0l)\ q,rQ0#5 ><>kdwXCqP򝑈ދNډ(OCM"y`~\@详$CM,#{J3d4QgϝZ)i]6?ÝcLf6Ks84a ^jx4:M L?и'%cSZ{r:hk3x"(`9%K7_G|YJ:ܣ%pT*7w%F^J 7J%` l~C  EW6&0g'O3t#kf}5x8Uoq_~vcPB5%\a5MhTCSUfhMF$xmfl"$n%^*@#zhil&2 F,#.(3I%?h"SmJB!&+uzYĝPX 蚲8VRi]t<˸䙍;!ȞN?9M#+t~[_xRTio76WMyJ>"#i%1[.{GxZwWgY<3_Vw)<.@)0T$x)%p+nQ];r* s')rbB|rq7n)%X^XJ흾৸J0V}\CLn9N&n̐W9egQn9lS HZ%r7K>N>'/@8lt!nbcGt@']# J3G*ck{xR,F($7_3@K;/}ϛZwu [w3"C8Ai9BI`Ab=޴`~ QBHX 1Db*65(@Ҏz (ͭ3%('9`Ԋii8`p9>ql=:pUmZ&+;Cg'g[r+TeL6g-z!@nv|SsfPcQ Q =_=n'¤4k"hؿɓ=O<%/'c3g?]_Z??r#?r#?r"9 t~t/!@)>P,[a8$BCNۻ$Lȭ"( k{2}݌eM E@"~ PJd(a)CE&ONׇZM!vQ+yeUbpċ|[plQKȦd\y \AukpjT{!wU.}5y 0wEX?+1zͧ OFUt+<\|ŋL(LilyVn Mg?8p}@Sm1.p~x<$3e7V*T8QhK" V3(NvZmԙ٧$Q:\:%.=pgM};I |cR''.nNW%VrIO嵗ߡN2CLFG"@#E!\gU$&Vx5.sw&BbShnmK|}kOWe~]؉߸YT}ݫIO3xvS G5ʓN`{}&e ~+ϱ_BYu(,Pa! Fkd7n$r*g+aŔT LB_b~30n4CԇKk[D+($ߛBc6VzR9;Y*dZiFPAYQ%R]R~!Y +ի-(DVsʞ9w]UN\gs 'omY:DLYW07DEx)ș[Floi H2T ${ ȓ &E&S{ з /烽=J$#N]%jݫW2]\:u$2ha SaJ} o DV ۘW\5[l&:%{rVh9rDL\ʂ\A.Y@9HA [|P=2z8EN@a9[-j<g,0lUN ([ϫiTDd [l1o 邧@#J>(_JoLx*F@ J|a?2lQ{ /`3bK4.R/_96bT,YS͢?]Xq6Pݲ`: JPB{ h'wF3[L Ӫ̱0v6jG"afzWsz@2Rzkw/ӭ8!8%Z5OBqAcB vҲ,T@PA6\I K Pr_4{e>S3&TwDƖoB/}SJ=A5ިzb"IZJ;n!KFoVX]/{pT \RW=TK &+.cG(%V6FN= .3RGcyc6f1'8HxC}cRf'Љ r ы;søK 趟Hf)z'WEk~.>"*&pf8M䂳o=8|¥Ԑ'l iCoZ+8 '7d59&cp"bRJ%G[/ ϴpJHl7r-5 *胵1~0X ju4Mt3͌:j *8ݟBzS=9J}Ιt'ga5>FE`7=32$c+ cƣ_ץN[2ϣA%=+8zŤJĆ.-J[M1AiQYmS `/DeAĬow87Ҭ@gE?: "!s:6PF 8JG}r$)g$hХ;9F6O!D`{.!)? $(n-U,O2h+9q`[TwHa<M Y]Q;PNNa{PzS*Ț@LW\LW= ^i-2C=@# v*r$ 8c>XÄ#`Nrjh7IyR?sOޏ^7dX^Y[v?=]Y?<~C?9B?QyԇgFP,R{נ|<=z|C;*nӣMwR} ew+4^i]=tvj=w(կ 3xV{b?:Q '4AJ0FYR `GᅡE./ Rb=^ɏ=ߦ'tmЯoPfH !ǸZWDn *bpV60R,n!jQ2&,M3iui j:\L@`#]^rɂl-~9PhH7M Ҏ#d]i V3v!.]V*J?LB r:8T SQЄ, 4$T8*0FdKAY(Q`۫pW߄s+Yrp 4zXa-}'M7l-sCdzBl(V"kt·F'G+=tfD]5!<^B@p%Co>[7ޥ^?y~,>j, Ja;%QՄa, ٖ(勬%1Z^sVq-Fton ƿOiPFX.[qHVczd22 vԑYԄ&[(x๙ziL1? aSG?#%2; cW Ib5OW@&Glro!}$,uSNFqixްNXEFWy 1Fƹ7 bA%X'XbQ?ݐ$d]E]>IPrcڧ>va%U#YFHd:)1В<"ȶ2Ns+~~8;B{Ip4e"1];GY5e$*xj\lD6AFEamIUf CCMWѼ ^۽0)▉W|,s" SGFHӡuFp0E|G+yts_ED¡JP]?ƛdBT![kPjp$N@c6Mq&.Ζv&\C~hLU.QfܷlCYq Hkܫqb4!:lψsBٷ(M o2LEo[+HDHfDĉ5dscj<HdO I2 2`_h*rfŋmfb`,25W}Jּ9 T_!nG53[MeQ+tŜʦيn{_08F~3!Hς LܢnΝE eG.ud,Y,ǒxlttŬߺqk en.* :Vzum4>lN7º ox, sfpƁ$Uw"S#)a-qM3(D:lK ,0q蒢I)QчZIr:CP#db6{(̱֣^x+V"14Qv?(Rr|ш^;p*zaB(3a E%8::Щܘ^3'p(bVzj)W~l%&Fdc;Z2HnC3eM2VPx:cš w fܨ1(w,~f\ρxzf4$0plBd$RTъ*9wf~X8EGP sp,pfXXé.2b2S5n'VܥG46%(Z騒/ #5Ha!'QN!ϋ!+P-%݅«wo£Ò5|Z>HcR?`ߟ%?ޏqx{<]?r׏?G{}^G{}^^ѠnC#F܂y> {<$@M8$%^4Rv(>DR4>-e lB B\~ׇLrvۨ)h6N BjZ15f 4!Vk!8@'@PW|} # BE 1/H5%缈H*l/B5|PǃCr*U gBJ"<+ ŜUvKߡM۱ɬI"Ԡ*nvJ4%/|l*bKe/g{zci79$(np,[I ;pS&-hLJzඡҪ6.meO #&喹]*ӦuJ( [Tzs4@,:1,^ݖ}"6" -1L]X@>Ngh&;l%sSWq @O\>Sdh }z3C솠ng0 p}!v&ؐGE= Z1>Aւ'2XW3mqpͷ:Z2%c5I p{V^(;NkkZ kB&WgY*zeld NjҞQ:ۮ>QؿҢa0*󄼃͸6\2:}aayyAi#&6XB &9u^ X)L"}|eztu3l4zT>Pd37̲3=|5ڲU<cu](n>ke)z'{?r7l奤ڳ!y'-(}Sb!KhHn-Ch;jv*]<]Q26^r( / 1ݕ1>ϕJXF&/H vwj-Q+,~S\p %Bx6j{׍r؈M()l(-oJPEZ@k%[W1[q3X$e(Tf担F܃w6B]Hb/\^ㅧxn.]q=<'W]=<'/|\ߏ lb@ qP,vNOI Mfi\$2%7/ݓ=][; O؂”T{-2ͿEoBqY֫;٩rULyQ7fa?3( =ɒFq3j6:,4JYYl|gY7j nuMWT[0SúA|3łn4L; wZ,6σ n{#SnIAw߹sGVXL&C;c4|y#8>&VĉZh!cP), F=LY,Fˆ^cU?U\DSuS 4: VF/fWgӄ3sЃg`