#!/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=613c143e1b9647a6afc7582968c048d9 # 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 =ksȲj~Ŕ[.A`I`m`"HTBAb%ػv1z`jˑfzz5==F[wT7_7tj鳧p5 /\8hHp5Ϫ3rt^+] g7U}S;֛#rTyRI5՜mMaau_AHy5oYy!O;#sv5I]"RUzݥp i焁zĥ [jV cHM]kB@&&r Z&d LX5q\1eDw)YRwa>5un-nk݇?˞ñM y-E^48Ӑ&1,u0$؎o G2D\V  FchI,a:jAm_p% ݧϽXLa  YQF䶾HYƌ):4ܓ ECBmZ) дp|J!~,SM"2-FC-4>y2:WTOGZC`t9Nˡrv>"nG@ko4TNƣP,-VCYUIHAWtY-;JLG\(#l@?%}.ٌʨEHi!*dnK;f%{7"yM hzY%'2:8c y @ [<@n+p 2`UtNu  =H8C#e40ҖcLhcUFR:QMH@f'cUaSz#y8FJWe-abaf3rxQLe\!JIPAr3 WғϺʙkG<U.65:f2Ti҈LD9%{T%0&y x 6+ZK۷l3cOYöef7P԰9[((=, Z7;:);K؇솘SC/hF%+ &9W0I4OQ$gn&Mޣh31|_:xWKp$ܞ~•{{ypvR*H/s/kߚ_4fl{mtK~G΁k:kgG^_aITrGt?l [.9?qA_ /zz8'IF:7mg\{GF*40|ʆ\srv[-daq+dіɽb!`rE!>@8`8*Y5 zN-{=yAN6<OmӲotEˤ*՚U"{K H R r%JsҞ Mΰ|o| )_(j0STy!+dy{K 3iRIri軳)|{=Mޜ'dQ]O:ˢuz L]Ի&e:yʤⱆ; `C;r*7QC|PxnM!MkP]M=kZ904x A{nim=܉Tn.:<¯/{ۊr-+ TtiݽXG"I k\'Z񌁭U*UMrMjJC$muB|&t'i͆r(ֻHãD/s0mw{Erj{݀nn^ 3Wnl<'G3-e=}Awf Skhh>^|/o&*OvF|/Z{݆-nuk13Do}0cʩr}&Kgayfz<6 &f#I|o6tF.ϡG{%Eò- "nk6!L6 Ct3bYf. %>A4ad^"Bß <˔ !ȨƝX1hb솳XOطO+ Hg~L,cEr-V <$[c4PO{1a0'jmLmٰ3_EHF!,s:I嘬\pnTe0/5"h`{G(ds-S_+.|]kr剃%J'ָ; ϠS0)>aǐӝFѳ91 ^;kJqPu2glpb*gFO +3q`,5trM,ѼmbJ7a>xu`.a^|Av# c!A`]b 6-]}=I)k nuW~o~k[Ͼߧ]po}q r[mw[nm߮w))UAUnK`V+ɜ(7/Q੪-l0T5Utػ&Tz}Uk r|H,թUkT0w%UnV-;꿓~e>@e7%f,} ԘX"q8H#97)K? ^(|.at(jG{tN ?h=`5޼$+Ť~K>L%eSHXzM qԳ8Ye^՚a{ w{[,+[[[lFFFHA4߬%O`H.$-3Zy-fή)Un/> %麔Oׅp\kfH0eMMMKP\ݕ2.?"p,Y$DDb\;rO_KHZX׽V=o,O׽DrLQj_oj¾mr-KTey pcѭ=9Q"79|ԖZd Z' Ř׋LuC!M Mtb]:7Utt75Y'lDV^MuwF}q]b\CU >ťY4c8ٴtqV%".xJ*lf .-7F= ʘlWQ̺S ~ʵg_\HGq4~ʵl?mǶc[|/5 癯?LNd򝥗CEu+71X`!$3+ _1ple+2paZKVH~ 8sOnH."u!`sP|(wN<~|?7mwM|vN;e ?ڌ1~gGNiP}P[h=j;#= "" -w c3>v`Q֙7ŰqT&S堆zgL?ٟ]$dFw+e?'uZ?wv9_AtK~yQkwŒH#Ct<-"zbmR&I)zEvE`7a~W* M؝w3abR$HPg)#_)aBIW# 7HI ԝ;x775"0z|D-x$G@nIRgP0my8]pW &MsM n6k_x+75siۗC :%$N#[+}6NA la;Ԁmb`ƞR{W$̤މQwN:uV [ ?*>u'H!IIzS5/´L&Y1Igi'/VOp9se%i:I;ţ|CD.PN'F{u 8@χ 1?M25XpY^tJ|B'W<可j)ʢ{onw?9!2 {UTS[,u8)"pT?P_>7l5w/xro7\sVQڽf zԩR^{ц~9ZFOU܈[0 '}﯀YT\v2!(9$ojj;xW==ץ`UarM$H`-j4bFRjhICs,0:`/Xn̴+fR5?syCgL/8G{ ~Lh&]_BݖiG>xEg͂*m%~pGKN QeeA%x ?<]taN 61eLxh;"wC6E8^8P* f%mv^۩#>(oaxd3D6|#7ʚyE)1KJ`0#X}sG!x#k(wtM3kJ8Ȣ [dI(~gIn U(FCDeZ)*@W$x `4Qhl#2vM6 s  z٩*pS)t7}T }3T0{~] D8_֡Vdy8kH3`2~cA97љuV(hJ8&&ΞQ"z7!?*_4 a=$]=i@E n(]S@PTQ;Rf X2QTK43 ϣ  JQ r9j _<#Zj89>;V DAKM{QBȖ烷oNB>&Rshst|X=RC`p@D51jBF3kgO՝=Q@*+G3=g~MFq j<ѽ80Enq?ŀ >j0P JX$ӔˈR^ޔ} T.&͋)OC0Ԗ#[TҶ %Cs>;.+ʸJM/孠 N--Z/g| ^R{0+AT x>ʷXXN*VnβlEY~窘?Խ0r[ 2X&Z:sבO炽.FQp 4,>X$~(@]}T%5}#mgNAf I\ZxEi=d#xp(]W\ISg ɍo18ovx!dӅ6W1)ҢahF9n픬GQ` `î"uZS:=06%*H}LRS3DGk] _=_=_ZzXQ`M -kwrKϘ~%HJѡ$kn ٬ədbtu4Yp@c8riZE A,'"jN23 D"m>t+,*q`mSu5j!# MXZ>Zab^\ H`[̒JW$RT C]eFeq L@pҭP"K@?\4hwd7DbNjʯ֞z8=@X-pH7񷆾rLW˙`M1`V}")d (ַ"Să~4*x|aQE )a$e>ܫ<Rk@@uRztw[%*):IT=蠅٩>oU$.-)dABXnjImKDȆj &֟2rQJ.?GE ~6O3‚xo(yeȎͪg68m!PʎB- ap+Bfd,SЇ>Gǂ3EbXD? ;X2]CELrL/MkuC_ ƖoU|/o*c'm^qt]60!jز4]N_$TtgoZE8i H.-Z hHPwsrSǧsð,j#R&qH$Ub+_}MI#o I: cDADNel$cE8"} nK\0ω;iay&͢k2XC3MO2-'1 nغ)f@D)CvG0yr9U|7łPhJ9\ٞ00㭘  SڒJ6ְ\ЭeY+3b> pw,kcO/40I%̂jij 2p8d_ %, r"vu+%ax1petwNfN,yLEȴ/hݡfkg*f.q!(0@|f702<^Ԫ O4~^N:·_1 F(*E7oM5f`oj$ꁼ` B*;F[/Qߴ()ۤ U;+-w~G[og5߼&4p?0޻"a/1"+=%ma_+y%yM5@1&L&>q~1S`]G2n$s]azw̆34's A 'kQyKZAzHnI^aY9Tޯ.=s`+Nv.wvX x#ԅ,Y_x45bD/KWSю]([w`e2v 8@A< ǩE!jnSݰ /}aGؘ]z(έY׫r5d }X Q'P |N|he+7U5%!*/ e0 ށ? Uf͂Ù#= (%tADu.¸Y8o P͆F@ W5)QONM #B1/"N5 f ?U 'KJ`fs(zgkBy(qqV6 VK uN3! \-ƀ2R(-%G mjokgw\*H#EH:֛&=`b Dd b%;QoH;: vOm=>im)5{2I/c׾a4ſ95\zNo_p3.*,ՓpљFDn??.Z2XaW )#] O%dU٭C9IiFGX Zq b6[qaU8 \أ:477L'ӛѫ{nA '4e2Mi ֖#PalK1mMc1B dFa %ZU* x-be6ԍoOD.fSHun6#1ا:Z[kƺrT!z.KFvAaXTNcߛ"#CeuyguɗeŏzȪg`x.o%򿬯__/yM`uƎͫH^|m&?fs6AbpX[v#Dzx$c z&|Tt hZ0 ]y@ﰅO1H0QH7tK#r70)BߪZI#NN|NV`'_(8[+cI"o5F>m- o.ۄwsȂ 9/ A]i3nSm1]P^7qv(O$de]9&>Y z0Kn#,A']d6)֤L9Qa,:[@It*cM{O끢ۋy~{Q teC56ӷ5L4ATe¤z}ӓ7tYFnv*Jx|#WE,lkhwŜ5^~@Q+W6m\Gձ$&-uFgpF,7] 1JJMN_2L?/=XLm_tB<[nsK%CI8?iⲍlLsi_G6H Bqb؇muF:}61?0CJ Hc-5֗&=D,Q_ż ϟ9{%Y&J 0Y^_lfcU#6m,#ɌRb4Tɀòdډ񳺥|ȱHpx0!<`4yB)8=+G]k!IKپ _[f)}]"쏨">%).ܑ^3~bqW!)rAE\2 Lv Z59I.d̺gAad:IOP8l(ϯd% a骸D{]mA *IUXFfSڴUf͎zxw,ҿ'` 0 ۺ$/1yxDBzuk\yq"dЭdGb_L_Sd"|JO_1ByPGcmPnR]X^ ,Ƅq85Dl={,oQ9,Gs-/q_4rcP^Ux)ˡ+*`kϥN_SL-=K+?\e%LlZZ;S%uF:E>ySE%ˎ#EBl=ߊ|9{'zc=7l occ-{'r/r/_uFxpԚUye@/\?< t(^u{@]j=T^[q vx6 I+ (Njò6,/ #ccEG9Q(@F,iD+rzUryVJIy?&$[y $'5jDN{Ŵ$R>9'J'>vB*ҩ<]ؓHN"@SϨ·*I׭5?]z2`٭BөwJsk)ʹoaqG6 p%E1 ۍ@@UȳQev_nz] )k)T%Fr 6Nԣq&f R_iz=YޟL"ܠqKֻhn|Mt6N?nkJ: 9%jzkҠdfitOhY/sf ""#b|#Gkc'ZSl.sWO<%=߰.1ϾgTi:q\@R,`= Mz!'/\#3KЄAmݫNڿOpcK0`d2n>hI^ E4csPdroz ؎,&$0Z&"t~&EǤ8&.\q;Od;Gd́opoI͈PÉ)!-7~({h#5&oH*QOx16`lL&"ԱhI~IOB'aY>cjrM!}T<#ؿ{J(DcIӟBCy=㻴QS34b" s+i6Sa{M2lY$KJBQ~R:2jbsƔ*DPqu~Yd^mvJBoA7q(ip Ndlp{,SggdDRU&"͊,4A= <]K1Id8/rpĐR8ۭUXM~ul+ԝb[*%ɭNbF]SW*<=ʁбR14Ac'ۼǁ+ jm71١x;n$< N>F\jϵ6f\h\.F٤@G7t5) ] Zqg 2šNJ\wq(deTգA>;9c:iϐQIi~n̂ c OIYٞ1ӻ/@1n'4.)ja_~oݜdM뿯n#O |$jnF!B-,̶5` 5\ī-䗩1M"`JiN)pă$[6?lM\ կ>ɏh0DFSE)'^-(a ?ŵRm% ҭ۔g7&edcCLvSx 72|6ȍml/n$BIcl·Cl z[m Z>;=3<_l% OH\ޥb2 ,EȑX^%U@]4/*pLj%3V&<r|' ?+kc<ϟ1tD˹c(+@>p]xD9AJ ^ vO @'a-Ju>|d 0kDԂ?t >_tUl'g?܂J Khn2/G;)M8ӄJhPAÿ<,"獍 sIZ{PIm`n _*<:LUQ0ȕԟRIZhNfFT>B<>EGIKjp :SJ(|JQڛ>-8Aw_~ک4j//<_:1(_$MF<~q8_=_[^mL 6Q_qy+Wקlbh]/ŏ0l)\ q,rQ0c5 !<9 OjdwXCqP򝑈ދNډ(OCm"y`a_M/I`*YF!:qf ɚi&y>w_;3DIn)R"ݓ{lNK;'|',Mm6K!~/ {q*id)@vG^?Ԃ]i*t&>ֿqaGOKxn+u2geP*(1z KKKT0{FfDLdX@52G\Pf@KE[CD'M V?n˳d;\685e/qӺ,0,*ho[`T>۹ό]Pü+P2 Ojx @yQq2TY]3 B@Zo%0E;cU:z6EZ\8cx(+0p3LFpq;G )Ȥ=aDf'4tw9Q5f<#2w$={ҴE],[ݻ_]2!Re@ARr|n",f\7i+  D"[XOl Pnt Yf\Y,Gh:w[a NE;Pv;P`n ':t˩qR*v[ȉ jȑӻ,;`){ bq^jF+wj*Zqt1~ q 1ٺt8!41CJ\QhaKEQM322/ vkYY 8lᰝ)!i!n9*ЁtwJNv.<*y8s=ݓ}GKܨ_[.e_lim3%luïfA]%&1'cu}y7Wsxr#?r#?rg: ?t/H)>P,[q$$BCŸ;{$Lȭ"( k'G2}݌eM E@"~ PJd(a)CE&ONׇZM!vQ+yeUbpċ|ۙplQKȦd\y \CMkpjVÏ;g!U.}5{ 0weX?/1zͧKOFUt ʍ+v|ٔtV0Npn6Z%Zu0VC*m*I[ OB"Q 3@ 1|W]9(v}W͂ͧ㈘xjНbSMk\5pfb~qwjP)cC(Uz0*-VOd")aR?mYxFT9mlc ==^0^cv~lj-_*#Uf{3CJ1S3&TwDƖoB/}SJ=A5ިzb"IZJ;n!KFoVX]/{pT \RW=TK &+.cG(%V6FN= .3RGcyc6f1'8HxC}cRf'Љo r ы;søK 趟Hf)zA%\00o+}[ETLpȅK!N +vӆDߴVPq gόok)rLQ7gEɥ•J ıf d_iߕ ('nZkUk[ca6--,TAtԦ?h$fԛu" I &RgTp?$<> zzL3IN48^k|"eoyfdH"W7@$GOKHJe^D$JzVJp˷bǃPڦE^.:p,3Y,hqLoY/Έ~tDB(ulO@p\`+Hq S II)62KCwrmПB\`C6#S0=HP&ZXd ZWcMs@:Dx4ޙiT:/pΥJn()h [A&FFt͡v7uC(c~>YLJ]КEl÷_!{ .ca^69 MWB?=y#U&S2?pL +)@xj853kވM3T0{]/4oj61sd$S:vNj|-N=nu % ]uzYyb&Q-i4U9uE󈜙P,)tPQyԇ<aQb ;CԠl'D-`x׋ *'Κ~xLv>T ׯXR0kRBAk9ɝ=Mitۨ,,4m5UNNSjMԗdN5*[j?EY^a %{4n/ =+%TB]lV5;5A 5;AQ([Nb {+?&sDI .LuՐ[_s`{Œ;^i/ې}mCjhۍX0xV^xb?}}v쨳l?à$a#ܮ )]#^"BZF)Z\ EGӞS:H67)3$c\-+myB7na8X+@[[/AFCqR) QP7(G왴:qzV=fm5.&H0poͱ.c ysHdA@`Xu(zG4&Gi.PS+;XFGt>+X%Y%w9nb*,hBTW @enzPJW*KHIt ju #Z% Š,SN_Z r (U+o¹,9IG@=0>6[k1\~,Cnz㻄o)=J#%`=\ksM`}A!IPrcڧ>va%U#YFDd:)1В<"ȶ2Ns+9y~/#؞)&oQd&ZM'޶+*VV&ʵ( k*?x  ɞdd~F1UhbJ9$YZe'kv Bys@C܎kgrvV<9i-'ڳ183ap|(LgB"ꑞh)ƹEwݜ;ʎ"J]1*XX%(HRQ'Y3zquGo7ʮ]T@$TKMtG3n۠1"i Q}Dvo$m=u/XIjE6=FSZv/(⚈gNQt %40X$aN%_R%ERHġuGG^omPc' IJ)Np5:D b?huQPbM+ vT.Pf0Jp||S11$n-uugNOxPj*bR*|KL̍vd gD%fʚJeLdt[/t,[!R5i 2^rQuc28QYx-̸(! _\hnK`P'0,b}))H$%U$$s#"q4@X)𱰆S]d djmNK;S;:h+lB㟗yCRW  G[K ߆G%k|.= "=N8KX=ΓA7|u}X]?]?r׏׏#Ƚ>r#Ƚ>>A{݆F<|@.>yIpHz=KZѹhp5>cQ|^#hD |ZW؄x-0儣lQ !RАm& |JGمԴbj@hCF2C4qbOX? ?\p@F*A*Ab4^j(Jy'y:[A!"ՂcZmYhϛvZd38SK2U /e]G$vK,Z]z [g. ! #G!3Si,ɷyb+tῤ:nB׹e I=DWTnK sEҰ'GKwWdh*aoWro" `ԂAeʝT5I(_*r@L1 V-}6[lj& &ҊPT)є𱩰.aꍥݬJb/糠$)!a%%\%@OQC<}2)iZWdۆfJ8U>6\[vQLN[) /lmxR^l\zwW"DWH4T@2atӟ FcA!@|n6 3rLqi 0@ }R<'ֻ0sdá7Dڙ`SwF$h^jY v#`]δK߷nhЖ|(+&6h!gہB{m˓SZ;mi'5 \շg|nI>T,&P/J{jGWlDa GH_4V?7p '+buf}zH[j/c5L` n y6S.bɦX0TiɶA_nօΘ h4AhPn|Bp0 ό_h۾V`V>:Fq_+˹ף<ן7d--/%7rx]B\. Y 611٩tOtGxYo4*Կ(tWB?W*b{628xAw{8V|mZ`*k,)Q(| ޻iFLlf]p],BlnWj@],gTjmT;98/!T޾Zd")CѤ2P4_,4 vݿ B: a]3\^w q?^JB .5n,|_s5.i] AJ= ۽P \kNe_7{,*U9[ŏ+/R?kS_$߲ρKecyrPrS@%?Ɠ?#ozɦ'AY;hpU|Z|=\.,/,,{\_SQBm<Ӈ|y_pX~&Lr rnx) r?wDpvy.Ox<} Gsy@n.O8<} [X,)B3~Wj4g[)Iiv;bqt`“0%}L,~OQs\jOw\uF}Ybq؏z JB/AdjZZD$1 R?Xb֭wAfD$0TV6LD? aC͋oB["q=ow~oAܑ/Vx@A<EΘ$3>A ΤG"UEk:qjTtJ4; ,'/Qh2ShડWX/vt%TC -@K!=@ߙ4L} ,``fc'OX^XaqU؁ 1V]@ H^qrW_\ VzF ީS=)?ey.&b n'*\|Zo0¨#*7YER5\U@Ă G Ip~í+@(_; rG@|<>w 1Qg8u{؊<$rqb~!?0c@f~6{T6F3et O.4nbGۏ5֑!ӼL\SsJFݩgIp, XS IW|h,0SN3:یngO42hVKk/ ܪF[p{9 lS/Ed4 >}+7$%֠X4b@pID̪_=_g*vf/Z* (1^%9#db{f4S<9}Jڷ0, [o^Vb Ib7d jёvrʐ????????ʜ