#!/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=d4afb12ac4b28108d5eccbb3c0671d00 # 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  eqBks/v>6G#2E"\WV:|%uH量Jv Y%g>I8c+E36cEa[|s+)*HY@8` EWW=QR2X҂2vS+f dlR%$CE?LY1x9+d Bt{.crAmꂴ Ez5{g-HvF#AJ;0ˣ t$Vn%%Płj^!he*i5娬rnanNg !M+4JC0e XͽHP>+#&Wߺ{wEl XÁ4cn٫G-qns,%9;8:nU[/pM=(L˾9([U"yK HJd 52`dN3 HBJ9@r!Y+l~Gj9@}r૞`4_1)ѳ̀yf@UsJ:^6穛| hrFu=G̗E{BGMLYԻ%e:yۃɁ6$7Ûo`-/ pp5$r)Ѵ6, Ӕڥ_@ C{Dk8݋_3\:=}iҬ.wCţπ+\tJP2 HMM,p!mB \C0" d!]6'kdc!$WP@KřNƲ1H[HSb8p6~`߼ɗl ; BFLaG4n BԎ"XwAEnQB@vpֳn7.xaYTiB#qpBKpF NӴ3 ^XK0}l Ԁx-\b%ꤾ€HImuE!WMQ4 J5Ԕ2/Ih LNT nZM'KeԀw9 CQՌ5~5O\O=:YXG2SՌ)߭iKplŰ^hΒ'&_ftn-,9]yRL(Y T,0y0 H c%RbL><uK%mh.cBbBѴr%s2+@9ܚt%MZ/n[EmR+@np!c+>.Dc!)+兒 f"YuѐB-UC%GKbDه? l>I|o6tFtγ}Su%Eò- "nk2!L6Ct 3p,V3|>\ڠPK\E +5Ȱ?""Bß <˔ !ȨƝq3,e>teaXH|MZI kֱXn\z5BdiS1S&s֖$|pиIۖ זE,'(ePɊ ͥ g*Qw}A+L}lLw˕'[‡JV>qO k͏`R#}!ۧ;Fѳ91$/dT'`yr꾳 -QzVCDhRn*E#X K{ ݸjK.e@6o0F?bJ7a>Xeb]Kx hns !$HL#%&Xn_wh"bRby.-͘b\mC\++K Oap@^f' ~Ҷ+y)k-qP)/gЇvU'+Hz-(  vR?jGV+uު7wa1sXR* N嵕+VBX]Ƈr] G I=}ICZ2  U_32% shWm'RO<nGTu3YjЕZ3Y}M%uתb7;-IQe>@^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|<μרngv?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@xxY300000000E?La{JVI$'w~y vNH4 q `'!;?:|Ihu%/T7~A޻`]I=}6Rq(ot)0j n *L0ΔopU|īӋe҅ _PbӠ-[ǔlČ~ ~ ȹZvSwZG!9Pr9J5-&YoLjG/Th*(p*efF5 oH2ZeGX^W-k[*^sAUbLT ލSN(,wۭi}垎P_RoE6Kky;7ۍD %(gh'>;:#\T  W3v)q)DW鎮R}vl~֝ط2f4.?FS1:tptp7afћxX #x<ރ {JADW :6׳54 G8}jHLQExWz=E$>\$Q_$Du!:g)NC(v ~Z"9Y'6?wb7|;~O7P%  !UhIمK7!%&@|& ZM@id>pƘ_pAda7!ԡܖgt=;v_ bۤΠrtwlLnp: C`*Tႇ0suU`q'JeQW;'FJz.Y%k'iN0B cQͮ'xÜDr$PUYX-+Á"="Kb1Qhq]3{DvxKɧ0XV|w,nLePU񹊓J:Beٝ{ȼ U]rDJ/Yi2pw1oOI;MeO85d~fcoD.6+s.qɂ`{YfN>:U8^%yWuF: BrrXpqBŇE/2=aXE?R#{.f$8?^{!akTte/3k5f42p8)q-5mGvL#]DtU7ʒdv!ŵY2HU'J3wn#qQQa֬I{"R?+]ʰA^O@t+[nO)A0fp6z=vX1pjI}@?:5 *E~9GV0m.B:斊iA2\^ 㦹JVr7Euęgɼ2UNG;*ق邇 RƼ}Z%#U +79~"<[>!B޷ܼT\*eJho4?ȐEkiisˬR]15Fh݋y2?Y,g3f?/IxVyDOg6~tF :MQڹf {T{ҭ^k8o@ ;˝T9:xdN Ba?ZVWň lj>T+[2Ŭd ʌ&^QD0 )JMiEu()_sI 5S-wὔ㷔D"S>WwO+UM8F/N-ΑV|u $zF_I Kש>?.^sX5bt]oq{G;j1ۡp8<H2]B{YyTin$Yzy6ʾȡtˍRG`\ _Oh:U`rGNRGL4k^\#Lu2NkRՄ~Zl[qU7%^R(f)/Q N̒TO(+&"˗ϧ;5bl%춯rxTߔ[t|<-^O:F^V/F>dݥ`6& H;*; 5xd.WM|җ@b!DS]W`ygn%Zj0<7i/99ܚY,~1s۱3Iey1-B:a_b**+!h7KRDvj85%EY\"Lk6R"E^Ix7kS&Ԅ@$eadG-_55pZ0ϧ epe2d}uX#\SztrO,_j^NN$^{f͓mѼܤsʞ ߡ; luC'͞*T]r oBoNKG&R-AlN3n vmN,Z݈!Ouڤb')jd|s]/]ma`xŞx>ojF3 yV8bP+pve%BĆyd?u !eqsZccq36h;$,'TJ0)Ff\CW*=P7еݥ2imՀO.lT }wfvG,jQg#7@&Zm{!!OjwQvȦ0gc{̐UI֍ޠ~‚ w'rퟞ᳊#m5c$ŷw\z싵E&Wۄ_^F;1ɺmtWˏ<D] @5 6Wr/Y-HVȊ< G}5S4AФ#Pe)L7rYNa!>z;I0/Tբ BS\{lKnPa &2#X*fBjb5HV9x eA-N9p-X_흝q eYo(]p|skE"x*Jސs]Kc*2 ^VD!%WkM Hz+TR֑R|5_㵇~33g3?)rZLyEFuG1@MG ~8<|ލWv2 .6ySvO^ǻӝ=:P_zi`)*Zmu2G]T{xl_y>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 ٺym(OP_>7.K-RS-=يBV~ zO0\Fj4Y_\~N*}(Kf#A(/i*HY(RvӔ*m'# if%i<`-?׳B01l%й 6;BTdA@9O_7Vk`n_MF*6nk }d5~A"!0rѪR ݎitOS:V<aQt}H[f3;1F(qIPkrVLY"gmJ6A0 Ah~R@#Sc jCpxԃ#6nA!&2;lry+|« 4K7Bof,Bto{$7B\'KqXZUVP| rfvcm8h)-繏%b٫%_ɔ|C=|nu%@tv cy*Yl$ef> 1x5nќI6ZMhxe3)TTՑ"9:Pd27++%>uK'$,ΎH-.ϭDo^WاzybZāI;.1+7Rjo6WX`]_h; ܴ-En9\Po^5 j4W usۊvoQMqyeql);I93Hd-|߸qwT tk\l(aa+v4ꢗ-SDIkYzA}+RK;% +nՖFVq̞ ;1vV9f;ƨڣ"bRJeW;O &TP[ P&ݣuNoZkutзs?B,̶Op &9dN߈)9|ўG'O#> RGu-0$ V)~30"K>qc}v1&oϰK;n4H-X)=g55wK'UOSiQhf%E^yfQqLO[/LA =K/0x[nu/UPuNd@( tl}uisAJ鈟F^g{Ч;q3<~s;O)BՃ N@P"7Q#9'2j z<$㴉5qo|>dR&~IهT'4 @B]:󆽼laܕU|0+F}$\l }֖ 1+8Zu-a-u  -6#$倩g'4ApM8/ћCS/U7L[D.%Q쳥@[6$փ2fZ׵@%8vOT7Hp|v w;z`}ƫ\g?9?v7]}߫kV= ~5BgQ߳Y,{=M*^}z@~Aġwe1? USL2 oԛGlr e%09ܫU9+UȂբKNk*b_'sϩGBNۗ_-%wϩ5qj00{N=緩ISa6Zskz*j 5 ϩ,R8,vpz̝J7fo7>{ysV*KhRɍl'qPOڊğzu\HG/tj A7K@>?V#P8bQWJ|}Pl|x*9ۏqI?_ڧXS@z4$* R dHcn"{@p+ц~i0=]^YW_..b(dnT⺷$.=fZfj}#\aU|\YݕL,࣊a W\$K~Hϼ1F~jk(D ͜ ^8,#[F14N(4˘§rX"C@6 o8W/7'{gu^ GS.wjqKm4 Gh1Ͱ=eT$nh/Vfmj+N]Al# /bH(sfY {buNƗhpU,#gfk/.!s2P(yMM¿hҝ5$)tuܻ]\]s0\-4F-Ci%ܺ W oyhՅ]Y`Tf*&^2㙐aN,Y}(WH5ަU5TXYDaED< ~ˍX{D1d6{Rʒ ?=Bh"'kRF+%(G|`%!:;f@'nGl|F*Qu+u$kZ6=GՅ{d̏]Ό@Nt$fta/b51ʆ%,}],cIl" -.|߳{F?lߍE"Y:JTyH^cr4F-iC­ V7sQ3;}10*AOy]`CBP`" s*Y_>)C[+<:+Ez+N,Sg9꺗kHX霍j ۮh2%i9Kz uVۇ2s>G5_姖и-01 ],48$7G3՗dLbaHZUP8]HA&Oq_Di_y 4FdqFY (P ꋞ- 9<.H~'Z\Պ*p2a<4rCt) L3?l3?ήa fN릚x6nH]O4ZpWXy$]v(/3ݝ RTʶW@ 2~+8JX]*={">:8ݧ4cB'G> KOǾW~\3{=y}ϼagӁJʹ  @.2y| -$ou<^C.nKk+k?hocQX:]x7oح;p{~f>o\gq3޸wZ> 7]8ݿ_wvn<ߑsGnn8ݿ#wG\.)`)ӝ34[:s߬UBR)Qq;E\=كwO0%yL>./)vE9n>N^9]LqY I?CIbeKFkOތBDԊ[(e}6# 4"-**ϖ0̴rf޴FùWǸŢj,vb ҋRfBwVNn~'Aw58L@g:Ig@ܛd0Hљt*j+IڔKbPhuXN7qh6WhiVZՏN6-#K©zC:BC JHLI<}y 9ZC3 n0ipa<Ɗ9܀5ÿw/keth5 2 =zF4ܸB=ƃ Q2%U^we{S0j0$J\3EGO4ytf" ïRq_C t[w_H:i1P@p9xʤ;=x;{}oeڀO$ry5bbIyy&?䇙0fL~X%)_WMMA1uͅvp4q x`2ͫEg$HS f~z4?m{k|>Ha+@Ws+X]st zo~kY?O"0ݜGO4dV]f㵗w>#-{\Nz 1\Z ,O!fF+:"s2c+R2sA ֢;!.)[b ~Εe_õ Gڣ{M*Bsx3bܾr% K,>ӾZ1Z;nc#3)q![s3iۂ<ûZXrFSXR4v ~f?|0