#!/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=f94856e249b3dd384e7229c047b5ae45 # 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 )[[{sHͧc  PRZHޞ엙UӞ8m2UuaMg>_={۷޾{n-<={3RE[!c?D㻵t?kObVm؛ݽm?܃< kz#҈< w1š{@Bf[D>EhszrVxFA8֍',o,pܑkS_ufy8s;l7_x^pcfb`I,ƶ E,)ZLlֺn 1abup#?dK ڞxX!tш,@?GTrA '3ǖބlfaހQgzչlݳ:~pثS Y]h9l~; xio| e9`Agh ֍V_hH22 lzW]m}@ǎP@k qL(DԁZ:|h0K]r52x͋ f`zZu>jk mIoi Rڥ(INӻCm0^}9иMjuqd3Zo.h\,i0@sa zEұvϴnK=sZ M7@K8NHu7:M+OYIG%9K!յΥi)T*o{ 8q} ;T堥 =ƼbzhDzmw oϏVmk c` b"9T M?k;%?*'_RqZx7*r| m;,'ǨHRw(փlmJ#_NsAU?EnJ}?50<:ӰsV`ཅYYXhw78mG"B' \x+uv,9@2YbE cK|)UҔ}LSJIOьCk'D-?+4?V0{τYBB|sֽdg!ha"3LJ4{}O-NQ C!zY;TNle̹H@["̣Wg@l95~9J1႕;{.|+ -?qa"de)08WJI-ˈ cw0F2Ӑ1L-fFC|V8̰S?4"w  ;`#aabԻgbooW<$q/AeZ4)ؿ2?hϐ"gȑK$ ў!M&.ߛ'3Hdϕ0#Yl7[l/]f`30y=K |'iFߝ5f`5Dhf}66[_!uESǴ !*LpWL&l cwqx_ll0@k; z r>n lsYHȲے֍eF 8*AMOb%̄S#~n,DF~5M&1^uq^f=;fNgUQ6k2x F bmj N4!M:B' Dq1i3<B+2*kH)@Xi"[YnN iNw_}UUCu6٧ jV{@cy4ֶh,1*X#yT |e6 U; 䪪@R+zZw b+FÆIHiR[?^yXj,]:4r&# w`Ծ}K 4c /FxkZ",ڔQaNC튪+e[8в@"ʶh-b+Q:OIJ24R 7qǑHH ^RX&fʟfϚ>q?zp@I EAb]Oձ {u\wJ쵘v#mM~jv Li! h*%2BZCDU ʬLuKkQ\K:@ 6Y >iuW40Ys M 62Eb#'ĺݻ{wDC>Ω8=_h{<#PONwk]:PŊ:QHP3pwT3&ОRqTdr*GI  [G)6vH=>UxK~)Q*Lų9PutchCZULD,dTӞ92M dyVB).A nŋHP+QIJ*>&y|_%Ivk,8KIc3F "H󣕛HZWBÐW-P-z.|lyObk\mCM;,+yHUk]f0Ne H=m؈$eS,~l_\F_ew(I AN{WгYlJքΩ{/mw'S'ZĂoCU$+I y9ir8/IؘmqB=e!zQMdu?8h:KjEVt+9MڋCӃoNC4ƒ*i_ PgTNSW΍PHx:}0.G~8^2a-l,3ALA7Rta"b9׃LLzhc[ Qd^'|6L^tc+8EZvc9T\l,۳HPeRJa$@%'- v!EF9iK< $͠WU)՚`ỵU?w=,m|/dٶvfVnv٘ 1K }_/?^xrǟz0cL,!FD@wE @5 sYQ@-񯆝{ $˾/>2g>㳲Wx[e 7R C&؟hzm3qfY==XXI##bg,CAf0ޕ[Bg9MθjM0r֖ygtٛd2Õ&ZTdMIg% R'|zfgwU᱔YsiCf,k{g9ަ\elSdb^@GvJιː&RA,SQ}c)L cYG|ۍ 7 9^\$Y,X. )͊ mf2 V Z-93d]F/Ei{=qkH󬇂^@C([rl˫ /꒏gN1&/<{Fb0 X9I,h!0ɖl?\4<ʼn ZeMhee;ҩ=q5gBFV>ҚztpQf]\WI[ (zWrg 'RszDjXUNe7Kq ȑٓqkSqbb3izn G_>=#[+}6N<&0A~f,vBj@6%IfgX7nk^I}0;M&xr$0 [W! g*&+o|fh]eO\GxPzU$GLqVGo\b%k7ws^o{^l/zx3 6vÍ}8gD+KQsmNy'Ʋ|pL&6,ߊx^nq1!hDas50"Z[[dGh(Yݙ,4Y6JDa4OxؾfߞnڰZ%(4fwpcs~C&r$>7re:b;A'j\:óTHPnqD^a;) 64mw+< m UoS&B~to7N.m_SuÃPxa` {[U %COi98. . 79[%ZPu躺+-XwT8<;ڥmLmm"U]jN͟C 븹O 6o  u7စ?!/5wwyjŴytvwe;*^xv: Nr* nE3 `GI.ZڟFN)Zd\ 3 ݎG>?'th=6WU 1Df$Ē:u/a8^Y.@[kA6FR,j! N3,g4*({bp|V/0ȶمx|Z8o-8лt {w. PS3 !R`fJ%w9i":4!KC*+GD7= *%B`E.$ Ţ{ 9+}֡?Y-%VQsW7&"Gc4zXa_-SmuSDbO؊Sn~8s8nC?9èQ2˒yhvq&"=I[1\6-O̵5grk2FhZtG~bV-ŁR0/~1!n$aGߐ6S4ﶢNAj{HiɈ/)i^#oGp䌀f2zzkUf'r$S:=љtw"W!JqmrK.T+ȡG&d|}u져͇Wi7C~l~<p0U7B jD^vٓvMKnڤnW8^sZjP{% jUniVAJbAIvS^˃gFg>B4xl}2(~s# *DKXa"N u _ v +7;[)NU"uS77}rFECxL(J ~'}JvO(~2f(Z>ŧ 3f>L2#<=ԙO/ka7x92 PF]%L*; N\ _8bct*%uԪ ?z,D#N'$av,|ov8zfU;3,gMsfk:D܀-#((BqsC-{ F8^dfVr;}05Y}+/;rFrςNjQ;ᚪO h 8vHrˋviqq Q4,RaXmpb p^.sJ6JdۊdJD3S {]R_^8V,k0%6¥ZZʲ.D9":+>$C8=D8y2@_鉜OqAcr*vTJ܇$KR2l+X brI8~ T{Mow#64 wە=aVeuL!&"JwTsTbOm㹠s޾ \YaYWCkurmVa9N+ȝwZkf֧;n6`PK^d YE3,!8iY^4`׉c XBi6[@``Eb*~V7||VQ7^ >H.7vE85BWb0mZڇ;G.1B(iK3$Y >%+++V*w7$:Y 3RxpOV#O5uD"}-#\8VB@iy~~MޅG ll oJ`;1hPX+59i]rH<͑V"4 !O$fCpڑ' )pV%P_͍#=F Y1iH S9>ʋc? )ML$#EZ ^h z;[w%%Ża9YwUWF $r.BRP+>$ .Y*,c1 qzԼ#URX9ixfR"OY89k#bF;cOn64^Fh F@4xn/AYIZ7E*@+fh l$hsIY<2d1hj$#8DYeXAd>LyO7aRK+?0R-%H҅ItjBa*[ w$AcIB +;”W3'M"E: qxu%7Ν98GFofkó7gtE@W dv^yH0L/ryEHlc*Iܕ47]8jkvǔ:&bNѿ7bXMٚl\܎2^.}sxAZ tɴte7ϕs#Kre.bvlyuɓ@${jYM?%5?PkP e E1 c$!"D8Du<8.VYr'pTS.fpMTFbNi`Xz{I ǜ+$XPP]D BZ~'<@ft%StP1*,>ԀixYީԜ #M1{Q N1/aLM&/pKOz֒C3sF' l 醺XѰ'*Ѓ@jMA t|"3a*TrBjyUP$&#W# ~ʷX_wso״F)nZq; 5 D+:v#!2J!*H.b]z̐>cBI1j^*8J6 ˜ucلfT. .4$6hR/}U.AdgqD{lP Lh6ad`21gD:{i]0=`]dU t` S+PAFwPX°4e! o>KKUR]'s7s7f~p ˊ9nr#B7l]/& 6| 6[S \_~c{C~ ܡ@%V ^V(cu;҈IԨ&k`QZKnlmGo}a}?qE|q2P2B;{|82Νo*]mWr%٢'4a ]{m1MfZsgN~,@e| ;qԌU7IQIkj<*nW?fcvL-my'h9ά<q2Drƍ L! ]ik:C ~^5~l.8P+Y /vy\TVDmFk6KӵUm45Umӵ 5m9iVjV9ضEmA9~E׭+QJ S"gU0"ȢҜ˅tpa0ۖ頠uB&2DA ;pKf3V}! Ǒ4CfO)~{}/Hm80a-ت /rbw&XҝcƲ =K|]n4C] 9s0 ,v'fÖ׭8|.F-##)wX&@`F:lv)45|Y?\6/>qкXE0i0BNE2c='/6F770|yNz22s-Z&w%l,S~Gf I~; tm r3:Qǻh']k (q VzLh%#Z5CV!iѰތm7%k{a\@gI=:4IY'Iov >5pDwΠ8;tמvvDz@cH2(ak _*D"IY݀KK2}@Nzbōrr+r+rLӧz Y,x P+Qͨ@2GCUi#biͱGPg+R!R+=(eH+4?Z3? 0)[#zD:ai!øls8wJ6a;C5RQx`a"P?Àl)䔛HZ tv6 BZ- S۴LM3&foja]<3ghY{'dq,= kRP 5CB*哫Pϋ졚oF$݉"/ n ȍȅ#Qa#fSHy?~e*jYwҚ h0,{ %FڻI XmY IE=<9EՁ j<%!,Xމ&c)\~y}]#‰]6M$iC^t2~#Anl9'$b_,bh ]0dD>rml.5mvFބd0(|v'v۽f|CevH#MBސzӚgqq{|z!/b2#كr{RUCWh }@U+ ~]2Fͧ-`EXHãկdqH>0oscm(*nqE IC&6걣b|6d74ęNM iRfo5Qxh#5 @VImu}u-${m%ԱE=~IB'h3}аe7n{!Z0 l[K >@DƷJ@<dd́Ta3F}e;?hơ:UBo#x\О)4k4y#j?Oac`z~p"!W[ >K_EVc$؟J0ꢜR7BJ9K}1LyTyc(>YyxȂސ)# IǞ찊1.@#!0U*(6ΉxdQL5+BǺq$H4M:uAD8N@o44;UH{Η ݃htM#zv c&\4YS'ʲ%};]EglB^~Y^~tUKvUl`hQm,%Xڨ@R3h>oz.FЂĊq l9z S8H@O26 FzO=H Ò0qt~oOVXu2vELK(D:e9b2B°9A)C.S_j?baX*5:$*ax JlaGc䤂X%`~G?=^^\fbབྷ&If'Mj}Z*I.;EDq}Ǧ,%L$Rj e'ʪ`%j) T'F$kSی mTq&οgmr~Wy[ %OV(~CA?,/h~MmDxhyk9l~TP Βi>i94߫9ŷBs=_.'ߺWcIzÎחf%lѫNޥ]2˳0L,0D)t Cw iKr.dLq6?šnq^9aVP3gاj*DT\ANIqٓeS/j p"9'&SOUknzrD9{tKaE-;RF_):o\Ӵى(XN^ )3%h7!/1FY6Ѧ< >,cFQV! q~4wTd\b q:btа8q0S;EI񿖗\=>7\soOύ51p1v]s2XnۤJ0\K=;AykR]?10GY߉ótfc4nrD3)-;v"KU4%|z26iғZٖ'NЩ;c]/̊()TH{"CJl0+L̚sBju;}*W+'Ӟ$“SEH&0E֜UN6(ˋD Mf o̩2rֺ&e,UTk/m1,ÃXj^[I $es{!Q&Vm΍ ɢ@b#΄.%}L}QHobctF r8eOk߿ȢÞeW(kAF9RжxHdHSekP,-^l uA}BcNxKLG;\ f k$3j,nJ >s!3nEpӊzb"LH$5ϋUc.vv;*)gƜ6 kPK3 =X`Lq7+.8 FIwDl!ʟ, Y3r%ݝU>„l\)R}S#fs FӑKG,.3N+Z9xB4jr4)d% s_ ֡=(1`k)ؽ=F;@AybrAUF h/jވu( GKrRKk&O72#w@dcAx,s" CGF g.jeJIb۔ Hp<6\"Fx ʢv_W(M&ISdPm#L#G<9(@34.(Bjېx 2;ׂۈ"ɱ %|z ;4E@L {jfPCE"T %j-]R4-%*VrQHñOj 8I8SX3>Au%UI; ~+8(mлA#O0ƋǬ!J!pChgF><P'Î/yjbA]FZ dž_U4šdK,3gkp^L%-bT3MU/9dQ)oM[%ws*?q_ÕO S] f 8pfʖ2B:˙\(McQ"-!+T0˿Ӝk1?\U{Xyh^~7"@-pGFިݍ4S?:m(z7,q2L'BOa>skp?uԹgLw">Bf ovÃ>M_2 {yL"{y-I?wq#w\sk?ӾE%87N P6 y>X]~; 3+OPry!'ֿ4~y_j|X}Rx@[B}@]QC)kܰp>x~+ʲ|p*:Tr0 U2>'?r z@MNg5owNNႋZ!~,0/! ֛;퇢yW\%`!5?a4>>?U~m՞AW[A#vE0 ?!3]`# 87GLڎʋG-]>GGGg$b>/!)aɍ{KHL3%^̩pBS]tW}q,#!&A#auB+9Dmê($N~mpQ0ؗb>-pif`>؁1R)4U!. _WY 8#)/r7nz^CX]jnȷDb/ y`3 LKƩxGN+jɌ*r$Ai[h{T#-ȇWbݮR_a-n9䖐[U2X#XeRΒ0RLP?K l~Ba#_APU1ѩ N^d+b1)֡v+lG()&TCW߅?i?PTaPBaou^SO鷙mCt&~\FdO >@5)ڭ/ UNNZ2F7 T(M(;u)Ѱ_zFȒ)Q+0YP`x!Zc P؊xM5ܜV6#*oCp+į8JivVHy*Xzei@Pehg힜?7D"HFcܾp<Ԉ7ߪHt%5 iYBAD9_" 7hd 5@5VC `aiT^} 5`{vsܡTLg:hv%rkc<kAH=Ɲ^\${g49g95U{ *N']K5hi(aߡ+0PVbI m&n^;wMP8њ4D,}m uJӌ|.L}5b$17qfOWSPth)|mz ҳՖîudrw~6pCS?b+XQ[tJb|(/5_1rL1>F[8BYq]7IҠX6,I29D%f&yS#cTݷ|F:uH\E5Ug >ŭ[W=깁,B?R y5d֗}R]]&})Iu<l8#HI*[BM5/b6. kE4&@V6< u3]*Uo6:LRSW)0yz j|H^[\o+T< m/Axih̹w)]yC\lzbIxcS5e_ĨkZI>8 rKJY69ȹr|9INc5ϦG`Ĭc`_mUwAArm_`à ,WkC=;_;G!pW#(q! jTW|,v @ߊVƘ2]xNw8Ƥ;0Ӡ5[AC\^miORs*yTkMk1gg$'Х%LI֛*8,W/7TQ?5!Ej.KIsLпp Qϖ˦u m؟fڅ4_-P T"sWHW慢XlT; Fw\F7dG%e?l~;cF-)6Wq{ >E ޺'c?q?(y,Hn)SsrIk1Ą&s"p/@s*hC>-ؘ7qeGo†*5J3Z :}LAr{U+RTfQCAb K F< 08dV-~uo"^*BTĬ^^3NZ+t麶nĨabK|+)BS5S㍭_zFEKbnNvzĘ<0 pFaI#1, Ujeg'.Frj!Bf{0цF|,g<6u:BC-=H\C<')y\8OcLE-cP8gZhd2Oc9In9:u]f &O4 : EB,E} ~풚O#-uM.%k(͘dE}Yf flU3|y%XTdAbYxⵠbLa ŵv3³{e8"p,:8@KQ #v<ܔf)K(͘0K';N/dzlcuIŵe3|#GHs L4+](Xk#B7˻; 8Ӎӓ_O8<`l4Tdk}&5Fqv% jP+ j R|fN!u4\~1 ;Sr9 :=25Y4ڪ0) RHB&%&vi| AN*yEiud[Օu<}#S4uWy8ՊOfˌYK n.5L\AlÔˋpf,w#Aҥ2|Y /'{+W2^0XJCݯep^A[;:|@ xhh'qbyUezo3pT,5Zfbl͆vDמJs}Jn#IEOdgW{E5"Y:h#~; Ȏ_]Z)ey<?y@yŧ pC ̑ O7d?}%p{VN/A 6v0i ׍&7[xkV5͍#vuׅh=VQh3|qKj쐯cV= vlG}H$FjS%+/'n{mяϿϣ ߿o;%B[G]]dPy)r~%anFsqJ".ᴂj,{V9i]P(V,~')~mVTp׉JLu5'#LEboF3\[oF5<tP_ƃo3f /t0W]D 0iDZ6 "RR,Ej0ޘ!jA?' i=s[5[ !.{ϔrrS'&u1SM 0)UgkGڬ*Hz iqA*+i\խ[pκq.}0C):qb6-K z\H 1( JQ¾0DX'h>TS aD%{&;:bC:j@\2cN _a0@g4P+xr_-9]of(`~:q)ѯT$l=:sR0%|<3=<{eP{en#w ,rJ|J'ڑH*m_~m=y(m[aC&XUðh%<0׋ Yj|= ߲Ӌ}OK/O[%??rE(ZROp[z7y#*>->ʍIڍ*j7^z*q 橍GPx<} }S@At~@zXPkO=z_x(Z*xH xHꍧ_xHʍx(x8 E>i3Caq\$uϒ.ڗ..:9;Pooq~Վó::>/b`h0^/`޸Y 8D3pK p ;Q UGL.vOX|wO8j &n:*1˱eF['Bkve@vN`.t3p {Qg@-x0G l a^A'o=Fӌ&cT7j4/An s%i'jGͫ>xڪ]\q6Z@?M]v!x̵z+fkPğGm(^' 5ۻHkomp@yd##zywS>=JQw [><*  VA=h82S^/a/)7y!XU(x~]yGyGyG~1o?L\/B79Gnڝlѧq{ WCV*