#!/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=01c2b6b9a361b4a19ee4d37c7457778f # 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 E([CYm Bl#ݻ''$2M'Aq~9jr?׭uJ1Gm{6|v/~vl>~Ƕ_3c?{pc?;$`Fnl¯_ r6>LQ+"iX~Y9dco2a;tZylzSn`\L]Y:23Vy2!h2m3fNN1X%CQH04h@+ՆOcXYl`b4QT5kjzGBB`{Z# WOM'Bm<\T Ll?< :b%Mf#pGHْ$+PXz>pφ&*,ec@:4MdY (wG-2L Z|RJRV9_{nYnJMv:%t>촚ROavZ|6wz @٨+0wLI:=&_u[2z/KJFkДU X-J~J'9zKx-06b;Nu뽾=Eb4ZuJjրʤRϔz^+\. Tv&hM'5 [Ut  VT}  N֬_/`G9i zPgJ_tqE}rZ6P$$Y 9x>(2qOn^o˝v} :0Ilq3R#/HUv})A{9K#+\x-] ݐpeE*dȄTh(. uV*,#b8(" !5.E9xJ_YoY왶p5.Πאs2әhc4zrbn(Ѐڭ/O*5% RrgO;셐3S孟J)cREisXq ئ"<)@!9cnUD(B\[/W$?߱$*?BT͟&goh7#{|*E*aȬD7w b3ΔE؅S7߬1v=iczKD`ޝS8g "V H`clH^tuNi!)G9iOՌ=m y'D9IaAS2rp1+DSYap \tL՝aYŗ4̰џg4 R,. `"[3D@;Gs`$PƯ'Q@l.Lʚl |4'uld Ia%b!SH|a__$ 9h13"ck͍rQC ږ3QQGrlL:l wpt}צIa97Z0gGUs$溂$P-:@ P^ G(QI{4<7O^A3eΕ2, ͖W@ `1IЋef9Ý6ɛIw8ɜQ\/:s5U,h Z1\_~9T/eGhf. <}Rlĭ +آcZ;zLkg&A"݁dw;Ţ̧ gs` QrNv5YsâTmg'٭b=ޗ& 8In}z7g>tߛg=>x_^_/}ͻ/r4>kNu|>3|F D^riv9:IrRjA#P! ~$//l=nھ1ylXnjh}"L2oteܕ ·bG><4-\8,;Ǭ6 0N9߂ >hިNemdgoݷ >!fZ6w$E}6a4|oM-BC&jX Rcsg|kNj)G%K˥%,䕊 r:0k㟚u*m&;GԒۃ/*(ک6:M}C"FFCkyߛ\oxýu ׌qi3H 0$YYQNbEw+xẐ͏@-Z ǀ7?lmӃhl tӨg  !K#ТHߟu>_cea4,#yqDVPxT!%XQQtZ()cW8i>ˬawZTz`T *B汊8+V6?BI 1&x=#m~n~'!|wxyW./2$^IXjs%]ֈ"UEK% !.o0ؕ{㋙Y :-}n& m.f\昷L ↂM\Xˀ6P'~:b\ ~Ġ[׻1OaɄ +\L OJB3JǺ4,S`Iɚx9;nC\rY+[sBĞFGv2;26>:pZh.e5㽫[gڦIݔV_XotX_.!yh G7k)i k @/]lȍsbH"H[,,7>.>I7s'ˉ崥:X~̏b{PI;#̩]`m FtU pmOHBU!Û 9@C&Ƿ Vώ,OG;eb,ZH;28ǺΚ:Dkxp~/B8XAF|!R1ܿNm>/q%KD,¾.0/q&0<k6*t*}curoQo賹N<=?$8FMU#zd0`֌Ȩ2#R,lU<-s{ֻx:m9 4*1ݚ xSan\kbUq-.Yo HyGaܣnI)e}TqՐ| UOs@=UY\W tT x6W=G@nRAY; oRXe+[=quZ8Y 6g^W^v"^Y5qnPt*h9m-)="<" A&Gܨj}VXFǃ:r!OPVR,9eޖB04V(GІ:΄/ ?CPh^/z >>d6w(:r0@ G&;m=jxΙjSš1k`%HhgA2'YN:Ni%Q3+o&!f\1|=e( ӟp!$>MԂf˙c >-(z$$e AXzd+\asUk~Jib2Zao8!U#i6?xI=q" d=̪!}jIpS-?AGr$zV><:?݃BOȜW^?j:嗍 a)İ% Cx9Y*Al> #|(Q (v/U덆]Q//<jXR [0ҜsW +,!Isy8v]$,(sZ:M}er>2cg382NSϡ5 ,m Z K.Kd0tb~owN|XCtAtv%"w;4Rw~rs|zILx=XΧzBL#Ƶ2bnqF_@^ Š/hSâ |fsW:Bu›GZk;-V}S~ qK%¨8crFяds] l{WtKEE]`W3ðIo|sTʅ=OT^}'0?>x5]96`1)fj@'pkh Mz_V{}ѥf>,{&]{h\򀈓c 0G"}ιcZCYw0XK-A<&+ ;ѲπYy85 T]Pˏv#3摷_XOC _^׃]4:@_' >Tafw%Qi!(8Fp+ز[az %>kD$e dS,}Ĵ;8HOSELp߶U)*@?եK}wVO؁D I|j/ej%YYzT_eG<[^cF/c@5ܦȨƷxYvF߅9r!4_D=ƈV:7|S8 m6: c)3pyRbZuBFtvQUz.Ƣ75`-3מ8)pzJ}5yMmQrrn$d_|zLy.^m n9Y\%c !";"(6A$>M0d톅>=aQX-v V8gړCeVvͳZI9M3J^H *MIE[!Fo^W.[-yWs͠m빺_7h6L:gA~hXy ;'d'}vt|BזRiZ{ZT 6Le`MY,q&UXTI=9=9yɊ_h f0sWjemQ88ܫonWavZzYkeZw}-v,? EZi!t-$.?pLFoeSv5-J4 3=W#z{Vd8Ӻ5dQeKvw`INWW-5﹑ d;,7f7#(R?"%vv&HIiqhfa.n'Xn6تa eķk[ mQc7o1- @m)Ju*U/ڭ9;{ܶJcb貤خv+*2-NqΔB"$n'Й;9M3*DXQx b¾Ϻ&4۵9b}'‰3.O4%=W4X"HksJa3Nw_E(oh"0dd/Rlq}Kq#m_Zw!kcEAr~9a||h]ݺfV~ny8޼5eds5U6FPSʦ f}OjcTg6C"b>APU<_yn Sꝵ*}E. U:Q ?ORh[kW& T u+V]zW4tix4Ch[WMz3֫?fgZV+$ОV+- ۀQvPBmdUt@yE(w'I%mfFǠ/}5eDf"SAͧ[= _]pٻ9{xpsjkoCr7y5nwFJsf AGHVg.Lޮ/,> srk?Vf[ݎ ֊z\#B4Pdʍ操(GMcArj҆izޙ.StۧØAWxAO 9Vw;xB"_^¤,\q̬r;⻒Y6xDhAgn߈HboѼd$9[ξ@Q]&h'|,HltKA*Ņ˯g#aiqi8%L?7Bv5= KT(3t.^AJNر0HW?p$]:&\_B)_776kso_sk5"bO2v/Y>-sՀr3TozU_;K 'J5;b6FrKX+}ƌՐiҡ6Y;JZYjWt`"!#IIpBX ~P*Ce6ei&A5n UUy hfUw?!vk} [#=p>3"u^_).C0o`tQ#cѾV>hv*+pn4Po6?0۝:/r4 3al3J~hϠ)qp+%.fЀle=2 #e㙄͘gkU᠎>T.H6$w?mS)qWU5ksl}W gÇxHu =Ȓ2}6La27XL$Ui=h۳ SO#~AY<` -H(Ѿhd͟%]myiEbO9 YJwV#{L1{ ڽ~GMT ~%3h0oMK=[NhlDXݽ-Kdϝ9ep63M+(H [Sw,reˤ]$Da:%Wt[S#OۑY8ۼ-o.673rD1FR";f- |Cėޢ4\*y,`N9vf566Fޯn8# nJA0u{HW#LB9 'xNb5*umDX6T9[NJd <ܑ5ڴɸ9դhھ4Nva6)Ų+pW~ك9hXyJ o^f2z_;;Gd$26І`3)n:/(ggIN|F$vb*f2.1k~ǻ6&@͆bۖ(vHf mB䤓Ul,>UZQA68j/8SW= ̊ip֌zDJQwpL3 K:f@IvsZ&AXB uQI>ObZNKd]A?,M3$*k|^P4f**¡-R pwLE$NHJ_[_67+ZedUn%rOJU[sR8/ЧV/6;}:o`v.\]XXQAZ\*Mwg2V$uR1o*k]ERE);Q[O)e)٨J5kxM™g4d`gqƣ|j>OijIei_"9O(A>YC0 Gd}`|DݙpE#V\cEYyWN qpg!Z N}&vΫjsVp2#{Sc/|cZ;c_b"ى /Tf,ne{Al+ (fSKhr湀8pyڲ"Si; OD40zO 9!(%3[ /ADCˌ#9x<Nj:uFa#2#!C4^KlӮ-ݞob:{Vla5YM# "[iĂ@&٤1Ml_{iJTOE.S;1=oeB+L/i מȀPxQ1jWEmۮ'TznJQ5&#ҸA]W3NR&M޶ $ uz6L]`5̾23Z̢cwf" u,c(q|&W4X "?tw>JQ~@ku%TmxQ9ݐ֭!.}{d[Ǹ=hoۍVWI68;,yEqM{@A d`$< 86P 9z X\k4[hA[HS%U= ; BWdPYxc:!gdC%N7h!TDaus_ :B|Q$l~t&~obQzoȬ^ݒFJo$]mB I(M$;{?z$5Kx?^D(.y;}`LJgNɨ/CaRh +)eQجL%XԮ7e-4>{у648I䱑cE)8h{-upq8 !ωډ[=gq&-L(td?Ka'BӺu2 t(s=ѥL+ثxhrY2w0ۘK\o9ۿf W^6/Í3*-+.0[I4N ÐtXNn2((Z8y ?[yah*S?XOUe9 B@Ғ44+^I; ^RͺNJ([s Gʥ<ӡ `⻞o=,@F\ [6Ӡ6 bx~ԶW\au=waBx˺6_i5^%3uM Ve9 YB,Иk=`0k.pRJO6\h걅mb ^;Kg1&)ֽv39to^NzȾ{l~ii4+VsW{~`#x`>M-nǘ10ӷg'ǯvO}*H=XvN_FJ}8l??n#F2^' =Yl ""⡻"x`\j8 ҝ L`{*ɮـК 8]ctg?+!Z9uom_ v:Xsk1;u#v$2T\nyAW;I %{)EH䠨 ϓ愩$Ui5d 5 }*NƘ`G/,P F&R`=G5C1Lt3?(5o:=_wD2z)/H(.Jtke(dScw ̦PHKy)dxinZ{4s!ii]WlQxS,^L:RnO{lbUx69?s9+|z0ʨ+{y8))$cd}/wQ VzsiuYl+e*$=nT+ j|bU+QSnd;9=<% h''ebǍ1 ]Cq18⹔`ʣ{a%$}h Zf8?쟦_ՙҶF{jxC̒IRC6<O-a$E+X/ |;*}l(ܽic\WRà1`aVA?E 3kFS9qkx7fM3 e %N}3@5C&*6%,9#B}(w<0A ŊM]dUQRC'%;2=lA^.\XV/ z:lML˫7GHcʃ?{?VS)B{󞎍s7)qtlm'#؞1RO*Cf ̺5 ڱ[(%.]-YcJ A& |o#xT.9@5{ݏ3HL)@1HL)c.RM =y-/߸t QP p-YLA8戲D=3 I%o=[Gxno Ǽw 4&Pc wДo=%,H L]9tB9oIn'0m{wuW?mF`Lfm)vO h`:=Ӳ?i,q8@j>\"2hʮ/9^&cjMB]N" #lwp˘MDjt:~ޝb1.3A`gxr48ʰ-Ig(so-q8b^_[]{py">W+avֵ5lOO4"qR ᆪx 1wuPDrf|ZI !%%;@BBS؋2ނyy{ 66bJuW؈ru.;+%ȏl7S[?ᴞPK5T_~=0A !(1\LAаD)9 JU(u6J΂#0ږT<$ŠpQ/l84^i]lj)5SkF2 %'l'wGF."cDRDЩb`;ؚ]ItجU02K G1͊j)^⚖f65L"-lТBYUC~B)%^OS[.;# D/8ʎ Q|. oyiH?8+ :ן(6kU. \)}giI[8 DћUJt$ zD)NבZ~?Kٗ ϭ gXټQ4QP:HU{l'=W5%EĔ$QPݻ(h (?l {Ln`t0)X+U{Fvai%k I)v<;ІF#lŵ ES308zjh{ByYdlRVNo"p㴗} ?zʼn=h G3W9]\~:}aB*h7V@rc^4IL+X>媸pҳk~.3n04=o%)CԋDcԚ"sDew:)-/a(/7ޣ)=>@8#.3 b` U\o<)_ mS0-52"YFVQ RMC6:J)H@//Ѣ:LNn7kv /`hz99~hX};Odr݉c9y';]莡zww}CWCAꇌ|2=HfL,bTqrb0ilP *=bՈJE{fSFʭ1Npt'>u%Pք1:yxGY5yաq6,gWk\}?yu G'a]67VҳԂ}]"RW񘚁ܴq\`Ϊ(D P97FQzЊ0ZdF-–rÝ܄[d z=@ ,sδe~M.P .KCND@.ku={rV2KeI+Em'6aFE_.4sGx eq %!~IPtFJmt8G&;귘 z*1nkv:@}Q Tbm|A>ʎdll0z0#gtѻV+=^8ٟ˗7Fq^y[C硿y||u%ox`ff@%Gӡmd߫%gKjLDufqϓyDqThتg!&|m0r?oR)jGO[NMp&jn7 #-W&L(:ݹYO67jc&ksnsK0-sKsfHG7 x䭦ouZBdL!,=aN>aw?6Dm102 '*~b5T .n .=>Oi`\[nYeHrQ\R}OvtW'g)Uԃji J,K?`-֒KWf~.4CK%ʔu\m:(i"ՠMIza.dy} )?5AZu1Nk{26[{P:5{GY_U%rorjg(\6Fb/bfٕJb-x*a1-UX'SIԒ~-kOR%0b{HZ~ৈ (\9'KWÕcRyd_YuI_\d3wA8gj%_0$%u1S{Xs4˧ Ӥ͜+;{ehDH{REG^TS!Y?AvO_XÝqs`P7 $؛Sj٬:trв-:΁}t`a2̀\Qd@*ێ tpB#w5}`KAaNHfB\ k jD߳z ;i`t!=z G[]HeZDk4haIkBdq }6+'Fp+:4Ms'_$0Jn?;J}}W\Qp˿Ӽk1?\ͻn+ CF͡jQ{ 7On PXy([vU_aⱔ6ǽȮpsg;HFުĕ٥ғW×4}xyLDcLI_`s_wfm#ظ9k߹;{ν~^s߹1tPIᷕuC(Eƞ8 dԳ8]R1 +P{};jUj `㬩(3thVFXC¾F%̆(Ih(|π##zujG ^!luJkO Zsy]ywpHxk,x:ΨS<jSZ.p/Rh%qld>8Ɛ@V.%kF#xWopgP=;5p([ޅun $WGmD^(mC4@mg{3MAX9z0 *y=gsd=yȇi۴!5Qx|ˍ<\L4hEBw {Xdt%,:YǩL MnW!ye۬*1N)0eW%p=?%L5yn:K^( ;c [9qS` XiWݭ?v)kO {Ojja o:   [ZD40(B."8>!y>e_a`~6 `vBD.xsB 93IqþVn{qB aoz.$5qQXw*jfq8 MBGxg5xv}犎m,Z0X*>x2eoAxU|J=IqD̑ꜶMM=ʹPq@} &GiNxY7E[N_p!8*;*źӱhsJ6JvkKv\s]6kLNܡEZm >ĭ 1l hԣTpz0Ctta˨vO|wm/E96S_wؾFjmcͷ0&y/5|Wa510zux]1ytvrIAFS[1h2afBaulG?%XX|hUVFa]`yPk{]>&r]D}m?yr VH%5TUe@qz0$KO~%z5/NrYVWiF:&K] w?pBf e.>v/z,T6f5g?EV[N`"'9l 6{=`'9~KAC6 yj0=!_>_fjػ%ƌ^ :1dIw:ݫI@F{WXp*d ýW/겆WcuKybqekr֡bD_0߳E)X(t׽I寰ג{Z oº q)k܉oFGVTugHhZ.wNIf`~R$AG铝ONʭ%zepzC[p<ܰAOUfsþ:4kWIyXFذF!uln@_’Nk[e/7%:-sw1k.w^%yR5ȦVV Bcu,nc6>RiنrZT;_ =z`(d<{w2"7(SPM(OpTE= Pw)|E8y/H##޵8ThsJc,eR6^ta>pTVInBGOT=Yɓ#<Ȭ:0ԇ@gN{̎3i.?nj$2R>3wZ%s:o^qsѶz\GpmVa)N+HwZ>M ͽYN7;E. rTmڝA okeC6Il)KhdX,q,`Xb%S_grkI?̀ȥ^T $*P| {OCLmBMpH0nzk!\@kw8% >%N㚕t4Q} ^V_%wBOw7 H?2HA@+zOKBq*1+Q }r ^7Q{G'"/z6|)?iРT?-هQϩu" S<,؇2d!N bRs0Er=z;G|{RN`ꘀM{>0 ñUٍ@pJP;IjV^k&-yf[d{̭viUhGN-~j>b rؘ AH!U>&%iOSKJ*Ǝ¹l5 M:GsȣI=ejW5Yh*EKN\o,qgWbO[.C6Tji>tFa F5xnAFbVpAR!UVTE AP3I[h7 -cܠ)`pm7eqb2H|6lܐeAaH0CWZDFDd'9Ҩ8a,Ã[I5 .nx uc"I1n^d"H8?TUeζ Zt&M8m 4$1hZ/~S.AG tr2`CѦW\eJP3ZQ;DG,StMЛ | ~7VbAX t#=Po+xZʱ'\ {=Vf?~X_?)__!,.o_]a-so}ke2{+Y}r]oo[֤Kޭ ݚIEm>e^o߄mݺg7]]/zK]oG\or}Npn x޾!7z[owrn}Coĵ y޾V efd)KeSwV{H[|BXw2/}]wr ~g92=og˝'cӧ ӊo[( YpaW0Y{wޤJ8DNе⻕_H˭UB#\}8Z.&Vb$zmx3ਗ਼3cm5C$VCNyN( ^X E](w%K;Ye[m}?T?}L(5ptB _Z^lʤgBɣGç幌<2\FsZ22:gf] 䤚,24q?}80u!P\Ug%K9w' -hF4/٨ҩ?O7տ!B f{2S7A_xeZecɭ#6IaώN~JΩF#9cmi34ˮ GY߳lxtcciAq<`ib!ҀEzG+ ^+K( y=+3\\Ω8u)ܐHY-zVmg6QP$14W6rW#RW*rY,)Ga"(,fBBf;tn_:i ʳ