#!/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=c74f660f1b5767790ff0ba6335ddfe5e # 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 >.Bk]_w}%_?:MX8l"?dMߛ߿ݬ=!OonGgg\k~RL>ou>]@r\ Jł0P$f8FԴ<ߵk$ml9kנejٺ{Gf*_eHi,U!KɊKIVLuP@X8-{N 6- F!)2lF> bC}eP*H3`F$rJyO9睢eP"¦SY'qTP:Kq(gDU AUa\gKXlc3\k{ >s8̚`2[VqiQ팔X ŢWzP_ԕ1HYv&.f7Ĝ">~.%/G?4*A_X4L_/o^ ynh4HLփfcr_:_Qߝ~ĕw;j>v]?s?:{t~u|vܛtn\kJf8tӺ}e.׸NH[#ye5u`,cز2) y/97"[TG"5 u—Kp`p'm%~xHcCF׺|5יy7٭>C1L9v+ A8Q*[BȲKIj@PvsnŚ`qR՚ڭ 'nf,-Lﭧojjb#w{o3C1l<{ilb.S0CjZfc3€&1tE'ǰA<[7ȿTY_) ;!4. LF窦,y)"֤+@>B8zbJ*$`dIk]GC7K(V -epT 'q7aͨyo+9ZQb^lFۚG[ix&|ڀ!p,sC ad^{\/BcUJvdTi?\qp+Ic>lmVǗdE7STTTu8 !fG3`̫z;l6t$Ol6Ǎ",DiYKÐ6~0^BH,uy,vj˱qQz2ewOBg;~UHJ*0Ms/m3dMDJ)7&A6*4kN Z 'b[Pg|hi`IRQ.z6<6Ĩ=zX쇡7VBb`ܱAZss{ ov3]#<]o%%$S䒊8-$ߥ|O;a{j)+,9?.,x 4 $ $Ҹ5O-.y>c7bqRHj!0^94ТVAZ5=,uәdН&jS1,b&͛WWذbD>}DR:necޅ;㨕bxF|X7xpFn 53Fim(JRZH2k*m =ە`(kܮ1 VJnuo~C^R9qxu`(/7j¾{mr+KTey hc/hN}Ah+ªfmbEq&溡wЦ&nb]97U1'@nQ>`۵$Z sꋾv[,5Ըj5" `BfP$V2 De`PI^grpi?[(L+c_E1?GO5W4w!׮}%?r M,H4kW?v]ǮcW￉_js[A.2_gK%  e;+/JVob:ÉBBX-3| 4j/*b'Vdb]D
Q8p+x|7b(onN1>7W|޿;ex+umO'Գr%$K/-h.<j;#= " w c3> ? ?@'3X8 pq Z /Huz 05 [cvqƋ^xQqRYU~q`Lz,]|+Ҙ•K7Fh@[ iNA J+sB܄-mBp7ew΄;]Rʑp"Aßs$| $u 0#ƿF@֯b 4(%P VЖ`ҲԈjJWs'Ub[PT!!8rK>Km,ÉȝoU!~z$i>mS6_x+75n_!"n. ۈ >d:i`l6LSŽNpN9vcBҿf_aU _m8E߿ҧhHja3CNn׷P-2|wڻ%d&Nk=uԩ0- toLY($Ks8{`(8#갴ss\m0"h j0NҦ_`|a>ѯ T$Ӊb6i>*BEk \9??OK}h^iikONH5^pbU;49KN"HEUc\\~Lnz>},Ɠso7\_& UX4kХ֣NJzQGjկ>Uq#n<gRqEȄtewVzzT=Kk2bHlZ*iNŌ@0gL6hEYFat^i9\W&t3%jϾ^fq0L8`B-5;Ӯ}8<: UriOC;(K(0jؗ6F&2ʢJ~ M_yb@WmcʘHP7v-`EmY/ڋp=4bqbݡT̺KSG |P`kw0(fH3l ;xGN+n5Sb—0`TG9P?zDCF4xQg֔6pE3ȒP[8rP7-iAs%,RTGr ۜ$x `0Qhl#2vM2 s z٩*pC)t7}T }3T0{~] D8_֡Vdy8kH3`2~cA97љuV(hJ8&&ΞQ"z7!?*_4 a=$]=i@E n(]S@PTQ;Rf X2QTK43 ϣ  JQ r9j <#Zj89>;V D%&ӽ(!dW'!j9O4P9:>n!08` "A!|Ξ(RMr&W85aSxI^l" 7b@y5Li ^`iezr)Q|oʾ}݆i[Oy| !jˑM*iÒ9ˊ2R? gy3hǸSKKl b/^@A~ f8G iKrҴ `n#?6ClrO&elIdVv})bKeDKh"hN.bnqwɳ #YmE+2 BNQnZN((iE@!QD]QL`p QQݘ:ra8'.Ev{2/KJ ,#wq%g1 nr2t*4$Y6UU"s0/lsYC .E"e%ʡ3p~-kzq.mY 7NR#LEො Rx%WNe~Z2Y7FqdvJ𑀘ĥmJ!ƻC>stJyƫ,,_8:KLn4}+ 5~#w Q>Kg=1@sQHcD'mz:)'6K>d l*ݘyEB!hSQ-5#A)ی((n9Dl ջz* n-M{tvg)&[2LR;?c>MT !%L$E!QNo^]-FGH4oإm2jrԊK̷%)M 38-_UZ 4r}_[S)زMQ `QΆ됊k$j黁;{SMQG'!i)OB6]h#˃<( s\AAI3VDR!ZĤ/iX>Pz4M".+)L6ZД,N1ي5k.H\tlleBzԪf~с)2@bW&2DԟԺt} }ļy`L& \@YaxmK"IUn= A|L~'[qłjꪲq,O4uoo7?:]ReJ \OlraeS Bs<^`89Yjs(#۷.0Xj:X5O4l9La^*7"? mY/ B=JC w윅s4o8p9ZẔ.69nۈ+q1kN^5ût 9S 쟏 5AH `AnWnWQa7m >W1)ҢahF9n픬GQ` `î"uZS:=06%$ [>&)ЙZ 5k|k|k|-qK,(DC&p̵͎;IgL$X57KhlV 1UU:,81|4"TJ {5'RӄY"?nym8E6! B|ㄦRd,Fg--qoذ^` jw/.$0-f~+O)*.2acvo 8Vw([PW]C ` neO1}Wk's5wLVWk = TSj8eR9 FL&ԘO0+Y~q2u j[)Ai?Dp ("0]2 U 5 ah)i=:WJѻ-{{[VV tBYhf灊7iw\@2 Z!a x5B" dCЄLRTuD9ǨkE " alvaAO<7 퀼Kd}3ei7)zMjT މ uš Ĥ`0iw jgB:`?js،Z\GcnXM ø>whå9|ڋQ9=.N12MJ5,&s"p/̥;yfճh6P(rIpeG!0Thk8f~nл;!xwѱ`G댤nQX,QOy,.ġu"&C9Lc&뵺/^ cӷ*t7MJ8]m5rlY.'E/f`*qcxvZ"N$D-}i4$99I۩79 RaX )GBX$J*f/>O\&ԤC$1a '2 6NԱ"d >ZqOv%.qvɊϙ)͡;5߅Wbvé=WW+d7xЂ%+T3ן7W(e5Tp)cj"q޻+x+8V2Lba(H;8?B--{vr/ SؽKoqŹ5+zu_NF[LR!Jbd#!1ow"ɾomler Ʋ*s$^e9,F}y; J Qpp8Vq4At#haRw6 !a0^yP*ըsMsTSSCƽcňPKӀ]k-#d)R@D#+QZFU y[ylf1JKQ&!$jl3 78ꑧ؇&m  HSOR΀槨fq=GYuz p+`8~N{xDݓA|[{4ƨOZ[Aq^(Lҋ{#XoM/GhW|S>\>h/ .J& j$=~{tfQ߸ov#Y7Y=Ɩy }{^H"dx*!n %OJ30|u݈, akH 0m3%fl&e8 Cp;lC>d" ngih8R͹H /"{$wxʺP*gӷmJ!ʘq[wjK۲6!>\* d CjPǯ'a.A ?[:|L==#7MxI&<.up9&FvVB^?| AC-D~lbM75)k Bgwb$e70;kFA½؏],#4.q@*$=E>>(60PF º@A 6z0'el]YW?,> RCL' 0p15,C!0]7hq _z>A%q41} hҬs_ʬّ1T΂Ep ;D&{C0a[ו%F ³OHHN3yKRg/f`C !J"N Q/A_ ғ38( m4|ʦc/0O7vI2K)%d;<4\;0eAFVK?y_I,sL[q}ĭUb/U|QH/s$O'NQ; ̖ 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 KvZhLS]_CLtHF1Q#Ȼ:|4`=lJyyES,'8 UEٞ j!qV l\I{!n,5xa+Ŕaғs^N)A8ega"$N.0ҁ( ț.*Yv)≇7δlgAC3`bRLz/ϸ\uw_EuDs2e욙l|$ n3\'sZJi~RJmm$U(,JFr"2J:&ރSz?.N]o .\_3%uS>N)OҧZX؜:)Teχ5aO{s{Mo<+Kkk<__6ǃl4ŀ~V+zNa8`-Fid5RQ[nƁ0mh9؈[0 '}﯀8 |,Xu9ʚD19H&f }U FY)&sOCnO$Ԩa;:!SӒHRo) HtaO"#Q~:xM=R;$u :^j OxjBvʀ]Jf M)ͭ+r=r(M×P^E\*Po76 Ui#FٕٗQu)`փ*>TrP* 8aRƙ j_3J:dS5Y.Yʢm0.Lm!~ܸה*t>rJx!Am5_(ʥADD./:'5F}Gz-m_eȱɋVƃlkMԲ_=K6rv|*:>]R #ܧsIq p64q腜trPΜ.Aw::YhR/? .¨^&t&T%;@xtALCuk˽o*'@Jc;"򳘐rJKk}t¿& 1^a\w֏|"9" f,~CIhFNL iQi,SFCI4yEV*~zm]cԈаQcc;o5=FKLLz8 cSÖKn qM`%SB!vVVKȓQߥu ۟_I Kna"YR6ґTT{@݌6T9 ,U;"jP"$zT4F}Onp'cpOmYş:>;?z%#2 yoV Dg k>iW6o]J<1N"3~&"=nLmc[V_S)Mnu2v7XBEWq\U$L)|<=\IP &o1>Iq# !_hv1*P| L4[B\Ew*Lw1$&?׽!XNi0BAH;oؕvhV #Cq$@,Nb .{iO{ݍLbHc,egKȕJW`%0u/q˗<ƦqOV {{$M$kZ} t_yV#Qv3qjIff|1Ѩ&^mz#?Mha{ʲdLGANW{م)Pp)m'yq8xC ]P m?ay=zš|ⶋ}S㡋HxUJsP-O#$ٴ9akRЭ~I~_7G$2ʄ*J?jA S )_mn˯-AlnMަ$=1)# f+f-ߐYm 0;8(FnlGg~ wvw')Jc[=RРfc}j&VWd+iXxB.SIeI(DĒ*)~TxVf2WE5D(ye6K=)?(~0O|'{?σnzteuY[_Ɠ?O?O?_}&0S'PZnk>z#{+y!i;Ji4ݹffߧ^+qi{½jmt6T0EUT~3+ tPupX; wVWW՝p@K|i#(٨AA{I}ണTyy7eԞfQ3 c@ ]Ĥ~|&p.䬜A{!+`Ȱ7R{x)-x\η׭9(٭^j'cR娅{o~ߴ@'˝7๕Wϣεcs֯75B݆+i_ d,ݮ2 *`/2޶~};@- 55o`Lg~mo*IfK{o#d%RrP1_/n=s+NB*W^[+}]v/.>갣 w(\  GgrėҬ 9-Q_@0CݹnZ21ŷu׾Be؏C.Z62?D~Q,"*ϛN.ifɶH4|:Dj&%0 "|D9AJ ^ vO @'a-Ju>|d 0kDԂ?t [>_tUl'g?܂J Khn2OG;)M8ӄJhPAÿ<,"usIZ{PIm`n _*<:LUQ0ȕԟRAZhNfFT>B<>EGIKjp :SJ(|JQڛ>-8A7՟~ة4jt5^zlYT@~a44y||my1]+D}_>[}:eDcy}K_|#&̕"C>6A[C“FKyu>-餝X4D9i&,zjN;T2щ4CLpHL3Eaƾ;ҙ!JZpKcsZ398dfij4Y,{QXߋSH&K;7JS4 ;z_2+07)糖a=/R F[Ytꕑzwu8a=Z2 ǵk;xc,pwXbH.|sTvqFI,@Pte3hsx|DP>sxKK0f PWhsxX7%T[%.XS لF54UEkdD@lF,!BR!|\P&YZZ⥂ 42'f"3`92Z(2<նt_+4":obPP箇q%K 劥){c%EEIPK٘iҋ84H^le*E6ƃ_68nZ[1 K1:'#P>RJHA& &7=9;tΉ44wϕ#Qޓ/bm꒱T },6" bԖsn?acpě#28,(oai>V%B1pGg{qze 8my7RC8@LB RB<7.е#.R:JXm~"'/d׫!GNw&"^%y ~Cj<5dh )qE]-{F6pt=e]"gq/lq)ya;SqCC88r T&:\=q2vvO.bBr~ ~%ڷT]}<}0TgKӘ NKM:xۧ" -hB %SW!Fv4ԣPGin)AO>qYDX< VL N˱cdi_j2Y:;9Sܒ^٠*c? m1|gIt#B3hLwEOp."``<V血q; &u=gMM |zxrc<7lէkϜt}i5#?r#?r#j_3pAΟ#Ï? ݋ei@ޓi 8K▫9 kD S)rH, @5bL_l7cYSg!JXP"zɓrSa e^AfY6" V&3Ati4W^P|pppmYm!KDB2 #Dij?}Ka z“f1VJ?@Aud0ܬ6/Z-l9)U1O0]Ԭ{⾼OrJ_6%/ D#V)i2EuХ d ij$ix@_ЇH >C6Uev]~ c8"+^tuT7W:\lnX*_s\vعP1 j>lkHhp}…ceAdt[^8:MPf^õ2kU6BO 2_+rv"= )j>[U[BS\f)6[r^?T<\&3e7V*T8QhK" V3(NvZmԙ٧$Q:\:%.=pgM};I |cR''nNW%VrIO嵗ߡN2CLFG"@#E!\gU$&Vx5.Sw&BbShnmK|skOWe~]ډ߸yT}ݫIO3xv/.S 5ʓN䘻-X_Irs-FfocPV`na]% Ta&}XȂQĚ5ٍɶY}RXa1%Aed|$WL>=u<5V Jr5&X5*AޣTf YFd%@Qc[y ^22BwIQv^2-Eë`d "'a{AI(dziG:` aCpb`RYm긡0ofD]DtҖ`o^ m?Vߒ4 ?TY >%H;4)>>a+wځ'YFi<8l6'8vE-X Mj)^^P}y1Hd-m!]T |DK O9AD)Oy0E^hSgUDΓ GA.8G.\J p–@n,_6$cqc>(2]ð>X iie 6QG$@7̨QHJ6:ˠ/'i?cI*NwZcP)}3#C>> ]2&m6P 8. rAQdAFA|Gcz#zpF\ 2Gc# ed\'GKȞp O2OJq]c/hLvٞRpӀA@6P$oֺoEq'ƣADO/y{nv.PuFOQDh" JԶ75p723VoatG6mBe=Ut,2(`X!ݳTUp~\zin+05¼9cbX$CF⩁`̬y#6TPuok?ѼUA]h#˒ZNmZ;9=T89\ _40 OWwq8f=扙G ঍c,VԍVGi#rfB uCBBB!A !s mx-9tÝ\;j vMߒY&e@z>VVQˮ #@Z,!6Փ26papuK0gh2r*]tJ'½GR^ף,BVABe*bbaJso)- @hmKT i+&(smSKWugOʓ+W|OtOv啵e7ӕ Qu*~S;$I ʆPA|! wx @ɪ `xwk]5=rR,%U ,-%$ޏS#{ДF͢[J+&Qc\x4 l_zovk)FV䦛ÔvΧihI4(L}IoQṥfCY v/ZPXGyݳBa[B%)x/v}a[StPXc}.Skl`]>`W;Yd( QŻr ]zKlXr+-eRv8}{OmHm6Ԟ5(,9N=NMaSV@]8`kdĊx W`+~d=y[{;];nOJ0w o{NvA6 aPjg̰nׄ.ؑ/a FeK#-FX.yWiϷ) GgCFH1Ѷ<0 pa((aZ #~SLZxz8c=oqC$P}i{Xl1F9b [p~0_:#MYF(rȿy{y#j}JӬPN1l4!K*+GF7= (%@`+% $ ::ツ-ْbP)J/9s*7J$# Vgc6[skk.gs\!+׈(cd818'$p0 f6;^?ZHA/4`=@_z݋iķ;(-.l_3P#^Xc*ja%mV ޅ8|U/AL(S4wExq+tIlN`-9WYw!=/%P G)\ (Z B%cfxW2+rA|1QGʎ!ްV/=!JV+5H:CA#Ɠk鏞z[3˾#mqo(\[O䍨w)paO_#y&71~'8.l9c'$0 }%P!#Y~|0 &PӢZkkbvC*Ym0C1A75ʨe+IjRCFDΜ:2>pu <73@*V} A|}.6S$r$шYL'1E2ZT]ּ=VIv.qW;gUh> ]0( P7D]ǀwP 6&ȨH<,b 8JlX6`hJ>5Kt&E2EtNdA`(>x:hHc0aCH8T Px Q(W*;E{J W$ߩH`Lƣ6?NC\s؄k-%sX܌"s(K85I{9N&_2bNh8iNftm밢b`eh\Ɍ8lnLɐI!I<AfKmQENq x͌V,ءLҜU]}jO)ٚ7˸>f|f)7}l7jœ6[t=[pk3#Ϗtz&$YЁi[T|W͹(ԕl%XR..|<[w41v: EDBtDwy\P/? #2ՇMiFCX {Xy 90 Xdj=e0e"yHG P|ISCE"T5.]R4)%*P+TNZg(Y*zL,f9zԫoWJ &&]^EJ.ִ/0^`N~\;^e#!_LJ:CRWwV"JO-ʏͷ܈llGQKf0xMTrhT&J`@U /ADzr,AXv? >\5,U7&ό)Aόd|u-_xB *ZQRAB2 8o=+rH d/l k8EF@fvĊY#y<㨃ᚻƃE+W?UR/rw),$#I 8yy7$ueڽp%Pxux|TOc #=_ }_]?r׏G{}^G{}^^ѠnC#F܂y> {<$@M8$%^4Rv(>DR4>-e3lB B\~ׇLrvۨ)h6N BjZ15f 4!Vk!8@'@PW|} # BE 1/H5%缌GKwWdh*aoWrgT^_j0j2NU $DxVO9 햾C-c5YoiEAUhJ^TXF^ΰNnV%1sGIPݔY^.Twws (!M[>J4-+mC3Um_*pzF.L-sg(T&WMP 6) A`92PC"L!;@{4/c }xNdJgZ㭥o[tTm dhK>kl`4Ǔ@6Q)-v6ִ ֚L[T>7$F*(O=5ƣ̫u]}ޣEA`T yI/qmet1:> B=$-?FMlz@ZE7Mrd) dS,E*4hˠ/7pBgL4B i 4}@7>X f 8oeg{je_0yg+0Q`}|RnUx_P, O)PȐ%4$ wf!F5;I~/9KF_J[,t[h#C${Yl5ƨ) bȒb_^<5[ {FXl&l ߔwT.7%VD"zFEF jGLBnE,2M*EB#`a`.`1[~K{x){/|\|Iep@}|}YNƓ#ozɦ˫+ǏGyw>X{]rqY^XYZY;p:QxחX;L*)cAn./܀S 7z_n~.8|]?ty@.\?qry@>.BXDS8(k'g$hi|4S. ͿtOv.>.ܫ';g?lAaJW}Z_ɛ!$ՎߞV*&[(3^d`e{XZ̀D$1 RoYb̀wAfD$0Tf6LD? aC͋`-8;We ۭ_>7;Wb+Q7 TfaN,"xAw.*Z zbA\O`$xKdZNw;zMc/D# NK^aCӏϻ]`sxʨ3B|={lEBm\u51xzC~!?LuX1_)5LY2<œ GMub4/#꜒lwqXaέ!톌mx Cz,scyTϼUrJG3_:'Yk GvR{; ǦJN6J~D0 313 %s"Ap }j>銏<MfBBI{@G| 6}@@mՊ|rxE[Ոx aB6'=5XXwbfǰo9Ƣ[!.)Y~LLQ#\K"%A7ի1'󈌽/FG|K_ rMY@}L][}Ɠޏ}Mo