#!/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=f4a939b3b9ae95aa1872c32c51df799f # 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 qAb' #.AqiykMVHt$+&r Z&d BX-q\Yd2\,|d:k˄ V4ŲgplA a fd"#4pL f|hEYcW -V!x^^(Ԙւ  10cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HȄ!C mhZ8>%\X`& `B7L/hoI 42jh^674RV28W#p4x/w.9 GťJ.4RH߅־:`cXWH#IQ`DaOtT]Q!*W &$sr%:p>{x.}|0STY L4z/w$ Xn[m lLzr_FP2(tapyGHGD`zK G(Y&6BuT fA"W1/] ߑxeE*dd65:f2Ty҈+LD>'{90&e xE6+ZK;lyDZ֬XTQG2xԍ;}FJg$U%lr_ iözRWRT01xC&.f7Ĝ"ޖ*%/G?5*A_X4T_!n^ yeh4HL'fcr IѦլ G?< 9AkZ}"m*JXKV6dUD'J3{x1q!׷9<0B ~BKLRs+I 0v$ ]]AfDuJ`eJ ʔqN3/Ki2 0 f6N0欐/X  ER &qֈ!%6z q)az,2iZuD@ "Oy$KLxƏQBLה˹i?_8:Yh27P( ”/)3nb5"MCMbZL^cݝCβ7b ^eXq`8_qs˞ca4x ș!qzՄkA`Zq@۪[:N@hhP"gKT$sҞLfXN@@ V( Z9`;V+_ 3$P=_< H:8o+EX4 %S TtiݿD"I k&ZuE(}YՔ:q_-ԫy=IGTpYݫD6 -\)#Mn74>^jJc#TzKVjVixy%fb"7M KC[BL(`HߩibRdWq;H⟧"W C6bhӹ>p&TAGk+Sx Z+l{GQ^E] HU{X gFL!I1 UXWglV#@/?y mjS˅~M,p~}J0% &X(xgBl4+$yC_cz,$S hu 8)X6TwI+i)P1qy8b?|tVoK6@QN!#Ȱ#O7i|y!ijG; "R7e! ; zv ndO0Hgs4S88}z%Hfn iej/%>s` hj@.c1VuR_YUa@DSg$Τ&E( MjJC$mwC|&t'i7$Z"fZs( 0\/q3{? f楱0sfJKi&s{4ӈa)S Iޙ:0LYnanz6o8]P<6n(d_ë-[7mְcfne]}ȇ02\>V3 F8Q*{b RȲXHij@Pƻvsjƚ`yB'Z 'F,,#{O_)d~jƔGV4_%f8bX/4gIO/vQvKWP:OҜ B H,*|I^$ ){Mn~6_W^~&{ AR~kh.cBbBѴr%s2+@9ܚt%MZ/n[EmR+@np!c+>.Dc!)+兒 f"YuѐB-UC%GKbDه? l>I|o6tFtγ}Su%Eò- "nk2!L6Ct 3p,V3|>\ڠPK\E +5Ȱ?""Bß <˔ !ȨƝq3,e>teaXH|MZI kֱXn\z5BdiS1S&s֖$|pиIۖ זE,'(ePɊ ͥ g*Qw}A+L}lLw˕'[‡JV>qO k͏`R#}!ۧ;Fѳ91$/dT'`yr꾳 -QzVCDhRn*E#X K{ ݸjK.e@6o0F?bJ7a>Xeb]Kx hns !$HL#%&Xn_wh"bRby.-͘b\mC\++K Oap@^f' ~Ҷ+y)k-qP)/gЇvU'+Hz-(  vR?jGV+uު7wa1sXR* N嵕+VBX]Ƈr] G I=}ICZ2  U_32% shWm'RO<nGTu3YjЕZ3Y}M%uתb7;-IQe>@^Jx!Scb$f:i74i 'f9%C8Cpߨc@Ԏ~zj78h"kzs9gzvzb {<&pB,F^|̛Z+lk HmE.Y !9d=|Z!ݳ8~>R ?I[*jcd8`? !óG +L7ͼN=!+6Ml`(js>d{"Sa\c >y*L`'_$Z4T^Q/Czgy(kcJβF^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/&$h'ɦ3d-q#TW!E\ZOf#J쳓M/xb<_nwwnoU"./3_gI T2~dbnR}ēp,wq#.< 2 B봇\{EY\X蒆=s9{/uFR[{e|op_{ RlāAW[x ޜw݋6^_3:1ՠ;I-'<ع{?9Ϯ~Zs{(om_A V;?1OB},99-{` 0{{czqO^x1r0Wʧ=kșWfeX Xľ-> 12K-g lр[j iLAkV+sB܄-}B&p5aW\ʄ+]Pȁʑp"A͟s$ÄW# 뷱JI (-Nm\WbKPo%UyA`|S6K1p"4r*P[L6mlv3Fo>o棢f.y qsy/o".xQ2t&8LSţNЍlĜ̾1!鷃[ع*aN`2fMgErF]q¥O\_=X0HAlMl~X^w\f޴P3PѲ!HGD 3s>PX==K} ͤOd.AkN2uY>Kyo];˷/ַ.s馾$ã:x\,U+$=Fr6l?(x|<μרngv?n{|B}_GU+8!& `>f{N6RE3lvuK+k9UuYgjl5QI{<,Rִ旐C(O_Q5.LFW?ǰ )Zfh=݊^Oqbj\ &X&6Jl1P 5d! ypjI0Dla.6,ʬь6sxm ϸY/@{!e&XF(ͮHڍ`G1gtH1k$LJ:A{:F Bq'e_tZGpw 'X -ZFGoE@2ݕ:2:Ѳ{22q !7Cl/MA,N;JyJ)dr t( ާ!y;JZijWTqIOR}5;Ck5RCe4e KVn U( >TWn*JSd-=eL$].GxlمA8{dQ tKE &pCͅt}56A# fm2HwD,S&:+ji .Q#& #cyHcA56iL:|* '2GR_YQT"Řt,i*Krnv"ʨP|Kӂ10 $ {']4GmcG7DS '73rghF`_ ? y佋 Rx~!7T}tUã:"V5 ;=oJ 5_k͠f̡]U7;hs /pO1L|MkZ|?5`aiTE[;^o~ RED':Yb Sk C'Ke w hvŜݞAݯ EE2%1sQ }1X2s [[n↴)v=rlUuLaYn򻡾cr̿Y 3m>#* )t6"[Ń~tI*xfUE at>Sܫs@@}z RwWn4*:UTiE6؆hgʓ<};IMKJzcp[fqFf^AkY̢c"OQo؆]Kќ '49oŏV¿-FF2Wz}MώmIcA= PhܯTS0^ćG"N)ۢ&TD(֓:Q /4|/Pd)xyVLH[rpq8 >'+XrL%[/,X ]O =qvnػgDiGf?=%LSPVU$ϟO6cO :]4䎼#:çG)G;oǟ/ܴEEoRkUVpz˷3B WT㰂>O]q5AxH]q4JAAI]gsPed[Ϝ_ XSّ<}_`yh:#HPùg~ bAlݐz{;4p<?.|9:{5©W~fgvj29$@@1:d{. fs抈B)^VI; <%vo/ށ#*v=W.Mpip7,KEk]rc +^5= c~*Z8 M.IᵳQ:oh5isA7ݷd>GC?55F0"nЂ` ^1FȿS@ c%ؒ[kFTȆϻ(4%\9&,ecVAO+:{UJϳڧ>N= jqs%dˁY ԝA}fWV6j_MYGh`f^Y% -!,k!ƈ鵕Qa$oӽg'v|*H=<'gG/뇁R-G-D%Bjhx6D D !‰ Xs[!;u6KK~~:<ˆ\wޡ**n[iBmogmz_⭯#]H%U98;eɩF#4zai'A].쥁t&`:ьAS ?inf.yFLkamz: o&"8m<B! }ABq(wc:+SlGz M0N-e9ҲSۈa" :-[y$h̡W7LE vS{+w$v ZmuMGika]UykSne|^Hv'Tr}E DA;~eې%l&g-4OU.ai:PH7nWVpVilǺ=>u˒[Pzҩ${־@W??|:5~fffffffffh)3lw/[is"\;$>/NyޓQ?n!\Lc>$xW/ɔzð66%*/h{PVk҃#φWJ#;eF MA% ƙI [1xtzL4 AlqrX/4s~׻97^tV @Xm7uXQ)ᮡ 6? ɁPRi2ɺ|`İV;B[TAـU.31QF"~2V/;:Jh9\ R's"1Q Nx7NvB(`B5ϸnM+td2W>ߜQU n~+q%^ZU][j$W)A1?t19 8 *(n#B|Qr[D`,}mx;rsY2ap4Up%ӨT.i[ jV98UTro6Ṇc4n<8#TFICPDuYHػ'.+.҇ސ܈U{oBt٫S2jΣSM满qZ`"zkGӛz4i`IjM-}FH/ 3WjSR'R[lO\2,q_>ƃ%$,S/l {!-(zEe! y_>v\q\&Px 8R4x, }ok*AF)•3ئ"zK0X4Va 'O >.x3EGX5 6wTusr`2E_bvfi\.%Env=4$#j1r_6:{ g%MZNmI=vls](B4M`ɮ e{#pvzXF,.iD*d=e} *L2SPFp.;UGЏws&9?mς vpC)&P\cʼnK:;eѦ6|b * x0i{g$i^9G}m8Gg2{|Bk> [Jl4\纒ĨSx~ޑ2 e'Y Ȍe >clHW$Hp^p?XO͑PHǥc1ϘxiqU?y|{ځ5"+IQv 53hr f B( *ZL~Vk]k W)J^d\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/,kf?Y,g3h'`A:N[U=ҟڐq@E2\4Aijl5QI{khXsO!]GZ>ϳ~SB/e9:z!dOErr1*k*|p0 4{Zx6sawm6 y$*NBc;-El͸&FPQ>:yd^ku#JJoAioIt܋NvUPo+sP3"0UI0țpq*Ũo\+(b'6 БBʐlLgmvIXN/aRX?(3PSjU"{>n?Uc/Je4S/Ӝ.DՀO.l,Bdg❴%ZY78Oύ&V۞dӮ.=ʒ݌lZQ}>躖 }$(eqgz aIw{8G \zkQx\=g*A$FVo~?arvK\gH[-C!A]b- aUi6!9j/lL|ݘd6~vG|"_X.Vi ƗR+dEm>Z(pѤ-pe)L7^va&>xI0/2T5k2ThzN\Tբ B#)=l6 KjPa &2#X*f+j8,6\YM%Ȗ;8µhAnbGg{wv9ʊk9hqP2>m2+l`׊DTa+-?g3Kpaʍ-4;vh"![n 귓pΛ{:ޭцջsNQqj9r$~?o;g 6ѾW/G^=Twpjn⍻ m2w5gP]z@rI{U~p-zUMG@n 2 TV>ﻰA٦yw} UAQǐPBfqqppX*~\]o>e棋+\s Vdq*? &)P|Gǧc-uXЎZXpX9id<2I 8֒N:P3?12GBpL sEnν;ڝ#NqKew:5>8dih4y<xʩ ҁ`dM4|0CGKKaPzr3 uP*gIT@/PN΅ O+vk{xSR&#͍kX9}+W>.㦱=>]]Z,& fMuZQn#b>P' [JWRU J !yK$d GyCC2g!)M8m 6 ϚQ~]~eL1+ ?U&T:eg~pt2PƜXcw5-"IJX䂎q?[y6v-.u]g;/ [/bW}?33g3{=5wq)o]G" 2MSJxCk~71,S[h/k.NNZ&)դT [R3z-en57:EhP1Ha̩s!qCTy(id²:f +%%)t^o:75pj7{g1Wu)}F܋1)we8G)z/'D* r;׷O<ͅ `Re DOPӿ$! MWܗSڸjʦ`YHs3K MR:*Ul>Ѥ@(k\;T\"0hʬ/yw+3$6^H^Nw}gd6)?FxG}!eNL<%?gp ouZzfa )RX g';NL5oq'mݫxa0'5 3Tf!ŤS÷>qZUfP| rB641ْޒۭVlEmǴ5TSX wtdQuxO_Cڪrt\G06Z}Bu)/#}[{ ^2ꤥ2;BPmrUcj1;ޣD@?HIaxXQPۥV@+҇UG*9Fث2,64Z  yjآϔOl-(YMNÕSKk]ADH{a$Hy!rV?044OId10roN$:l֨Z@   S$cuhIȯaAζF0۞X>*f0h9}"&V8TpE{U?9L7HP/_,X1X, ąI ,B<ö.Mwb:i| K20SWΚD\jMa⹪IRд>a-1.r]73GczzpF\(QeŘ\V<[IlPK%[EC+ t}pW>6|=蚁ܴq\ꜺY !MyDLVAn]HB(T=h6EN/rӰ%ǰp'7b 8mbh Fv\`;/_ma.;XhZ]7|ް-/aŨOdKmA2"2&8~e U2RWO+f. {TǡC>Y kzXƩѭ??w*}]x d"r)][ eCb=(cu] TbmDu!dGj0#Gw VWj?;uccݷQhՏ^[>?߳Y_#{=E}ϢgQ߳?!{٤b_mۧtSCO:8.9懡jJV ^az}MZ.7d4&{5J=` Y0Zt{ɩr-X%Zd9ThI9&N_wϩ68)s*lܦB+{NuMx_E 9e]Y nv/RƧ{/b?vJ` _*_mSå#7|(;_` P?x/!%!(~vg9\Ïn8mm+~'.Rv|vv^.v~ۇHU\zVy/N~=e Nꯡ/ Oɉ ;C4񄭅м^_V#xY!:nu_F3Ef7X5bv3Uhը8#GK1 K!zbflcnG%k1d$8Tei3QZ0`u|ސ6،[nh}v_b7 (F[D6]OFtdTN̛M0=˞;^]/q>g%79iR*Tl ##*+ET= )A`kFRQƉ|bc#Gk这6rl5Da?j-+kGg3#_0Yf%`f YfSE|1k NU$5$k*|!eGxиU'mm@w:u.RO$LZ#ڎ|:5토% jxʑ|Պ?ި+%JU> (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/Yuw)gG%e(ZJXO -l F+ 07v7Eb2D1HG8Ŏ @lTV#e󠠅h\vN-5{ڟ  z {(FBo>:PorNso`x&fOT7"ɬHV1iLlI>i0瀜d(SF%Y|@ *b5ș~ 1M+8vh++0NjEAZuvs{2 %PsLsI\B>8cuKCwv̀OҎNU>mVIA۵lzhR Ș0#7<> HP(@_.%4.,kc/# !J\Y58XƒD<)![*]Dg~:h15BtD@t\'節󴑠_F-658 :iZhx [Ao L(;}10*AOy]`C:BP`" K*Y_>+CK+<:+Ez)N,Sg9꺗kH"X霅j ˮh2%i9Kz uTۇ̭֢"~ZBN̷B6tQTGT_j JtmUA_>Xv Grj. dۇKdIFYpQ!J#A<= [J  sFy.V/D<λ"h!rU+Z=hD4ps;O)P8}:>Ϊa NZx6nHO4ZHWXy$]v(/C)*e#K y ϝN?Fz tJ^+Ni8#MЉcߓ_h}U~g3ᅥ{=y}ϼg^3bdYtw3mC/P =/p x ɠgy;9֗ F==5[Nt M8hɔ:Qڐ|h9*!|j2:&SDb" FmC40P'D%QW|}W+%RUL~`(F7,һDZh6 JvV1&A} W/,$D a*=fVn')}H4 ff:c/܉2tfY_"_vTǭˆVWc O"2Lڵ)>´qҎL 2XVeps=Ç(`23>uɞ^N_͂`VzϺg~mӮ쇓][t5AC6<\xpxIFY %W+{UC)W{zj ?$[Q^P괺^b+/c{Fc0 IG烨!$%Yl%f_'( kr- L]GmUi_²OtRKʹPPM1J5,kt}d7aJ{ta))_!Zpк:nE$F׃[h"r((@7'ɒ64}Jk+I|eH\C$6O/7wr?s{6ژ bN}fݐ=G# >vޱ/Ԣ6qQO֟gq#./8K*VuBpg5xk U[,J0PvQx.E7x+>eOٮ}Ls:mFOƹPq@u>:^im=$+ :1O}h&nuN^V(wV}<ܭL/?FMlzHyElv:hm[LE$}eztLJu1m$z[\^`Pt3oe gsh˽V &`g? yKQx6?nGT !UK`K-Dঃ"](QTd"ɞ \xR)< ݽruaV7U b,KnFXX_7r3%6Q.}S9~YK7I2zF'F$ߙO϶9ަ !vLt*?˥fڇg6WRCHFr:jqFAڏAD:m\Os(Х twhP{&!6|>ouF~,.èЫa4!y?Ơ d=R?aF?Wf~[r}'ë}Uvmu g5mcm,jkTݿ Ϸ uno?Ϭӑ;}~_k 7x!~Wn\繻¹ gwv\ߍ;rt~nyݿ'wvn\`+e4,Q|sw|Fנo*ր7+sղoe|TN{Ѻ,wOvY|}:;/qo%Ŏ_1Gѫ::>.~DAҏ&t1%rwnoFt "YjE-?e}ιfmFT?6hDjJwPQya&o75E?:%W{g{gr.^Q>}pNԸ_I./q - M@ԨTxv\3yIӬr on*\ [t ĖzzipRL0j0׎I.C*F|2JDPL8Kn/|m}Gac;0~"E*b0FsF+Vs(? ^Q Wj۷2-F}$N=R@:YVC  ЛqoBgH,"OXP |x/-H}JhoȂws"=V(`EWO^HĞxr%).Kԗwh%E