#!/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=d9cdad9ba4ebb0757027904882ad63e6 # 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 ]LOO{ըr8.fP׫7W-ɮ*\f+Zk5ǭ1ꍣOH|<_s1_jT7UzܪՎѯՓjڃ4gkW{Zǵfz?&v7+<i_r=+<#gy;%RjϯD}jAt\p]!m" #.Q) 5Lw f$FLx)kޓ.2l7qgc3SgsR}jMn͇?XٴDwlA a `dr"#,Iw  f| hEYcW MMuMb3Ag@d&dOM6ڂ"e3bGpO r hh3@)k `A7hoIu42jh^674ep>~I[+uHg00/.rJ#]hGd<)e} HR2jؓcYRDwzܿ(@A1Wǃ28; ɕ4\cLlsy#&h,w& '@2וN-_I P%y4w}i 3 l$ڕGRg=Q4e Ӕ9iq]m\J)#Ilh`,yx9+ *H?!Ԧ.Hk[Y#x݀dl9sfyNgIyJl‰'f+LѼǗ5p%rTbi\W{ G3K !VP( ”/3n`*m_}P-fFL^`?5!v{k@42]*x}=yN6[&AT4|H݀x?][.BC6jH fDU۰lTnOU.ޫZx=@~~' ^ &[ռEf?n|X>ur:lܩܞ]ux:l:>;o+EXT %3Tta=D"I $Z񌁭7mv pe{fu_`BBo"etaߩS/"P fA^<3TS&B6v{+$|I_cz<[=UGB,l0uj.#7ׯI#MYXl H5Rz/@v@D9M"e D|Ҹ!tk IwS7,uZU[hp#x dE:(k (N -O/M%4sK8MMC;ae/= f:@?o2.)oU'UX{ęVW:\I:*kMjJ/Ih LNT ZM'w3wVGuOoL D/s0[mwELSM <ݼF"Hi)٤yN5f1,e=mيwf SkU `:ۥ 8p'M%Ax}ۙCF7|57yٷY׀a[|?ifnpv+;8[C vieԀw) CQՌ55 Nmh53ϻ{uGi] )3wTSՌ)ߍKLwlŰ^YBSElƥ(̅Sh5̐dBR)@3€&1t"E'ϰ~]7ȿXYJ_J)"vBh\e\8](ZJdL0[NW)"ZӞ9[Em~\{K-Z[bm.옶Ê- XؔBIdw"$k.բ!h,9nz(F RtSq;MÆΨ.|Wr267^TtoAm#W&"2߹6`a3\,S z'P y8:RQ +(+}+{ LոR:uW8Ʈ;$<7-ӿ'aXؠg~L´bj͜*3 4nҶiCdեiQ摌BXt1YqtᬓTe0-Uv0/P fYm Zy7\y5pI<=3L5pD|1{tgt:clND̼Cj/қxST󝅩íJ`7TΌ`9vWf,ٶW>6~\&h OV P& ><&F8B4Qb-ËMBD줔XKSէEamwe_ue|雞S)ؗIjG 5P83#ģ%`neta@gfkW'[QJqmW#]sW?w]_))UAUf[byVI˸(3/Q(mb8RTEW;gU?pZKH 0',@b]JZ a% kԫϓ o<E50K,t\ Ry&y_Sc~I|#}`ݵͪ%ǃ7R_f`33cjL R f L$?r8&|+hQdLԎEu?h=QP ھ( 'rg' Thdq48tӸZ MoVom-||(rR )Hԡk˘1 ] ÅIR.5XbQx`_Lbَ9<'.3O0Q4V;X4O4OJ'Lw"H *qBu*n&p2?\ C>(a ` S6&6X^w̼ig6de#7A6?ӳԶL6l)8a$ bIf0vrԀh1xƞR{W$̤މQwN:ud%಼ŔNx_9CE[Wo_J[;f;reA 0ypRE:,/BҸ_">Ɠ܏}>߭'rc<7\so?[u?A(^@=j=V~4u_NQS76 Ik '\LJo ![vdloojgǵC|1XEUX\,xI-XZ%iQl鰆;hx=. "Kְ33ʤBwVSO)&gn`\* H?f,:vc<QY#iwt,x;M{:f_Bq'vľ94:RR Ŭ_QTs`j M-EhsDwFsn+r7n z^I `]V-0L[l4fbQwfY3(:%&|C =KwpH4oExOiY`{fMiY4CE#-! :Ð"y4WaR+EE>}(6'[`*zKŁ62I c4-00gl!jw*``7ZBwM88CJEnL0u)#M@$)uHaJia`^$*F : f/7s_om^b2Np%M)uY%AI@CҥٓT উ e +?0Pw۰)/\i%"4!Ω< b\@Ƞɉ(9;`hE`_Nfdz%ly1x!6TcM U㓣QU ƨO<XuƶuTKE_f1O,uLZh:; [?#ӣqԮ5ذHVi )˞xgb-jԔhLe!ZzW`&5v'5~ƟOjyz㖌;qV]-;q-XtBKiT'EX5Kylm2 UU:,81|4"TJ  9>$S"?(U7EJ! B~$ ȵW>iXa%a]^mr[ҫJ"S C]!e.`qL8vo$[P̼.!/07M72 ѧj8&gRMVK52/зwa&q ?5SLa֡5b\%b IPt\nw;,׽2!&LdkgBj HVAJ􎞒Rn ҵݖ$=; VyyMg$Х%LIqX!9^ o,B9"d[$9F]+_ d۰?ʹ siYb]"싘]D/K#HPlTkJNƆ;^Ad%5Qo@KH;1ÈK[V 8St*jq8;A<Ux;\Ȅ)i^g% $R_sxi2[)r h\Ji#[i%"Wv;lCF~if]~LAr{wvtH* JI1i%(Hǒ1BZ(`24d-~uo"^^0U\5N +t麶e`B԰%i>#IY&p8\[$"$mO$$dI=a&A0 [2 L aHz.V8,m/ߓ (T@Lز_2VYy& `%^0 3FX5;Vl1X`|{kle49T>e-nmEtHc-'5O}jʏ:x@N:ɗlm@P|8q ք&PSu*gl-}A % r>ع$[!tjeQP8l3 !Qc,^6TFɹyOԎ=>h_ǘDzs7?E3{mĸ}h=n77pA tC0=}wOchj``$7O^rxxk9:c}AΌPRjsW˟⦮/16@33cB !H!!YU^vl5gJRVvCv\rp~pTSw2\),g̈́鶒It{j%ݚfL Ī:2 evn&FW,]m?3* GG QNc:ɦkuOhBLP-}K:N `PNo\PMG+ 0J ؎z]0ESdcl]։ZK7>Ӥ +#vYճ Zt0L $w?7Cw]bxx'?y44^E`ԕߒN I=U^KPl:r}40L*5OpTw#G7t߀tiPʽc 6`Fk6z#/u &^zd(tzY-@jB![`׬})~3-&Yj 1D.SQcHnr ?$t2,x!j׼T,B>A9남tĘ|;L$*Ӹn폥'G*]H>K/ʡa&"FxQHd79?9:u@$ΈGZclIY6[ ȑ2Պ&K tsCE2ql^5@kiƮ[Ƹ6X^܃U،9g')r]r aF 0;m3U켂&eBp4lC1d"dzA4 )^Z܇Âni텗潑;Y颧'}r@z/r"ɀ'A.31Oh`PBvamu(XV``vKO/Bٸ֪Xqy"hyH1;<.Ner@Ix=PLt)ίO_SD*=(&lmӧ1 j( AaMtۊnv*vzCJx/ꏇE, Wohw'utCVa!CSCmb㻸8j`IM`-b'8> #s_b> ?̓e1`~*_hs6ߍ`1ڶqkCsYn'*, D\yt iβ9˭sb)/Q):nj]-N 2/l74x"¥/lzQCFPGO ɖ2-XH=F B1,#Rb>wA!E5]&T4N-d^_-|B|p gǺ hDX퉐%Mo wܓ]6u| b3? >=l| j@I iE D~wzXF(E‮>{rHl`9lvKguHwedMRk&F>ҁ$Ia[A^/ ͤ%ژ|h B]-"ڣTEz!qmq@ 92'^}a 'owIʛ%ЋY,+ gLvbeUpsۼ d2*df_o;qu'KuK)#IIDzSF'ƱF ūe{ PnS l|MQbƙ$ԖK jW Ԝ!X )HO :} Pi[Vظ$W'If8>ӯEw#8lnZF8_̌]˱3l3L>K# Fn s`Nӹeq<)ltʶ*l%#9VE{? m϶ӚS=.WWHMY[sUSx'%xZƨl{>k/^l|c<__W>j6~V.*CzNa8`=Fizd5QQ[aŁ0v;h9،0 '}﯁w8-ꪰN866[ y*Ōd M4&)W%gtT*6cBw" Հ=spZ@,D/a%H-BxC '$"W'}~$ShYJdSE(ժ]3(eb wP(=uEil8]9s)nf];,RFY@i ʀ˾BG"eg7 T4M+ޚ6ªΌ.",U)-C<xjstͥ[:V]$2ʚ*J?jA )J_mn˯-AlNަ$=1)# f+fCߐYMl 0;8(Fnb'?;%Y 7w) hPP1>xi+hphpJrD~+4,PS;{g9>( 欢…%[lTVţ5d* ~47361uEqos =!LXcw>ςtQ<AV_\'I۽ `IQWaTBz&A炷c)oZ̎vzͪ/cs֯UxVc\/K@%2 VB YL]x(bNJ0p G;ZxЏFSB1edPˆcL3DӫD D]J^v ~U7xQx|s|¿ Y١A#$D"7c)T}dN֏4r܊J֎iW˴:&E+F`C'ר,n27#i-p+{K6po[vkQ$shf:ɶw7=TlTc&<}TA=[] f/\ =5>( "񷴝D9Al̎ %d\Z/HOm*sDu_aN A?-\Qo G%B؛nE^ȧLQ`Dl<~WN0-\7ׂ,? [X\Uӕ[bP-%x`7<:8>9> ZP NAP;!Z¹au.)l H"15]act,-!KPeG' j"`'Q︒0iu?EQKY/ةhS\A\Aм4#}Ț O“:w4ȋu.g=ꖧ\~{N B#j|iw ~e0O( Dq!x%Ü͟ҝqqp}wO책!4y<`^☀M`Mb+D\qaZL;IFέB}ZE ^ J%%ƶ~YaO]`̌XUUb (!{V2yw5ϞܝsJxA+% .sY*,g(kHU㎼(EתA `Sֳgb[[VX8qb_-5g[b;_{R n΍@jh,4Ɉpe $&SYBBMೲK7hf6H4-0a͔d1C'nԐ֒(n6ն=_+4,obP~BB.CUϒ%.NrRDה1!L?Fo\%l EtjBi9+ve8cRO[$4pc%_M#OgqVYn;KPp>X7|{-]Y?(* zn|v^|yް*hcU -q$]B\gVЮO GM0r(c/֧M4Σр M# 5و܎.}:fyFN ( lsY@,!t- eIH\LeC[ӿk\_!R~UXaZ.locoZx0pU(bVli0>;.;|OB:F*[Tr*"o(I@pUWL[]:ØvBG0 }CLOJ 8\!QSFuG(`[@RwAft@i,p97bTJ+Y|Ef]R{PR;.'!{QZMN3/G w,2m<5~[z|I{_f9yGa{ uiO j1VSPwLG;L(W kgI,ziϿs@Vj+|^UhAix.:;C8AT9B~Eǎ`1"C`~ QBT Db*7@҉F됔ZPG))A>QYAXBh/w㮂E_."``<V血q; P=4G3όO znOn~Lm|kbc%'s?s?-0.@gϰH`crd6Bɬ=wNC@:-4R)n(aAZ1/lRz?Ǐ4/i0EMԥ (H4< 9WƃJ4!E; 3QCѧ(q7 2Jd!3IיA@[O5y{jO q#XPՠS%s k `}`UJ@Syw1j= V%=?I 2Q-vwE-޿LLIu]f70$ ifE2=FO2tM}hఴƸUb`Mr I+(V ace8h)P9`B%j f!ۭp]/EQ^ϰR܂M6zsekJPD`5gd6,ЖOH,AW07D>x)ș[F>#Loi H ${ ȓ /!u J#Nd}菇%ݫ"{D7:` Z@cJY긡0oVm-]DtҖ`o^ (GV ߒy ?@U >%H;4)>>a+WځjYFi28 pբ,qnQæY / PMqѥX)ʁ jlSWPVi- *Q9DRzfjBxA_Q Qg3[oq@^eu$} ܧb͚nWAlai)Nt%Of^'R@mw5 }*YlT E¾jz iWs'Wht)]rൻVP OLU{\6;sv,>Dܞ\i*ILy;-ڢFF-B%*7JSTڰܟB%r u%#=;[K|y]BvH=8)C.IHϏVt%`l$*6ŷ͠FÄTtXԃD<Ξ↮^PTvv[@Gqb{aw^WxGD!OVpsyI;*}5QV~9'y>p܂!bM B iC,njB~Lơr`-7]ނ TRa2ql3 ."'?rrGomk "ԴBDWAm㮦IҕkNSNJ7@m"uB[/DY?I*BwsZ%Ejzfd'"W@$MFOHH^F$JzVJp2I ]<[=U~'EǼn+,hJoY(ΈAtDBp'Ud,)p\,q SII4ԂBfmПB(!C6?"E0 HPZd8 ZWmkH:Ds笟ޙiTW%sϭqnѨ (daCU6,! Vf0ꭑ\7 h]TTɲ Ƞ`T*=|UBDf{f>&B/}ՁYZ_wc<1jOdkc<{^{^?sjAS?"I vPNo ~ܴ;8?%;LYh(,\|6] aɡ1:qK3m pz?s9 1\~,w=X[IVߏG߹H 5&0\:wF!~/Ȼ-?F1i/M7EQh'Ç3w>BD_;Qaή.(@п]^L3.Gmovi2İAhgSGL?Z Ɔ64K"@ q$^P"Vb]- 2F^+kEٜ4uu3+!!yᒫYw!(u'P T'e (H_""6l FKfE=&0/00̨121<}]X@>dz(N"Jc8F(W|nc4}[R/U!yAy -RNktM n;k;mi#A؉,& tG eȶFVE_ =*) Դ8hZ[XP߄ka0 [?%ʋF2j c&󐑡<Ŵv7gQ a}jft1-@20F)~w<{ IdBv oSwb8(nELk0#I@OoJ8]u}:IX< ! *#:> >CN,IEFGy% >Ź{ YQMpLW?`^HKɹ6qB* t0, ȩb)D &Dbgu??8l-e* 6H\č53*۠9&kR QcBE_,x, sfpѶ$Uw7XO_R#>zFJ3(D:lƈ2 ,0q蒢i)QчZIrk:C2,~mE 7'FsߘDzw$X!]=HOܬȉ}#-?e?hJN5HZV;#JeA==xQp+WHMrc'cH\9< bDU%CS1HTrȸ)o@ %7kiK`vJѵ&Nd݊t ..qsٌj9tIiь0dB0*QABX!Jo=B +BHSd/ß k8.Fl6NƊa0#ybv⨋fƃLE+?wNR"/ +$Sv8hy"At!#a?K~{.k|>+=& "=?Y?1<<1jτ_k߽pWsxs?ϭs?ϭslhYt3nÀ<p`^ςvtm/^(;Dw@"y# #hC܏ƈ;8NU'" ב_]H26 R8d4<3Dg*!U+ 4eOrEh%F; qWq"?&Cfr!Re;JUHU#,j/ iJD*4[8jF < *+SWe( mՊT9ӧ UMpUuumoZ@E K%Վ+i3_NрBH,|ګP!Emx4(+TagOHBI=Ԁh)+M-}6[lj& fn ҊPT-є𱥰aH=Jb/gAIvS +IRmwCaCihIʤU_nH)[ V5Ԡ0ra mY:Sn: i`kMʹWRb1"fdS.%bIItHCxKm$F`4D)t$Y)$~_ 8 } ȧB|Fn`xfL 1Ouf-5uΑ^ ،oiM 9}TU`CkZ7*iiVmQ%В-#Pe"ٷB{m˓SZ;զmghٰ& \շ/EI!1>T,&P/JChGYDa I*6W^v?:p"kr_酸_iY5L` 4m y6RbfX0Pv-֣o ĭ 1d {iР"=`*t6@a';Ж} D1rO{ 2||k_1rO6_]zՍ'`]hx]|Z|=.8bvz_SQϧBm<Ӈ|xpXcAuyxxxz_q:<} W9<} /|>lbCKqP,wNI Mfe\$2%^Ž]W?Ow؂”Tw 2?E7CqY֫=ۭq9ULyY7 s(8fa;nH`Z_[YnŒV5 ޞ"Byxq{p^,fdsE5R˴ Fv3Tq gwSU>Q(+M<%p`p Qg8F&2P}7W n bv|꜒JwjqXaέ!s! lxz CzXͭ!Oi&psoUɜ)yÑ'TɜYZ)2K0+L&pvPb8TӞR${nu3$}tI*a4oSBf-tem[ aB6<%&18,.#Ŕے`ネYOˣLD=dqӜ!߅xX4P*@pEArDp_s1/'PBb"fo1ﻍ\Os?AL]Yp_xQ#lͭVV;g%AIE+!|]UQ,&$[˽EGb)COOOOOOOOOOOOOOO> Q