#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=2df8ff16330bb4b7835946908a1296a4 # 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 ]^\i{JW;|1lw{lkA8ˤG 6H$8=>"l'P-gR*̺SwN|;;|?ۯ;Ϛvcln>#S(Y,r~^_ YD**i5V 9K?"364$ ipMziQ^p daE4pyX-t 2Rul$Y ` $#zQ( -$P's"f@Qht@X2nnПF7 2. ./@xyhaU*S x3#GS#X?9a u0G*/:}:OD8kAc:`kFnNjHp4>a1O$cr9xOx8:2'zx444tgZWbv@faQUUr̘=}u'S 5c?&h 0 :Is9+Z{>Pp0q~dLD#'aYf`F;74יts 6ЙDG}8b뀜cfPam8ljéc,XMaupCVdmհt>Ve 3zp e%1(@0tf0< xen{S\6fmp+뒖XM ,QgrzJO3&ꖿ0x-n@RLQ[WcJW-:VseߛrI"eVdeڸlNP>Ϗ\[WL^ڻ)?z&Dy~|w]lKn?gk iS%,{+*bgeɑ:[q i3ȜV!f~t%ÅH[9LJLP0 Xtv딊ʔ6)eϴm.kMJpd[*44#HڸBV`9+(LI dpNNGhuj>WX!Ybc8^ܲ(!3cܩ@"CD2󗔗D 'ռF`$ON1=? 1X]L L$i%@àT-j]Π<+ 5bel |bXWWb;ks[}qPjWjFdiU"☽_>Z & TIyfPV8V LwNe| LZ_dV%^@ Q(_-BMrbxy`WjI?3;9`~ScEͮ2}++("4ZrYxi@_ȼlLLa V.JRD _ nA?'K{0)ڏ[4 piAK/K@ yyO&qJ%Q*qE<)m1%g 2s맕KB6š6]3%. D"yAPPHyBZ%lJvLG߂Ks l!Qf)n[&ʠs[*80T umEl,!ۣءhdWf-mhOwebaBbR˞k_A5VT p+aj0p0 Ƒk9[!yE&d7x 8|~~<%+*66n?曔5?5ݷ]ښD~:_3^Bk u_N9PPOn v 83$6`K9^eXHg "W9΀ɴ=H(Bt 1*3o2ȥ 0lnƘ$i Q9wE=ezb=t&\՚°F>fLbѹZf 2gѰx_rC )~]thB o9hU/F94DD f+rënV!opPKZ )"XaB-'nU8շ/wcσ)"0sɟy/x,A0 fxY%X-Ҁu'>c>/'J D ; v12, 7u\FrÓ1%"(8Pgq^^bSIzߴ"RYb9Ì 7Yt!F ɀ[I[ܩdƽTj"fUv UC01_Q @F;t^j)Ʀjj#F#%:"{YX,dSWb#"ʛ27A[Oo`EPowqy j\:gyWR%?91?Kd4UlA[DY  BtWs9W\$c26F7Ö'O\߄PAssW8gyz`93 (qj)Gy1(>g@_8GF*+`sts؛MϏ 6+_F2׮0[MMPplqTU:?}0U\ȐEmN387r Jѵrz?w yX-%"R^ J]ytn|*^>`{ZŜxU) Xrԩǫ)!Ih꒔jR@.ʼn59Dvdxw3X,I) l~кB;; |amH݉&PR25]5=b97SSK(WI J*Ɋ4Qr'rPÄKhuFE Dh2i؊. bI6 >Y,}rCGT|#:_X`~se>/hcl^uc2*ԶwȖ8+ A[v;J@;X s`Z :[҂1;]`ڂ_i.,5*#p̝;ExL%ば'R9EʃɁ5 F(i\|3%椎I=;u^ L8 B,F6<~2$Zy}h.Mp/d8<3["ِhx!Wqͬ񩱟x8UYťFsj&Ϭx)Wqg.<,UML93~eILZe8O^,,  5 tgQ #{x >+rv'w q&]Jyy J"j|*I/>/.Z ZB=ZOejfZp"2҇wk_`}"tB ]L1 (6 OBA}%𴠖 dWHG3oLQ_"l<+?"ػO ޜA= y ܱ20+dR|]*A%%>[>^d {mz Y}wis!O?~tr;rtR4d&Sbv3^d'рk_-;0:hl]Rs>G}p<䣚rz+Xhedt@_Z~#$̳?Z_`E2Al:iPR .q6i#}v>";n6n _5Mﴸ+ޭ_3㡸df$CZ|vk!{;)vb\;&4_P?~fwv Ck` JƱv\Ω=3v5?7Ue,Rq0yV7۲+5Xɴמ';y vxGA~&vNprv )ZCEDvnTeyQ =L4yg>^6HPBP(o sc2&Jml CS5wT* x1NiۄR4`[L\iV*֜U[U<29G+\@ y/iEӎi)Ĕ҈y{" jI&<'}uOwxvX?CBj;IoXRZ !{dR:vj%o-٫f5 ZL["KZ&J&q{Xbxe-rB2LvNF3vP² yܐ1?'sF-j@dxdMb(6KHٵ_PW,,RD,},JV-~LY͵VQZ,[v ƹO #nWS9%_ML l~?Y+}wbrJ*Wޜds|ܖ٣;$vu>Oޛ͙uEo!Mu]A$7U!Ak_`fqf nɢao?h .iu?lwB;.NJ1O(MKڷkZbrGTZW%f\8M`%S PoEn{OߧO>#Wm0b5 dlvnWH txƞn {RS۩L;3NLKpoQI@~<F v҈t>#ƾ49Xbf`R0{EK:so/7&Wvt|! \]Q eh0|FI7(So|^Z`F3fJ~i!Gr2n `$w؃5t|ݯu a;1*bzO312ʢj~&fAPT.0'`;J&yHv%\ Y/k G3@.ך;k!DKi #f3`bQw䴢vY3hxNL2q IObc-;M[Q #|xY용=@"h$mqodO*D;Y O.ʓs$$RAWlѴEEDŔ# A'yR?!*2\.\P@聮3;;ZCEd2nѝpZG ET߅ 4M@,PU!]|A5׆xHɫHMT&~۟FOuƃjݣK 596?_{T9'`u( N06bFo}=.af R?a4OĂ4fgՍ-&$.uޖA.Ή( ^hQA"#) [pr.5Q-WׯB>"R}spد&09o풄DMՊaic#2І$K>wY.hj›_*0DDbp/K9=- ^$f C x HSeV4?$0O4\W:] Ԃz;\^&tgO=ZT-] x>r.8$˃NuZ'5*С0;7@!'A̛.#3z9hQjm@myJdPՔ&z\Mn+*sN"sӕSg}[j2ю(жՎG;J̰ʚdDu*e]`=툝㏜JI{5vΏ*8|MMjJoXOb)ZIqNRY##"\D8 .[6YQ7,sC1q':s$qa{|MxL(7@o9po^H=}x-L[_qO4a$26DqOW)ڵ ez\%Sq|ۇv_ƺs/L9_hYnv4 Xk;PCܤuNʞe=E=~ҙ%jo.Z_#0E᫓ _&O*|=pKr8DSNGl ^Zai]94fn'^4 ɢjR[U [d;y"tqrpn ICUEP9xVnmyXW+f+v4G B3{Qn:E]}*S5+4Y OOY #1⻁!l*4Ƅ@F0&TΨkDEI  K)$Ay9[42uCGa9x:@'{,d@Ҟ稞)yF fkNkqCSqBl+Ir% Zad{,Ce72:d1uyrQΉ ull ۆi]OSYBG<ۅ{uYZZ(2M[qK=]W\8db%ɨ?l8hw[Ǩ$0?Wqx싲mC2A4)vO"ݐ? ۳(y,ȼnfYsIkr1>C9ʐSJ9scO w T؆ eƃ~LAr{J߉ZSqrQO-9 1?] \4Lth{|[-@EJ 嚩t0VV^K׵-c E [l08O O,D-?iv#vwsroIIz6d\KQ=jFz*V3S8nOؙ(Wo8Oc:4In:u&^=%,LcUȍ 'b7RJˍ|Clmk)XCo/2sVc>+&3*eO׸ 0єG kkMjijMe8"p,<ؿ@KQLBn.Gw3m㤥&L:/dɏk '&? %ׁ .e.U6FNhW:Qαnל=FD2=8=ww:p$ӓNjff82Tdk}6FqvlmP+ XR|y*F'[K :r'Q:2v/j/.0@I֤65X^>(פּr86ɂӼSʒoZO> 2jͦDrg*pF&]K3ghKn;;VHƻ᏶\aI:C! 3AkLB]~e8&M&$!G,e^ZfŖqg&RxԚBV2#_ZSk9RpdSF pJp %s'!E Ê9Jm7Wml̠&bnVbp(,GnS7kfj*ˆ.:<9ojJL/kÑNѶW'/'5Oe-?SP6_%W꛾Mhث]ye>MC.?!h夆d#ScG[?B)$!ۜ59콴M5#tHKrR2REc? /&,=5 (K&lQL; s)dwSa$R|3omzys6 i`M{|_d lWx{⻷q a:(eLmNv_m6ZYЁr<:ƴ/`cdXښC; ֋erm QMF/b/ p8@;p "`,ZрI9McŮh'k0b!:s^pG R?k4óSW즮/16@s୯n] dU{Ay՜*(FGZ%(jb睨twd Rcpsit[$PWr޼RjͲPL]&tuĪ92 ;L49hzC+ D0ybh^᱀t :lV+dQe^˷ԪPHMeM4|8Bn+ tQ%KKelC at5Ե3fhl4F>mQAM<^LΘQe=Zg*[vڕ 6ã(wY|VY&k| ¤͉p; +*dRUjtA"dzyV(jЩq+_}يluM>3 ?g3?%:wGUCN3x'՛jK=2@=U-Q0V <;xCғ0-0qp/DtY<:Oغ4 AdTp9HI6Xv MlN/:YUX(5}"l%ax$i0Ii|/W Ĭ&j3\SN^-U20ʁHf"ޤ<20 *WΣ,gĜqHb T n#P$PC3uHH-1Uen淂i ٴ1qf#x9䋲wOw]+iq A,_uR,-hr2J1$hjHk'+n|m: \[aS:\|1 QҪx}|.0|Wb h=!yi+, h@o^Q-frݠj8{ptFtPDBAca†n8,F~xĸrg A5C,MoҤgIaQ9/ @_L.~6`k/z2{Õ/x!S @\&i a4GEm9LAhv luj={zƀTCETh*|q^n,0)}jli)k(<&Jmo2HU4AnI&^e9&|vzO(9i0N܊H'_ϕskF:J_mC\@v!ďFwQ Q96qn3:4Jp+S&?t+ur)l~a~ S| =b6m8gH<# K%C8?]q^si_AaoƑܡCq? !M,Zq"\ªҞSGt):,!}1#wX>*3/`SvFT6⾀?:'> ǒoT?kjX'ZZيg$d6œ]d 8Չ!Mb wЗ+jZ^"O|*${_kLoi HpnBWAy'aQe͒:<-fM`Olw:VOސwL7|ҪQw4 I`#\y97b zF>;(ųX8N$'ٻ"6gaikL朋ncp4XG4-=xaҼ0X h (jiNZp/glcȄwW=0.eaDn /Zߢ-cByt)R{Mve?/7G觜H yUߥz`$wy3nU,v;ٰ �HRU+\$4oV^_ m0W'NkIܰpP p|%eI1-{$C !D"l&mxt{q)媿m\h4`*ćL 2 <^p^k6-=ܖM 9lj[K"ehuۛ;Lccߤfa'"CFdӍ*>T FKR)lD5Q u5􉆍ZÎ$I!po`ugeQ ndFaERJIa.Rd9 OiX%CaZӭY3wwvHF+f7Y37-9a!YR!ɨh9\,NSة|TXJ`%L }mBKa?MH";6ΞXC|~Df7z'AYX %Jgo"|CdI[(u+&:j5fM{[gt'de=p\r# rR)&RL+OtR']N\u9?Csvl?p CwWټ CnnvϺN$#wS5iV3N m({/"TŽQ+6jSE-R ;n 02 贈˲FL%QOn~\X ,g4%%IP0_^&.jb1o)9߉ /E1r88<}SXneP(rL,Uة@c5 僞f%mV/~E'$\ޥ@x ,EȑX^%U@1+pdGZTCdli_Fno#'ǢSO++d$$&2/PoՈ $}-h`Ij J?B{IC6ֽ#`(L]Me^RK?TȣV632i nYn S;p >*nJwk~}|RSk2£JQE.^@7Q7?|sQEB!($ڇ EX?CO4);òg6gc$Q -xM0H5,>_NsVpb~(== }ex'ÿ(7ԚFI e{yytjW;2+ ru^X*WɀD'dMdσp>ʟO ʆ9خ%fOu :<}) s# 1a/aJ}kvz#.J)6)[j@A!TR |}gޣdaR.5@&hpм2E$F{h"2(dCwI64pdg>[͙M{NïF)#|jٳЈ.އ'.}2 Gyz3Cq;=(tt,THXv.ؔĝGHG#ah΄Xb}|L%1cgwplgYQv}x[ OuJ.TĕJ7ƙ'5U2 S[2FaNh16V#/OiGX"i2sWgMOt}s}l<^V(NƛeqP9yxPhMі}&`1?l]EkogOf͌@@F 3%df 2Y,AvYw\3џ2Ựq8knw& p$:Bh" Kba,;[(bFq;ldQ}"r4GnIwc$+-놥a8ꏚ.ͫ@B=N]B1j&J8{ ٓkc8n껧!g }یG08`_u^" T2F3XQ<϶PX1ޞ\H "m>@[&a"A:` 悉5)9Duֹ *Lys< N_ 3u޶ހ֨ =b1'Xt?fAf)4GQ6F}zor-7q`,+mTd:D Σ.aRvJ :` ,Fcim,c=JYrtBC^^eC} 72 ʯ09\в!nc?@B-PZ$ô[k4L.":|Vt1+i=܊CҌ')2f|(lt_'\BpEFwpU-p/9i^ pPǨ*0L62+HȭX#vǣhD(CR9 IqT&$ҮU1EvebjjWQbwt1y0' -Jz>MwNi ڮ33Ҧ [BQu5d9Z-AҜw@gʊ;qOX.(CXL̶9ASq/5l*Á!1{h62,Җya׈%Yo39E"<⯞LAlp(w-ǀ6m7L\K]iѐ$xW~6HLm]Uݣ]iE <+:l II"kUSJfџ:hj{7",(Bq:_;-w8T ӊ:*PŠ>i~6/gĭ-SKIvy*9ȩm<]#۸\)rzGAmza`&6< frS$D?MM.? f)=n,SWPOpM|~sg"h "PѰi8Wvo])bWn<ʺHП;rv@b}*Xv8!L2wvs: њy]b!i^ۧ 6V6jG,a_ڀ]6jW гL+m4\#xe7( <Hsthǒ'lqkrH;7PӃ ^a*~IiK4Qnƨ)Qzq|CTL X7"s.-Z/Thg i:2Wn)]nO]r Ʋ p0 y,}l~/"6" /ƽVEWDkMٻ-Bt> 냂ijp{'9Lpv/"<lspv:Z'T3Tchy)y Y#e }\jZ\+8]n3/poPOԱ" 6muUCHs h!66NX+Q8'%pqR6 8hYm}VjcmC%A[_GN`/+i}[^h^x^T2 /A5^Xi=p3}nޅ3; u0J^IV =fNP? a+SN853k^+gjy}標I1WrԸ, rfYǍO' d9拆Q.}: ǃҼ/wQ%i{fk0\5qu=8#rgj n"`,ߢAGh;),1L7\-Eưp>.&Ƶi G\ %o%'!V0r[hږc>a+/ct^2/ifE d]3x^݉8zAępD2t$#LUh. {TǢC6 }xjupmUC.zW)r&;TQR,x%?ǿVQSzM"Sfm+53Dfm쯪kͤ[ uL_[_~w;g3ߙK=k}ilGIBѷIcwXxC?ZDЯUWtw^anN^8픈SİE$.I0@h ^sʅBbOW)AaF7h|8T?IpQ!uQh3nқSϡ}'Ջn<2׼e`&[\YAD[w0xHFwy%X;/`n9G~OwJ0w[ [!8o7\YG |*xZDJOL;"@-=[b$ jam{4i Ȕ4C刋lx3i\;ؔt"CJѓ+AQ}˪YݯjT:vT|u\AnPnaf4@l**qBkwڞ0لI}'oZŧXD)F[`Ū!vawί gvLwʲHrv6scv[5F }!fY17=A`Я0xtO?v%*n4S-ɜ{uv#؞6U3hN121~OGm=]w ,tʪmߺ.{v䷑/ho={}߽!uU/npbUi;5ڔ?Рlifs [޳ݒOgue}]XgfgfgsU lB= !$&%Q`MЧ2l| 76ƒ)/?}uS;lŬtl!>c$$pരKk4DNaJoˇ1 CB!j:M$ r*EalDq@"e߷7Q)DɀHrF󷲓Yܸ+PypI.X||i),5+W*T,fX 16T9mڤR1k^ LAL1-$R :S2O2[MI [8yf?O@aveڥCTvL>--\LC4嚟U\д_4/^.H{;,6F^O\HAf3S)slp~Ko+ƕK (ģ-? QԸ2K'`-O ,SIҩ_VPfwfDVl5A2B;bc$9\0L$:Lj̵ȚZ|ء=Ÿ=}i}S&VXN:ϑD9R/AQxvZM8Vڋ[/8 BSD}z;䰳u&ߏܔ0q'PD*^6jy0\v/_nT1{&/6??ky!5ȷZ^Y^<}O|ы~JߕPDh+WB ]^ln՛͸Wp1/lh{[_DZ ވMfgԉϗ`wdRru:~bqX^:ǝvNe K,+46dw%x񼆹l=i}o/? k8C$K$@ʼCQ|Ў,Xí*Xls(XF-cp9⫻߉(ǏAԺ/sȵх =, z^^?!Z-T]l3|:BtMB \Ԗ7_lyϟwf;3cά~gV3ߙwfoF}9fAxҲ1Zٻ-m-V9Pjex 5؇ u+ P\(ZiG(wJ^w YVgPeY}Ux`=jT^Yv+#A++^ ]zۦ{QXɥ:;y կzwORų$n@2yVA}kAV^?(wr* n]+po%PV4jy6.qG0 6LbK~4}qBd,UBb4)vQU+~ Pņa((a 9G̗uiuncu F6]L@6)oաfFx_TFlGƽox97Ⱥ@L,7C~KF O/(p6WI]mFETWAe.zRJ@WJ°d}J9eL7֎I9ry*7e- OwӬjw)'^똀l-%_O-̔ % c if&` RQھO7{ߪ-G1!!.I c`R>PfkTSc(ݮ},>a:/8HV4$xA9.TNdxT0ʻwp K턲V7sZ=rVWi}^KO`ii0xQ|CH`U)Ge5nnk2S xܽԜ.Cd=S( 2 NJ< V˲/)ʰ7{yDtρFQՒL%m ^ou:֯,vvNKey~>og j'D>~Wx&BmҕW|(de]f؁Vv?Xl~#9n \eő Gt8rODlwtZG{Da\:kPuwe~Q/ i5/hm/9ԐO2@Bgi jB泊|-<L_Kz]*bPp兒Jsw;=8<: s08w|S΍ %'^$ڲ@iY]p9}fJWD]ca)x5' Rp.",f^jw1(#׀1HSڷߟٶ~xxtBv r!v%88+nA4)ȷN'"RzB@JGn0d0d.u7s6Ko6 "OUtx++x+:0O=tO1$`𘝍8{+/(op%I0n{4+nnnw^iϻ%_=9g%>+@GE;3t#wTNISfշv *`nHJ~F]n >>մ!RR+NaD='2*gU#&ux'0IDaO=rKTt!iDnsԺ IYpqKy97h sqh8dpY!<p9嫼p:G$KpXL(fyFӖBop@1Z`BCec9uiƸh1K,#A.hw+AFwn=.'1Vin0cD2M/5dkցVϞ>cl ~Fq_9h߻/ _+kfsq,[s+h-rZ?~VM;5U ^Xd7hm_NZF U%y3x@gW>[OUF `+_ w%-e0F , ۲˵u[a?F<~]f=_f[\Jp4#=4n_?v0Go%ͬ6W͟{m(^rTK.["z '@ M-bCoDT/`SCJwm`yrz`g`=͂{Й)Ŧ<&W7<)"),{Z<8|U3~y/)(,ĸ]0}ᐘlvoA)*Rox^H`os+aΖQ%U;nցԿa|e8)MLGsf/#VaˎN'(2dvulX2{!Z /u,)G]vVOeO4.!3NE|තh# ;lyKLq‡F\F%}˽G뙎4j+*9+fB^/3ӅxX4UrQ[/91Պby$/|)\[fg}fg}fg}fg}/?)0