#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=ade51998dbca2016a10064c9bd77c5d6 # 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 ^[{s8OLv#ˏ$v{Fh78*MBW!)?23WwU%Fht\Y>t=ßم;w~7?o`w|o?S(G2C4_Kץ׬Bw4YQa{{߿1ݏoYZ5VM>K5:=.;3X݄~O?;=X7̴OݞfcU;߫fTnM}Qe;}ү>;Ux!뜳+׸3?Szwzκ^_o Zzݎ1\S7~5k ʴZόz+\ ;TvPzOkqL(DlU:|h0zsUr5dUX~T30=AOBAA_cN4nhzC3Yc4:uL@g@N}tz]ɾ퀜uh$5w8`Q4Uv}j4VGUF?K="qTXY[hZ ӦHS` D獸JsVo~QxI`lHuKxZ ac=_Ãl*a ޛŜ3smⴹcc@Nf"0paVC0'8$g?`< pĢ+@MmJS0M9\HzfZS0<$mYa< x&F xJE?E{.CVw~b-14fEg1hZ@Bv8qw.D sʀ\K*j|b~+w:\VZ~Ed ˥L\)&u^gՒĎaj13"$`5>_?{? 8w}fgz}x{~_'VM?j#OS*Vk( 6>]xy >/"43.>yiAH]T0wi뻱9 >S h]>TK Z|p^ó'ϰȬz(-,gukQh ڄrLh9N帴ESaG 'DF|D(ƭƈ"v@D3j@@R _c0kda@D0F}=*ЩHYua4| *eH`K;FO*ⓔ m0ùoSX-U`sOQdd'tAvjB?nN"N#}~5M&1^)Vݺ8ls/SPߪ Z v\J5cuB ZOA5oaEIX6p!m߸m>hKpʯ؊L_<t%yw E+-4]b# 08 ʯj.&xe^ TU*s6Oћme1Fk$*Ԃp{A4zs7*ba\eհRa-J Tw/u'ް-fij8:lJ&6BҔ# EkZK *}4RղO"Se1xPw[M4ɎF8dI;c` `הUS/|h4ZV^l4[ dr 5b+\:>4[6|\6bCګ2VfM=fx,ち5 \ֵcJ%9Hr0V :Jb ei(THOVyL %`Qi%?Ր]rQH])[ϓ`Ns YFsRbtIWsHײβ9NȤ-!1Iid؅Sj8&FјNSc'L8>a"NN냾>:>{&hstfK&`2Z /X%3l'yIxͽr !AӳJ^Y(Yf)dYj&Wi7ޛ1(!gY.}lONO$y@Ġ)zS]K&#QlZ>Vhb9*g X3Aj bl}DaD0I%^ᦾtPo6*xG^hS𺲥XP˂405b p,jf[H^w)۲vY]mNo"lkB $1􋳁=NPyMaX 6x P{nldM@,_eJ (rVab0A,?&^yXh,=:,W~M4_ƲDjm~lS 5JW:ed^- GIkEkS#yNֹ$NFu!$QɁґ !u%Y:oby@Y33S'nnh )]v)SV:6a@Ytƾ~%Cй,r>['FbۚXo%1R CXѐ*3T d݄ܠ_8*RN/-r-aW 't7kZ#ME.MS5CSM gځ7?ؤu=6Qs*N!(s$GV m># bp |ȧM(E$)8{*`hOwZ8bba|n9# [G)vwH=>UXK~)VڞPZVn3jF߼T4H%=6'vYH!SӯdJ 2ֲ$VL=]ΊOV.fV!vI/'NObv-ӟd pXVMpjJaMB>3*rerPbQS.!OC ǡ;}^gJ <3~jԻ<5]Ѯgʋ9f66$#jv!fW HiB!WǾ`+8EZvc9TIXl,{ΪHXeRJa$@%. VEF9iӖK< $͠WU#j53aGz\Z_'3e*9Y.+͉Ze^zϻw?o?~~? `<ј-!ZDvׅ @13YQ@-{ D˾_r}h |ʧ^M1r/{U􌣛{{=&H,Yq[b d:Pεui6ő!vHg\׻&k˼Sr?OtY &m*cTwM)/IB~__<{Yeatiұ7o-|z~Y"x&Q3QxgIZ"tr((œSA lQ}=c>&cY }ۍ* @r~Y<[lf`pxJg67Kb][0wL@e$W;Fg,>auWpYY_]zxHˬ^@CXWA^]͜M^xpE*a4RBXCh[asC~~۾hyyBʚ< eA܌\pS{jHOܢZ ]5E' E ?];__!5A$R{W=ySN:k{ [?S%D oP v/xH9v-[ר|{sg2u~}#?vV [}qxQ>ZxoR įZ{o 8$}ʟIبe(MZ2':a;hzҪL .A˭P[ѥ!r.ƀz@zSZZIFń]q_F/ %(x%>gaׂ"HY5ψ̸n-o m+tK3j`xшK3S d53kgˣ'ASdTZ"F4P_.Pd@jA*=f8#.sZX)_YR.Y( 91א=5n @BX B ]ѣ!A_PЍYaU(XhwQd\ 1$&|p޶cۢq' WQ|&e`vRb[4*6V^KXp۸FzYyG[_5 mA|oo6މX){dE=]2(` o*C,}>QЅ3;uML@aƬ~온R!`#ԘsNDQ3ҊZjhy1 Θ (\0ʩm<-N=q u]ugL£ZtƱiV![wq,AڅiBZhC ڲN [rPQ 6yP0?@3(]p>dRzr ~\7B޽MZm1z 64bKݒYvY̐yu'VXwD2rD0dwZ. B3qI>DuxF>m_ 4c y.04<U\pUapL*yw@dIWR ^@# vW$djqJd!AQem_&11Z?~r)k7ws^o{^l/zx 6vÍ}ilgD+KQsmNy'Ʋ|p6,ߊx^nq1!hDas50yAZ[[dh(*Yw,~4Y6Dtf4OxؾfߞnڰZ%_(ج4fwpcs~Cn$ 7re b;A'j\:óTCnqD^a;) 64nw+< m UoS&B~to7N.m_S2\ÃPxa` {[U cJCOi98. . 79[%Pu躺+QwT8<;ڥmLm U]jN͟C 븹O 6o  u7စ?!K.5wwyjŴytvwe;*^xvR: Nr* nE3 `GI.ZtF)Z^a\ ; EG>?'t<6WU:Dv$E˄n)a8^Y.@[kA6FR,j!JA3,g4*,{bp([/0مx|Z8o-8(t w. PS3 " !0R`fJ%w9i"44!KC*+GD7= *%B`E.$ Ţ{ #8+^JQ?Y-%7sW7%lcO4zXa_-Sm0B3^#xޗ« M>'-=ҙa|AzNjKEM NkZ:6b;aB?يב$Dv!=ѵYhDZG";":^{&^P{! wJ!^FFՌ"~ dD&-Cӏ4^޲iS(bZ91Zo\X?;EZpiSq@?F_LIؿ@,40}X8y Kt-ï]\]z&BިLyQ=hAΈay jO.ʚXPJBCjqKy/}w /uOvwU뺃s9Ix2"yCѐR>_FݵpB,6-UcH"מ͏¼с" Fi /#HL.{FUz-C-c5 GNB ZvDCBa[*­v u*[I Uף<(n렺b9 77) - OR%=|nvt|/qtLu~ 6=]b:&82n sBՠرfx+ů`J.pNfrX9/K\.WHhhRBp4E)t$уtʹv8dVev;?+';trC47WU(3;{gNvU(hXxư@3\'62mb̶,g&}E >Y7hY&RT@@qCP Gac',`&0ZA}Zy1F- .k37?sK -rK i @x8fʶ HK hڏd c `Nc\T8[­.m` wۢ(S3VU fj+3^l4Y^6΀_<.lS]Џbt+JqksD֊N<'<-gFwQHRM7Y;ضÑy/I-U&7&ާWp;ٹs~HI9i֚.Sã<ﭳ}Q{P\lY܁![45PPA"=cS24%tL靓EEZHy2P^-[F&>&uKRRX wm-19y2 ma/XY a6MpU(m@3\&> HP]# /2a<11ޢdi8Bp/m;&Lw7=1Veu&"KwTsbOm{ ޾ \YaYWJ=$lurb56 uw Zkfʧ;.Ԋi^ &򗙎^O#Z.ݿECv8O+3 VP'yy7g:<ׂ? ^qfc;wpenKf{px}5 g I9A;>ås ʊչ $iet -6“H{M&xp]8H^qWνykuW:yޟYw~xxtB[@rAҍXl )JED jtu4(a ջ*q*3I5z3sd0EkD ytU ps|tF?<J \J%9X¹d5HI5V[}Z--dcTžHlSVG?CؓN=` jlQh4Z 7) dpAR%Mgqq Fo4lhZ`;) mR /, ?0QdV:Mmo$g,/MJ# SKqtaĦo@z=PrA%($I`X^3p?B0 ' sHfQNCC1^ԍsg*Α9Ś]q?(*e!1l<" )fiE.o_hcN[ImQ񨑻2 G aNR_" <V\l;)[sQfݥVOu9(\tA9T?}fr&q$wvI.LES̮5.yd)_-lj ͡l(+F_^aU1dcw057MB+!w(߳n*TrE Q pUWL[Zx)LK C?)]4se;*AaHП'1Ȍε2΢ {#FG0 4;SB!Dɀ<co2JtQwʃVq!0όe X崯; 4nіRh 2Y-&lx 9tHЕΠ :g Ƹp1젋,.`j*Jv[Bf @Dÿڜ1ononon5mXqP'fa#L}16(VY_#`% 0o<(hcD_Vn. #aؼJX@3v"b🳃S7(߫׏DNd%wfohEoh2dA( #\E}ˈ? r7zr*ցC]M .;;$@U~\RJAYRK( Pa%FȀV^KG4QCnd@)5c <P)S M)7*XJSO9[h?(bQ'j $`Ʌ,R!j>~ ܡ @%V ^Vcu;(IԨ&k`QZKnlmGo}?qE|q2$2*;{|82Νo*]mWr ٢8#4a]{1MfZsgN~,@e|I;qԌU7IQI j<*nW?fu-my'h9ά<q2,rƍ L! ]ik:C ~^5~l.8P+A /vy\TVDmFk6KӵUm45Umӵ 5m9iVjVض- iA{wED׭+QJP"[U"ȢҜ˅tpa0ۖ頠uB&2DA ;pKf3P}! 14CfO#~{}gGm0-J /rbɕw&XҝcF =K]n@] 9s0` ,v'fÖ#׭8|F-##)wX&@`F.lv)(5|Y?\6/>ϺXaE0i0NE2*'/6F760|yNz22s-Z&w%l,|Gf I~}; tmr8Qǻh']k (q VzLh%#bZ5CV!iѰތm7%k{a\@gI=:4IY'Iov >5pDwΠ8;tמvvCz@52(ak _*D"IY݀KKe&/9`Ŋqi1}>Wn_Wn_Wn rjA]+!^[jv%Hy(6miT,v409p@sx%Sx㼡@*hgu cqԕGQP#zƂPU&ek1BoH",-dX{v@N;L*'y(UF*Jrct,wP'`m!=ܔ r)V jnu[>Uhv[d*`v itĬ1\- z, k :ИŰ'p}M* cHH%|ru y5=T͈$;XdAT dy$#lLUt*)OLEM0}7bn/tmZdYy" tCHth,duTTWbM MS5,#_I Snaġ%!n5NOG&RS=iv3.  Kq)_Dtv/(E Qcبvۅ~p%CEUq`0<Ay_>l`_UeʋL)U,g}te>Z0 l[K >@DƷJ@<dd́Ta3F}e;?(hơ:UBo#x\О)4k4y#j?Oac`z~p"!W[ >K_EVc$؟J0ꢜRd6BJ9K}1L|Tyc(>YxȂސ)#HǞ01.@#!0U*5ΉxdQ5+BǺq$H4M:uAD(8N(oxD,@OW12#"8_6t5- *=,:?)prdM(At] m{/>vw&g^PdFK,phqmƂU42v6-OR`DtYYON6 ՗D1eB~U]1BPMqJHIy-O} (-JUcT zUWrٲYFt YL o몼U_4c7N*5TK4ʲri @dp4[FPK5,㤩8qԉN t`V)#6u9P}>骖fu%!j XJlN݋e"WWy;#O㛞Q,'!XXq1^zs@n}VI4*\Gj/br0]ZE/>&"ݡ,B!!0́`Jt2&DVd95 R!V sSga>a%,Ӟ=Q5k47HQ*V:WIu٩,&;6E6d)C#Nb~-FZP6!٣LP #/Nu}iJmDH6<͘pF}li{&W觏xeP 3lՍ<yi94߫9ŷB=>_.'ߺcOzNf%l8_ZRwN/~j&Q:jY~[R9 27eaSt78;|0%?޳jaS5"*SʠqQtF$ _dI3ѩx8i՜\Cr'*5ưj7NywWϜ=l3뢖pFiuC $ODIUwjtA`29aWf1_Y5=4җڇ`,8 $cPُNyLzKlcAc535\sQ> \^Rl0g3Q[ky}O7\sosM ez̸]"%?f, ۸6 גvYGCí Jsh]^ Pu1e/IPvs/|`{ e"ʕ~kł|vhK.xQI<('节)x⨌ϻۧE41f n1]SS'0õs JP8S#jG%E• `L}"+ΏS@J[5W!=FO64ZexƆT]^Vd710n2o"{u63NPZT%d׏g?Qaw|0,A o2C=al% v @ȒxM/*gyZpd>hd(cF%ItyX "J b";1ҞPk)`. {С l]N_% yp''TE, #%hQ50cprCӤ ʘbp)Ժ"HDn=FCsnt$/7Iف(K205K|[ Fָ{+ nGhHfg$vsB( ؈3wI)}ǤDbқNSo&('j ZQN-75x Ecx<$CaP3S-ӑ!ȯY9(L_b8ۀ=.\Dũ[Q"bbFH-R9 ghfy՘@]8ĎDJ 1gMhZLCDcO<S͊r.ȥQ[ȭ)9d"9EČ\Iwg0!WzJTHfvj}xt$(LʃVP >My{ Y \6vǻuhd "a8Z v/dx#7P7iP?pPFUEbڋ7-=aE*@C8JbҤh!R<{ Ӎȝ~z<53Ȃ0БQ| gRo6eı8#cÐH55ސF9^.ї|Zq)" ǩAS C>[r8r}(\\yz`%` lݥlIX+ +)ރyuɋ4V%.b@ !I(ACVҹSe7ѼMSd/@&H(a>/w~/R /w$OnH3|8E*3߆Gy#'t9!#OM1E.<=~ w=63bk ovB8,i<\1CIuߢlҲk~O} J?o;7N 6 y>X]~+3+OPry!'ֿ,2~y_o|X}Rx@<ۭcf>_ (^_E~nnX^8]mE[`6 \(k@:8Xj ӯ}Bxy:Y`N.^ 4j?] (" Ѩ)\A0}0G5k : g= /Y@5ьyv>" ޞoU4lmy9䟴AXii)o%GGy}M)ber!FP&d4SI+'45IxEهW0r(r`4aV[Z(tRY 8m^CQMޯBI7 Oo} a+6:f/(.BSbpE3 ޽1ҍr "wC5N]եHJ F|K);l>6C=dw䴢Vy̨"7 A1x+$+QgN5B |(;xl F*U:pA?In UPŁ5uZ(,I#UȎ?Que* yR΄ʎq$NUtt"[H][ast'8BH90 J.I @V7}{C;zBmxHl3-2"k~b0\ I!nF@~IШrt4Plk6ibEomFyqN3BL$XɦȂ[U j'@Q8_$c+֊QG4prsZUF،a ?R$*CXm"5`MMV]R'¦B!e{r\ I{eJcٷr&gõP#T$z"ѕ\8(e |ŋ$a/T|՘+״Z gHi)ߓSy;xR. ר IOrRY2Och9HOhv%rkc<kAH=Ɲ^\${gTóz^R{LATO'Ff^ ZfK(0;DRC$AAWtq M4,N56_ |j<-HnvV|qXpnJsi,JI~̅p>qu4XZLDcQ`CayXp~ 9b}?Oڢ$ /Ev)iadv#D*rUܶQڦ%m|vrT?K*ϕlaǛMaӴ%_!ܝ0krE1cSpi-ivrūʶ==BGQe.*134(OhgHhRdud4}c)~ /=3o1%B,&)no:syM6fYʊ0H3a~%>L?񡁟y(]7G Rdf:&B ɞchِ`t+ug@(+)Cˆ2Oǝ,$_9r1`d[Լ8Xg$98 уfRMM`bCG=7EU臷Ca(/Pz;Rբi:Y%1i.mv Sq(}=06%:HV򷨅wLPS1&Do&5^Ɨ&5/Oj|9qKrڷtfY0%00++ƒ̭_v ʲhJr:Ҵyz*9ۓ<Q b>f9|hcm6V/d }æ'QB(7q4,# Vp[^_D5 uc3ٙqНHy]CXS U\5UYjYT.]'bߍ 0Nc, d\o#oO IFL,@ BݣG.S Xh:π--=Π99$J#wC9^OSJ9s!qvLFfasF]>Y9eX (T43( %# p`2W7^ {*gbV|/Jc'^qt][7Vb԰%i>#I/q@gߢ%W1-u7'i;mbLBffB]D%_ $YGb2u`u 5xm!IaY=hhI#XIb:VDC$a[ߐD8Q KOͫ+~FhbqB̖%ykK0Lak~Iuүن)/+WiDYNFミSv_vO|V^d-a,ڕNn_qH׽wt@vC 0N==8 GOA6`Sލ́q4ƳStG犅),ӡ"~_1d7co8@Cƅxp [VDk.0iY^ (ԅ|.à`Xi֥ژVeUb? U^:a1`T Zq6$Rh?W N8E-!'.4XvV &)]{ޛW5w)5zd6 3<J6` Af"ckv XafH`TX"LhR?%)#DRJD*D T }]&NwNƑElx4V20no^ k~IhY(&.i:ca92 ;Lb# )'* ̨,' Y(S1dӵ\4]!Sb&(wՏؾHSBa"5i6Gqƥ" ݻ:aEՓ/'^֮h͢):4"Hhf,_3&gTYOiʖ(ugeFK@LҜX "ٰNRSIun6#WOWuҍ4{<]l|&]*w篾Aեjn啥gЅ؎bȋd~$͟GpMDá1.9:<:ا5a7`n}T77xaɆ^]6n,*ZE[, Z1$Ʊ;l5A#a/NQNΛc,~?&uF?^J(K??6~X~nlg;c nqwuAze`() UDnZ ZwB[PUoXQMG\'*ɇ3`ty0k~po !A9Ѿ*4~*X ??M@wFz L5I&[#]|^E+H,rm rVd lW'9eGäJĉٜ6.qM#)YĠ%Eq ˽LTIcmPMe7rAkprdPT|ꈭOB2Ivqm@;%t~Us [t Ct -s 1htY 79>uZR_HiM' I]{u:示IxH!gzx0ęʤFpYN~+7#ۊT:*zP,W)M8;}KxNSaM[޳Ւa{0e)8şVO[%?d7Pf?y"O/j{|>YÅvo!T+7&i7Gѝhxw<OA᪎5OVԣxjxJ\8xx8xڍxHxH؀PNnsQP,l0?Z!mgEAR],9~}Y,n­Sg}^wQNx_,;9<;ެ3lo)^?f] Au;C$0s/ g  ѨҸkPu,?l4uwXV`2 \6"KPf1%r"Hh!PlʞB}.Y1~n3 Ѱu ܢL{ s ̶]8~c4h;K3Fv 20\‘m}1>wԼׯŅg {s}/h@eng'\+I+k&HyvEr; R tG62W+x~7  up"OM/* o$#sr er} 㞾^9991=Rq9E^f~3M]=04nᐘjvVG*uNm6Eިxb tnrA#-hx7@_6> LgTɌY[| ,!ǣ؀Td} U'@gC07j;HԅN#(2h_W/nzfةdS\b 7?q)ܖ{EL.zZg:&!{DnLޯyL-bXRWKvn+fLD|1<9\,f+?YƜ?̖/-X#+>S_)nAu8_B(=GԬ/#6n?DsO?'O?'O?L#l0