#!/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=c10ee87de4f6a8b032b6310081aa3576 # 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 ]$[ϙu%UvWN,WF{vWn}W5^Uj|MkG+A i{Ϻ,ZZݮUjU8a֛XS&mԻfYDjZ~Y1§r.<=/OV0%\ӚXU"Gɜz3+I{k!ƶOsM 1-\\6;![|N" X&ЁWD[ u⸁e@X>Ye⥙[30A0ux!0]c1NGŒGfz@=Kنd )L$bZl5"wEVXB?D bpdLѐ@ PDŽQ6<܀,Fc L`w''4ʈ?,<4/sQLQ;^Jw9I4{rz6$gvKD`;(ǣaoג k_){E7 JVHݡ"%tQK鞖 p2a.$ґ32bOaG"}i0T4 ѠSeµٖ*@rwH3N hz]y$E%2)e$Dm)9D@`]TiO`*n6|Jf .> ,ӘPAsa ("Q+S۔qx.U.¶)*(4P1q3ܨضH T%4YxvDr {7qJM.Xw 6e p4?d&]}#C nb. XV$!e vz- PρÖcB`9mI)6k( HN'ʀlΔBPcSЯERek"Muąb֛-V߿! V Rfs GX)Qr_`6_ΖeKe OAsXm۷5b[u|Z&r !/ B[" %y9D"P5et2 g>U`mFN*e מ>C&q/qcN_=: ux`튀z3֮# ΜvG:EcTD!d|V CjԜ8qʃ,4Iبsʻa' Lv$TgX*5 ^5vxtӝ٦&S(UFJa 3nb&;nc:y{7Trce?Ŷ]޲"n'ccOwOɱ$ݽF]K-=XԪ ,GtK|(`y(`[h2,펮a!g4HC i(3Z!HC4knڤ}R@2R@"R2R@^iF;_,D/-ev)y~)nK4LpdV>A*B\qHh4(r`خOF Sl׸>gC)FhPijsl[ɟGD=kk-YjFNibEeX\ͣ6}ʕk+ .]kZ2yDx0.앪J}ֵJ V?%QTp^A !6^ۅBH7M)FL<0T Y_( { y }&Fo9)~XQ5> la{ 9rtDeUv"CC ɷ2*4],b?Mmn Bn()fA;,][$9ldBu ?f[,S#>ԝdvC|.݆10pOޢ!!6 H~b-)A#Cg C*e󀓑E<)4.~ր01r L$P/LZU1$)ʢ vLæ QG-LI!"S SmQMn[nJPĴrrM6<"s` uĨQs| f[[Y,d@w.B1iBsъ8vp]Q*r>D^˭Ap:KxW/U', ,= K7+$4f Ǔ'I:zTEk4VP~.g,9c,UD3j*~T4VBa$SdaMIF8f,#T:ehG9 s$GdɻH*Vʄ}O>>eYbU"6-|'U" Xr)ٖNedu<:BdFN*ؕZBG*dlQ,&Xj`1 Hl6p!|pO R1_>r@nbRڎHrom2(p KKA)IGƮKSRlG}X652HDC/GxHr?=2;ĉTT¸/l%vg1 E1eOذ$#XOb ,ݖ;%Avء2$A26xü4:JU8ђp|+O_#FuǷ6lؼyc?6`/\L Qm$MR;ڇuݙ?͝[y!77;%b1IkRm _el*Ra~K5JWSC)ZV]Jin\6kPrQZG'wz` ŸRo=9vf)=$.<\iR)x ° ]a3,!6!\:Ұq pXTSA^HmO4?PҐ;wYj):p\]ّ%5ÂPOF۽9 AKOCx \p")m_'LWIA8Ȝu S$1d ]d[9ԅm5V5M@U$Z7eh2 YW~XNX<ſN._ "!>`Ar=؃ԴE.C34= nM+4 eԴ" 牜#tbK MnC{*KR%>TڹS'% q0=И.5?,&ccbۀXa$#yՆ9zna~NC5'>Qd5poNX:uJerQhD1Y+n]alG6)ٛZT9cb^|09"{Ǟrp#1'Fo~%gL zmMuolg<x7O6O6O6O6O6Ovч]d%#]'9s*iVme# Ōg4 c% ^WO1_9t^|*}XO팚*k 5@v TISg9Z G5 Ipl7ߧ6e=ЂǁHkT~rnRRUR k x)Bcw*e~6j-CefF['9/RW9G'"0|!,iv 0(qj?Z0AӘ k<'l,\3Ç_KX &~DеډϾN ?Uv]>aO )G-X 1O˹w3)p,sp,֊=18V?Dv:]R_!m1 ObԊuI=U9Osh25Oӎ9u!U|q '}bI4e&Dt܉CQ ?Lp~| &yp9Rg`hQFTXKE[Vp%ǦOjuꏖ̍]>b-?ǣQINԬU@5RazwQ\5{ !eK?f"OnBr0iQ;rc5߫k9bӵ鵶2mW_9ekB˧HIJLsi 1#eA\+RFi9,ئ9Y"7w|<9t ˳n ]1o}y_W+}2 XM0 ;b NOWHh18gVI؝yGꎑ{Y. 7h6鴕mY75}z:`39a7Wbq`ȁ~sOQcp6gh헍ǑA_lW  XlQ^jb[Kp_Xk}}wgߙwgߙ/!3 *h(&q$$8E Y Qݛ'>/OOu{|~u3Q6*%$Zo|V6!Xf"`V(}XCMgj*CH0ɛ]ٗ"t[(j.0 ѥ@7W\DKBv%`FmY/5}4I19SJM[Ҝ`i#Qa1l,,JvV֪ _AUp,:`NH37R^k$ݫ#&}ASyutX?MဆmFZmɗ",}ypzXݗDoaqY}ھl~hp{Nղ&~e+%;0Lx}6Ha2 b kZ|?3`ni|j*ߡTcZ ,آ@òP^4f3< !jLQ.#=Oǰh\3ZYqWh N31j#%YXbA<8U)VBߣȠd)(ܠR;*U fRT:04wZ'QԍQې&82Fn0bj--=ȩB,\6:{&qcsq4Mo^;͙:OQзF9pݘ1jn4nèo6tGK\!Ɔ@|{vM/!ؔ%ڎ)jhpp{!Ŏk7jp)*`څoVQ-50b1е, J(:45 . GdyC!Id6E{fy/ PHa:H۪㥅BuVE䄉oGT_bJ8;,h_K2{Nln{sk( VH cɐ.\Fp WLﭵOM;,'+[Ꮻ#^EF-q+O( m09QRUpӍWmq:ȓ?&lFy\P|,O玒qQ*mAjBn\M¬O`f;^_u3}*-& 2#zE UihASmJOJ77Gͳ%&?BNLDY_ڿb!d?C4>]יe>J ӧǃgȟV<+ڽv NAXIӦ'9y=I*kɂuXVySo%.>6UT,lTf- 9yV2'.Vw 2P+tـj!F3pg8Y:G1xI Va/Ѳ"B.:o_ Z QЧi]9;x :#~!Y_HH~0!+n)>ߴ{EWLaPV={RqJ9}􄬕Ǎ뚾9 iW쁌)'I(^r%3!J[t(|mRkQ?Io}~hvٓN78zƢI Ys@3ҟՌs49z`pL8N:Qs"hx$XymGޱ7ᠹȲ5R4YIL AN qh[ш +E,r 0VeT *bR?xXh ݐ:NkΞ=i ̖RSqi|B4*`P=EXy{tu('h 5IVdxPڏ" $ovY|р0]ұ&߫" Xϑ}$d#:w ld+)36O^5NRӒR(u;jY cyTruYO2JwR7e2QJƇS:=6ɶ~m .D5;*;諐 sxUMJ-CNƆ k*^k"2SJ7řvsa1h|K,jja8:I6!y;\ [YNF%zd1@u3OKdPnjYmx'GR_Ù+wxfճh[6P(rEb Hh*5+sۜe <ߛՑuFJ\"I[Abܖ`rh]R S"FxDxV7&^ =flf궭2vN_5K׵kZf9,-f#' 08?9=;U-x"6nwNv䧠O"eQQaQT.+Ӽyp JWАGtXƈуFc$:Ic#NJ)8h{'ܖ uve34VEޱr {I4߮ [7 (mB.pͱ Ja|R)R_K_Gf_,Hغ^ߖT)h.5ϛZ(1s1Ydy ̄DMx&"[`= h,

