#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=bd32cd8c140948e18a345ab3b368a64b # 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 eRnqѩ5/~UlQUW|Qk5VZ׏^$*Vf=zY|I:f>)uʤ^^իmΡ]:[}@9aqG55cDM]kB@&YyX6kP2l} S]xo$ ǴݥdI݅$KY[&(ϝ/=#c [P5#iq!Mc,X0@+'0$؎oG2D\=@L(H$$5W@܏& }=T!Á,t>b3Ag@d&dO-6"e3bG@& rMhh3@)k4X0xB2Q H`0#y%}'_Hs-+R&+ `1cΓF\aj%9iwH|ȁ0u.P,Z1_ ZޡeC̜;=fŢ2:vΖۥn3ZT:#y*as0X X@O˷?SB5q1!|S)19Q ŢIjqX+D$Ar`Ҵ?6C(;Ϸ@]ϝW&yGG?_Hy;As@8` EWW=QR2X҂2vS+f dlR%$CE?LY1x9+d Bt{.crAmꂴ Ez5{g-HvF#AJ;0ˣ t$Vn%%Płj^!he*i5娬rnanNg !M+4JC0e XͽHP>+#&OݽsY6߬ 1# g+qns,9;8:nU[|M=(L˾9([U"yK HJd 52`dN3 HBJ9@r!Y+l~Gj9@}r૞`4_1)ѳ̀yf@UsJ:^6穛| hrFu=G̗E{BGMLYԻ%e:yǃɁ6$7Ç`-~ pp5$ŗr)Ѵ6, Ӕڥ_B C{Dk8݋0\:=5Yy]ć*GyW^ǽmEWdjAʛN7WY$)BpۄX+n[#y%/2Zg0z5'Ih3 .+{uŸ߆Z=+eFUݓw˶rY-bT ql*Ty xj@-j@= m58/ČpZ,B䆠IPAtihK(,Bi;R?-XL5[.ng8@~t{ZXj@tF m:g΄J2hmup%w o!UKr p<;+AI`jK!軼)>7$)Js͊_`BBo"obMmj0uկP A  Tvڜ7oHKv,Q\U`B.!g:BƜ.#7_%4e*&3gc@],o | )dĔ1vdI80/$M(u:!\D,dWAo=v&l@U{*48O/<7i-4M?LcxPM ~e,&]RުN+* (hęVW:_rդHE TIM)cqDnD5|;D]Qӌ[k幀`ƝжЂ"nf',ݼ4f"Li)٤yNtf1,e=}b!;3S)5m4m4V/> u—Kp`r'M%~x}[![tvx7#04nuZX,YZ@}]ӨZxx${0oZ͘( P ,){i`6nqjJY5W!UtAO/ ›=V2!edaÃ|]7ȿTYʯ~ -ߕS%vCh\\8](VNdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaEÅc,$ePR!L3K"XR=^萵Ejh\ hI(ͧb:MÆΨyo+9ZQK/\t*i:,7 f+ odcQ0D0c~ b5å zXa_RQ #+(+1ys LҎjY9:a[b?IPVo-LW_FtUxfiX]3,yJh61a2'jmLm}moZTyBX:I嘬\pI2EN~ח4=Ys7ʆt:_y\y5pY,|Qds԰ &8"G>}3*l=3Jy )LIu'; ŭkl0Df)Ό ?&X1Ѝ[>6~\dvk*tP& ><&F8B4QbAEK}Wߌ&!"V)%ҌI@)n{6廲/κ2-O fJ evR,m{ڑl2B}h7hXa`ڏyܼR18l`غp}@iwK8lJ=5[zڝ+bH?Uk+W~cg%x)J[M% z ]>e& qz_wd"JЮ;@^Jx!Scb$f:i74i 'f=%C8Cܨc@Ԏ~zяn6py#D.sTTTzM(8Y,}j7V^kAbّ[b 7\44C Gsz Cgpp})REfU(HE q~BL=3gBVB '(oyizlCVl%P7G|$E"!28ԅ@ }|7Tl NIiZKR^.PcEƔe^8vtPv~^KXL!i10DDZ9ֹ~8SîZk$]${Y||  '"N I*T ?q'lX-eGNO)p> nFd57D7E"GF,.1X Sʉ 9Zу4bxXәdJS1<FMz"*Y%)S/<^j7'ͬ?8CHZ~0ZYY~],>OaQϋ = fƈ4 _YSS6HRZH2w6ҁ ]r0KsGnɍ~mu7R[ )Qqxuƽ(k7jҾGmr#K*x`miN}Nh3ªf 7{c18sHhSB]{Jy8ݦ2 l UME6~pbb^CQ}K[Q/&$h7ɦ3d-q#TW!E\ZOf#J컓M/~xb<ǻKnwwn~Evٰ|uU_6XzC)ѾuMlg8[^ChxuCvX"v,.,UKtIÎvÞz?mΜ:#J=`2C/ =m{q6zQoګ-|uz; >E `Fۘtjz\}jCgWӹG=_A V;?1OB>,99-{` 0{{czqO^x1r0Wʧ=kșWfeX Xľ/> 12K-g lр[j iLAkV+sB܄-}B&p7aw΄;]Pȁʑp"Aßs$|ÄW# 뷱JI ;8 PZhOy9㟹+-|S-Z= /l#'K#wB$inۦ)|m7c%_l>*jҘ7A&%L'm>ʹA{>U<KI fJ:}*g[&sm&$]qQ$gَa?N_A˸&)ȔM P ?̛*fJ6Z6hQaf K~goi%ȲriӼ_&[:v8g)owօc.?~QnnngЊR2b{bq̗>DzS5U}z <ɠ@iZO!9{g])zԌ9fW<8n񜻣iӄ$H ŀC`1geֻ2O>fj;P}Os݁a[դ<6yCc9TGviY2[o㪴<V7zĝXY#^ FAŞ>߫ͫ~aKL2b4_BsWq`sƞwMUAbVrpJ?LN:|y6XY ϗ`ZB/@ [ānOɱXk5 &]' [QnxoHFd90`kA@o&Ů-gv}۪5%D%]k&|C_w 'DpJ,.s=6Y#wag삛/EWc"3X'#rrT-~U?\/2̺Kv1yqk)ZgT^ߨNɉ>OI#ZPbF*#L R RWN#جQLKS{iJdQxs G񉽳W6^͠0[y4w-)AAXQn [ƋFȆ ay7e2QKɇrA 3LxoSTfS\U~PES-z#0MËMDbh0tĭ<0RǨ GkZIpQXpvt0@G.w)w99!pt&ء1cC9Tbd8slzvmJEW B ]F~e=F:Zg4 ><vtHDKb=p/HRJ3ULq7c&7Vd; Mdb5KږCpF-WQJlÍOQF^.b; uh;}UfLZ1,ϢN_zIݣfX%JNޙw3BU:ta-v2YƷ "-5ŸۈE2-690_F¤/r@!׾5Zܟ{]-SW1;`u|no4aGB3E~^8}{q|~Ii{zx9EeqZExo: c~ٵOӑO):r9#9tzdhSvҌ-*2}\ܵm[52\}(&S5 <~`rtEƁ1:~#/=hgsPex_ XSّ,Dss<xppmÝ")[>HBzG@Ӑ@WgPc/zU_gFxf/~`M &PG̅\B 39hh("PjT åǶDtNb;pDXŎ2xʥ) b~c)ho%E_X"Q{W!;'5kz-/gjM.0S1!*al:"!wc Bg'W (N@e63S2`JXeh/o6m5(y' g&|LRJld& Pä(Fд͎XW;2| #bWvj hCu-aBD8XI"dEU-2% z<ˆo\7ޡ**n[ihe3ƞy }}R_}7&8FH%dU98;eɩF\ iڏlӊ? g{u-1 \'K -{C]뛀F3M{8,(cӚ纙&t߶;LDqxpw-B'G_ QNtM7jَp`2G޷re!wBi>N4o 8Qh梽G+^֕WGE[݂X֋N}?$C@xxY300000000E?La{JVI4'~y vNOH6 q `'!;?>|Ehu%/T7~A`]I=}6Rq(ot)0j n *L0ΔopU|īӋe҅ _PbӠ-[ǔlČ~ ~ ȹZvSwZG!9Pr9J5-&YoLjG/Th*(p*efF5 oH3ZeGX^W-k[*^sAUbLT ލSN(,wۭwiC垎P7_RoE6Kky;7ۍD %(gh'>;:#\T  W3v)q)DW鎮R}vl~֝ط2f4.?FS1:tplp7afxXK#x<ރ {JADW :6׳54 G8}jHLQExWz=E$>\$Q_$Du!:g)NC(v ~Z"9Y'6?wb7|;~O7P%  !UhIمK7!%&@|& ZM@id>pƘ_pAda7!ԡܖgt=;v_ bۤΠrtwlLn.x3YGZ5wTusr`2E_bvbf#_.95z+^:iH$+GU5 bӖ_?)lq4Yj_:%qgQh">`Ȯ e{+pvzXF,.iDr2>O &s)(Z8N9dyEyd[仠2ȅ2.(uP!e$(XqNDa*mzhi Yς]P8*LZ~^ 4>Ƕ?vkt ݳh=>=ÍɅJl4\G\ 13_E \wYך+jd `!t 7.7}aW)_|X"Q\An+E82~?bFLA'+?f@EaxP>6z(:^3!ahF O~)RvdϔMϨ8ENWp,Ol/Z>_\./ӁTzc1|.\0y6!vk-^"K[9 _dN6cwgycNԷJX$sPRǑh!x4hmVR,dcnV/.x0ndXK-{]QGy:+Ý]8|ɭ*-.xj+eY=w^2\b+y'Qs(EP ~"}ͻmAŅ[֩OaJ Y6*]şa?^c?k+ֽ+kk3f?Y,g3?t*:m5WItHkCzMatp^hְG'o6Dɰ@%!CO_欄+/DiZhuUؙq C)S*@FhO8ؐ"TؔVT28e)؜<R:5BK9~KyI$Bz>s{R_݄clD"BI`% W@ObgTjMb4x^"Q0w9u^#Kߥ-ws ($e!eɘGFIwgJ7({ƥ5SJ& wĈQ0qhᄍ)UztH5DX7 .Ctk~ .UMG%q ZYU[zy|\!N>% [BaF-[,!N+kT",m""jy||Sc!]kn*GM YEǃhpe]cie\?kt[C}] fnlbX/3h PWZNxzė!}$6N4e?yWp\6 z&)c阘k˭w8O >=TF[iR-5i(I{2H; ""Mf~k$EoSSBZo%”Qh#U./R$땤w6eNMMRVF&zuښXS| Rf Y&3!NP5oa?Jw-Gk4o L@ԻDgi<M:רZ@ÀV7ti鯢L%ɰ&䑨( Ftd"4vPAўjGOyՍ(*]M*vƾAv̷'r/:UVA ߎWfD|a9y :`^j 6UoQ߸goWyQ!ĸ9NlxGÉ^Rg;56f?mSLrRI$jT lFޱ<|Uq]{]*zvY ͶN5`0)١x'mfyĢuM>)Γ.ms dն*Vaye݌lI|̣Z.'1OA(;Oިd;}ji HV 9^u^=+\3۞ yZ%hd &,Xpg`z~p"!>8V3FPHP|{ǾX[dBXz@MnX-Uo3I|ȃpO +J;0 T`3p5[!ՂTjȣ@|[3EM:"u@]t ']EBis<~qCU)C5இ s M+!ZV>!}e*}VoGdGnd@=^ucZ#]xC'^- ??ŵF L]ak Jiҋ+S:աb*&Vaኌd5W[œjעu9٩PXY@ڕh XAg;V$"_n I;ו4" eEN"O[{Vm -VLuoaQ-KaKxl/ϗQ'?^{X_{2?3?g3'w`̔ [$i[wDxyQpێs|C{kwzo'#bO7eM[?9٣Ew朢ͭVWk+s.EIp-~Q>ww7 1ģ}*U_6X}WW=ztqh~gwuS~ LIe'jԡCwwO߯L8i.ii7Ã}?p6۔^B}} o?HU/o1$ <7913O?mRc+A:WN];_..^1 "eEz>P>Tn-0kޛzNgzGK:h\Fi q W)i ^5*[}(8,gPn; b|tjF8g_Eڀ1RGXp|C橜@C |*ke '7\S@[E=\e$YVxҳĮĸڸ{}4hF14NVB[&x|EW/4E֑-W[‡ ֻ10O`Zlћ򝣃3L F-6V/?4Y4i` 5$|}`(l˹|JIp"q^__wW߉ORDHi;Z;b+"N'bC 8c_-VWh&h-%\wW2 (J!BO&W{ox]'4f]Aǯ+p&++Wמ?I/z3M{޸8O?O?xhavUaG?7bᓇoYCV~zU Yv\JC<vSrXh]C:lhw^m~tM,@8 l4o2$O~kɿ0O;P3?12GLpL sY"z?t爒6cyb:<[d8:tM]'w5FUjK>\Tk(xkң .X mF-`΀Z峻r=kBb[-G?`[":^r7%ԝ[e93قJlQit# EՆD&' ?զ YYY᥂[4 +hd*f"a2k䎴ݤ>B]kCD'N:+ryl,#a3Mz%A;SܸJ+i?2hԺôPUh2:Eqċ_U8öv0\ KZ;/Pr"SL,ՂDJYKx$ /NBecpq}YxUJ2 ,t_6Մɭt |"rIKGzҡ^yWt +g9_e@I˸_gu#0* ՃC˵:}@+`zUW1+!iv=*RVvF zUdR(LQBFZ#ݡqNTI>ψ,w]|= 0pJN-xѐE5:%REB^}p0LZJ-~)9a{udq3x,(o`iޓUђqހltY}f\'E,Ghw[c sNU;d BwuJF=`Cs{* hSxWs)YTl<) j#7YIh(n`x "bqF+uzkO?@ir1#w!lj<6iR)QToW#LgFݶpQ;#D_zǬ ȧ"!ʰ'DA} :PnJ O+vk{xSR#͍k_Y9}+W>.㦱=>S]Z,& fO8v(7O_D֓-o+*%aԄjSWwF4%d GN?ԙmζ'CSZp:4ۀ8>kFuYU;əbV<@~:{UL}Fsvd K7F?>SsbQwcs՟,5]1S+oꡀMomxdwK]enr2ic߆ݭxǫO{=g3{ř?wܻ{0o4M)!]ŎNnǰOl!U$&89i!rTP-MJ͌iXҗ8TZ8[RA ")1α8 Qz jbp뼚E^X nI-M˨~ŇI[;^LIk{CQ2D_ƍJT/?ܽ4w:^YETN~r'vGp^jlV=~52Ris*TWYC ^2+i `FQ|IUEZG뵛Tl<iH3+Ish-6_Hat/!f/q Mصqo67$ Z{1_^_ \ wX*mc\m4lWqXFo}#q 9 ć;V7RvN{6ֱAC 7Ym؉5B+LZ;祗Xe:G9kmT bUjO}@;kOjkW7 V\t ] 6٩`[೗^e VYrx3c<ݖ4}%0E:YQsk&瀟q0罰ܑ[u8cLF[Gou߭Q$%`Om+͞فV=9u8+=/*ì4@y@ iO ,#asv,>97= {Z~v"+iFwsyz:2)Y4c[)9bUgJEA["ӿE9[_+ J}ֹ瘎@4 ei Qiy=wF ~j[_*@wPQ+eߡܒ!Oʾr旑 >-ՎjT,auR!(6*fpedtQ"?HIaxXQPۥV@+҇]G*9Fث2,6,Z ':msQf7E(tu?ZB߯Z+_q-Urb1"5 A ]ye pp&NszaFՂry8X` V5Q[˫0"?rlYZW< T^sg*nf p~qRt4H8U]Wz0'WR4Arƒ6S,uXsͲ?Nj.n@?hnYZB%P8GnA>̮ɽ̛3 wysVWSduD')6awL:jREc,TQNAxɑ)R$dY!\%,[= aqvD:mqxn'2tr>mn⍦',PEL1tѦ^ R| Banϴh)r1H}󪉴0fP)bxcV[G(~;܈nJP_8θ+e;HٙMb9@"k{ƍ23 uT?Bο cI`E`7#47'm/m ۺ֩Ldݒ8yY;[ztx\U$.!hq<6af1Zb\(+8ng1%yDq9HΣDtF Uȹb@$ P-%@dbC["A>}`cv#Sj0=LP޽zj,?rhkv5~`]9DIa8sH0jVRu 5PI"@q(_\'6^yk%y }7393Uq @cF%ڄsGjC{ )0W6uOBP sjƒ)=jLir<Ho ?0Dl>@7?}3[C̜1}1xb5ϧK:fAC+ t}qWIx~e>XHxt0tp\Ꜻ !M}DLVAnSHBH(T=hEN/ri8cnx p9C9NZK&%ht}XKuBN$%}O>o]Yŗ bԧGȥ6Y ȠGnnmXp`2|UײRWO؀b3BBXq!qB Sq[9~q=T>e]yTER>[ eCb=(cu] TbcDu!gGj0!Ow VWj?;uccݷQhՏ^[2?߳Y_#{=E}ϢgQ߳?!{٤b_oۧ$nGDz QPX5%/ðF~>&m~)ۊ QWV2 ý[JޞSjR,_-T-fq2 p*ox$}RrZV ˯ӻs~z96nS=gR2>i.b iTZq{yovӽ1П;gj/xN϶ya˃RtF>{xQJw/]wyۇOsHIJSÙjN1$z>g`[Z_ugv|vv^L};q*Vgנ{yvshXwqpu}{z!j07<=k?U4>u: p1pz#V͸؇ydZ5<2HR R{,ŏ|s}DzᠱA0d\pخۘA4xQ ,8ǕJ,m1jQ r`3qVfe=^)"胤Gdg)<6JQaE`W.E'#4&Ⱥ4@O^e/GZx{JeV۬P뒛N)v`*6JM*+gBUzT#_0*02NtKKStw9\{57E%d{D1 cluWqVn_X3_gF`:,3K0_-ybx@NzIk*H}'fTC8Tُ>'qPOڊğzu\HG/lj A7K@>V#P8bQWJ|sPl|x*9ۏqI?_ڧXS@z4$* R dHcn"{@p+ц~i0=]^YW_..b(dnT⺷$.=fZfj}#\aU| \YݕL,࣊a W\$K~Hϼ1F~jk(D ͜ ^8,#[F14N(4˘§rX"C@6 o8W/'{gu^ GS.wjqKĻƛm4 Gh1Ͱ=eT$nh/Vfmj+N]Al# /aH(sfY {buNƗhpU,#gfk/.!s2P(yMM¿hҝ5$)tuܻ]\]s0\-4F-Ci%ܺ W oyhՅ]Y`Tf*&^2㙐aN,Y}(PH5ަU5TXYDaED< ~ˍX{D1d6{Rʒ ?=Bh"'kRF+%(G|`%!:;f@'nGl|F*Qu+u$kZ6=GՅ{d̏]Ό@Nt$fta/b51ʆ%,}],cIl" -.|߳{F??lߍE"Y:JTyH^cr4F-iC­ V7sQ3;}10*AOy]`CBP`" s*Y_>)C[+<:+Ez+N,Sg9꺗kHWX霍j ۮh2%i9Kz uVۇ2s>G5_姖и-01 ],48$7G3՗dLbaHZUP8]HA&Oq_Di_y 4FdqFY (P ꋞ- 9<>H~/Z\Պ*p2a<4rCt) L3?l3?ήa fN릚x6nH]O4ZpWXy4]v(/3ݝ RTʶW@ 2~+8JX]*=2>:8ݧ4cB'G> KOycѓW~\3{=y}ϼagӁJʹ  @.2y| -$b[?" dWi}d@3bj* ^^QrVMBIUb(`fO0VW*ԥ:n /[zWӕ=s1LEE4ATQTY]w,wA J{Br\K†,qD[U痰m`K%\RæuJ%5>ykﰦJ{ta).P!ڮppо:n5I]n5G(g ۓNGmhm'k;Mq M|zP6C~aaݬ͔FM`U(5Wo*Y5eNH3m#s oKCl/p!RUT,՗KʹϢmtP.i?Zzq;M ^i<{攞+E!.]-\D 0 w`R`j3_Qm2j F3l ZpKD ?_yN_ _Շ?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.np2Ҩ\>9;>#1J5#>\,$2^.ݓ=x,>>q SRW7bǯ^ƘN?TmE"h9.Qdl_͈.D$1KR71k3ðA#Ң)ɮl LkM.nFMk=~|}[,"ip @ -uav+$~gY7>?Η=Yy T_7)v HҜ{ i#:S>\ݞUEm%8IrqI *f8r?^5ͪXIޥedI8Ub(^SGv(X:d_ 7Io5 ='ϕ;`?GK}]zF 6}VX|`/gXX=(䇙0fL~$27*0))(SбNf>n/#Cy{JlO"ZC to I:4Vs%"Ѓtnczn!Aog9HdƦ!?* 418:(Lo׽aFw6ñ$Z2|95Z[+m