#!/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=48d81f6ea1b40d4e3c43454202c878eb # 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 )[5u֖  hseψئ<@" EGiH :ЊhƮ@& ![-9C4񼌽$Q01׭u+  10cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HɄ!C mhZ8>%\X`& `B7L/hoI 42jh^674RV28W߷GhNJ]r:% ?K\z]iv }u$H,mv#> GWÞ WeI)鍻rLTѓdAMHJu.}&d#\V8`xdrgkp< s]Yԭ0+I}(^/+K#d@dI@g'dծ<:*_u@@b xԑd"GrUg `I0X|T2x$]! e|:V%r1tiNH) &"!)ݶfX*F*%P{ن]&Af6# F1ʂL_J>B2Q H`0#y%}'_H^VMV@fS)c8 (CE'Js Aa\gKPlcOCˆ9w{j e0u$-KݸgtFPU`l 6l*v%E):K8HkbvC̩!mbbR4c NF!ea/"/L͓@ə[Izx( |L<u>u^!0;>>ڔ/я$*_kwxPMT  YщL^ {:d=Z! dN+3LE@8` EWW=>hmJ )9۔q\}M]JdH4i0ی#hc Y0]$u\P jlgYbwܳHf 1& v+7Β-Płj^&h%p& <{ 9Zl{GQ}^E] |HU{X9XFL!n=Q+۳f6} s= zMmjS˅~M,p/<@%`yPP!LhVIx44{k2z2LGB,t 09]Fo$oސF Ǚ1 .HkudTD ;2qCzvSAxD- *g{n4]<"HutOF'񅖧"%ig`ρa SBpIʪ },^#q&Օ{jRIcؤ1}}QM"v7DW`BwVpjj>Bn.iƍ5ы\;0 Vh[hb7L݀gn^ 3Wnl<'G3>uqo;3S)5 {uՋyao@qSdD'p^mib:hF7/&p=Ot60C"dᤥi5ciغ5ĠXj,K,H~$olm7:Wf ,;Qz>6iYl -l\ҹ|jtMefHe2]@PTJ,*0y0 H g%|Yy3,|x8KśТU)\diA)^5хi$KdVL1s5d5Kp+쩳%^ݵDۢ%VBƴV}m!\ӗ8(mb8R4EW;g5?pZKx4u](PxvAj+o@^JXԘIA Kk3H3rh%ʱ B?,auOɣvTG͏^]o\|眩٩ꉩ$Qhdq48j-ay5RvDlva,f4q '0{v1>`!Cv ]tiUX`q=@0̱LB{%O 'XoyiCz(6Ml`(js>b55cᩦH %a.BƝm?8ɍ?{1M+9{UlK%P:J#識^8vPv~^KX^b`܉Dss{ ]kܧ]LHH]46)OrIE%ߧIa/JbVxdGhHZqsIqCkZa]y??`ĭ&7bqRH 'WN4MڵȧY=B7k`Q'ҊAw+ak& ۬.mT'Ś3zjKG1qǼIˏQ+?Kկ '"bEF=/60n#4| MMMKP|:!eHi]"ɰӝY$D$bف\;rOn%$[m#E׽V=Z8FG=ęՁgQj_oY=erF/dy RTXIsӬGm5L楰yXy(\2B]XKCƼ nOzerL[$Z /IΨ/Mo/X5Tn" `Bf|xlZ:s˸(LYsoiM~zQkAu$I!\tm9+Ohd޺XIcR ^~+MآߕdWveLB)q~ 'YH=G+?L ;L1}5~+uBZA>ge_ 3x_ϓ_ 52 [RM= גl#'K#wB$inۦ)|m7c㯬/(>(jҘ/7&₷L'm>ʹA{>U<KI fJ~;r;[&sm&$]qQ$gَa_/\ڃԛD%, F 2elb÷2󦅊t G:Zo&A’Y[h&}t$;w\s4ɖ.\+[|k}1nc<R2Pm Gңn$gCQHT*ple?oWv]gWv]gWg~+$Jܘ9 nW~rP_ʖW*2|2"GW&I'40HjMgЕț4K,> / ޗ$iJ 8|t/2̵=[[HhuQJ[U#ꄄ5;MHz:V=1 /Z#厎i;dq[fKI ;Y$hl=P[r Cu@)4Q3ۍmi],EOrg! iȖ]@:N_a7\J7a]CKP=ȍ k&-!RK`9iҼ)2q 5P0 0C IcWh8ḟNW< < ڭ ƤKwM/ֿeMW)@SP:)/DePѫ\Tfx%T3(E{88銦9jK"2K˒^ӊ:J_g#Z=`0 *)4{^oѢq=0(H4"3A6N,K'lp6wkuXDmfn%0uP˳dx8rDjؔ"NMlʰI]71P#n2KZxoHBPPԀ"iE@/&∖j-gV}ע۪EE):\4T% ,qά566FregF s%^|*PXdd;#M1rT-yUR\/ ̺+uyqkYX3oTuxTPիKnn#äZPApwWxav,(@?Xj0?J6K-_; sf&Ҷ0*y~ѫ vL'/Gz׬<$Up_͊ypjW98iiab)ʆ@p7k߷~-T&]=lay75i[|eS~5ñHTJ;vi <}X{6挏w!Ŭ,u湾;82&mB䤓VX8˲qeAeq,^U,I2{=eKs2^9 >r)~\h 5H;{!2?/gi%vn%ډ%GiA~%DL~>ObZJA08M(w7]+t5ܣK7su\6htQR4Yͤӌm 1p˔ aI ?l]0d=敺9 =y>x`_*눳Ԇr+{T*"ܥp^ojA@ycrͲǂBuM >{&O~q˩$5XqiBIycS霝mG4lDK})R_8*bZVЅ>Y Fn<+`MPTY|j>3gg+[ub <~rD웕st5!nr͌te&ʴ>H~+բ1#Ye|,`*g/P8Eнx߳UA?@6dr-/H~v(WHeKt؍^'/0oJ?d\@wOݲ iST{٪zY1Wl)kL# 򻡾c˿X om> x TϚ5[IJqH2ufE 0a&3\{s@=H+1Ii]Qlڞd;WsEedS;*O4>3$5>/)jTQ[:=`.TjFf^AZkY̢cwf"OnyǠ؆]mf)xB)vܭ*Bie$"(MtC~TJ><0q?%VWI: 8;,yEqڍ{@AY>Kۛ g ΐV¿-GF2W}-mIc݄Px2,Jco u)CN|ocGV N\"di{AjܗPYf`l~dQ71ޠs B$n`V|m"J%]mY+)jyJ4\fTt{wtoOa x8|kt4"opw{poO_e$:r"K &u$Sb2og.Vj!tmXVLɎH[rpq8 >'?('RWLZg¤S=4 gvR дn\?']xt[-#ϱY<,TrVUpJpU}%/2a'㌕f_,4%lkrXoj?4eM, V}ݹLPkhLHЃ 0_G<23k~3f=1p8VT_$<_ _NdWmцse խK}ql]^:;b]C3M]M)p:PFRcbHai)i.I~e^5ګG{@Ti m5ڨqn,Ӡu8KUx:25ox%CA鲍/3&;hRCIAuUuV`p 3RÙ`s/궮rdMofX#•u4SBYj #4N\8֧iWd0E|zFǮCBN£|\C>w\eֱY - ҡWU[{[N)L(isK1vL0րj!-|;ˁԋ&elՅe1V搓Uٖux2x7:y̑4YZcW$` ߏ6/ԋ׀V;7J^3}4:`Tb~cD_s6A>`Q{w?B[bbTz7ۛR&v$D): fۋ'Y/g = 1}oS:AԱ@ggw ֑>=-E<)x;YB)6nMz/xn ]| ! pL8+OO#kx\^v J֖ga .#3n5L0\bZܼkeq_ F "o@HAX\:I}CHAdPPҵq\y:5T ^~ v=GX-,-Y-@C;ˤx'0 { nm>TB= y-|mM*q5%s. ­b9-R㟛%-Xp]Jl䱁mb ^;VZpx$"`դhϦ藖BAc؟kZlDkX01 d7;#n$l"ތ:`jw`B"\fD+DŽ,vhا(PDgr&)-q<^gީG㘜_b(JMrMdw9MiA|3$O֌&tg\Ѿ h8+{&]UA]N`6(h=3>\Av{LS My@昮)H0j YS/xi _$By!T=-ϔ3P4Xi3r336-~w OLS(5CA`sAR]8y#Rי/ ud0zh"%3 H\6G2 t8ǏEmy6Π3;9!pqۑ Ya#q͔,&JQ 4]8K;9觰Y-sH81(m3 eit.cJE "PCXqLw'.&x.ӇxU{AuyJwȾid{+N:DYd&m?MXZ3JR ; xibև1b:3 <*ՏyzG}F[bR L*%2H.8m.hSs);F)*:ß nCSQk{J1g BeCB݆>~\bNCЩ,hYİ[X2HY(k5z̨V$Y(^£^]3|BM+VEzrLUYT:24%p?pG}2^Fͫ,ZR !F$"[4oKYTYDhdKFԃ2>A-7WycaQԒ9<qV OqdO:6OgH)7Zvfj@)(H/8:WqB_NkG=\tЇzOdy.GM"NF ݓ߹]H9U|l\i9Rwx{ҿ',(X tud$x=0+ Q]Kzt0M J] Q%7wW5mx~*So0N pb{ځ5"+Iqy2z(e}xbrTL.խ¥PLXR,{ URpsruR'%a]%pP)Y]pW /]OƚIO@ɮkMfQEou&v),-$à|6V7guN#@#+b뛨7Htn8=S;?St\{Ў*TJq/,#u4@btpwYǚ+MldZ!7/ҳ+T t#^ "9Ođe"}d&CJB2\ LgFBk&˟Yl3"5BZCZe ؿ֟Q9,KVG/֢t(U"A t ZVKG-Sz;glΗ5=+;ʖ3H)Me]ϵ'b<&NM%PKЩxS]q O2x-8 =;]fhsJi` o{HyFӚ.+Ù]$n:[%}6[7[|JgؓF_g=X\ͤ+y'˳I"B%ɍBn*#(x4HA*++B]WwQoq<~/yǷ?y#9^o oC/7ody+[6,,RCGOV'T}9.e+6*6%0/B8/f㥂>ZG1[P쓴1%`vxE!6[9~Mh g4)K<K9 F]:HFcmvKw8DLP5Fy|Vf E&3aNP5oa?٠JF2vh-LKqM)UhO^CtgI^E%ZdAioaitڏNwXUP"zOIsP oU-pqZ*h`\]+t)w $6^Бڐ6btblQcqi3`!h<{/QdV\CW*%P7б]2iijO@Bcn S2\CnʒyW-꬛!'=ZDcOU2iOltenF6+0)_Lyt]$!f́2a3}Y#ة]KkQ#[.xu5{SOpN؃N{3iiy#j?|2a9;åTF3rVq8DKO|ȔG*rȼkO~t&hnin;#A/h c& jB% ɐG@ϧ[ ES.E,%Avދ.ل—Oy;)ܓEfm'3"-]֩ 6*.Щ盬WtC뗥zu/CdxV*KPbIݕǝ٪YnͫdH_6?1HM.RUOa\XJWrV4ŕ)P1S\^Vajj5@,%ߩՠE rS8:>x{gg$BYcj~x&g-jW 6]f5Z ~E'$\ޥAI/+hyG߫ h2\nzk R&R֑v?7*N4Gk}'so3s{=-or W Ly}G>-| ~$z2L~NwWN2ƃ,6vOĻ{}8vyp)*Zm}}\><}}gPj ~ biekrԡ\孾j~Ibo 8L #(T׽Q?`=܈DU)ǩ 8>[fU1韃Hšs$g׮&Np=ىojD?:I y <0r)썮\du^ޫe"o"= pٵLoEB yH IWqڄB)\G4U[oBp'߉k׼ '=| }qژgmW?' Q*@)|dx.|.VQ< QYW!+gYvmVaTV\&Bj3/14zNtQW7_,.4ȕGem ՌƑcy5xʬ{:E[ P0X*X@0o+l-+j^K mf\ o  QHZ W@_wSlr ) [.}K8 T)L?ҿZv#WYMU._T݉cMІ 1^7Q{' 2׶ `7@usX dv5&@n2AK)0F?}1li~C-n&8h%}1D;'|{"H#X! WP $I |`2cLmx\#`*WAI Dƫz^k&-z4T#2/ ?19lPBq=OM%kUN%_T* \V5v5dyCQ҆ bȣQكvn֠gulttp\%7Ax~cIݹ5\F C6Tj?tFa F0ۋv. YI'x`V f,,G IXў 0P;[C%N:+Lx7 ,sCR3#e&bL+!ڼJ+ة2h:ôUqM$^NJXmx uZްjhc/uE-9.A\=.r{~OwGr*c/ΫMtɣOMF(5gٸ*]lܸDxJnݢX ls0( -͆si@RRm̮4.yu wwݳՊ ] ]ZyO!ʼnziX훘+QY](97u2Q]Vw4TЧE{&s15hgN.UlEw"hOXɂƍ2*[#AV$G& O:K4ޑmAi=NtZ)%BzIoqǢj۶rEn{&C"ng̣?eh6\|/V4)̀Ag1j hg6NM'Td81 ׭흓}O$ 8a__~c%?̻ioƢF 7uk]*3`]P;"HcU64|%Q* H-j.=^HB)c2^A$O?TUeζ Z#tRp|1hHbЀ^^,\-.jH r/HC%/8%Qj /- &r{1_^_ _(*mc8m4lW)N7yGl?>PpRyb.V Q9֕,RR| N˔6ֱAfe#I .s]l!XwN>:vN6C*D“ g<BR=Юz+T؋dꩇC\05^F&;`I3ӳ6+dnX,ե$MEg/w.X[ wr+(-=NOhy/Gw/醺TS16NKfOEŽaTKd~5VyU2WQfm$vbǐAKqsNsS6`J'WgFa/x-[ώy40nGohM c'ڣӌ[.yV|ª#5'( -,}Se6]|(K綫='^4eri8 Sn5/1e쟻hzkQ…o;O@>V6JBޓEUmS 2*0k=)O$ZP'HaY*,& x9 ٶN10'5y 3/ YTeʁ ԫŴS÷>qZy)K+ǓYj2' lFT+N״41("@cLfCUOYYUC9|[W<\^sEf3'2h+uO-X5GܮUt.tqBʊp*A8945ouLfԘH Lxo7;g{ t&Yl,e_=}np6՜qI6ZM*|xeg7{O|ޓU7ogni,3n%hѡ-;sd}ޝGD2HdD )͘h`X"l;-ڀ_hHٴٙ,mhGS"ck3&f۳WR-r,GQKIImep'){6I01C52 7nhbk؃d8ս4N`,bWU}N$OL2k:!dwu4@̴'\ '=ÓTǂ~Q7:0_Ti_{E{O]*}_RCO]X\b.3l0t'֭($3 8z]-&&*; MKIi"hъNm&x7KOq9LΣDwPEړUCaHQ P-% @d,K#(F5" ARKD>arJPΨ6i0hk1v=~`]9DI5p H0j=ٹvRu 8!MWD_\'^tdy{%(ur1FNeK:uOU''VEPW-ṟmJ-IӅ3;uDO^d5c_3GY5zԡa6 نAhYZi>7?+[ɠM̒19  8L[5ӽY㯍PK%rbECߨ t}pW>.'bW蚁ܴq\8툳;"[P8׻FQzЊ90;m AIaKN`Nn- q=8 t((=\2+A;\"c=9a//c_5ŠAo", fi9yA=w=Te:,U o\&C|:#A7,٧]J}".9(?^uxXwqp{ώ_0l+(,!C9a~ }b9yx{~ ~*`o<??AOh7P'47a#ȃj0JM<Ɗ("XKŠDU{|o>SB"]n>.3F̒qm$ĆVŵhbpbh%q{cwC @bKM1`(qO2 tӰ if91X.8?_Pނȡ;ͽsu)BC@d*G2y&0+TzSbKM01!D2.:DLqy)\ Шoƹ X{{1]"3.N*rUUzՉL;I1Sx(t@1n"YԆ&m:KK Ѿ?iG}</7;8^&N/@EAu.Y#X^ `"`BZyy)Z嘙WN)?ﵐ8ﵐz{Sċ,(\X!Yiaxe>\= % .fBsߙqS,|T~L|C3t,l!Ú/ |C4i3'x5Ȗ!凔 ETJY>gd{ ۹8~=?ۃH4U삇FN#8RXo60򟃔'DadT$x/Vf^' K]ͥajc a2YDNda 0tq]&9\o68VKets&4L'#\(ӿ;GkXRTA"4Yw;lֹ:`8Zi.'í4[WK1 [maWnp?U{OAzLZ!}`?(X隞M+IǪ:"{&,+ H(@%4.j"E_Yd|d:RXP'=۬H=t`8:@-5٨5!o2`IsFC` n#8gEA\AĘ ݇ާAbQT:lbT2,dCZ*hVNT-𸼮ZtRy6XZ H06g?7LY ؀)h7 [hZt||hr8n27#z\ Ckʩ̯-70"VKW|EQ4AnU!ݦAWȽa5! 2f`i`K/E͡nw)pG},d0>8ݧ cJ'kdڏ lkNx(soo;wkν~^s߹w;-MFn* 8t(!> zw`}芒OwGy g򽠿 igF[Q[MɣFbϰZP .ޡ,jB0J$F=Pj4v>^xYݒ+xU֞,)i]xu yhv"]NDT+l$\4n[ɦV4J  i>}TmJ+I|eH\C$6O/7ww?͞{J9G}z3Üwj$f7Gt,UxVv!T]0GEdM)ފ >䔂fjԥ )Ý#㭵;7tTmɲdj+^TCdr=IvD̑ꜶuM?6ӚCƃ!VIMcNvȈϒZIoyN;-~sq:;b]P4_~9 LJrk yu~2e0CEZޖ nօƘ nt4Qlqz0C5Zta5T;XO|w-/.#rm|e?Lޥcmm_}K*UXq LiW]^׆!|6nO 4CF6S /dKsևVxb^bgV;nVRf&dI[VW'N|v7U-[)1r=@V]>FBIֻ*VI%5v+^TU@qjr7=PHW}3B,UڃE^ Y}bG7֌j ߆QT[ך֜5x5@&?x퇇_kvJj F_)Wo?NFvo5ΓU~p*;ⴎ?m̷EM<_קwt8>ax=;r{/ N B\FJˍ3}Wi[[~S擒4ve{wgO[PjYgV;y2wק;{.j*  Z0+m<[mW{Nq fijOM7qp! .?_E.a˃>Y=T&2~B83^ˮI-O)֔HL]9yUx%V ;he}gׅ}V_ژ) 1CDVdPmyuJ=i Jmjܾ~E+h}5ie-D)ν̟G(_ztO.[%+'8S++zp3 ` + VQdn v0@*|#5%{׋CF؋A+Z:&/Ӳ|a EO(e乌<2\Fȷ"6w6jKѡ=N1N"I{CQs]<9I-:F,$u[ 9g\XٜM^Vނ y[Þ4F"3}d44I]@,QJ#J҂={2ʐ3{CR;+zG+ h]-ÕWEv>"F,2'{\YyKs r IDlyԳʥn; V E#Jse-(~G-8_bxW@].^.g45[ eOcc[?g3?g3?g3?0