Y؛̿uVIzbmRJ]_EmBmJ0苌K"dڗG~S jfj*V'D6$6RT5Qfhg5O ^N)Z(au"b@&4)AP"K!ܐS4rRCrVeh'3ҧ457m9mjg宕4h yǜc~6AhFVzZ!e@+E%u5@: 6_qɺhnγ6*/c ._0h́%/̏8_[>hڷ$ލ-+> =_dƞQ9pU~.?Mw@v3 n d}NufsP抈B^V wN\ylMD'4*V" {Ul/{\fxN-,KEk]r}< _%= cv[ .wIFtaR(fh,W?+ޱbDJ/M-֮aKc;ُ1V k6kMU-A2%ZC6ݨe5Zhrly_/xܝZG iA۬;h.ߺ4@Zu)c2AՖ.6yoynB˞mC(^q5+*,Qvm3QmVDk#J%WcWMͰvbOZaAՑDrcJu>֕WCE݄bX֓Nm(?{їQamsecӋYYYYYYYYYYY<(y5)ZXt\dw %1JY~_<#Bwh٩!l䵃SF킖j9 Pm')3J1#|ux*D4/ULEcKoG{)ې wt7._B{YYJ8tPl}zV#aү.ئQ(J.bPtR%,gOl5O =20`Z}*HU<%d9*γq<5&W$f|7^RnQʳa%)"[:""jz8}>ݮ,F >)!:{8|zBu^YΠ3]GDG%DS󪷣g3sZ0l hD1=\,~BVޝI3@Lr^LGKtkPl:Vu 6͖G3+_"/Pé)!Mbp8eTHE?$ 2Û&M B [?N]SkXQkOAL8d:!ʀƦY]Ò`1\iw9Y˧yJ`ӅBk5tQYS3b fhМi鯢L)ɰƣ%!ÊNLOG&R[5BlO -#"Y*08Ph+-ڏsT2"$K6^<`f:htafsixLp}H.< B9iP@iِo dx=QwN'*k4XnYKٟam܅:|Ub$qU5pJo^9]lTeMm15 5o }wV8#jQc]8jt%&!<Es4;}5lpGEW"q)0:J%rook+7Q%d|sa7Zu?I|PiEɬ+'?B%'Ӻ qV Ai+"$n]Rkxʡ&VJ\9OuoSP hn?cwkקcj$)RwY&G>8 =93QK^.y:7[4}m"XL+e+0|6#V.I> -=mNsj#?K"a'aI0*bPJG݁iε-ڬ#ؘ1]@^~JC\K[TVL{c7FiMBy|XQ]|xlWȨqrt0;ȁR |)[6sl+ТGH&x6Y=[ w{6kNHYxHaK\"Y }gNH%l;%jl\,0H],/%#RN`v<-[TO 5Wv< a'G'Ʉu;}(RV ]z[c10A JD=Ljp% 񡉬ZdLcQsj![VeHm<|P*k{2/?{sƚpntY8گruLb?ǟS6'BY#h=1-O}6zٕJZPɃТOH܊7&V |lamO)S-d: u7KVNF&{l~H:ƯZq$v2.^罖}^kУl0h Hsd5Bj0W۳du8L(Y|-=x,#9Yg*.Iإ\L|K[&ӣa9a At4Je6wLB) oOiYʃW6഼\(1DR-RD"2kf1?^TͲP1Pu'0@)J:7D-;RX1#HƖm\z;vO2b~n-u(86:S`h.v(P;0HZN]-y)o(_4e>HG1Z*^#>/l)D@XMoUӳ[zMA H`Nh^ ^{vtxqc=с- Gh+Uj Jtaiޙ)#MAF97WTHdvx:AQlc-(CFߎإ& MkbIkL@Qu;R4p-MX^γ P#;eDc*nw<<~wQD:l0#m^[ѶE@6̩xTIѴ[Z FCj)FL,(Oal= 35^$\}[ʝГlC, HZYكg+ice]֒,YsL63[?Ϊ|JktaaduYfW"|"x֝ghʩU&*ƀn΍"%rc˽~Ъɻ/cWiohύʼnrugEP~>QcF8%09,Gx!Pҵ@^-Ua;sny{՟SPp83“nb#h5AκCLհzLsx@ \::Y` wKWV&K_fǗE?_'Q^'`u=)N?HȌWRѫ|cB#Ge]B6V6V=3g3{f=Co2"@¶Iqv_x1MJ8ҵON qb&fEaQ}s31(G %K'^_վ]kLm  y=Em|3*{oBo'A^7&WZ8<=Ivp_֏_?wO\ac)#7Ui喯Mad؟*ÚP*ú\ÞJBYc_[z7_1|+k3Ϗrw,KӠ&_TR]lxy櫖fI=w)p1j~n |ꈖLGTXN-,*IRB% zy{TazA+E%<$b,cVZF.IƳH;|^,1!xcĠdoY 2(ѽ,Y;7YC)KfkuZI@yיc6rlC$}$\Sۦ^Z;Z|n( P(q.Ijw©1_E):Mf8:S,Ú&}UF|i ?67ґ~z{18͐"*A b3R`M̏Ś8̟Ywy{Gq1$ Va_;i!4eV\qB睌"Է)׷ͻ9?ٶt| I!;ה/ҟL77t:Jthݎ2<̨KWz~28  MUGsw`^ 3tڄAO)h7k6Se "RT׿lnOΙkÑ4M~pp8:3ij'-3ג]Rr;仒^6xD(F`OO&"uX+fy%Qjpj-gޏd`0H&q,cl6q/'#lFf\Dʪ^?vlȝx{quzrX5Դ!gj Z)Y ~&?b4 ^\ i~lW\sk_o}1_[٘}of7f3Mi۽lgUFOjkM]vH4G~U+=v׍s|:Iӽ_,3NM#1BN{P6.[wDU(ײ4Ӡt7BPds D\*ݹũsOlV}{0BZ #]" V\ezݼʚ~|R}斄&*#&x~51u%JM @瓴/[pzYz-v-s fgM`.PP1yAFloQ#rUleC!&GsBฑX& Nu]v򠢺܈2TS)rۍDe\8V#Q3q[pfݭ:g5Gm&U{AH؊.&mau*z Im7G $Āh`"\NC~.V6lV89zK΄~E4ح@k)gGpRahC>VTC#~/-psaA4>)_dǁx<)0;<-9S!DDH ?N˂MRQ 71_y0Tnvv*h0Z*(3}Xzh 2T3}rq{ 'b-S $W)3 g- sxJIRNɬ:`@9Gd,udO>8?56n}8B4tYDq;#\)M) ,E'9?^ոUpzd8n^1ѩo`a*HUr?fMKtP[E'jaW.$nB3Af_]%Nd btAO~z{rvC{?ڶ'S9n7㊫+ڋG~TK[B)4`Gy|/Aq:LQf RSUaJh:C t?5: O6>OFPhp8Jq(E3hfa U$pXV 5A>貜d õTi(/n1mL禫)_e]oGzGǗcl26l.yb>!"2 𚜓5aJ0 Ŧ4.{%f2(i"8p.kϥ6<$̬GAy&A2/. 9n˃ӳ~EM #aMF|*=a^=?"FFG{UߍA oe1;Zq i^9G|i;*'0Yp{Z9qa7?' c]WK:@3"tDv#)32r[L`#vBCQ8<_Φ"=]"V)%IR!͘xi~U#(wX#eSJb'1<Lbq䷩>X=U>&_`)3jɭU۲r8E$T֣t'JkA3A.wYdTb ߉\lIz*3U&,`y"}[6"iѺ=äzG|¡!A*e^>SxϤI#;jO(%0Rݞx2sMvn}2194jTd8lfFEϫ&7KZS+̺pY'da6krR DbcGk1!-G%Wy5#M:*[ E}z!٢ŵY2HQ,'j|Hh#LN\0xH\,Zkj\I%{"~ګxi'ǔa1^ң ZvJŠY]HgycEOJX⡃!n)%Qpymu_wb KsGĴr(u^^pϹ*o<#O:)xe8'>53jZI~-XZ )弾DՖ+$b+/P DIE)Y\ ИH,mU扽h3\/k6cuH!hTUcN.|)tnnFYWYs<mm%;E8۸zuew`)T^!x3!WDl[80T06 fe ohXM7qO @Yd>?( .Ԓz?`tK;hdPpa=-up&^zx&kC&KpTJB;>5ysssэ!T$E- Wo7SU "΁*bD9J˴ 8j5)Cl-۲E|) OѬEz(eT=vmєf5F`Ysx=[y[5_6_SEl6/γߟoVauk߭?cXDkV~ZE Yr\CC{d;ߤLJ)iZ~ul졽 ځ!V @::flv4m`MCeZoMIV*mυ7{w;GB?|>g4}Mv>N2yX&13%n[ !#Q!A\NEYQI: &^r  lgDs;GuO+xєI5;%RD]zBf-M0Cn?8Zߵi+}\  D"[DkI7p7::aiqzV+b9pF nХ%p(!& n[xq65rф=w59kkOJfjUnj.))X)X'ʭÏ#Mr['\&^#%WpϢܨٶvG'KoHEr %ڷR_}">o6  fM0kjpaAb=^X~ *@%%BL]ߡӐ`JQHGn^ ǘ83YDa9ql}zpUmVvN[ iU-2Xs-[Ğ!@nv|0@w oƸǢ/?XVkaVCy۰duI]en22aO _+ n|6{f=g3Ky#[PsQ{),XLVW,KQkk*dV1N[RM$DϘq *K8CD$]L9K$bak4dr_vqൔq$g7DCܠG!QoԸ`j´ڥ8Wh %%)4V o;k8owRׯ<&M==b^!`\?ܵ$η+VQaB*'?B6'h,^J0Ad'[O:O]Ⱦhj_q_~Nj*}q{01D|ɨ4IvxIλuˤ*n7F%tbĖABD1dY6|nb5J MsGghƜSNcr2sXp*Sݨ0 C8R֤[%czI;G9ś`2FCbC-^G"* neJN p}[2S-y.1*=."?O2wض@ iO+,YL!BOx(prlEd^Zⷺ=斖Y$b}, I\MءzlɂImvD I3'8dG`Qv5e!YZOߥaX/?0tr!yҜa+zcIG.\J-p`KPE[}ZA1{&)XdbƸ>v|"5U8SA3H1`@\jzٮil[Flkď mii! .W6q$@3Q$%HcP1kLN]?9L};Zal>^"euoGzde>i~.3Ni.pIFfJ+*w&0n๢I\C4>y(-5 -VÌbĸ%6 bַJ-2!3r8ǀ$sT:6F 逌+?{8'Y$8DeWg"w.))/AFd6Zj,?2hk6=v`Yw/=1ݨ%ϲ@E&ow/UPuFƀPh"%z㋛;tcSo22?0{{d-{Ц ?c~>YL*][<.OQIWrtQUq\@n3uӓw/kF)=jTIr<lHфY0^}*Y ]h'ˊ'Vs˲"GJ{./ZP냻JwY:W#扅G Mǥ9 xx!MyDLZ(rлF1u4ݟo4nԭ}'Vɜ)pmgs0mT*Z.UEZP7=έn%pR\`L/Ѽhmڝϡ}/\9N׷gzmiucq$}sU"d۽zHf@WJvs$+Gq[]L9}k·&}k7%Nɀ0WՃ |ZEF`3cc&`Gf`IA-M=A5Ik249o,(3tJfMVƈ P͸ЦD%g;\I+U'Yv)\UX=LTh?Nѷ*̚~MW6TN/nW")ȭŨpyow1*?,?4ʍGڍեՈv#E;L:LTq xhج{Pv<]G!wWu|~[Ps#zxx/Zs*xxO xxOꍇxxOʍxx/xx? eᆾ%2GMaFwVi2W- IۿLu/ڗ]zww 1]~"HN|qod?H_?|GOuN'S}\rdh S&kO[z;IR;v`-MQs * ? #vbIZn'.%YK~|}K,_Xi!e,uat+p($Z})O(?F_uyAu|ܾn-׸0\6.bfͫ^2AF[ə2،*Q҉Ӹ^bAKD.t3~#jsvZfVYXF2$$DUPCL`l4S+/em80_jknE ' G͕;`='K}h]^ ~B˰ kÇ'n9c7qJgBw Oo׷c//q><z5i@TT|ݖd`(bU^n^TO(^ TxKn/#%CyHv_M9<@w맇 -32 6й5d>_4a"7xM;BͭslcuTϽֵ2߃9cjGxo$cL.6Y! | =ikH HAp,IXP d|h,S$6xtG@G3qc 6zRƒ;وx G^"X.O} ,Oq z+΢r)^`Ȏ|V/Hݙ R֠\&a9ArIfk~\\YK5JLtr cO1].K|}uDow_OR{ ~;/L5>!ykgn2W>=y%m;q j=4`jˁngIL98>_[D0