#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=510275c0cd6f96d919504365cc6543b3 # 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 ZlqBcjs7oԜJoЩþ{wAyb s 0IZE"ɜkrkb8Վ2-fe/gsv~G΁kxdy9# /jyof/>]s {ڞUjr7s!a=+ cɹ9t527ujLȻ[j&A.LkyN6ԏOI`Y~9>Aߐ,~kGmrW=A|{5|H݂xy>U[BC.l)@S-X6*j*+U? ?/ V5wQ=_2:-߾NaVV3 EVCv~YU&bV25aʚN3盈Y)BpۘX+15'P{HUrOmǽQVJ8 0BйNm8>Bf% o%T^ns>,- v3 0=~Sk` lк:k3gBjkԿ۹WӍ b p,;#OJ*`n K)>7:Dsr͙uO`B Bo1"et`_c+ [ S /3K= aJD@FCr,N˗%[ۦdzգ\`\#Xa,s9$H^&$e)*&=fc@*], իl )1vhqㆭ _]Jꨭ֝gCTa^to Ӌ'Z@V fΙЈd=в$QB3$m4TݻVۣ9p[T-ZŸKZq}U>b/ߡ8H\Xpl\S¾&omd+0;QM+xh6ThVOER.]U5 zQ | m տ;\,ff:h:l\:*ҹ0=jtM%fH%2]@P.l#0y0 =`xQi0,| 8K]1\`aa1^U܇[KEUqɬ`fpkj6WDkZS{G+ϚcAwEKgG+R݁i7 m>X|H:Ȓ֮9T Dma,97]ZwC1RtQ1Do &agTH‡ y}hh+>ZQK/t*I:L6 6g+ ncdcgQ 00c.j)Zx(D<fA}|j<1]&daGJ5άAkaR} 3@+K9ãPyg~L´,cE2-R <$`4@O1a0'jmJMmZ3z۴EHF! ,u:IeqREN~Ֆ4n ٬ihee:[U_\qpԚ=(|XulswGts &8"Gnw >l=3%3d01X\g/L]n]~V  ,$rfc^]o)wؒ=p[LF*tc'^-6 4I79 %&x aܾhhDNJ4U}S{=j]Y]_q 3%^q8ks@H6w_PIs! Y }nI`_72?V鿥9Qm?ǵ{_BS-Եzܨ&?Fe_=}s_?}_(*)U~UfKfyVI(3/V(-r0TTEUOkkwUz/.R: XRTyBXDɀ%%uB%,QQ R+ l#_R(HXw"vjQ*iv?wb:`LAj^ R ?774|,f,)`&1sPAdvTKTS ?U‰jkzs)cZzZl* K5:1G=Qm]q+eufb2k62|3{2!>^0^.сtE$ t$̶eDI{P'f1LBxgR1e ` VǛfn.+(f&60q)UlN]|kP ї~Q"b-gb_{ SBAw^+Kfv WbJ́ įn8Va e T,&w*d^Q`ќh^jk(]}y{i|{r_R!8AvŷgL}|l\I'APW۶EO[F,.1X `h] }Ao/4u,wݱx8Ay { .mT65;C-F'q83'*i#"&0c#Ul{=+o$pײ޺셛7Ȕ*fI%O$N{4҆[ \0:мC3Gn1RHeuo; 1ua8S:DgdcFVKVRAi^X)TXqsӴm5ڈǥyHY(\w4B].m *pK_; 1XoVhQ0X J̨']lkv8Πxq/+͘t<7-?l&k K- YnbKQÄh$׋l~_QQ]}\;>?rR/ʕqxzO~Atd='ї0y`h81+cG%= ڞ7'S%rO>ZT{:]~)MS~,}xqGprs0r (,ˉ^Œ0L-oC>&RsjsxtP=PC`p@D01jBFk(*r&W85aHh80En ŀ >j0P JX4ӔˈR^ޔ}AMOC0Ԗ#TҶ %Ck> e\~FRq FE^z?+q (Ӧi F{'lp! E%ZM܋ĭ`G%R͗f!ñ%Xũ DO ]S&g=FfV8@u'ꇜK${еx:o$DPPTEҝdB&Yݫ ut ^M\4T)d<*Y866F J^4;cHxe1U@i# )Ol"թDvaV_f]nDˬBB:Z=kzq.md5X 7NR#LEො R8%WN9Z2Yѷ0+X[d8I0GծYGep"<9]W>8g ]&b JȆ7Cx԰mҝAL̮J)`C0 6}=_ %16m¼NMaICLaHզ $dƖiZKfv]0 =صl4Ӧ&0:_AG_YSl[9Ucef]Y&KPxqcnOՐyy(K~n7LÙҶjP29n%fΒd&xPc/תq-w ^OYR/Yo)~lY_huH;5z5eeoTX_n·T8K9.nIHڭh'0M>; ,-!&e7_}#\̆e0gM^b|w% BS3tI |"c.J +Lۈڍ R[/:<%ŰBl$D^Y¿/^W2YlP= VeK D_%IkY L ׬ n b50 r%P;dfB5\쓢FESAsp^`8O8EYjs((v/e]`Z_ t/jr\ZgX[%T(lDUVn[zMa_<9! fm]`GH`o+L^}sLsΎ5 }\̚3UFWH( l鴶< χ= H _{d%cKM_O,ULh9= S?!qԮ5ذ/:-@O)˞ xgb -jԔ8LeёZzW`W&5_Nj_jz;qR-;A-t KT'X5K(Plm2 iUU:,8z.|4"TL ;` 3d>"?GU 7E41 B|BOdE&)qذ` j..t6-/eHǎOw(2ˮFacvyxt7-(f^~mknSLUn\UڳB]%ybk[;0|ȸFބ1&01I_}i1$(G.S7m^DpKRj2ŵ3!Z݃P}Qk-I{SE=:h!luj33R@ś4;I.KK 7UCrARPYdCVE'5I,PIsLпp 8x1ȶai6|@yD1c_慢v@ླྀ j[wv=/c mFp=FDKqn8;A<u;\8(ig%)d $w_sxi2Ǜ)r 7h\JiZi%"Wv&l(CF~if~LAr{ vtjE 1i%(Hǒ1BZ(`2td-~uo"^^06|B{yT:;i3pӥڦ!QzŖWRb&'ۻӓjUD0p" hIELAIN?KI̓z`VZKA="P]0Sqyl.7&-$0l m8iqFQ&P{#-qpq8 <')NVDƘ4[Ơɘ:qϴ4d>ڶKa#Lպ6R G0k0yr9U|7łPhJ9\ٞT(%  S[\J6P͊\aU_zwST8M5ȱkAh#,3Kff5=XH8K /xUv|9Bnf4Q9TP SAp>qv% jP+ jR|0tرGC"UL "/#̥T%HgI4lպaJ/#P5a QNVAvfpqmݘdi^Ed*91mf$s Nn=4R#^.ҾO'eMRAj' ( (H ,7Imۗm.Z]%[33omN(#QOcԹ/-!2*{~;\(D n߶o@3 /Fλup5IJ >Ig)ـ;@.x o夁鑩͢Vg/BBɱX& ͢~K/!C߼"4py?0>ayueO)؋hrYK &8)̪T|3omznWi 5D}(ȫmÙq)3K jnI #]%]-5ꏵxJѢ+Vm t+qxg v,WEFxK0\ {NiJF! a<Lw{X2 a88pzi{8fc 4dą{HKa*;lu?MF[rR1KKdt=1ow"Ӧ'q,f]eUV%;qMIܿrB',&jfc9@nCb.s,Op.J ?kf0[#&)j-q&j /!X b'ȌQxl76[omA0%[N-J1c!$jlzmlԵ4uzszz)%E?F&P̞3`)y܈0"FCsqIF/ܿ \j0Gdҙ*: "`,oqH9I(Iz` %8s^ڰ:3Kf_;Gg f?⦮/16@33!!磋ᐃ*{/h;O3T%)͈a;By;.@8T՝c} 8z|3aidU2޼-~IhY(&.i:62;7Xn>]!>3 GGsQNc:ɦkuOhBLP-}K:JU(Sӊ9ņzWFkQqE7#&43*Y_*#a;n6vAÔ͓C(^{!->Pl&]1ʢʵOUE ${]h-Ze0541oJ0SHun6#ڧzR[FCrTA\.K{vAaWTNcgMw013|A'O?a'+߽JW/O?yDgx,dA26Z%2߫|!j+JN4 .#t X[`.c&.gYfh/W6HNZmlvWmV~T,SA9남tĘ|;L$*Bոn]35$'pTz$ 0q`#QX)䦶nv\L;\3D)5Xtt^e IjPalc86b"}za4mKc\m, s2lFۓ9~ˎCX6{ur#BτVGѶ&exBpc7lc1d"dzS4 )^Z܇ÂniF潑;~M _ԡܦc5~X`vK4",c0;G#qKf%ѩ 6\< G r.BUCRևjw@);a((&+km9~4¬t %?TeQ#b۽]L䵛ސUG ˣ^{欎|WZyTGu<42j>j 04&3(㏣ ."vd7%&ئ6X <2,OO mcyӡm[=Ff|R t*92/7X,M̥"o@I80ҿ֘!'RQw#>|ęmzoj` &ziד2J%{ 9YRLEt+Ҍ)6Vz 6[CZKh&ݳٽBqv,V獰S'"$+ ei g}@qrݘ@A{GhH#(Rl 2BĹ#9^xM%4E%4WVNd 5D1>qШӇR:`]#j7;+邶Ӎ=8՘vD15(+aCmɨ,d߉\#p4$A6]2VvfPpX@BwD 7K ]<2ZVۡKj ҩĚ$nKL9Si67'=#M;cfaj$3_ȇE8pdfYmN6sug)]ZdMWa_LH2>Nb%} 筘@q | G>1N75|l[i0eAwE! #Ŭ`+]ktT׋"qːC8JM+%\׹)Dwcl=y `kuDJNG,,^LQX[zV~ι-a=˦<ϺqC itH<\RWld3 Ǜ. Y+6ģA˛,Wl'0"7i7ҔD! ȡya7W3p]ңXMmkt`j\)MJ\Yur)%[HUD:ëj6~V+CzMavOwz X4kأ֣nJz}hYtX3nÀ<߉;OEPگBR*`':,/crplkȡܨUA'(|\b6g^u9qHumN|o <'54DVDfi Qَ u|z)EϔbNzHUdt$χ ?: RU KYkC9IP*LҦoqd93s!nz];(rkRF^@i ʾBG eb7YT8mqa.ҠdZO(YX.f#.#v%'QF}X2^fͧ-0 hRqbRO\[M/SaS:3 „R QtTDϤg4$hw"DfjD6ZG > 5ҢX .᧌26Rh]&$ Uں~c (+l&Pw?k*bM{)H.g$q2*@ 3-dêHJ:3⥻Bux9<:)$:4'٣8K8?C3(?1 b?C%f*l/I/>_II IOKG&RS=iv3ۄR2 =?䕭n@dP;&nRE R ~8 n{ɮ b}}=e~|p~5~JײJƚV䃿Y²Ŝ&+(w :x=G6E@oZ; kuHcuR}K+y>? zdJ%A掼&<&5$G|բ@u2u2j q {ܕ0ň`30I+۝Y1F!^K}1Pd ~Zr?؁#k:&$Y@7m'aE5 2#s  D nfR0zaՆ󽙢 M"`JiN{I6l~Ԟtk\Ej va*ROZPŒ%WkK))InL&6 5@7oV9xeF+Nl9+imp{gz$1UFsp>e j6mb-N?/~E'$a}RA*QĎMHK,y*ʘB@aGg2-,!2G/# mL>=,~<œ㑶{2<œGG_=0S'HZno=Fcz+©:N 6qFOv4ƒ,QvOއI6N0B.UT3KbhljPrZ,oBgf3 *c>>o]tQk^u(L3(НA^/Q At_^:&b=۽sZgZP NA5!Zfu.Ii NG195z]act-!KPeG' ݀߾j"%Q⸒0iu? DQKY#ة\;A쁴)L4#{ȃ£:k4ug=\~{]A#j|i {~eO( D? }!l$͇ҝqqwwjl1H;|{,&0K3) 8&``~7iaj oh\ N#EH> m-â_cA~mvo谧.p`F]*1}>l+LQOO)KF,J\35$qK^dւ+A G֋b[]VX8e/c_-5,a\[b!{R n`Í@jh,4ɈE &PYBBM೴K7hf6H4-0a͔d>AlՂ(4ն/8_+4,obP9.@%Kܐ䊥e)cBC0 ߸K٘bҋ84rvB$Dct \MNN,.fpMTF( WuŴڥ:iJHo(Yǜ+$5*~xʨ.EEO9Ȍε2}(]"gFJi)4֬Kj\ Cj<co2JpBib`hLz;E6p-=iRݽfq/l1ٰ= 醺XѴ':5)@f;zOJbGUJXws\s*@bk,D PK֨4밷ШiCu{ĸhR$[Yؚav1X(X6zYq$G%KV$bZt=TJQoCuYV.GʸF%T푕5Df8^+I5]; ^UҺM$c:BBїa9ֻ$чz4 eaYDOmGޜz-QgIQ,Ju{.U@8F*lDib)=j :>cG BF[/ȐX*+&Mq 9>:U 0_ōkGMUv;61U$z"M\8D0XfTJK8M&崱%,0dIZ\^S_>xb_Zda/[z͢B=EVvSm(¥@:݌/ZNwÜ %`8lDLlK)d^"- s AP@9)0a0\ Ź8ӷ]ķy f)6[r>T<\噲s+SG*JN( {v5};>6E?V&TܣVKGĥL{7c#i{AB9uz2ҟ }.Zb`^,w*J*ᙴKY{@$s9htz(⁐N%^ꙮGVE2Nn"j7PsQz?xn2+$@9SJ6o!7h잻tqQ¥oGkFtqabHL|PtxQ4pXZc*XAI&B @24 &.!:H3ʊVWx."ߒr'i/gX~CnAigf<̹N%p©3\0?}h!?KCƠ+Nh-#P!&ҷ4$W ʽeIKe$slɺd؏FWAF;~ T$#{R~Hط}B+np6՜I6]Jxe'7SUh$N'h<'DڥʸI#$ mZ#}wRy%'mؿEO 9Q ֒@u%E$- I!{#=! v|K$tmGu{k0ES@zucb#bmasC*:,A̖M"BqT iulO*J;NA ݣ8`=7;}<Σ?v"mه'ŷp܂!bM( B iC,n~Lơr`-]ނ TRa2ql3 ."'3p)Gomk "ԴBDWAm㮦IҏkFQNJ7@m"uvSU/DI?Փ#I*BwsZ%EjCOD/BׯID~;n7IdzZ8cxC%"CD0 HPd ZW#MkH:D~sޙiT7ZsϭqnB (^aCU&”! F#ꭑ\74h]T2r1Ƞ`T ?{{b9CL-Iׁ33 _{2SECެlIq`lSݠYZibo?ѼU,`'˒XNmZ?>9T8=\ #1_4ԍ:OWwq8f=jG ঍c,VcVG#lA! Ҏ_BrAB!A-켴!ȍ Sx'-9tÝ܀[d vdRzr*k)w?@Bw6i-Ǩ>(/[c_̊Ao,,S fHqr+nH eJ+Ð2i0 %`XpH34 '_tK{чC)S:a=L*yw_1F*]0**Eˌuo6`%a+&)kmSKWuG<~2r> ZO~LG'yeu9jϟ?w]3\s?Ͻs'7{ιm gPr"}KVO)p0m`>|.m2P;r ewVo8:b`ޗmHPhgFmHPۇ6e\jW'?Uv~^y'_}zzXNad뵽/؊v{'\kQ_g|Wk`Gg1~* vUH1ly`Zھ42~"Hbt$Rw_v%?|ryDᠱNi0Ԃj*mp{{ j(~0 wJa8ɘ0op1AEч|ý#]3tLֈDɂlq5RԋhD7Mщ#d]i V!!CV*J?gZuqe YPi^)=7i@)3_,DA'Ug|%P ʲ> ǜ`D&Bxdd hq?QH=vOdz(FO"ctRFO(tnp4}KPRU!!}q| -!RNkczMnw"|#s+w"$YUMLC!(ʐm?40=TRiӬ0>;@ ,`TOu1]:MJpe!n7ǩL!#+yi6Ϣ0qBF̌)ӟN2Qq02Y8 ct ?I8X aJp8wxAp\!+TҝI!N}8 )z)Pa=dT, +>}[ c&q)+!:1p9ehĔ2D LRF,c>%y@5D^ce4lW~~8V=$82lv"8.PGdn"7ln`8B?)9MQxT@{qR"%"a'| jnz.B2EtNdA`(>cWD\Zh|RXf;X\̣ƘH'RZـr byI(.;7EwJ W$ߩOƳŶl#沭Q !лLU'.QclfܷCYAq HkܫqbT:ǗlψBϩ|(Gow2DEWW+,SO'Dĉ#cscj<HdO I2 ĠGGeG!ų263XbRN1IsVuƚ]ߤPgkg #B^ܨ֍ݨbNle k}cr]NBi+LHDѳ $8uCzQd+#v) #pL KEHh>QǃM#]`HFhà.n;jJ"JFx}1'Gl`ENp0:} ?h`XD-+ cučÈmPf8ӕJpttsq1$n( u?NPe,FšVO,EYS(Jn݈~׊zàkBeL{p@\S] fC.] 83f@wVg9󒛒R 8*|1"}Lʊ? ACD x˿Ӝk1\ a?ޟ8|8~ |,јo:q+RD ԉ.j ^5I O!'eEԕCG(#oBd 3XeDŽAdGklғit1쁿)4On~LGgBDKOs??ϭs?ϭslhYt3nÀ<p`ޗ^ςvtm/^(Dw@"# {hC-܏ƈ;8N TD2C%#C*Jĕ>qh(5xfNx3T gPwC6.h"ßHڑKvRF/D GM\F7?ʟ/lkV6†rII#*TܶFRz%2)Haزu@ϕfC:$ԩOMv߼=M՘RfiJt  ڸL  J |>' JU0LvP b Pb| l,g$7nm0 RPg>)V]s؍^w8 q .v&XGE[Z ʻ>qSY5ҙ88xs-U-ڒ1e_*nx/2q+x<>N`}h¤Y}o1yiCbbx NMO6Ȑh=jqS$E+n7s2ϋ.F@up]֥vEuG^s^Pȴ VHٖI`l-e/ &vт|izu3l-zT>Pn7̲b=|ڴOqOGe_sq'lJgmi9?x8X