#!/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=514abfd361a907cdb4cbbb62010c5df5 # 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 dZ[ q\Yd2\|d:˄ F4ٲplA aKbdr"#,pL f|hE`W -V!x^^(X֒-DBBQs }Z` B^RC>qRk /(2@8`] E=>dmJ)/r)< F #mh`G< Ɯ%Y!@aHx= 96uAZ"}=ijF$;g#ΐ %PAb:MVn["'̳B\-B~&k^v+ A8|2W[wwKeie﷓ԀwKfۍuk5KNk6h2ϻ{ [iC Sdz<}TuS#؞aز &_fWta--ER̖(T2 䟊&Ϟl"?jw?~! AR~6h~UNXqXqW`r pg|hZ9ɒ9R nM:]ܦh-{AwEYw"h wEj1AB[ "BId3,`KhfC媡qtӣ%1Nb6$zcp>7 :R: rshY:z|܌^zSIaٖ5\ix&|ڀ!p,s|dZڢPK#7hçT < u R2#w^NDZrQc솳\Oƒ`L|kad (R,$h^o6~\dvk*t;Ls [}zyMڍ0p!ii$7;-]};N)X 翂q>hכ_okkkkkkkkow먘9R߯O:%1)e%(JG;M- L%ػ&}gCUo ~> .]!% .h%R_<V?:0K"t\{Ru*%1Q>zMf;)oԲ 0ЇO:#i48HA~noiX^6ۉrP}XAfu5G/ׯp\|o_rjdj$ G nG!h&pۀ6 윉mZYih >N<_UaH|>t%|C@z" =i{T'ac#([#uo=K(3O:4҆8XAQl'Pǵ/ D"!*8@ }w"WL`'7$Z4TW(Cfv$WbJ, $/ѯ#)oY?,a1K^ ω5tqv3]c<۸O,@?%qZHR_I %a{j)+<2GhHZqsIqCkZa]y^[܈%K!u60^94k"*zVMKݸEH+I6,olDyS[̔OqgNT/뗭?:}HZ~|ZY@ب}Yx})!V.XQm6BoShc1"MçԴ ŧR%' ;ڻNEBOn@-&.ڥ#k zBbշRĺy[meȝmtC)^Xxx5RQ&Mne)B@࿀+{A4|ԖZd^ Z_$ Ř׋LuK-3-4u?r\?To̫.~@?oQΎzDYWI9X ׭^dLHЌOM+ga[Z"2G0$B0Mf&Ezqo}96[/o%}w_}w_}oW_7:[s?LvGlg򝕗CeDuch"v2ç BvF\i|EĊ,.,UOtIvÞFHb[3g;: 1`]׃=Ś;?sVp{5fx+}P ܵ6{voN;v3ގxWqp.m‹%=F|:)夞뼗qC || ?wuhR|xi`hScT,('= Y@[RxPE{TY%(x'>⃪GٛR:֫ʧ+ș6VX Xľ_+Ҙ•K7Fh@Ki49xr!n\!S+ veJ.)H8rF9^nBIAg̈Xo $jagm {}4*@}|U?O|1$x*$G@nIr7QP0_KRB2IJ}y0AWkÞD޾!@ͥVQx\,~H_0ޗ$_ 8lӽ`<9|̵=ݯ XW0xƞŕgeo*+8Al1P 5d"8dx=J.$"KYf{=96$`u#,R^^ =F2X,NgTtfW$x0ϳF:oQ!%I{o;F Bq'oe_tZGpw W W-ZF\GoE@2ݕ:9Ѳ{22s !7Cl/MA,N;JyJ)`r t( >!E;JZijWTqqIO8w'7R%^k 4-,nl)ib'6׀-5jPx2"?ʒ[zpу-0]p,$y!26Mٲ pZ>+L [f;khiyGQadt%DrX,8M1ŀV"[$.F &F}yHcA56iL:~}x* '2GAR]YQT"8t,i*ŠwJjnv"全*zKӂ1 $ {p']4GmSG7DS '7rghF`_ ? f R?֛HyfwѦ:"V5 O9@a4IDSUIu+s(0/=gyŭïQHdc*&Q㽳3BU//D= kAiT}ٱ<`}(P.|U4-Hۊ7¨`je`Y2ǻ'oYzO6ᾨ pw /spӚvu:鿕 cnװoڝCLDWj1z-ok=zc%lL @'g0.vC+!6ԬjKHr0 Y1Z`E8fNU}9 1,=jckɩjw;y m(Z}C MYs}wqe{ME۪㥅q;pe.ƃH29򽚫;Y\dzʚǗz)dr|SnX2-bQjw B=d"Uo\D_zo\:K9.7,%KK8=`ӎ5?K~9p.+}Ŵ,aqPn3D7jRy@n8 zhV颤VsTiI u|c) ~&ٺ`Ț{nW"}ȾUVg]V4TEKD_b3k,Ɗm5e독 2jVoEKx9}\t˩$5XqiBIycS霝-G,E })R_8*bWZVЅ>Y Fn<+`MPTY|j>7gg+[ub <~rD.웥 t5!r͌zte&ʴԺH^31= Yet,`*(C!^x\-#IAd%JӷL<4$/OFf zͅ7 r29{ҖpTc?d;n+ʲ%:lƌ Z7Y2 ;[n↴)[=lUuLa5YxP߱i76tO<~R׈IgM K$A8T$pl2˄R0_RZ)=9v4Ԯ(]mOVsNmH'yw@ 5 nᨇTɭ?|Ce ]*X5#3 ,]fQ1;3}~@'arucPl.6|DX!w狔WV{2MTmlQݦEq!?*[z]}{h[Ǩ  jZI+8<(D`]pi 砬 dF3icmx+GO_##+q>ZGж$m1pHUnŽUk4W~i19:!e7G񉈣M+ U.2NT½ SKAG(,3KT0Y6Tc ݨ_o9ބ[70+tW7m"J%]mY+)jyJ4\fTl{loOa x8|kt4"opw{poO^e$:r K &u$Sb2og.Vj!tmXVLH[rpq8 >'.>('RWLLZg¤=4 vR дn\?']xt[-#ϱY<,TrVUpJpU}%/2aƣf_,4%lkrXoj?4eM, V}ݹHPkhLHЃ 0_G<23+fs{c8"p28H%yT@ȮPۼ xWٺ wĺx+gR:uōΥƊFS\)ʼTkӱW XA"9>;覺{LZC.5VE8ԠW-l =6΄f4NآeHQ&U&CVG[ Hg͹ۺv˕^#P5a-W N} f)l8qں9MӾ ) c 9 6D6*Leβ Vnٷl:Zߚ?rJaʟyI[leAƷgTeYnYw^ 7.33?RAlݒ"z{7t-w׼~>|0z4©W~a,]*r29 @@E;KKV"G#2)^I; ^½vo1*v8=W.Mip7,KwCkzFxnV`*4Up\RfjM~@阵W{0PnEOOxk˺2_[ӪJgrMܿr&,FpX,nKcFɃ`p #\rR'.4yl`4F5Մ\?źמG ޸wߑ}T(hRsWMx@ xm@ F 7F#xXs;!;u6GKe~w>>be??Ǫ?TqAj{{l o}{1E AQ'{YjzS,ť'Ϛ_ ~x8Yo3g3 ?SowZis"Y;%Ͼ 'm`W^+86: p5\%@'8*`nAyĄo/AWí#<6 _6zh#%c~3^tV @Xm7uX5)q 6?AIRi2ɞ|(ĬV4BSAـU21Q}F} B2v.;d3Nh+\ ƕR'9K4Ę'ݤ|;L0fmޥ:j@(oਪ[MH-78/L\Co5+J0Óx`rg̬5sƹ6 ;KdZvb߂7XŸX^wUL݋g'o 5?~Ɂ'Z{`4C.[qms7߽yMMt)&uP) 9 ūUx#r!(fƢ49C\*o@yK">}w;:=3Zw,x\P`y:jV|U7La^WK2SAZH6P! _i7fޢ=9>JK4WpCWOv ƩVRnѯX#K OXV|vw,]!&4(P*j%ҀʲW%sj?7'aj/ɵ:inbz4S[4)&x8U'^cB}d{?l{0wYd~b_]lHy"#0-U.|m9,#@+b뛨7H]8=N۱RRHZߊ*FenK|9Se>7"@H";cae6YĬW"+J>sÕȫ] "|Oe"}d&CBBGgFAk&׵ytSˆ5CBZ #ZڗػVn%qÐC8ʗMkы\׹*$8ƞuQ}VkZ-bGUc^ (w[t+[n) (i6z=qX1pjJ}ݳf.ѱ_ ś. E+6ģA+,W "-o^M n9Q\%{27JpGv J1)c33VlFEpĴpt,7ۻBM6꛺I0469ֺӺ.QȆ~6?wLid] Gs QW=qvߒb}ƔxAIlz:xg kuVbh9Zy^J`,U'@=3Lɶh^Nn9FeMƔNf.N͆7!?I AY#mG´ۄRՈv ;?DgoUnDXEt6Y*ߞE7˽lWX%"ovPذ2+phrTa+-~U~tE}1%o[;07'F[pYb^J"Vr^!:+>VUgTqتMܷ8@@sՄuOFєڪ֥~K(uC ZT>*9%ii7Gi߅E26߻It@ >y&<0r)썮\dߵnޫU2論"? pٵLoB y,Hd+(m@n"*ɭ |FeqݓD=5i}{k^G.MA>ںh[8Lm_ණze~ChfJ*>\^Bυ*U}%>"xgovNie/(8ECsdO7uu3K\y_ֶ΀[pYk?7 ܃w.Z鍊[$|,j%4Y Rfj ٢q뵤fȥ^,UXZ@4 {bT 5#N|tp|rm^ε#4Ր8%ak;>ås ӸbN,b:җ7z '߳ YO#7eL(/Hj[$_ikd)7UD~QKt'Qm?^=  -2=\6_Cszu&`+ZA{JwN4n4@4vQ\ *"9P9AhxfD=%]j܇`o Jt¥L)UoW#Lz;Uݶ(p -=0i1R߽q/=g){Gz }aO` :3W\DG3 =qo=b&ĉd VnmxJ4 d`ĩ +5oeoedޕO@~i,*hqSWE2 fMU_ѱ#>Pe#>[JWRU !1yK$9&AQ&&oHPSHU\l۠U1A~7]M>"cV顀MomducSenrC2c{^;3o3g3ߙw;~3gq)[_'{vOFIN c*p|ԐA:^`?,' Kp6J CR ^t7 4%~cn5@@Qo6uxpiTٮRvFo}8 0 \r*7X*@F)5lc˃<>EG]F!C&Xuen'xp>{]V*؋Ʊ='#IS%`iPw]W?{Oi(99(qA:v r36k$o/x)MՉȌ b;ղ?iYWAWf}ioC Xg%=YN2E+r7;; 8@Mɟ);7 ɵ'#du}^b27?w-d*> +7w4ށ|?7:l<ɛ*  {OʓW5O,0ۏWV~įg<kA9xx eXywʯ|X7d۪ :`)̼,d%RaA(ǂPzO ߥPaj~e{/<`& 61 ^'4xϛcuس%_ I !E%+[][1%ϊv'i/k~CmAg#ǿGo~w^$PuxpjO_CڪrG*)9<SKag~,߰\&HUQ'-M bo˪OF׋wH"5aE!ܖ[uDmEkۛe]܀~6ld;܇JgνM ۇ@]%{75f:6J|;?Kٷ>m 7 8j΁ j&?><2݊3T\ս'ZI>ns`f*ڛH47 4O9rN#"QgQ2نfb4V,xZdw@Vm@/4$lZL64\)c3+9Nu`Í$Fۈ2t8ᓃ=$} 7 nzc1HN~2^~0Cg136n#~]]2}Nu`Ohΰ^;K9zaG"[pTò8pZzGwfc슭voG$U™tϕwNW>WU}N$OL2k:!dut4@̴'\ ]ÓTǜ~2Q7:0_TY_{g'E{O]*}>k~Ř]hg`N[/avIfJp2YK [:LFM–rÝ܀[d z=$qQPu{1bVvrIׇT;oD`.ku={r^^0*lߒE~Ym'rrkD{wK#8g{$tX:`K;`ߠ$SILtFfC`Yxer=VJ>ea2ɋQED!*)Eu:zT,.(;UÌ==޵x_ُ1Q(]]{YSBg3BgQY,w;~)̖sįO]P" ˄bJa( 30l8? 映JK]i0b?&q>K-V*Vh}եԛ~Nvv^.v~:8>HU\zVx/wzS48='K6 l t݁x?I{`'l-vN_@^`z}PC!>FE g09tv%.^pBc|\6V͸8yrx&dZ5<6~R $R+%|syDᠱAig0ZYpؔ>sAxI ,8Ʌ;+8FEYڌcT X1_6g#6!/b7 OL1l.Z# b.> .E'#ir4}'MPtiM&NdOG_2[xzLef䇻P늛4O)vP6JƕCPբ~b 0JDAkLr=}G9rS;PB9[ EfxU ":8Q}ȟS_{JFd&?j sfd,3K0,3ϩ? @>"7gS^d.rT|Kx ,VDŽ ­ bBaFFǣ qfz4RޒXa|2FZS\jYrW?+oM-=ǜ3Vw%ըZ.?:}Nj؄^vx(%k$S˫P&kmD- rL+`ZHZHbmzSċ,(\X!Yiaxe>\= % .fBsߙqS,|T^L|C3t,l!Ú/ |C$i3'x5Ȗ! ETJY>gd{ ۹nߞA}J$*lvC#KTMBvw)7GhPAcM2*ʈ U+3fۓ.NRr inz0\Tnxu,"z'0: 8.WL󜌯P 7K|G +2:Pk@I`9dx .huxҝ5,)tRu<UBs0\-4tVɭ%[-++9*ֽ'FU0J`{&d>CS0ootMϦgcU=poT1/>GJc?Q-l*@ Gh問vC³\m6L)=Js-A97T|3I;f9U[NWmײA9.vc2:Yp3<>+ H(@%4.,k-#E_[d|dMĥ 20&O{YA .nңzpEMjH ZDk4haQsLdƨX / %EwGpÈ1×T #O';t% t,dXR‡TYѴZZEqy])7m*+` m"Gׅ%k4ƃa 1Rn"@'kW0q >dn( }?G2·8ٙ_[ n.`D?cKuhܪC #~A'{àkB}eL{|S_,aC)(8 6MS$,gYrK6a,x̨ŚByECD+˿i޵.HC ǡ#Y5 [rӰI{T D &Q +xj>2\d۟Zlq~5-]]O&RAb0'= G# >vޱ_բ6qQw*gq./9 uBGpg5xk-U[,J0P*>x.7x<(>eypOs:mA;fO=ʹPq@u :GgRӘp2$V7E[^v_:p!rĭˎXW~:&͗yyBi#&DR\Z6;y^q]6L&L%zу}ezLJu1mz[\^`Pnoe sh˽? &`G)g?_Gw)ؾFՕU[.Q 9΀)mZ0"qIZZOIAFz(ot*1\OlzzpRZ< «݃3rua"wu ̘,iKŸnOFXX4r3%fQ.}W9~W(5W ַhrpoknih*Z:Y2z 'F$ۇXE 5oKAn/Wp4wcwH5/R=3R(Fr:j( DAڏo'r(6{NrY`- thah BhmZ#:X\QmWkt3l ZpkLOkvJ/jԆ_)W-~>Xr}]$CUvi  9EۘoxqOq|n݃{z wNO_yz.OO;=w'\8|ޓtzxON=9='/|ޏlr4*;gtl h}2W- K_'%iryh󟶠0%yL>-/)ve9.>'v9]LiYp ~4AW0Z{L/wfD!2V7qRQzE碟^₈yyON.-1'3Ĉ9|bMdԝ\[]{n99W9wv]ؗnj?c>DJn8:y/8ʹݳڦ&˭AԌaV\&ŹV9{}eX]e^}D`DxEq EnLRv _֚!:* -(Zxf1Cdzq{oFPeZ3`y5WٳLF3y&#d䙌|'(R`3~Wi09FK ozj.2HpHq15W#`HS d{~<?osk,HaO_E_Ϲ8Lino힒9im$r8C GJAdU, 8:(B0O0$-A;', X 0C|?_ Bwt!2]?\YzY$l#b"zWȕd:'r)ܐD,G=\3hP$14WւrW#Rzl-)GJ@_˯9XyLu]K'-V9OϷ{1O;W[Ȳ膭\|'ԴljûZPvr9ZGm({Sd<~f?g3~f?g3~f?W$,?0