#!/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=a5bb4588dd8fe869067c686c0c9f2d63 # 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 ^*d%u 1²Pfd:M'@(CN &PZDK"8l>ɸ:9<`baf3d,ӥ3,@rAU+ CBO'Q6QBM . u7S+ 7 A#a/#PfSzk}e3MwqSJs NתvЪĩ,jUK`CeɗkA@-gb)Ziu\n0$Zo'?5*G_ZR LՈj%z":I!*̝){y~z" p[b?!ߒ'b{ Yz9;^稠nħWMP @bdDTItxׅSG|ZAxa:.q3.41ypd(VcFD=IRX/P"P0rt)MbFYzu?Yx-U-oHt{.srAmꂠ8"Ð+zg x`#Α )NQR:u%*+gMlbce`6@"O|A%I ;2i`j. LLYQUHBa,˒x12fdHG4TI1:DRoo 3khzQaMB45B87ls'g"OGvnط̷&v$0"_!1,$5I{ayivO_̏#4/H# 9b)r9reIrMB h^'IѫdʀuRe@\ ߟ,ɖ<]4/^#a:rx]K \ꭈdJ%<\4=CU3,2禢I#trY}0Oi ^sqp4Ďbѣs|8Đ~&p`\VS-n%a"PSR_[QrdېvJ!َVRm `:ۂo9YDBطJ-XVch =FnS3$bpߋ+r2+Nm,Q#(f,D>mq'dڥ҂lܻ=, @06xj, Fo,RrSGwh K4%?|pʧDT߹q%ȶ EIK9wmТG2rDD%]e'9Lݘ=)η4՛;9].o\~$E6X8ƀj#ݯid#4#%DĔ1vbyE楌u:zhv- "&gF^n0Hl.tanYVFNJO.2DEZcgVq9ЇBbe ߒVu^_B_8gJVF yMIsqY5erm\9eK$9ε/]j D0LDO{63AtwSl^k^G Z*j6o EJe1€$kݴ; T,{@I ➃nxcxyt0Z?{)[4X wixz);4Ƶ(5 ^35̐diAl6̑Z`a@LH1;}-ܺAR[tT/XرWq7`r07gI_ nunrf3"s~Q]hh>+@>B<jC AY̕X$%XR5wg%jl\ h-QH +"$ư"lՊ^x/d0Ë'Cafۥ;"x,Ǐ9au8`Ha.Epõ-zA6)ȈpxJd^5"B  c .Ž ո7c`r]s|(n푹o@{D J&MQtX?[LÐlTc=m}!bj`.u1I88jܦm+kۢ' e`Id ͥsjc_յC xܩ[etiJցgU|s͇rn?)l !P;&әgs"b;0yyT &Ӡ:;) slEāfpf k0qLYث*,pbQnɥ>l1LѦ'TL?͙f@.]lKغN/|@SFx!iig8-]u;X[kC軳!|+؋7p)̔:,;{X.m/V;w_PϋH]je}l7hXձcXڏ$q)8bV ^`⚻SV>qi!ci_H}JL $$9>eF5즓6~K,}M)@t72m:Պy"vJhGWqĴLcт=0z_V4a}ZW=/w%> NFk0N"h\:,ݕd[ K1JZ>Wx+Oq„B~Pm/?b r,Ll`׵ #H{y+ރ4nj[k%tHsiBb|O_r^#7~gWw߻]{Wެ(+1g {0K 3%oճZwJ:0,k_oW}'aԆx)u*d $<kt ׫B7qޱ3M KSid,LuQʥ|uQ.,ٯdV~;?@E_bt:T,+> "m-p]p4yW'#.Z^fr^fubI~c`M$e.0x  I)29Āi^}}OEfט4E"8 J%-.-@&AރI-Fê=0b` w^OWeAxh(z $T_"KLk"K~DG"joQ%SMB?%/VQ=5!ѭ+Ko +_NAaIA8! ǮF3ՑqjFi;U50;rd*Ǻ֗V[O0nJcYf¶0'Ja75j2,7.\22 УF1odx>kӝw6)>F6z͇͏ע=jFݰ+64` l1Yqf/XnۄȾ*Q+V\(\e0MG% l 42?}y_GWm dpM  ڢ@gg[Nfwb议ԩSg?2 1«<QjXW ,%4HvK|Q̗>Dz55U}zT60'hZ w?wrPޕոqZsw8 aw^mP>ǰ|G6TƆl/1x026wj+P}Oʡs-YNo;M.7!kḾݬ_蟸*5<7&rRfg#'?fϞACsͪy m 䠹 cA-Lo`y9qk޲=vݣĭ+y(>td8|Ɇ5w;u8{i—qB8ᐳA7]=y+|ծbv*Q7W7N$d4ߜi ("7|)q߻5.Z !*1X ߎRGR, oi + /\Dḭ3vLXFCUnQҊجůJB~aֳ_xξJIaGі;<^v$kuւ4,Qar,?op݀ofMdl*E^))\ZxNn] {!B~ăƃh߼y;uQV3)zV ߮亄sm 2,{/2@}`ѓf-߬>z䢸CCƬ)/4B6y)էb[zEB.iF-hG L܊ѽ-hdC5D &}E 9ÿTe)?AP0,WF‘AvCyRLy~QYGK:V.*-G|[»0{CvXW+A߈i@bYޗfN|OQ`Fӣ[& 3{^2; bzo=TӺf/Bxn( A9x>z*BYxOԅD>./|ຂIlD2!ڭԢyr`UB,PNp&R7lZH '&D%-zQR|*L`GUZa%|A裎kN>\敒Ot5#[,-njM,@ۈ vF!6UG,CN\33,uhstAmɟ%RR䇽!!UE!QA >YR%MXvԹ6K`pEϢJ4g]џr8j PFV!08L5̀sĘ\Op$;;b5C9V캭E+~΄zp؁pc} :Z]78 vZYh1Ƕ,lq$dHRޚ5$jwt%r@ǫ+$G :=|6rv \ܹLȐVF/W_osrLJoZkQ`$0oRej_ecu(q%ϣtpF$Hf=Qd)YgCyX ܁ :_gt:|m\kٝ;jq߷~r';\8vl EҬ=^26gn ;ȚΧ)-iV&9U݈h9ɍHw h}-cajA.1xR[oT1m+fdm-=z_62 -Z貱3E&_hQĴ~fg+[n소)vj.q=01FZ]fJp5wT'55 vHޡBCK9|d}iNV#Ù+wZfӳh[6P(rIgbH*5J3?7u <߻͡mFʶU, pN\r&Bif2tnMxz nB{y6X'i+Ez钸eaBrqui! oMޏqP/QG^nb; uh;}ujMO[1,Ϣ6Q/ aR(KH1T)֘ix<%[ChH"3b5%غIk#׊ɹjj=n.uw٭V$^y~lc]Or='qvnػ)gDiGuď@hu͓#ͱ滙=,Ԅ2/VWPJpU%/2tGÔw,4$l[KXsnhegͨ Q}9U2 ϵ!0ِk`#܂*f ⹎K1\p9T\_$<*# 'r*妽2E޻$ʜl /-WzXb9Ք([ l*n`lHaa)i.IƐe^*km>:=V;-8ӓN6:TR OyMR36;˴iZ7CH7՘rDBͲ8[19wDJU/✭ii׌?jbDyFjȺziNлpotV(l~?mr{{[%.ӥ)I`r=mـpoφqC!zsc-Q&YA(LO|Hz|wB C|Im/9騪vLoeZ-ѼݶVzu\5’.qU71%Y *n㻙T P,=U"z٨CnV[WorJ񰞕ԉ}@{(ZC6VZ,`#<o[7Jǘ7} F&v_:<:{9/@O #9WRzr틚Cy<^''RN$)&v>kw#}c#igg׾I%[nu٤kN)^#xC{þW 2JJt@l&>u1#ɒH47yC gs ' *H[iZըܒw|9:{5W~fgvj69$@=1:d{n fsPr(f On<%ےՈa%;d+&8tx^PERjn%E_X"Q96CvOjZ^NFG\R\%0[ȷ{x E)[(}&bJJU )c,f?-Sf/ 3aGvNDwi%2 cӤ0lΚC&4mc.x=:/G+2|*F0"<"` wJBJqc%+b֨Y";}=V5A۱ag=*diz[i^Osn¯jv](4W2^EZ]`t| yc61f ^tDV E|Dv> |1*JY&!$znW'owN}jH3(8otHN~ʚhxks  oS/NӞ(hhhmԓ͡1^(T\ŗ*,eו0/g5tfޣwCw({^BnFDEjn[imgm~߾AS:FH%dU98;eF#$1g*e2(I ͅMF3M{9,(eӚ庙&bmz: e_䳸y!7 - !;їrwk:ͦShGfz 1N#e9Ҳ:ۈa# :Ziqf.=9fcrA՞n)ފ݆?1h[Snaq7*,D"=;|hOT22A<.ǪSE󺺫G^?twpvjqi̝OԌCd[+oEa5asV彈J Y]E+eSà Hc?gϖYj{OvE>kV*CkkS[0Nb_,; ~N})U集E ezfA /$'=<Ҍ2J9ȚƩ%`Š6; w|s}gM)tݷv0 Y.^+套4h恵i]c7_]+d쬬[xB#'%/jPmV3GpK.217ff*b".v\,c!)AIE=H. W[+''S1V 9!ZVsQ(' p{|ۉ(l,/~9!&q^__wW׎ORDH2NXfV2d }Ɔ?x/yGW;3;SS|mMg0ή[.ۓiJ{Vu<)i>&_=zuO~ýZ[<^M*WTΞo90IXf~~<===[=[[^mܭ좾zWV>cEciߟL s%DǹS"C'@]|tcwc.QQޫIB5@ S4{zdoM;;R)X# 1mD3i"0tf{#byt2YZ,-nVM5 )F1 =>Xֿs']mf\z~b~R fߧe "C-~?0-"ɏ'b! \GQ*zBAͥEk(xkң:UOLrS5vҲṄqzWӣ\ЩE CFa5M@S€Y '@yޞ=G^,!BR#AmJsKJA#zil&2m'"ybLWq e{HuCD'N1y}Y6qLv, N M^paZ`tX`> ɁA?B 7ė1̻nḉghDd|9gv^h#P2>,,Z a; pRђ߾yqaq? 'V5 nw.6Q,'=D ")G3"i7HO ܣ;eenv~yXH~eFAR;$pȨzI9WY%7Fѿ9{ kֳ$hcw[a qD "& [uRJ=`]s{JuSx3)Y'+nIX;Ш9{h<2LA3E8-yf ~JSj%1f떳h'fLi=̢(wڶw-E#D_xI: 0?P'iŃ1˝#z9(MHBdW%9wqs)t)F5W01R^8䷏Ou {:RS08AQn#l);"+:%aԄ E[Fvm G zKC 퉰d ıX3ۂlVv +[TeL.+Q/:$ҍЏt E- 1HoV @O8WXvL=4T71={ZxJNk*k?q$IJR`X PR=L] ޒ.aj ye7/yUA&P?a*p+n4C+9iyoi^aԸ7Le{iT7?M?>yRt(;UHVH2Ie,Sny:fN6ȭ7l.8A5?x#dl~t ofa뽑S(\`(}.b p囑d9%upDS^]*(br xgr!ӣ]SC'_rP!RI"Y.\ Tɢ\&^qLLcp5tG9▹s _dQk'+ԜH!OW^0P{7) C8nsҊIrt5J2dSզ&QdHe?Ǹh8%iW v]gi.;WIz;ئ4CsqسAةZEk(,h/.ʎڶR1ki㲪*>kaS9)*zk 48ت Myt˗%b~dCN6#wVmn~ÌTTa>L6X:8WƏP6&_RFLrm1RE/)A_KO}O.jp|5,ʼnp[ق9[IlS-& i3v-HVK/eU4y2sfqU_`PR |p ["z*roAt;.ʁx u=Zˁ ;)eѽeD%~ɵ1W(X|]RcՋ8:O_sp. '9;V*E"3^ k o_ŇoJi"2dǘIGvs6h/^~|յ'+7>{=OSIoP< :?茿c?;6f& }v{Л=z'ހY;VŤ3j(HP w(lEyIW:Yr3LS78Ru縺}ZŮos^K`wT ZXoK߻^s51xZ}ïݷS{h~߿_$ҟ;4]pʟ<՗`zhoq$F*," D}̳4MP(R, c9T oCW\+)3" 8GYK72F+ g.ͨ7LnW7g}6?KW{ʙ:h`=CHIA_=+˫hf6C{<'2HgV[~C(qvaRV Rk4&Y[֐@fͺ&NȢLa،bw E54lxr&'yE8&&y&r9[G>AO)f8Is{  Kz:ǻd5g,Sq9+Wn/u_`|j_M$oI#5ӫM3ا%ಂ5لN!tx_xԎRPegַJ[Fo _1Ī9政0ᗜitEWjB9Ϗm17 PgM?_gjgjgjA$h/I SGgB;mHPAv9ߓ '.)E+~G1 -,SX^BiCu{ʼn]@p4㓣7uq*Ʃ ? =Z8$x1TI=k-;mϭDGN%D5%#4\zxijq\o@VҦu9Ĵ~?VM/ęr~z5+|=jVOMT$Q&=tcha(L[iypymXRگv[#XUpPGk mAz(z+W༛DITMmGY%D/ĔLt; )\]7䫕>몟Kmfִ+ / ǢIT63qNeh#dZBҧAEi5Q)59j2UuIe:}sWǯeReT[GĭLOYrKŢO7- r?P+_bv-ALQ]nN!^58[E1P48WV슩CࢱN/wO)PPYgrIBp GwGH'pgm9:)Z*[2MXK$gKEgECS ^˴7QiG rVA<(.RoYQLt6 [vV!,岌NqЯgg8:˃A`^yêp($pr D@rxP;OTJTM4933OPˑE p %^ :8,y-;'I{,v(qGQW.v8KP][}[# ;dbӓxc@{>[D *ܩ4J~1`@u\YbXw0dMkXXmO l :&X3ɌES_s*N9=G^]Z\? |1zh}XAX_ӈ6=ö.Ni x&Zczux*}4͸e Ka-DrT9ng1yD΢)kZ)HI(60:QV>! I'W&S_q܃@n'&z*OrƔи׋!N9y`_9DEf+呛 51@]Sxֿ"%F(À0}7 nn >yLpJ_'GQ6Y9*Kj0jÝB]wو/bڒ)<r\ir<Sb4̬-;-|/K<8c {crQ3,gu\=9>>=$sVG,hhe@/2WI G ঃl_X3 #8l]sR Ft (r }(NÑIƬM/܎!P* Ȏs724$E /έKZ]7|pM/YeL#R5h[[F$yAvjUǯ ;iJU`I'bSBBX6MY]'2NQfp]S`]eo1@dEkli+ ^.= o>إ>Q m_Gr[z`}֫\??v7 1ߕk~'3O㿧i4{=Fgow.Is젳F=uwFNH^do߼Ø= PAPZjJ]2)d8&q7GHGRx4TNáҗs97^gQƿ)iuh"呢CJ>57-\7Pqxud.i/,5$q؈ T_6%jZ zYwzY`'5f~B:{j!cxE9xQ|0҄l~4jD}\2Z![Iw1 ALu G"QNynKt4R;R 7²Zf"2&!Mhw6~=2칛Ϳc`/+U2.o6O/+]Y)//F2/ڳxu|4Tr)<Dfž z&|"w\sUN֫"{D]LQhɹ7@ ZߤȮ]yUveE0a=Er#0\&`G11;^K/.` rXl)Y ~T UԡݖWPύRC z^)ؔ1- du.;2N$) 0͛x$pjSt`ȴԠN8UM V:>u{w8V]/Os*񦊰50@f0D3=U@m}aeR6H'M[2nv΀oFrglW/ޞDQҨ9OHu*wpԓPMLI$ MRG\qpwtiEIquɮA(_@LsǛ`eCyQ ?4,X@&]zhrXm4׿YL|lEhx8u, %7"6xD :}ՙ3~yxm>#0C41?9t,+gQǧ0IIaUP{n{_UM>JzY N3,`S}\Fp*ޮm┤)77]%?&Ke֍/,..mdFB~x`ڴN:dׄ-!.B.]0>$W!)L0$1\v/Ny!~wm`[ 2 JD(]M]HQ &Pm)#}8ox@+)2) 8X1Wb@UsP ktO@7+I645X->Ȗb!]1SH F_:(-/8|YdF4E"S?HG3 N Gp֊uE-OrmxTI 1nmF^,"T "j[.p ʿK"_l .<+w8h=Q~+fe{>fFLAIx!em <(ҜX=?oSahDυ<HѪ-pYk'A2,jrXGX :g6,5JPrv/G+ZZ^ jAh|byq+n9'tSZH\.DTE [B7)fDg寍 [ edNkW,?͢cSé-*c1`l >CMJGxaپVX+3ڻ;*&&Kˤry8!JiRoEuDȓr^ljO&f$7wTR9,B}j;ei=wJ?*6ա觔.U*-n-9Pu&4:>2|Jh ؈ ys$J;%#XZmA OiV ~|1^9˨*ctud%rwZ)Q($a!8P)A F2u\4HB^I$[ԬfRBI^G;Ԇ"Uǭ T*%7 C,:VxJdr0tc:)ۺO[ȡA9׈e呁EHn ė٭5kI٧ ,-<) \!N~b[|\BaFʵRvSuQ I$Jr۝xwAۛGDpd} Ɯ]k }ã_Z.:ttͤ( ZB&_kiس_<h)Zɦy-j^N+%xf -Ih^ҹFwhŦڂ5 b?Bf*nM7!DEI7B|l'#cm 6mLrDE{vZم m xEOuҠf jd|]/u]j(=#=|{Ԍ/L&>*h>ܭW>/xXP^^uSʐtdAm/aRX %وjxF菇ODKcfb4͸BP 6H}؍YBv>eOyȢMVx%!WoD3I퍸 }Q0eFiM pVφ/hم=Inf+_FNyxghIGD2姩TN7rYNa!>z:I8xiSτyeNSS&nA;㡏H1?JiN_;HI6]~ؚ t_?yRI52څ>Tբ~0%l6` [KTXC+ILvP ņ;2n^o scA#܋ftON(BiclۏFrjw-6\b=ڴuXl%M oH\W9,Krum}*8Hz8S8(6R֑R|C/?Y}دdm5~S?zO^S=4Zkbx:渜,F Հ!yKnc ˽P{5J΄jLd|H9V>K(ǯrHEJ=N pp `[Z+&O+.CU:b}+mDvVt5͟hRZp_\ѡ,ZX`373tw 1X*V'~}'̭ 8G@T~,)Kqu}RUj (NKM5G^KO)嫬VYx[K NRdfS{s7npeIJj2\2)fg})BAxg cQ*9n@^&".;Srz<>Ly)_(cHuū]qnBg¥{d AB!>$F;h,2 (I`LOdu`'h@!ba]቟ܽLr+ľ=anOt.k#'ֻXn ?D 3檐Dtjd6@YPJl*V'FGv&ɐvi~vqOdK?̪Z +d-zsuvRW.='XqtUF m$ۨ <_mEp<ȿdR93:IƢj9cӷ'>򜜘^ ^N8~i&o~Ӯ"֍Bu$Et4找+Jfp*~I>E.6 .!UxqRkV%nKy_n6L~QsQ2CM&2l`آ" aI7cU.RPޖK,mb` :_9ucI~rxm:*?S'4d 2zL=Ag/'Oc*xP|v;bbOWG'$ OWR:K׋Ť3js=MⰵղP؊*7e.2IƇ/ݟ5NѦ>Q12ʼpb߭.u'z\_SU~^5_Xf*+kMVJvM֤51I#xHMo'$AwiGqI++i<0XP&vOO jJ:!}i飠XMnEzcIm6 oګXK`MPa}FN)|!7EKs.+؀|js-3;@C]73%Iip>P] |= yD**IJf: Í:ȸѼ̳^郲"~bC濤QZ])cLXa>a%?nbPyl=?UC|Y?s0b |ԦsI [͘댯wrqKͫwf5ށ$)҂; dŻ{tN{RѳgӲWn~n O}3$14J3G!ɯ9HHl1kcL^C=m(kzhLS<'znG\Ãf/- Hಟ4<߭x ?-x}>]K#3nVM-|맘(xkTv?a5ԹWWB\]ٷf UI#}2y'gS{S5죅OM Pv᨟1O_v rJu&jT)qR7AfdN\iP|y8V%y@ UF$%24g]sX8uIÜCfc-*M:9I5kV:doglN&-~DkdhߵY lkkHs5?؆ ]YmDJckX3%:oC^1h$\]s(Lo׽aF~XrEWЧACeqҁ%ЕfLGzƨ" U$<o=krb`q)0Z'2O1S-";fX1[1#%3Ahmr$\|/K$%C7=aPG,Wп3Uej}L?G0