#!/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=86bedcfacac9029135ca886ec63c8dbc # 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 \{sHOѓ(Gq8,6odI'qwW,lY\%);g?|Y[K@hC?œg>]wpHp৽ׇ{w~"=J>(6C~?mw_y9kйLiP΃Ќo2jG2`:v1j@[ ˎ;k0 zj x#럲 u>>҈ڨ@Hk_v[C6P-B4ވn(+_! g뤫`$jGʔ}knWЉ %4Ji]@@^/2/O6uu^kuRڥ"+֨E4'Fz#u8~}>[йCjP`?Q4 vuB5Kk*t\{o#"QLVSϺڙkXG:Wa4h44zItg8QE#nд2픵:5d^6C5i6T*@FĦk%mKB x 8YD$Kc*hf[3hݚsۈYn`UK/Ui=c@r׆5V1Uoyc-{),0ag2ְ }v$a a1;>i.ܽ, CӿJҽSC8q>VkbXeddŸ_erEnR褴zey?XەZvPTZh%T6+7=Z/7Jh~-H-5R5K6q{X=bLⅠLP?\ducCHIN|tSB L2=~Ŝ=:Ɣ:V+[al__eERy'h7y *,Й j_ 2FVBA1+5#Ikw!huPaLAf]-[i奎I:Lg%ޡM C&3ThPm&#ƪ~[H@6 'A Òʩ78㛲LBfj3.9~-*9$<شfs˳XhIPsC7`͵S;/N%9KX ?W'0&{?!tn}"PC-r>#ұjhŦg^ ԋ=ܐ e_xiiXU yO._5دCF 0<AsCft!| WٔZ*QH䑖,b yhoNy?CvKDY_`^^Ŵ/=ԓhn. 4xѓBymD`gJ= H MNDž~١#sñ?Z,ǠNÚ''+= Ľʳ_7|N0& 24ݥ)Hh`x;6-q͈xZ~a"4w؇Y|~eԐs3wbay3yo/8~t#L ;;­5灢 O343@9BK.$᥻rqÉ+EҹmaW^eF&239l M J gjM$+HjTp3,Sr(|[/ԋd͜U~--k.5ȸ/O7--tAs&\YLj臔'-yrzS+\z{KS}D2!'dW%A"u>X r;Ww0eC<ϺRS&lbF&Y1S^mH{@}u[B@KzdZdی~c^ܠlzqL%ɵ^Pס9fsL=Ez j2.W-X4P,8Y2xDҢ܌- bǭ$N/:a wnRg3oy$u{5gfr?݉gHM~Nɢ;. RF}o@Q)䐻{*H813f9 6 l #HO2B:;Nvr18¾@\pՀC cfqT }RHr'n dLB91VEr?5TQk8?U7B$f.u'fX͊̕kOJMS9 DW Vc&N"Ct#Bz)" Q Sxt\r憞lA@| A_vL=Cfŵ%xď2H Bbh-^zt vUNV.JY/Yy#Wd$xZ>8&a=*4ݺӑ۾mW?@P>]JVܙ|N3ïW=ӿ%usUmydB'z-o@ [xEWϣ@9*@$n%avC 8=>JFe]-}+7g'3wիׯϿ裏OOo<~zӫWO^}mFގ6w D_B !=3ҫN81Kߢq]xFeh~z. <81Z'M& =rʺ 9LQ VKP&UXŤ¨3IY@K@^HlYEf}϶k2' E$JM }ޞ&'N\ծ_>S9e~19 ӦzfB1 [TxZۇI*p:3I7Zp9cS! !'|!; ᡩɼ}C"Qsn(ʃc"uw,шO=W6="9ٟ[KgϨܩ 8s!V-U[bZ2%c yu9<j j02~JbvMgZ;:ne``̐rوX*(Z푒J(/=zHZU*$}lE&':p G)RPE,An.OC;׹#9(-dZ$@-˯+_j1`Ei:eyXp.Tƻ޶z}w2 ]pF@zY@cm*L`(9BL1$wKgF ##df 2Y,Af Sp 2tTZkxS"Fj V.jv 4hȔ?"4<0>낥c Jxʑ㤯J*1B,j"c*C3:/jחGSn !6p"^M@`I,`83ϭ. G8-t>Y^]a:Vz!ӌnd-O^\Wh X35 ~kٌhB^BP/;rA>h 9EU$]RFyii7;0uC-WY6w)(YǦG*h&hUVfEr 0)8N 45ld7!-n#XogƗlm\Ogb6 znڜš2- t0 OT€BӨgf  <-WML{5 w)ʔelg]5 ~ cȰ!p, ƽ.Ot&6~ kѨPMnCFIJig^̡Ϣ0QÚn<<9YxG4t2\oGØFF^>9ρ^mBM;<\I0bBWs$lN*0o,(#(37]Hg>IK-'M'I#H,T&ۄV)b0E/$n6+iAL3w0xfF9By$Tj?aGYS&Jz0t, H}@Û$О#F6d:-ˋ<Hl/ca9݃^t q0bGPД%>7[Ez#nxu":'( dƹ>B);Xa.DAʓA7< |E'D+qGkXyN4ۦi˘ʜJ暴apEb3X-!tU'.<"ܷh%M)g3*\1r5Uf;H?UgsBĨ; `8YxK4,l(!7k,esc=QVZuh| D&71Gh3UxDCStIj`il׉ls[EyЬ'^0;mѾ-+2v82ap4!a{AF%KqaY] 72BصYH%e,M#:ҥ҅O}6Gu>!a] :;=*GI[6h)lƨ:XzH4p-@8MJ jƢNl8!ifE!ґgJ.`H$ÜJ<⃞KYw+v'V|R98NS">[2X}X{(k.&W!E^ FI#Fc< S |@C.уgdCpUAf!vki;srgV"ZLo7sFыG!DkˍM2V@J(ˇa qU*p |);3?H,Dђ$H]_@>$>֬P')T {%w)y"y*i,2ҳr,{Xehsֳ٨;е Z03 ZER&)#oȸkF dD5Sv3N[5h_BC_)T4j:;~]Ub5?8dF|N,eβRNβ29˪leL90lJӇA:=F1O#*K*5CcU4w>x*ǫ*[UBH12VeˀSuj+u4Aj:O7] X`U'Zh:6"{ǰɅbnP~3hVu'E졦z0,":7j=KrhLQ~t5tg @GW#zQRZqEggX, >"blgšU,Kh@-/ s 5s+=/ܑEWsqϟNv}#ݸ^N6]&~j;T|f+e9b<dDa"Rdq';l2\;wZX{\GA}3y?_({)E\%'Ε~`%Τ;E;vu͚@ՄIN=KOI 6OVĺۻU eQA!؃CBT(j.0'`;Eď+޽>҅q "WCՅj fk;U6ofwTt E#|b X"9+^DUp,`Ru ;MO@rGiYdk}#{HNG Q&1l/ Ta(JIP _4'r܏s[0`2"#3cB7zbJ&;a !"2atjѭpZG ET߅ ii X¡̻jB ~gDeţ `/Qr2.jFQأ1<Ӕ@Y|"7uT(eKCF^1K Ăۥ2E59Est3 PD4F:RR"я$i )_ vOB>"R}st|X=TM`r  Fh kgjeGd IM}\pԄ7T>SNk {YO~l" 7h` ݍ4U&i5rtS#'#I޷;m`lÜȨw68K"F̧yKt|.sf7;Olz8`tF!Yt=!ů1kߊnQc܀\XFw}wq'앃ףy\DӍTChhSf' 箦$7ٖjUp[ Wo7$u":WvDح v~? Ub}UҤ$$#j_4T.qGt1xXIR*f"P 4yzL9h:oPSzzJ|(COLvHpwJ$Na4@^첢ɚqo4`@'9G"NܻuHh,n;hz&J#7'Gl2Z'hH>dm8د/g־i[bpIPQbhh,S'`[6O+78R!Hw濙gPO>4$) Ku;\]-F[BBw0ozr܎ryW8 @62EU̇ÒAlԏ}_d3Ie%&Sd}գĢ,[!eOA$Q]ָX]+b~p_qJڥMg:j;J.X0>u=68GdOC>/ъuz,Tz4OA,+)tQ<[E"lll+eި{mW+z t(ZP;NSrZ[*}ԼyJ@1Y ΄pI>Zc\ߵ>ȥ!6{,V^zYA۸TrFGf8+D*:=O %n|!,%lzl@*״ɩ57l&a է|;~_nQRO3wa,]xtx)2f[xmu0.Za^3Hl)}#NktM޹]NAOA*ǽx³v5v]G}"> ^Vjd߷kd>5X+;!n*'%ϲ9AcQbO/x&nXgVڭ_QʤWI&n]~hvّiBXz4nWYst ?#Mhzqt8nAV"AP9` ]ԹA ¦YPuk+"ʌ#F1M64ua ᷼0 +EE3Xa ;d *s?7x QF[&!wv>Ws۪L֬=Քb Ȧ1FfLj\+oO GLL@"H7`":*O(ϖ_W`$ K[VVTUh!muCkrX[^5J%T9VvX-^=A#޲D NRTuE9ǨkEOЉ:=66~m4., O ySq_D<ۅsx^MZbQ$8766dw]&"14zcZ!v}aV+8z-puh0@CDu&'у9Y xLCcƬ&s p/ s>- MFb Hh*5s z}LAr{sK:#[TQRkܖѫ.Qdr&E=iZPzbeF21VV^K׵-c E [I08VH.6%Z hHfN/=>}듐ǵeQ(0{$PPTUfNqyl.:yYȭ0F4iI#X&Ib:VDCs Ύtaw:;[>VΪXɦ+WZhOc5fj(/;t;G0yrs V{UC/x+8*/7M\ok>u-dc 3~Q_kBK V01-O}z@aLH-fTܜlXO

