#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=c40cb6816a18791b2e06e343f36e455e # 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 \=WFU+IcBůd/GGXE\I&m}e B izNfܹtfwp-ٮ'⵵h=klVYQiԟd*V: >Rq2hH MC+EG,Fc ̠WkϼhwI542j9h^ohXcQ"P>xx*v.98Ntxt,a+%:D%`sΉa4$ Dz"c~ T%ӛtQ 2ʀ'Ea^H/;=Q>gEycÓ?ΤǏh2 %p]Qx/tkP%©0tziYl Q@>Ę]q,td)^H##-Dy5* 50$];5ә>2&,Y Gai\ƧbGHo(1M$Y2ψDā,Ǔ,3.Sp3sD`P%gQLc@8ƎyĢ~2'S+S9JA.u2J\pqV_ 3`V hytKW!6aH=G 9u@Q$"=_*g:a#!)LNmr1: ~5\~6 XleV @"3Q>Xx40WG GgJPM"(*$JCˌdױ2Z4PhL-EL'o?U&zyiXXC ~5 ku]c)DMqoebM4!@Nhu! RVdJMHDpZ- c1`JcG(Vܿ<~n><@0+@ڇɁz2T|Ȃ[ Ph]F kX!Gpc|k3U7KsHkq;]l.d>TS,2}Ay]Ii@tMuOu:'")e-%CFlC'AM@f!&W R< k>a8+G,Q+8cF?!LqW͛{P1#łO@\ \!?z{ ʥCgBC3RDٍ <^}"}PwB++4Srj$P.뉃.] yON@VѨ+P"m3*|Tx|0Pz jkgp_`?+q߽$3I] )0\NVE]7ŷ೜ReS>vH|kC\P堝*qVȟ'oC>CՃ'#ę0. z׸fOWL=Aǒsf9wNb]N&S3B8q ~n ]V.5 UY#` 됲tK BЎ7m4Bx({`J|1'N0K5KfctGp#n?! VA%ŷt:39n 2Q6 eTqx TlrfPS0XuQ=k\}x?u7ƀџsBBf8JUD &&K{LX`!^lX.@%7]%EX XU{)khGlkt4Z-}W ;[vl<})<%;M7xzM7aw) 2Qx|m+X`qt!K^_ԉm+Gv+8\+qp8RZ+hX"tI`d % keSK%(^dxY[Jf5vv@V%<;YwpIQ.]֛^FBG4fl5Ai [-)\ZxXd/>=~N}N}N}N}N}N}qp}FE0x?<-a=OTz`IUO ci"j bIfMiI8fp.~tdkBKN$vn+wd_s\MAo9@q۩buo;Ձy;E xHrnfwΰqOP| o$q>'1%F=˯ޚqNyEәD6:α؃'FZ]њ9L<>Fα+|f v BΚ%ߏW uP'oLD:6nQ:e n|vXQrvA$9T3,Vp.X^&K5 sn,(dD| xu-|#;Ve, V-p}T,pb&rQFc MA{$%OWsՇ1ӷ&c#С6_Y|`1MSh"E3V>: F9zla~L3C]9bGVT&WBCQKkT*$oha3}N1>ed/τ]0Sp֓̉O_OomCjf;O?䂪N/܌B?A "oܐϩa葽ԥڜ&*1~VD'>6kvm,Skdʜt12iMu7_95M(p'mélNWFg]aoeϟ\]+, (ĿN׷!S`%u,jn?^ƿfWdC#ɑMiOr%85޿OA?W/mk,2$ ;<1]y~ m_o֎U͂g+mޒ XWA4( и?V4V{c7mKׂ.7ܞ IW [4[1=@Z1a|1Q5FTp.u[*._j0Xi㢪S= 0nEaJ ļqN} gtYh¯Yʷ#[.a rq Gci)b0HjU:KGF%فf,-d*WbP. ;qB0tQ߈sa''nɄ;}UUY2gз?Y'L!c3UT"Z!%Pmﱸ 2x8mtiu2BKpy۔R7׫ԬosK,eEy.G[BKU{{(Tn[V\ ΍> ɒH5wnUwIƪ%A(Dc@gL :fC=ӚO{1Wr >;2@m¿2k$eS 2ڼF 9:-{%LGA\ f0Lh-ڊmdSc) #Q-q)59 bd^>V݁qYr?hhQqas b8.5mYŞ{e2eʕ4J'Kn:-CsDcaҍɵN"Y˘ )PT ^s17lè'HZN]-y)kwqE*k (kݫvb54aC =.] |&x/=?><1kh~;GL@=F-|^vF d$k=;o) {dW)N9P Y Wߪ-pX]ʶN`඄F="44E= tH^Ёi\^|$;=ROxÐB2 66O}rV0$O;?묇ɨ:&5d1Z4ijtuQɑu@y -6jOȚt5o8Q p1yEkn ҂@" ՝|i'1 T-("u6;v?޶%" s*7z-}R4+%*VvQHQ'8I,~cMdᐷ&%$F{y;32U! T 5qwgatʼДC]FVk2J%ɥٌ^6E>鏒QNN`c'zt||hŸBnX TK_-i$gդ;<&E҇81*/%E'XQt\IKt@JL&zZ18[j}.5Ȋ3"D0YA=f\x9lōy^)X%71-bCjF#1b|[ Ӏl\ r|On+g|x捏jum tfA/0JAKq> )u=F;-T: Ό?^"&]'*N//xha1G|9;h%,s/^yÉ4c/)(^uFֶ/?~xn?~wn;s߹wnio׃B @~2(iB1?ڎv ft4k<,Z[/PGRM^zZ-5C;)<ǖ4vnBaqmLk+Kiҫk0kcL ^^l5F! G$9=Qr_Y“l9~2 7P@%|ς\T -2*Qh;okomC&dtUp0ZV$)k &9*P@q@zPϋ5+oA" KC^FȍȽ̸(d˜#!U28e5O7JhUH^k2GA*cS_TgU)n9c9t"i*h;Pj-^<鍤 N=:>l݈v"5"bمgL>ݛMӗ p(`%Ymd󨶩$uuAVX~}Lda//zr'ݢ4$?Q)}!}zvuͥu .QȃbĨa,3[ E41$jֆ4\9lo o.I;k>PWFCqU,.NJeήٍ4ٮSw:g } @Uj ~YBtH`sZ043h.9֌ҫ%rmfCW :#Q-ͩb6Z*8itѾ% 6I}/##I)(A"l{43uԾ&EvއL iR<S) F*݁ R Q`;m Zδ5/ $LB 5=+M V|dO ,U˩wթ$Ыt!Sx5ӫtQYS3b3FV3U4;6vxtء$d<T*T\݌mJjDV͛N߽g֓s/Jq&mJvEw :GZY :ah8q.ONwAQ K.=Eɱ%'ɻp򀕅 CYY"[-RUC+R/#Ȩ8mg'<LR%Qz=t(Ge$Y=mTIᘬ6Sdo`m%܅:|UG qU5*̼LsNШ˒H'[͙%t 5o)}vv|բ okM˿ )!=ޓl.-٬.8=qPA(6vGlک'u|F#Y*Zmݞ=jksƿӞ NIԫqʄ wfr'-Cvc$O c>״ 9Wb-|g']SiWh&o+l! J2+|`:Z}tؙu[%ĻcF)}߽S^*0,"m ǎuAo %.C=vܒUmD򈞠ӟ$]ޗb\4ipeY2>N{ۅ9Pj)o' UNfod]Կ7,XQ>g׽dq8d%\|Y^2DQshV*PcɶZɏ~٠%L-1>QW*e GXm)+-ՠlăE)IzqaJF68Wp pAf5SP sSA#\f䦖D)hrL- SP&oU0m+ =wm5"&/ j<*-"8"0s a!!mRbiZFv4tƝ)=*#CMve ďWFU3ЉN%Y7uTV6Jw;hPY'#dňp1{-Tށ1_#u cPE4prY7F0ސ[$`j!ښij`X(rŸm"Y]xP>8;jK"H KCiY}ھ4o#tR;,,dV0!/H>0v32uMPY&fM5OM% %%ʴ]DWR.ipJF4 x0y"کE@|vRvFxgw!&{ hI*4ЇѝV@Ie$CIxh<,t80q d!6 MyDLS(Aq@M…+oo7jK"dwR2ͩ:BDQ#ڵӎ8 5[V[Ls]Ez /,ƈ nrAW^ Ɋ孁4U\rra֭>P_K| n&a =V8!N- L͚HH & pW\xQ5ռ@ً iLg%)ː]&ccQ\(?zY>ڬMZ_jrr j B} v9H0 +CM\ь>7QW)KfQhuXtygBٖ{$АPp<΀LܥhzI_tlÃCxcM{m>יee;Gu8*+hT`$ұw1l ZɁt(kQ6lׅj8Y_Ce²`S d`Ȭ힟j,pgL3q V}%d_ dUuPզ.\OdV&[  7 IFL 1%b IPt vWӯ=eL$:E)/+Ɋ{NvsE=hv-Vb-nh&:+y' iIP`xH,7TQ"? !3t'wZ.(Mh|~^}mCPa[%o$ e_(Ժ.QԪ24)rEHlD^J';5̭c9'gP_G0o.+Ӽyl6!2-, ./}uFC [g}N\|TvLV]q/#TҀ *'mbC .1yr95=,@9@X f^X_~ݬ32[]moة(r\bڪ#;kњ&s ^WT"[mOY2 ϵBpDk e$BnDt3k(pK׽pC_/޼∬yrH`Sq#s`f)$c iAlijzX9nk|@eJ +m)n1׬+c_1QW1t,(ra$pهVy4Gh+c눭rey g$Jfyvyzy3[Q^G81ZWST/)P!Se7Oȵ |L%]5нׁ/FƠ`_8*'I/AA&;B5nLcby$h4QpH>X]%cJx `#Ls 鐐v7~0_L,/%w=st<3}˱ &^V]RfJMv0RW{m0oEMOXkͺR_[ӪJgrMܿыjv'rsu0Kq8pK*<6R kgtjB .۟b?<.>¸' /__k a K4ryM.daA=ʘ(kKڧ>N 9,Cnk*d" eah"-.UryX0wv#qzE|{h|"qDƱ2mf!$m[Wgo}JH-*Q=?7d:/a;i0js1fҟ]Ej"h#]k#fepL*0tHAF{'oA Ɉ4ƀ{^3f/੫׽at/`(6>Xs{!;u6BIKfuq9:|e(8'G*Tr[(eI9,1AEȉ# k;OT%9Hz$X/E7p~pw2F.zelcohdB9{d|[,3<]=6;SUqxq>}m}ABvч2r)βFS-ۮF1SAfG,QN3Ba"0hlb[%(t例G3<`E,-Azr[2ESdPl2NW\c 5CirgΨ-|g-;Q+J]1ՖfX2fd͉l͆%LU3Ub *NZL^VFܧnZs^YO:y+ao#濋t}m->s9?s9`/`ǻmb1P~"G t#ʹǻT^ج ^onp$ @$B/D0Ws[ƒ0j];@O< KkFY!?2z;Bs~&:q T6T0=B$IaD_ŻLJ{+kUF2.ze4CI'$'Jk!w}Rѫe=CrAOSE2ϒ/: KJ Z)=X³@%GGĬme,te=- uy2ΰXFևMRϣMeVX6#{߁~fd^=bZz1ٰVRJl 8*o7o P^of7٘E737Z4<DZMcM$WҸ]Wv,%Bp!&iu3%h43U:sgO~<}SvufHM/؎yƾްM"h O;laˉ^;'{ݣFUðHK`C;,GVTk9~I7|wJ?\fg?.}^w'ۣyE? Wאԗ۠2Vߏw ({QK?1pZFO iߡvrïeX puz &ಆ㿭_8֯]AYM_w.p|W3qQ~A03sgzLLZyrHe-X ŘqMȆJ整V 1Zb~b W!(D&U|H5C%eU dkV[NWYp1ڂ/ak?'Z!& *j:i䷤}qu;2 񥳤rN _5I8'P٨=KeyCahݜ}ۺ10'I^F 9_n+Lj2t%+xokP2u>ܠ3{{0ԙA@*].+꽽7}]~£vK['W_D[߼/m ÑgٟAjA6ͰAٞX&~uL[|ggoRQڻ f*ٯrQJ^:Z3u~4[NHZpV;dkrno^7*^pDo]<,{.2v $ޣ_6vρ}\'ETX{hQADqD4?{*YK\G:ٝ m{att=3~36baaݐ5m‹aaȿxX,#) |KƈwkE.X ghT}{<:=>}X๦9'dxb'M!IZFȾ>$dp.&E?_?! *Lgy#`f~G8iAF4UbsZ lsv(1Ni~:|=Vh# sAWTVMGwc5ۙC#|Z<p a9\_>}eU^I:1#Kwl ^%T7%4*a5$tb_nf8: ohXm?0O+@ADl0<0+mZrjڻ뵤33ȥ~2iI3Pz7F((_vÃSor0^$3\0pn<}ڈ hex(p=GpoX530dE.v4y!a,ecg%7@i͠!tB'*Q~|_4!5yޟYa||rFiڣ7㪚uWưIVЀ$!*ݒ]FqGMA ?/eZ=@[bhíZBnlu`zΆOl;Ёp8M\s{+O(\|Nrd[h/J !\H73+/fՙ{6FC9d*6||lmC U#\Jkڨ"G-Һ }TjiS4|Vֱg;aXbGc'C!jkHvЀ 3Ng|¹zqM` .HJMY[[㩂[ he fJQN Cr&a1-v=,wX!2%}!`Xaf,/TMsXgm% !3ɁJC(R ,6 q 8>Sn9,kx#Vy}e;^9T [ $\!4k7G/ ~Z&ٚl\\]l }9`GD)In5rw-F m R\}˖̮޵xu)zUO?&0Cxۿ& 7J?t^aU+NVl憔Ii'-pǧrp.V1'r8*Ky3 7u0@z*-^:VϠM'YGsŭL(`۠A}JwFTn @iTQ\\1*">b̰.5%8ؤnҼސ`mFi=p 0!xǢhٶYwrبk sȂH6\|/V)K h'g6JM{I5#auwr UP$  o<>ou1{'`50 mYtAU+GWt#!²|%Q"*H-b=^ciAu ˜UM6Ʀ  +__oص+N+ޫZTeJ.S ]0;$ޏa]Ƭŝߩ5\C Tkѫ'ύӣk1gk@v3nͶ[2zVdV+VMLʔTFW+GWq;I[uN/_ᆰFKK#?vI%Z{` =>\1˩@=JP^Fa󘮒 H0%Z-K ܜpX-`3Y%a7.BJu7 ٬ggfhYN,baʽct ,3;#^2vbˮ*R0)"$)!9 ݱ^L^|duTj3Ap(O$N&Y>, HYNbRMdHJ*o&rp6amw_0>8z^{NĄO;<=EkUM]&}<}J°OO^У|$LkX6Gx,=}vq#Z͙5i}z٬3k+X̬ycҬNe쭣e-}! s>.Ltm\h21sBdDZ|r߼l$!fMQu*cOVQ]&f~Qi,7#<gQ>KZh/Km5IvnIn5ub$s+HxW/ޜEump"O)7 Ǫa0dW&:KZH-Li{,i&uWVA3-srˬ8nB3B!xNp0PXߕL_>󳿞n$uRDLX[ -D˴W: :lsaT.dI6Kqb9š*91cJq0$SNEO =4U.uc.ŧUAUt G:(? ^ Z>Ҡ%i`GUb$#QbQM *q'ϩ E'6)89s MA'р;qO6y~, yW⶙'|{? p<NR$ô( *E#A`E-vHAֵâ_?v~<|h//4O)>|I 򮐸mCgOp$ pS:8zyLJU}Sm %WOfDf;OR d"+iI9N~8=' 0ZOe 2N (M'9I+Gxia 2zjyمq}Ӏc^!@C&w/7u\[595Y.'䖋ԫ/S '{@ȷc͢v $FӲAvc0>;9曣sLp䷩UdZHr*)$Jr3p0s$&4T\'{InXNLR=z䯲^Tx?Q!7ܦȨƷؒ4,4fF3j'cU yse9BAD 7 QOCC׸.X"T'`ylIočaڑLz.zN@_ 1p)/RK"]m;s.S]D[g49F%jn`<`m=dסd&CBvcP<\ HefNQ{ hs!OJ]VuOKzp,irVDX g];,Y!-G`+cԺ2ZJGeE!Q,Yzsu(V4?F#tI* KRJ@0Xukn~$='sVNA@-\ZvJcD5 gycEԗ6xO7E'B ,n9gC\[ٕR]=޳^e֫m6>kdlUQGy+Ù]8nQ -XmH۰}E8SFI6beW笄$EYRaT\E;3$ГR92Jst"T[l'{ vC|BX=46 Qi]hX UVV5\f%_9HN4:s6ܜ|g3?sgs-{]_y$ts}]L73~Lp)j٥RY%If% #Y^#Hfl2mnİ`o!Je Do.I$"jdx8Z8M@yHᠪp#Y h<7 -Lq/,WHG`\M?@9l5pj6w17 i#2[8^?C&x`xEID˂C2]|ƣTYVe3N$Uà6Jtϛ㊒azzb$'9:;.h׊wIJw8?N9mR $ox堈"3r~ʉyLN+Iez%.e*U2:Қ8b]:\FU:EJ< h8"ip)u3'}cTuXsetA(${:[0lXE`K=-%Z6d[s8~.~ SoXL1g 4b$zv i/DT7\g D:kh%b^ha3N}_ ƀF/ Õ[r4诰^p A=r(.X$WjHmYLY}J'lgBa/x2[N3N Aʋun!a;Mg/ٯjVaF†9<i6êpxIx)N4DGbSWsPb OApqlF ]FC #ΜkOX5ݞj-%m Zx sW1v6Jec!avQܴl9M=tFJc/ӭ8#i.ޥ=Wtį'njr,􁽧aojYܻK4Ynԟj~3fR#aioƟ~")OdICE>]atbkES@it+j 1qY):xh-$: ; cB'8'^6G)qa,< 99M Nu2o4gm4gAz?7;KĚQ,|hK,nu9OE&).7- BMT|Ls򹪊GjCzEخ'%!%9#}VcZȂUh74Iy.' Xq&Rhסatkց^?C/}<5k6J}!뇯x7~|ӹ,>ZՋN5^ˋƹ5w:zG5&M5fxŇw]4جpv]|_pCmAO/ut] .~x.>+.pq]|rp]|ro]rrn]| qm]| ŇqlP.dr%峽ӃftJ3-B,$47_vx<>=iz_~&<|yH_G*ӽg]TiWf\hh(Km<_m'7Iqfivnh5V9zahs! .G.aߎt~.UQbXmWQDC HnBgu'4+^XE w1~ʽ0G0. rXu[;_0&z(Vp2,\)#-Zyy;OoxI]^Mq6@?5^GM,w._GJ;Z\ǴE+k!msN9?z9vyyҀ 1 XEFq1u w3e.Q(JI/8*  @hdqp&,K,/w0a_m.:kQYey/9<_:#D&JI5Z'h~ t  u9(_)mFx ):RlE3I{m94q^XCڜLZkт YBZ#܃wK2]:Eb>6b.{RO{r h1+#JfuQ~ZJQBw iD,UWv2!cD.<%&8QFes[1YyT٘H"f yr@e{֒rJN]>:_0LrٹtK _@i mo,c.Y'?_G``,继/$e:WDaW/3p҆'13?3?3?3?3?al_R0