#!/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=e2c534e54ff60162cac28683dfc08273 # 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 U \\{wȒϿ):ɝHDZg8wdmm0;{,1H$8}Uz񰓉33Fꮮztc{w4ޢF>/v[/^6͗ND%yۡ7oy\~,Z:/bQiUf|?? Ï zYڱuM&A#^zp ܑšw6'@a#1\" r˙4^|!y $`= ;t ^#1 +oŽ$ G" aS7~d tH&'fbZ,.%F"ĞEb|&+IMݰLHBA*,1 c;Y GPL ={eCBg&az<%ʖ d^)`C" 4\3 GhuIg@4]!mX(2FOJD4sR2 HBR/_*ZIVexd i]?m-ߣS^8<^Luhɰ70fb#ҺK q@;4t&ns65G86j<@;uWm<1lh F뤣 Dd چhƱޮ*S;y޻> }tj&cV@o N x̾2H)'Chk!*,OdyoP^%nS3Yh'NƓ d<K?4z*:5 n{]buF bCM;> ɲ4 ɵy0AWvCҩGx^Ų&<5T0\꠨5^Va}j `JmXt#%x ;9N Ymx>ld w^.AKxl>wfk`fҬƖFׄt6<[C(Hu#@bvD9L0/ ɿV7V)_M'mTj<D +,ҺVK1+#_-]9y;;/YIT%,ٰ~qs77; 뿹r3>Opۆ*Q(7U [D~j[ @w<%~7+W򦳉G_/TB49rG 0]7 jY}D$pĉL^Qe LA_'?Xg74HǁO(&]bhƋ;8koyNM46 G P$AzMX 244ApX5:^Cׇw@ 7 C1BVl~C~k|[;d @$R c`&Zfph&^庋Yn m}FAl9Bhta7\({c8*cah}c-ge5S_ܨ~f xB)>ɢ~ԶFea%:کnGwtF&pJӾr-'tqVעmD6W"G#khg=Zk נ\x=: 0oA$ܾh[v+ž:^k1[ZNG޹7 jk\r2_/%?+v/9T*5tOѶLsJ͕PzY5^yk:K$ޒ(^B 8Ќ:v1ՆTqaVvO$Sz&1uHE5EIj@:<(֑~gQ4J?1'lhQ*pVKi/Yl$(5*nwaYvn˪T,eȲݛNL̷el*B;pvrɋ pi=eSDҙC egאs1/#R0hM\ѺHQ[XY*ߛ%IѷYoYUbkV;S޶N.d|h2cڒQ&!0]DFP JƖ"*?+U!L].7 c0WcO>5wvck)ݼ}>c67D^6,]xkǟ^P4/ӆ%Z!`3+ ;ţmM7S Yq0r' hEy/pO.ă\M쳕"VOTxȔi@ЊW7*^M-^Z.Ʋċw7 X@ [B[yH0r$3|Ԍ}ﰜ OLpaFUK&ݓNg77Ew9eɅȱɻ):\N"QFO%(Y3Fqz1yq u܍+O$_xuqup&AI 1њeB='{b7ࡖH SI%6Nj{ijZ{7xE6/kĵ#W 111'X8MVś=VtN\٪5Fȝ9ع6'v~'_,1qI?v'%NKSlPse|/~Kxs/|[9 -Tj^R?Rҳq5`ô`+<*> ߲'35v(3M-!%"2Vȯ8`MXRI&^E]l>7\_l"7z\;vOn0^XREw, k¡-ǑKYXIJXH咄 ݨ_%[EFBEϻz,];7hWwM*JęVB|ƣhSɍ^,o2֙~ #O>R=QGU"G\Cy*0a"+KwTc=1%'~6g~qcvK|nwPCr-ʬtkr:0o z=R]]M̂N5>0ȦjOv!e+<!ó=-#Û) b~L*#T38UG^]anK5#$pKLfF&EjX͈ňveѢ@$(ATy˱NFۛ"[ }J)I%KReGrAy#&ιz S_co%=ΰ ^}ł)Ln};.&@vl3W&#+wpGޱBujsrwpYC^Y@{:$Z>5ߣ;/^,_""E}%}%}%}%}%}%}%_X W}ل/@ R~emM[]&<7>!_> ĺ JXPٯ2m&#$k]d~{d75S7G'WtdDjj*Q#ON5/R*\1 _欟{( 8C̽@Uc~Rp( f;J&A6hzd>QФ$pve'K~2J ln,󩄆Dn\irGyd; hChx/ИL15 #CRYkDD$SEIriΟNeXsX/udyK$[{̣Q.Jnw`Y}6 YmCxAO$LHw,d-'9Vsod9GsaҔF$Ըx#΅ jR E`5>%*!),?$ox&BP?S7^0).-%Q78(T4w0WQQxn''7 *OXXi)˓=),tVR(#)|u]ʥ)bxEkԔO6B.')B VkoI#n/utt{nJ4*GuD7RV0֑H7PϫlXZ`&xpz+Qk.Y6^3WALH"wC UfRUSm<| 2Ҹd)/)}}~eZgDiXI\Ӱ 0!L w0h]lMZHD>hC*WH`_0wXU7Db@4oTLUK܏ 5][(@ra[ti}*~əkPxODN^GDq7Q'+O8 v풠(tfrԞYvL=̺0f Q JPUOə@ U&>帚(RQMS/vX5'>%~NtaWw*YL @HUX8p˕xݨyU*;x)C SRݛmU'U<1z-> he>|R^&y],V@H>="^ex$*t~oi6n :鲴?T0WH;U\Y; u ""ݖ솪SuW|5UٳJfuv4 !?̿ӈWgl?^4I@n%"$(Gˏ\nw;,m2&L;kOC9>Fޯ o͠g1{Nv}8JY!J>vI|Iz}ZR+I]Go^g;<}NN=Y?; uKx;GN_"˙kq>zd6P(rIqeOT(k8>6ktUuN2{a|t (4U,LlD) ;<㶌iV& oOo"AzP3BB{yK*Nڎ+t麶-Vq%i!#i8$tgC|~Z$TN$%:pi윦L<fBFeF=zywY3`QބtqmI, 4&D9VT1B-pOv%ca \Nbgj4&c!cHƚ[OcZϰXkdVQFG2p0k=,tr(RQJDE*hђVŒԖft^k~bkefXmէݝx  yL*Rvk=Os03)"E:usI=*+E]7c"d5eFK۽pC5[9ՌeR,@Iŭ̥‚'!#OHs L2+RNG S}wGrsz~ٖG P  Dqve~%LԅJm -˶ Ƅf؁V$d0H* ƈh8b˜zib]Dp&HEATbyS[ 1Ng Ac{ziMprQ9T^E6:1]'>*ȶTNb1IUv4y͜ n:-᏶Tƌd蹩Nr2=6-X7pOs`l8b`Il۽l+46 [XɈ/c#ʬa=B&?DsKgi ^Uu.t6jEMh "%%hqsԭ9J] _lW'G L|BDVxA6`Qk7u|{V LMͩ%]5ꇃнׁ/FƠ`_8j'I/AA&; (Lcby$h4aYZ?Tp*%&ƳSI#Ls鐐v7~_Z[|׳M3(и0;ls?͔F[ra~%#\oz@[1`hֵZL*qkJU_3:a"-$Zh?7 XCp$?JBK-C{gQ~Yjc?k?7ۀ Xf X@ؚqAj+l"ތڈIȷP!L`V.O3c\ҟ5lS4(Gem8;_y340~LJBpIzu)ak'Hxjo3pjV;1UiWKEV5<_JGB@ -!0,몖X/E*XMCnTQ6,ˬn -7069!chs Kwq<,h5qc1AI$u3J缹jՁAV7IY)cJ8b# Rczl.VDJFRa pl4jteLpQG1_@g'ʆB`P  !?^w!.Х~ ncBd)OXdMJT0N뵌؉HZ7'EYbTپ-|t$W{tIn1bdљF9{ cC]Pb*GPLT*JR$/$5܁.VRr\Ef2 :?U|WK,n7E1.z&rRzvVO%o\f.6[vM* y |Ni\/i<3=qP(Z\$EyV6=zKKۀbf{m oeLJCVX귺]֮%ɠ^T߿XcDI-XaF 4s lLqt!ΠmZFf_E <4@SoNfx Ɣ`^aqu0!vJIpQ62WӀ 2a-v.9k3n'ҷ1^:0Cz/=N7<:>QZ6C"p6ZNJPD в0V낤e6PK#Zښ!vpz y```C SϧVvyZϋ16xBrݪqJ}@Bv֤"a;Wށ9e"boNd/j1Orx8r 1lUÝ%% ii0WT3ӇB:^\1 AP- PK/ A JA@iHKVlWFW2Ci\ ұ5*bk(HףP iƭ{hMI4$˫u9̙;jc!a_0<: C#gfJm ^6_A `'ޓy5?QkISLq?gLgޝGD}eFIjc:Ĩ`-NK(HѶK附44X!u_׆8N^K-r41yBM׹H.jOebH@mX[yi7?zʼnݯ R\O0 x:~wuFsz/5?7;!b( Ϯ[K5/>wv)6F0Pd7}ނ =U8Sf2.{\}bmُ <%Wmf[c"jwL Yp*j3u-Msɜ9VrsP3.d||W2<ä6)ѱ=Lexy}CO\Xh~Ř]hgXad]b/%4hܬ%)3G/M|~PuMonW8d]BKPUKoXQ5Z|έlF h._tȾ7~2DtLshKeٺ~2I&Lw+ s%N?Z%RArR6 "RBvQV6 >ݖ vAN Grݹ3Ps93T*_uan wF`lj`P SOi4v"6]a^o[p_*qE"*Wrٳ66FŦd 6T*]>ڔOES-J _hl$xmp54FەjRөʟ _fofgfggI꤃0S.l4loHS/U~ >tM:Jт;؊ZzE@ĭkC9=xs^ _3m/"f.$IaO#2utZ[OHQks/k81\,TF^V5'"ꎾrXqN~bK{dz 5QҔCbĈ%8۸zuW Z[$,VK lX1O_2 t-){[t4vO+@DDl0< aWHZsg z \`A.l;[q~<U:-1BIpE~>AÃSor\SP3\0pnlll87N MT[?`aЯ eӐ 4]cOd Xp;b!OM?)f<|koEu'~| IЀ$!*ݒmFqׯeE1Ur7f4eZ9=;(5hJn-Da/?<I虎S1ѭ=9*oR+D ++ ~ʷ\]w>P>oYE LcNRl&5x3j(;2lxa7_%*H/b*=~"S֯biA8&?DUe*Zt&EvgYooKpNN\v%{eAU&2U:eF~wH2uHI bQff,K$ v0-ͶZ4',q֌}? ~>|_odWg3g3ߙwf;JZG%:Es,vW'gdU(yM*ꇃcN!@THͮZD#(i3ѨbT߈jC͠jPeU_}jY]/ZX[;Kh}3,~jޯ.g;@Iw`oaA: [ʭ'Y$kI&'YWI~\[/JT& Xka}QKU|֚TOtfC9=UVef7OQT4P5PjU*U[ z iuj|\etkٲלW6b#]+e/ֳ5a=UƨjGC鍇"m =Wmn&]Y=4qw:]%IILGj)YG#ʨG55!{cS,I0ߒTN-QlI^J6) Kh48a>aEFX%~~xgٜSpW Qo㩥W:WMsj%%߬e;=84G[B?={窫1Ώe/9><'5H65< # OurohЅmr~u"XE,FuFuvj9B+)eyA_~V?? 2H~%Y4H%[~ݪ&=1lܾt;!|6! IJ=O_\a_jwmy5cg33L;3L;_U;%:NDWn ZO*וyeNIcҼuQc0F+B%Ԯ]d}6k>ENnu'V& :uR;|$׵8ԁBZ1uzg0\k6Dw̋rI{["o|mRw]uss$= KM @i75bt b;F7Go?hxx؎huqu;Mا)"}jWڠhC<Myf ~8vf*UNӍ MֺyY>b D Q} X$P{Z͂1jcɏ]Q]f~QH@qIjkQ4gQ.K/}mHvq #d㋉­H"Üz,JG++=39$o]D\[6"1D4LY[aZ6ɭf&l| r7ydVb/x ߕ2.p?iVwN~> HxGۅh1隞# !-/0m4?4Bڶh^?Re>5^ YRȀAC)%T"BRjQ<)"Bf&A2=·mqڥ4Umt v8 v2Q\kx{]0 h*DL2bjLPX;~N5W{ O|= mtm8ۘsǝhMz^ ncgͅZ~% f cGD;R=a^#gV$]}psQ[aXgOڏXsTiuk[-S;c'CEX= HvWGh%mSȻBa=?UGDz&oOXwvJ/̬߃*͊̀ϯw)hm8JE9s;x'9pq5tû')n]q<=Z85  s9IkG1ٚT ֎!&Ӏjo It!A2w AbNC =mu qzWP=u[T^@BbZg'x|{t2j$HURa)H!gj0I|j/U j_9ʩNxQEz5Vu2D Sp"-6ŦJOB#jg4C}2V7g[-ϊPPY"F*A"N; iQc):!B~aHočaґL$ :\@ 9;ı | Kxps=Lx&ZI8s̫h @(P|,Nf9q$8>^}j&CB<[6ʠ͜"O?LW) :I'./DZiX g]UrB.v{hetC)Yt峮e2XXQh#FlU ^ i`Vj H%{Yŋ9 ᒞ楟ԲV|,?-3;1pzJ}پ i$(+XFkś,[C'Z[ȮZy.^mhsR)dC":ȓo ^ljOẅ\eZI(}Wt3eYa/VvuZH9I2J^%UhgzRҪU[!GF^i/BdpyWsͰN\ق/UG~ &4O dV1#:R,.:k&Jv]ſsG| GLlg3f?3g'? 40P~c 5zŵr#BQYȃHYW ܤ(iد $~Ql!y-PsS |xK VCT'*@2F|mle8'x=gAE],*i |6e @-xax: ֕-r'@@O1tsR" Bvr"q- Vdwb*Tl$^|X2KxH@C* ,D@)mGkul#2^Y?,gXa!tTIk~20a=vxdء J,L0 ,xwq;jx aJMj-I3hV[hnRrBpR1b %!agkëťm/JD?-)u(m`"i51\cyt~PL|kj̢3^;(d ;of!1,^ A̠ Շmy ؎ .3LwOvm^_~y%*|vjw<}sjyӅy%k.LޮW d99khU™ü~1^ Z}ɲ^n .QM-0pZ˄!dZ6ۣ q2}\6rn>QU# Nk*0%{/m Cc g&-SeZ%ubߕ̲#B3%OfƆ>w E#V >E[҄j.ȅ:S7\h?E~1>a*CݼƥdX4M 'mٞd ZlF @)&eZpJcŧ|փ0Fᡃ?SH xtT G?W=Z3of_3kf5pg 0JW c>ЬG׺WHRS w564(+ ՗Q},4$[pm*12DdgzSK>7hņn5QDQ}4qC'}S)KH]Gq\#$ѐ_i^ liQhi Rg Kt6j "OpӻR?(j7dǖ&Ż՝s"_Aʇ\ |v65)A, S۴Lu=RBx0oF)NɠS$ N9 `(Ҫ7 QQNU8Tww1PFLO&Y-ker HD h4yVV- twBQPYmp qX=9EjTI"FSxЁ92u==enhE}Gpj}ͣۦo]9&71hC6/0a Heo.2{J$/|t[L<|]7ay? %/9 2%#F0Z~<9!9`(V#НZYD{ATX 5]GG=B\>5Ƥ]2#d%Zz?hj] EssHE"J26@m'!ƕJl'%y8h4-5&L8 P7}kXra[SKh5Yۮ)a0Ѽ~WHl2œQXMEu1T Ciw*#WlK2 iJB nqZ:2H=Ԁy͸&*GDP hq}(3T n%;MP^'f`A"/SCPԠ`ߔQYئ"/pcUo QߢBfOWE ;x]0l޴0F w*o6X*#ItZ}E.< EQg,w_]a ΪB^vLLsNШUd[`f-OxM苄א4<5V&\q9_X,> Z ](;gzGQrW9y<@y}e;?bV%;qHdTQx\ᄝ3*gPiRFVoо0a9;ne1RCGpD& ЯB Z}~4zEd7Zti\g܉$rcݢPI*V BI-T[Vm?ߛ)pTrdM(A2}P;EolB^Oy;)`$=^PdJqK,pq%G nC+h5嫥zu/C$AR7jk$P(U곍_طi$2͑2j?jQ 0p)JHXm-+-ՠnEiI´lbq(_^&ٛb_o9|'GM,`xgwz3BYcb O] * .mYDSOD"[IV{2AjVԎMIKy*ʘBY@ao4I"c@[2r~G>%8_+뫞3oi5oQ+Oo;g,ty.&kZJE!;ם5p!/jW,.A^)6fݺX=j'w*pDŨnOEX4Ţ%Uߕw^ I2ھgߕ s9R5} aoF*|ptv aCOɠh[9H 5CXUX-%úbrh<,~/^8a|IE =tA3|?Wһ6AJ= ǯӨ2߫M+|m·wn<[of?3g3D~; 9쳣_=B% Rg*l'hVUѢXFQH Fʲ%1-B]`Y7wGzAOBL |%Z#5S`xWi (F6c qSpX1N]p<ՍL XH2?5Yu64I@i&g/t;ј6TNVp[ ZHec "^y=hZ3/?c!DydtYNT岱YS9*v=S!\e `.di8w./tH[W=\Q8 HTCEYtoK0= `xh%m<^ӿT5 ,il5߈6ֺ I I& bm Lꏘ[uKXiZ k֠↪e=tPnK<:FWGM07{o% D~,cizD' @a8o>Ul夦{ѓٚ^/BAcd$+ Lr&TZ(He(\s:#S-Q̈rU.5cu7̨jd0bqdoOY@ՙLTtOc VCZ SXb5"Zd0hbyNJM`PhO/gcQu:KM(Yeecaj ',pP>4h| D?'I'cr6z 93kd8 8!9smr=sP& ӑMKGh]&NQUgkڂe: ۹켊ߟWqөxW9RUCwи5l5 VkKm޷t(iqpEAWܫd;1zx$5؞5V(> jjmqIbfS{kyF%p'WyܘiX#&`O Y2QoHĠW SأStRɮc;}uS!zuvMA.DNQ^v -PiYʖIo;Wp@#L,R˶t` 6f U}!!9boYH! MvwNQd~YA: 5d!ZT4"]]TQ)IQZXm9Z}BE_-\K׃f=o"iJǯNBȌ^3z|wQt` 閠BE"T< oZ*hZJT -"cOj)p4Η}dJO y1)!1Qw'DX:rYut#$DUURap`_+F˸TAW)ޏr 0mhE|$/%MǵxB[%}\QoS_|^k&pS{/F&xb.xJ;Rv ,f?rHZCr'`: wis"}PvZw$A.^6 Ύ?^"ɇV.>?} WÓ7EMLx:N),s/^}É4/3%<&4b7Ћ0]u?-Et1lUq5nJdݾ XG;pV[2Cػ?ج0vۂq񗚹?~+` !L?2p0ȼ[?~ dAL?e1lP,j1 ==89'Jրws"n|voE&3 }w{gnΙdKʿuXK}?Cw K |ފ8D؊_O(m 觷' |{p8{p^,GU#2m-\>%EFF4GһN+k.uE$k7E*71-5[ Nc@h4=i1]_۩2`SQ3*"4B(28nn 600U=5 rrqGɋnؗ~{KE(,Z=^=/R<9Q&٥SDӞ*$$d} U'aVC8dK櫓 N#x7KL#&J"._m'bz̰囧dH1綤ػ?rQzc"E G抆iB_/s+z(UrQ_/9_Ҙ ÙC4GGPZře}fg}fg}fg}fg}?V}~@0