#!/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=3df10e03fb4d7ae849d57ead48d38310 # 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 D2I( $`0#y%=\Ƚ}NQ2MQ@aS)c8 (CE'Js"u*H|*0ѵ/P,Z1_N9{j͊E?e-WKݸg`bQ`]m ._\ |,}@ ;xbbN ?󗣉\,t7/<7I4OQ$gn&Mh31|@wOc<~G#Ư9Va︆p_8kwmwK{΁kp_9D?_ S?Mvr-azjv6W| F֪Md0Ui`b \srv.u-daq+dVȽb!`rE!>@8`8*YJ~zF 1X-L鮫=ә%XM+iBaJ͗˔x71:m_7|P-fFL^`u!~{k@4kn٫*#T gq89&F99Sڤ<<>=o;6-VWBj 8[:N@h_iO",O#,Qir[HDP7 \y7$ߚ-|[<ث ah=cH&e$gx&i9kק͙|{P== :>;o+EX4t%S Tti=D"I k$Z񌁭p&T~[F+]xT+W0Zˣz?:28+iPgFL!H1 TXWglv8F*D_!t /( NM-6=aJe@PP!LhmWIx44{k2x| LY(%L@c٘Se$F5i)P1qy8btT^K6@QN!"Ȱ#O7i|y!k*XwAENQB@tp6R nfO0HgsNiB#qpBKpF NӴ3 NXK0}l@ [䖔ʪ  "q&Ց\5r[d(Gؤ1ĸ=QM"^m+0;QM+x8ji> h:jŔGF4߈%f8bX/4gIy;(ƥ([ ˧fiNt^aT! jbɳgMb;2!e///OdaÃxn-ߕS%vCh\\C?, /TM+'Y2'RDíI'Y^eO-"h?뮽%Z-u-H ""ChB>R+l$%]w _/tڢX54.Xrnz$z} R S16 7R sshQ:dh=l>nF]z⦒ò- "nkmmBl,"[jf?ŲX0?\ڠPK|"h)V*ja@{EEp:?Ax)BؑQ;+X5F1vY,u' d[s˿'ӕmAX|M ?&akֱx"kAm0bMv߽0\e&ჃMڶl7-`8y9QxݜIm G>1`#tٜ ^58N:}gaZpRd6"@ʙU8F@qCM,߇-y;58Cn|u`[=;pyMzaC Hx Hp/Zf4 Rby.-͘wچ,g2-O fJ2;)psPH60B}h7hXաc$qI9b~8xmītuW~o~fpW#]?v QjZ]v]wWw߃bԿ_RWUz7V9qQnN_SU%b0T5U\(O+wM~~$d~& TvW\ڕ%wŊȰh'qҨW|:SF%}I|#`ͪeG7rߨe`33>cL f J`/u*z9,*fCQ;*ߣsjAG_o%YD.&E5>3U#;U#1UGB0؇o,~׏kt$OlֶǍ",DiYKE6^0^BH,u:y$j˱qQz2ewOBg;~UHJ20M3/mSdMDJ)7&A6*4k,N Z b[Pg|hi>gIRQ.z6<6Ĩ=X쇁7VBb`܉AZss{ ov3]C"]o%%$S䒊8-$ߥ|O;a{j)+,9?),h4 $ $Ҹ5O-.珇y?=`G-nB8ari?E^j{Xߧ31H3=cX^Md7կ f.L|\#5̉~}G1qǼIwQ+ڗ n$ᦛqoiM~~^oUbI#CtrV hwR}R!I9zA^{%`\E+W&΀;ݙpR 1^9N$(|ză|73fUWR6|FTS\?_ۂ [R8= _jf)FNDF<| 覹 om6k_x+75n_!"n. >d:iޗqdO 0;`A HH7}=;xίye5I:K$WP|Ɠso7\& UX4kХ֣Nڣ6I2_}F܂y> ?{ⲋ A`! $yUWQ@.˨ +o"ErkQ9M3 UCÜM2ڠ{g ѹ@xvC`fp]T4ӭ\f1">Vfz9 V{`@3Eno N>(4+:coDVW޿=Oh/E;b_wpw(Ob/(*[907} pQ_ W9)c"ŻGCjgh/$ʼnuRQ0.iN&AA| à$!$XT<9Q+N _PQAOBu;8 ^kDcsWc?+\{5@BTb1@7n2Ήu*]˒z@% ƈ]Dfĝ[/6"ᣊc"r 3Ig9rs ~Ud`.2j 8W,Yۢ2gЙClnVOO~58u6ҏ,Twa&" [NG)+G2?-i8s 2;%H@L+J!ƇCrtJyƫ,,_8:KLn4}+ 5~#w Q>kg=1@sQHcD'mz:)g6K>d l*ݘyEB!hSQm5#A)ی((n9Dl ջz* nmM{tvg)&[2LR;?c>MT !%L$E!QNo^]-FGH4oإm2jrԊK̷%)M 38-_UZ 4r}_[S)زMQ `QΆ됊k$j黁;{SMQG'!i) !.ÈDH̅9 n뤌K+o"Vbҗf4p`Q,_ u_(F=p&RlJ&Nw -hJOHlEޚ5$.eI n2!r=jC3n Mr +VyoO~j]NWV>{fFh&?8zbWjꪲq,4uz%wIY()rJ>B+M-j3zV9>txfYΡlߒ_|`ccb<Ѱ02bJu߈ .4_ h.7ȪIPRO3w`,Xx!L`uyвbuYUyΙpF\YszBޥ7b`|$І =X]GZ tv h\)ܽI G{շ5́wkd>Zuv2 Ɵұ쉀)q&WAE-c鬵 :J_7 LʸWWڸ.nB4hHo\Xz+AR%YsffMܼ k[U5 ɂH*LTg<Qs)5M%i[fVYSkspЯQ )7Nh*Ebt 6  vb@2ߒ`W"b,3*K6fgnuuѥ_<9ڠF&!wv?WsdU~jI5XF!5-c@jd\+oOuyO'SW@"HW/"NHq%)^噐Z֣s۲w-eUIaNA-$Nufqx&x'tiI!SjpKW#Hj^/$@6T[0M'5I,PIsVZпp 8*f?ȶaiD|@+Dv1cHPvN j[w0<:x-*@ b JQaǒ1BZ(b2dz-}'eQ(0{$E$Xa%h]nBM:y[Ha#z&p҈?,`$1@+LơdWp[S$μq4& P, w DRT&/silH,&QqJ✪л+IX1ء WauWX)՛0,.EieE/Cilޑ57-f{S(w4Y Fn|~k$%k喨Ʉ[+MݶTU׵TjD~d]i٨d*yggTZ6ES*PRI, t*eJiB[ eY cr٠d}fFWWbo3JE cvn(o HMJd26a,4Q[@[) ËQ.K;[\wp2;pd50<s` /B}As5{t+cX"ӌhR?%7ZZ#FVR|oqIkK=(۟ Izqo )st*~GwVdvP 7"*w.w,wY=Ɩy }^H"dx*!n %OJ3]ZK7֕Ӥ # vY2b ƢZtd_V*WY_<Ɠs?nƓeui}cy'_/yBy{čڡ n/SF%ӕRjzďƷqqTǒԛ8ylNpܰv&(}+5~h3k;}%0$G2RYl>`1ڶ}qsE nYn'*/ A'̃tc6β1ͥml~y#E!a5 nj~ )q'L AX_D}!8d2:?pn"Wd(-dy|1u4UشA0'3J%P;'fJrYEk'v0 "ͦgxÜdgO ij| tuelQ$Y/-g|mܚѧu`?BN̗@sGzh@#(Rw8qe%^As(0ZXڝ2hC/$̓-r3ǟهAj($u>A݃R:\FN4>x(:uK#3BPu2 2&5Va @cNkV5;2YH{adobf4l뺒 Cxv i&qI e ^#l DI!&i=Ł>AzwFE]-/4c)!qp>8"0IQf TrP* 8aRƙ j_3J:dS5Y.YʢW5a\ ҙC8q)U|s3䔨遯B"wKѥj]R #ܧsIq p64q腜trPΜ.Aw::YhR/? .¨^&t&T%;@xtALCuk˽o*'@J_c;"򳘐rJKk}tDo0pU>͆C3%E4#OB '(s4K)$"IDx?.1jDh( 1BlXS%~R Y&= A І1ga%7j&RbN`)A;+^N~+%Nz  I?:FN O` i诤L%7ɰg,) F IX*b=TnFtSAQǝ]pgy ( q *vľNz̏b78ݓmYOa K[\Vӊ|7+^X5+@te.%W'^ VMCJlVae6ձPwINo&:]Atg,O"_٫ *B^Kl&FӔUM>l$@ǤgZ4X;qFt>@&-s!|;r&QzfސGT,4w! k Ɲ7kb;}4+q_ġ8UB{{S1W =l货=CF Z&n nv1 3lL%?%ge{+H?N:ҿtEƸOHcӸ\}JͦwsB5i< +axi8L $bp3>טуhpY<_f\4i=eY2b”M(z񔶓8IUτZYmܶ<ǞAAp |e{qEFXվ@թEC$e*9ul5Ys)V$?o[ITeOx)x¯6 KAז 6H&oSRݘm3Mjl3oH߬6sxˌV rV#77;Փ%Y ߞ) hPP1>mi+h`pDrD~+4,B)(-XT5UᑽӼ4vS\uS 8U޴^{O*ტ`iy**\?reiE::8;+Y{v%oLGlT֠ؠ=դ>pQEs{oh@Ja|j*< %m9PyLJ';gPq_C G%[oMݤ[b{89[TMXBKp ~99 OOlǙ&TB[ B a8ollXKkODHeumSFXst0oTfB7X EA4OmTRF#v632,M? /(>BO*]WsoFjWBaSnq}'_Ny8Wxi}yEh&io7jc&VڏX9_}>eDcE}iǥ/~<`HAJse!|ax|R#F#:ЖD^tN,Dy"@S4nYjN;T2щ4CLpHL3Eiƾ;ڙ!JZpKcsZ398dfij4Y,{QXߋSH&K;7JS4 ;z_2+0w[)糖a=/R F[_Yt捑zwu8a=Z2 ǵk;xc,pwXbH.|sTvqFI,@Pte+hsx|LP>sxKK0f PWhsxXo7%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?9`1ຉ7Oc_GdpX Q|"$fKwcΪ0,=b9pF n0%p(!& ۙu/ xnu=)]ԡkG]Nu#R$EN,^WC5fMA5Ev?KKR3ZWW Ԋyk- ѤэR"G [,ʍ2m ~Q{X˺D_xɗeN9 QL{ 9pwȁpPkľSrsQ{ƙHea;7T]F70shRui8/BeKkP.aNcF6{':-1G7l:P'ܛLO!j@ $&(BL]צ׳_H8RBuę^4gaZ1-8m .'ǒQ}U^degLqKNB{ei,<#Q;;$ҍЎt } 1a: =28Z9k| _$[ԕf #Sm'yR?4|?6Wrxr?c<7l__??r#?r#?rG"9 P92(ҽXG#PJpC+nǝ{ a JDz_; 0"ʢ4 [3z.v35%|m.@) )<9]j)7(FPedUQj/mg=DI/!Fq%p 7Q qZ ?쟅@WҺM1/$p:BCїa97/=aVj%t;TwjA `R,|͖^Y.IkHͺWk'4(7eSX@k:H?jh!Xj_w[ ]@>F&Dˏul1< }D1 1lA\u]f_7 26J#b%Aw~\GO5ysլX𿚉E5ߡAiKV{ƫX=ׇ!\H9V XTJFeS崱%,ڎnH{zM |؎W9$VvZ(ğ-/)zjjWVwG{%[ t3@ AèNJ:=A=d(JENgnu˸ޕ.B}M,[0|z.\p=ƷBL UegQ;"6W hWsxFқ^{n )4Tպ'N\^% )| K*RP s Cqp%)$/2X CɝKsLIhԛh>S%q[y ZO)7cE[x$i*sS/)>RY]^bNtPwQ-\owsE^H]jP-)dxܖ[y(? NLP^:0LHeߏ٘MĜtRn#YwKi@'1h5F/p v.#,~"d.Zsy>lQ15Qn9, }L#.t8aK 7\M}ZA1pL=3i$q(19GݜC$ W*1L>b %~5W0~k|W2Dgc1kϮaVAmcٴPUPitQofԉ($%PHePғ41Us$W;L?kx1z(噑!AX_6=.w"*yx (Y)+&U"60vi?lQ8."hqJCBjzh( x ( f} 1f8#.y Ա?2qU}2#I%dO'8''@8. 1A y&r;p |lO8i Aywhby7Gk] q7ۢE Q {gQ ^=7;r`(Avԧ(u4l%j㇛]hz87m[4 m`puo6d2*Yvm:@kJgo~U,Y*TI.y=pGP7] aLWњLa^11,$CF⩁`̬y#6TPukмUA]h#˒ZNmZ;9=R89\ _40 OWwq8f=扙G ঍c,VԍVGi#rfB uCBBB!A !s mx-9tÝ\;j vMߒY&e@z>VVQˮ #@Z,!6Փ26papuK0gh2r*]tJ'o½GR^ף,BVABe*bbaJso)-@hmKT i+&(smSKWuGOʓ+W+ZQ}0z>z?菞=1?<7+k_[_Z?<!~G}ȣ>Qyԇ<aQb ;CԠl'D-`x׋ *'Κ~xLv>T ׯXR0kRBAk9ɝ=Mitۨ,,4m5UNNSjMԗdN5*[j?EY^a %{4n/ =+%TB]lV5;5A 5;AQ([Nb {+?&sDI .LuՐ[_s`{Œ;^i/ې}mCjhۍX0xV^xb?}}v쨳l?à$a#ܮ )]#^"BZF)Z\ EGӞS:H67)3$c\-+myB7na8X+@[[/AFCqR) QP7(G왴:qzV=fm5.&H0poͱ.c ysHdA@`Xu(zG4&Gi.PS+;XFGt>+X%Y%w9nb*,hBTW @enzPJW*KHIt ju #Z% Š,SN_Z r (U+o¹,9IG@=0>6[kk1\~,Cnz㻄o5=J#%`=\ksM`}A!IPrcڧ>va%U#YFDd:)1В<"ȶ2Ns+9y~/#؞)&oQd&ZM'޶+*VV&ʵ( k*?x  ɞdd~F1UhbJ9$YZe'kv Bys@C܎kgrvV<9i-'ڳ183ap|(LgB"ꑞh)ƹEwݜ;ʎ"J]1*XX%(HRQ'Y3zquGo7ʮ]T@$TKMtG3n۠1"i Q}Dvo$m=u/XIjE6=FSZv/(⚈gNQt %40X$aN%_R%ERHġuGG^omPc' IJ)Np5:D b?huQPbM+ vT.Pf0Jp||S11$n-uugNOxPj*bR*|KL̍vd gD%fʚJeLdt[/t,[!R5i 2^rQuc28QYx-̸(! _\hnK`P'0,b}))H$%U$$s#"q4@X)𱰆S]d djmNK;S;:h+lB㟗yCRW  G[K ߆G%k|.= "=N8KX=ΓA7|u}X]?]?r׏׏#Ƚ>r#Ƚ>>A{݆F<|@.>yIpHz=KZѹhp5>cQ|^#hD |ZW؄x-0儣lQ !RАm& |JGمԴbj@hCF2C4qbOX? ?\p@F*A*Ab4^j(Jy'y:[A!"ՂcZmYhϛvZd38SK2U /e]G$vK,Z]z [g. ! #G!3Si,ɷyb+tῤ:nB׹e I=DWTnK sEҰ'GKwWdh*aoWro" `ԂAeʝT5I(_*r@L1 V-}6[lj& &ҊPT)є𱩰.aꍥݬJb/糠$)!a%%\%@OQC<}2)iZWdۆfJ8U>6\[vQLN[) /lmxR^l\zwW"DWH4T@2atӟ FcA!@|n6 3rLqi 0@ }R<'ֻ0sdá7Dڙ`SwF$h^jY v#`]δK߷nhЖ|(+&6h!gہB{m˓SZ;mi'5 \շg|nI>T,&P/J{jGWlDa GH_4V?7p '+buf}zH[j/c5L` n y6S.bɦX0TiɶA_nօΘ h4AhPn|Bp0 ό_h۾V`V>:Fq_sGyr?#ozɶZZ^Ji^t߃w% ry&d. <ĈfU?ӵկb%gҿѨP] #\tȤ `[v1jŃJ#XGVxq/{Q.1 wÝwr Erp] vQQzQlSPy:bk=n EʬC|Ј{.Xv*X 0Xu9spُ{› (Ȫ.x*=S, 0t`v*`0cUwm3+2lBa6*s F9U{* W=c/?_GyVp?/#Z`AO7NTWuc%(ON܏'/nOyydq4/7;qSp OOKP%兕eKk*Up}y/O ^Ϥ2^?yV /<{8pwV.O<}O~.Oy<}'a\\`+E4Zb{rFbJfwK3 S"9nyY,½Yxs6ڻpݗ){b/^nΨb/B1S,Q/AIE?H V^-6OQЁ$fPbK̺Pcnp7ӌhd׾4 0X ~z(g`!lby-XtK$[v "; (g߶(vyc0țtU4h@'NBC Nfge0Vfb7\5؎"$[b(СP2})gܰ0;&) l =# ދ+, ;p~?3Ɗ (1r8c+N.^*@D;u'" =$X^_DOk@0UYuzS f0H*wиƝXи?4דhA"56 ïRy5٠q4^؁k9AӒWn؜02:n[D.:|Y=~S!??`̯ߕfh,NuɅVh&:R1d|ʑ`uNh;aG 80@ր|ŃvCƊDdC z,scyTϼWrJ'3_;'Yk GvR; ǦJN6J~D0 313 %s"Ap }j>O<MfBBI{@G| 6}@@mՊ|rxE[Ոx aB6'=5XXwbfǰo9Ƣ[!.)Y~LLQ\K!%A7ի1'󈌽/F'|K_ rY@}L][][?n5g.xā,Bl,Wfg;BI6a!|t @rb1!^,A-:{NN''''''''q2