<5۾ymM權z2ZSK@[) )L.,nqUItv a""#f LMEtX4M^ǵZeCS*Pd†(E~]ev^Vj5Ou-{_«)Z(fE o[#Hj]f47EC&5$a=x07m!"JmRFքt"og;&0]3՗AJOI=skV+6,~GcVClGB@ݙ_ F6V&Ro 2kJLU^craԗ7ށ?`rLXői]RD5Pä\F4P͆Xvym=7ݏԔwyv&kWڀ%1Bُ1Vk6k ڈy[ylf2G,M`Ҋie78{rON_OU$'KFn_P_ 'F֘*PSjl)jF,[Bd>1DJK(Al$m^|5~򍌎%E?7 Ԟ` 5ѬQpd !;|qD;HGC'AtۈԆx@Z[l"v _='^9=^xދ>p3^|\*LjI}|~tfQ8ov#75Ɩyn<#UwBcᩄ*uhX6'4< ňHa;vspXUw2F 1{{}`:ތ^ v ?i&n.IJLcbm:2 ;LDjz pD0ybh^᱀TN|Lt~gMDk )],;@qwj1 &Y'vS\qi|B5=9fIc2AU66J7<~]Cb;aO6Fӡhyl*H6QeV'D+#ڕ26ã(/hˮXlk =u3S+ǪdRUjt"D0TyɈ(jЩ͟>83bj)aY0 0 000000D}0 ] +'VغW*/-DuC_tV1PvU6*o9"G}v%1"+;;M(-TO%)ȲHP&W=<99M(g@Fۗ\k4ZJn._}ʁ=fװ]=I_>v7I#tuyԠ</+óT!euhZ-֠NX Ykɔ9н7j&S2ZR#%3BZ;>NZyl蓈JJ Q=EOCJIyP hPe;N8$F@ǷP4ʲX9g0V\GZX`8+yʏ!jɑK+3KggJ`y if&` l ,GMa D;tXv|˧ul7yS> )/ oŗhSzK7[KI-a" ּHqM]b:͒c:{V̅i_Y)PTO_R{U T\T/ ;SP/TzaEpU|%P`bD\L͆ݨד#kt";[WCM!uppVΎ3[EWN"Mb *`J:!/0'w?m$%̉c Y' 0̦6hrlʚJဍ%Ѿ7{` ױG󡓩! Qg+B۽~yjc+@'DDZQ#aa}5A)") [_-Wu}eM1+M'T^~; [r5"PkG7X .;( <c@b{58cd-9>-e*8u飼 =H\p2ŸsS 2Bק!L>m4ԓHD7%ky[aBΌݣ76b{q|+ dtTb3kgs;3* wo2:p/B-Მx]w:6xqT7qY|^cR,f3f3of7T`g {Tz[а{  7>,w:uq_3jC< O_[) 'Nku1(D.!2{R ,fd w,C~M}x=_* JW  MK ,qIGx bdSةC#O=h¤FFOU&<THHs)K@nqk M>M˗P^El472A|vpW!uX\#@1sZ?Mj71^ q\Sr$r0 zz-`n>9'bx!Fc-aO8-2YVn$meȶɋV0L԰.Z%r9/6yC)*Ll5/77.;f\1qXJl$d5hV3N m(B6½n.8}gBo\A&e;Pb =r/8A%\723.p9+o;JFxŚU$,oŊ]c(-}\:~Gx=Ak/b}$[ !Z#x]+23-a e'ԝb 7)ϵ70AXBAVql{Y*z34M8|Tɶ5#5@苈쐽5dUk$8/"a:xң.Z'ٴDK5Og9݅L1w&l%8fQ $:ߺOsQNqNN{Z38f&1n n 2l LNȕ]RsQ g1uP^9bY)2܃.grc`V0ĪI`WR.22SzYj{kgn2Bzj_HP~DdP%(ZtVa"-xJZIa^Pg&â'Mo35cN8FMW6;ex'*_L{Cwⶏ:4*u1GN9CDɏޕ?lw5SId(<$ыROZCGh%.˯- Ym7U^ %Fd&;p%Sǒ9!q<<ӏ387"I1B7!aCnOjЍa e4>liNdϳaE@K $1:wOBW) 2wۭQ.7] o÷pTY25_$%LCg6Ҏ1ʁqxnBr PrN៓K,_u=Q R'T(&5G"Zb7c>|<] Im׃ĵs9ƘVwE#ul 4+"Tf4lV w w*{h̉,)Csc6zp KyZ6ZJ>5f8$)ղ f0]\` G7ƈH V`K7>tK#nOP-E'X r^BJu; 6gkdhxfZeHs;^RG:V1.40^Jc'塮7^a1cnM^^nRc#KٓN6;Φ%To2\-l:MEieam{tKXz.ҋ-p]߈u[0Ƶ5tub0O'pݢ2Y6L*?]mGۨra6W0Lzy$c{jyQUe ;bHc7?S1p0Q* ӯ?NYך5M cql?CR@[/r@koJLMtO141CxG/* ,釯?i曆)2q8925>汪'6-ܓsFX6j*pw|M4]fQW\;1~V5-q,$5tHb^ț1.)0ߕ!^zY&!Tuso\|6:*O>i\0$dߙ@ߢ{n=Gxya*VA>dD.Crqº@Xqu6Ub:دFœhއU:cb; K#¾b S x(-9>Xy9!6'1MPG=24p< 6t9OIuHpX4 htXו%F sLa/F)_s}5qZ"{IFM6P B#۠m,6!im1?uiHD=,"PJ> N?l u(09z1Ϥ{:8L8&y\S+HTs% ؞0.ZUF8<_' fLm&II0˫wKSbCl WËq=~$:nP᥊F|q!xٺ(ZХ=Er `ϥN_s/m%2,Kz {-0cJEؖφa"$N ٠*z½xox}Ӌu4`bZww^rOr !9`9#RtSDp]3nzZZ+&V 4aj-pz?.u%\ʇ' %[y l0C=I0 &'*֒C/7Im[]3z]{Y5SRG`p)BrzN4ZKK֜I`.Bu[vW|>A?՟ʮ{|f?3g3f? .Ą!thyl;A:nq֨Rk1iՔw)G]9aA%X9EI%+zƔ20/E@X-@#]U_?>cTPP(|Sn'-1S 53)k6-؆AwXf t]fȖr޴q3w# len3 EުdkJ4}KYݯjT m1ԋ-RIM[Ʋ8gwڞ0لeykXZŧXD)F[Ҽ4 qU. _a1i*K"ELc6tjC-MlL }bDt%3xNnpD!gS E"ԯ'M%^w,tJŔz[W/ݎW{[-vM[XUez4J`oמ0,/8&gՒHacoQGX*L]>n{!ۧՃjV/qڂ./x Cz')ud<$XMnգГp\e3ߖ:h2Mt+}Yn.aKunӥA~bj7'ow,kr| Y|pC^l4c![@_?UȖ^ Q{Rp$2RM+?#$iKlfx,5RѨ!\ ~{;N=⅕{t[G.tw nP{ PPu .4h 0(, 9J&[c|L?-+%w_/gg".`zX{ְG׻ q (Zt0S6hho=Ϳym`j4"xӍڋl:>&C_GnK#(j{;$u 7`\( ymrX; ++pZ9 { l!-m oopuG<rTvQAgw~SfS{eHb7 :^`s6" 3r4(e_ba=1'WzLηvxjTqx !#VPd#"~ߴo+hoG] ;7UT~a~RWu% Jf6D&APmǷCDE.WULf:nZTRd_iW~z(iax{tX9 ;0s~(R?I'Rp}Hd'0a&ӷ{IʍܓԿ]^&%jc Wf E1!]|(jYNA}%B^4[F8OLmZVʔ9~u-̏p $K"^}h[;]֌L0 ͱDD&OlN=;Xɉ?W;,x0cħ vxHBuUh3>'<ˍ/czi8 %*!;c [}Fh!Ё;~AgIہc!I 9Cpfd"bl:~jYb %M&rbxلyT/_z~g8aas^__*[k >InB- u]act,q5 S+:YL^ѐ]xKۭ꫁&q[*h j"[ asC<à>EIM pctڵ`hK~fA'/_W}U*_}0O/SAˋEjiy"dmsiϗ動VY \|(\ h VA8MP>l0<>'mspwљ͙0 ٝ:]4 gD(h5oc3zҦ}k@'1;TW?Ѹ!7OLpHEp3owi'%Ssʪz1f#0v11uqD|P#'ʰ5!Xl~7i8+R t>B / Lif¡;꠬gyA+Q ϒ=;wU/@rB2 R#/ paZ[.m!/Έmay`08w !.|}^wx~ncZ( a .=BF56ڷq7faS}}7f8,.ZeSLJW'Fc=hD" Ѡ^yWr^V. 0h&ŸҋFX6j} )&G`#X>@X+fF62.+Qa};A 1 z7ʘx9P bz3đ(I/bEmgj"}t1jK| xD~lXWbq28,(oahnH+hI8Pont Yzf\X%tVf NE;Rv:\L<7r xw:GuR$EN,^HmVC\5fQME5Ez=<!y ?RԎꗓ+% I1E&Y6>##DҭKc\K/8l!&(=a;(f@ MdkFSrsn)g#U>wo ɍ5|%WC/~^M C{ȎXSo7A N˙#tOD(eLQBH!1"zc"  I= Ypst 3ӜuO4IX@:[pZ\m@[%N*/\U;HE^U&k Sh :یqWѢ/8WXF\0nV!Hn!5z\Nbv add cC>Ơ ehZ~O+'Xpo90_ZYYaw<[rԽ .^}}6Y7rcT C@e<󣇰w~͝Y`l ׷-}#5s~ VΏ'C8?z Gda=y󣯷n~@͏ȶу6?z Gc K! h,EA6dr!l hPgŖ:gillvth“٫-L ۯqN^Gg^n&K,ѠrspZ̀DbZf0?,7XnφwH&/xq M·nx] VW'8ł>? `‚?f.XusĐն)H=q=_7( cߒ63#!g@*[щSgd!0S]b?iJ|bϦcT?g;QYQXxbCI4}s"H"r|sԇN0=Ǟ _ʆB;ZaN@1gw~!^*O_U:NNmK&*5?*sQ 6%0\Z"ӐqW`X*f'ԣaȍXG"2JE`5w,sU+sVaNjoqG .[^2t7( 41ػH0!ǒڑ p@I9ϋ&=u)nG tdAڼ.{O{nGds#˗*^<mނ#vc'IOq ffz+[,~V9})Jڶ =4bf1Ir?b J֑rf+p}fog0