#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=255d1dc346d297a3d42b70e7305d7a5c # 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 dZ;SȒWL(*^-@,{J%1h,$Ceod\-t -ӟقn{egOۻ;nlֻ֟I̓ԏ)(ܪ?V4{뛔Yހ2g Ƴ( 6Xs2a'b8 F)|q@3D (A a!OYHKX4V4 3"Z*.)B4J!D C4ټ^(t8Ǎ%D!h9 BGA;pzmk?9-=`KBtm$4ir@2x>tuk؟A:@gI̽.2L:c_1ʂ֡>GɒĚ( $`0#xe]ݖ=q,"CS*8.P uW:-+sNXA%8(H!ѵΤi+Tt8Lq0K` >s2iEqp]~Nhͫn\ \,VN x_@Aj,`)6ӎp3 saZ'^5*G_Z?ߨJW+m'R2Sus}%BŘy˵q ݻ??(?<1|9.>|6׫ 0T4F7BT|6v7O/:w;q4 >@4O0Œb.4 m=Ds Fd>@8`p-EXCJS1MyWHx ǜHSh?Ua0%#BTR  E/sڽd|c b3${@#N WE'(#&hEJT1D7径p3__( ^v3:]0@$ǚ\&m*vM# 8PLCx0i"8峵Rh:ĸȄ8o큧Rh1a(]q1ZX[ EO~`v %%15CGĒd>Œ'ð n58`aQj”܅D5Pf[/tdqKRvHj: k0 m+ T#&%!,`)%S!&0gw 6GfG4 pWk-:I:6b̏/L H1, (pd%k LMc8!􎀊79|^v:&oJ3]Q(5O=xR0~oIU!U!a4LS C(nbTj~m;N`'zyYk$,® F>*.@2%s--|RiJbhE }HV|BNXo"h] Un>?$q!$Mj-Bs8;m @I&uLkj.FI f>"  B[6^3ALHBfcˬARYZ)leqj)o|-}l(Pz.>ɀb!:| W\VqYv@lLַ-OP4"؇W֯lMAV b>3Ti< fYP̒NV7:5{a*VLs&7Tadd!9nⓖ0@9 *]2 ;iZFZ3D}fJB$!+6gFa0Ԭ(ޅ1˗?Oȣ gP]_'Z"quf+jN?߭u1?!!cHJyE"%Rֲ o>҆<*tlu6Fo-gY8c,x!dk(:c_#p\LAVHV&nlьM6:*F!Qo(]V*o`^-z f*1a@2GY@G"z)9Fz)2 :JCKDXM×h?.3EIWh'ROKl4,!.ЅuȟVY),+16{PFI&+J*ghk()-ȥ$8ƃ;' a8tǾ< (/1 R\.ych6mYJ4@ʄIsݦwzwiNȥo="*=R }_IOl`D&lK#f\R\i{d2bɖ3dP`eItH+r%"##5s5ir/0/rY;lpǏ*a4roC K[Ul+P+ns0{}TwtduH<l^;v?ys}뾷4#c(~j,WI;vA{S7Wx**F!bh` j.|puLa4 |W7h1c[3]vڜ rr`!ڴSpt<"0\t$k>^ܺ3kiDJȝ泔;Ka] Z/_8P1H>|@6# FGqBYm]D*g BDlɲD  C_`n n=4 9dx+p zs{VWejӼLr)ϙs'ssCaD&Hz#yS~ 6rcwF*=ka`7KZ" N=ӱɄ*&OH{JkpҼ t3|:+l=型Rϋ- t(^ T,\R(&uErO\mD`=ȖjsqQH\|f㵚]2'cO^'G+N ZA$*o-SH5qZ$L,.o2S|j 2V{ܜSuTW74E&lRT5b mۭkk(Zx9k ~F /ghm#r%P}ӷ) ۭ:5.Yr y;CC.5$a۴=J0J! IɱX ͤ~K/!I%0\pnkԼod.p0*/$omvFbu a:,R1f,jF~zr}xPBjF9=zW;pئF:ؚC; ֋0ϣfͽ's3 p8@;: "`,рК I9Mct?]!Oੳ׾aſ#Й`MPg8ħ0LX4/HȎux, G9"8=ż h3E~-E'UL O+J˅cC= I̵?7.OxMF m/1 0EdPl4^mj6DiItqrƓi}{^R>>.IVd SV7%VbUUI*7ڧzR[!9E*ag?ӒPՠS?}V?Gב__fϠ3?gCzV񾋁ȣtCocWM-w56 k09 *ww^؋EVwvHPh[&Kr/o(L.vps|P߭ l_r$_j*º:H(!SXޮ'ѯI;n9"LH r',GE%VXs܊4 {oC֓reo [ͽUoO˭YIoA=wufحËI9BKgoGpB.v8ЦU+n{Cܭ]lS}5C=mSj}Xh/(Rk W^s^T;>!TM{eApP{h;H ,xpX/VO{~}WO.$KowXuZ Nӧ1'@$3,5Ӟ]" DeLQq;ZBsNOB(Ѥ G6uC4X'7Ea8Y_Ƨ R ada :t<%>C>4)][0f%BMQ\;`js1|ђZ(qbS)DTWAe.zRJ@+%aXp`),czCV)pT cUM>Kr eVGcǔ3]J|,o)& dLiYWZg >l,ХCF{H(2Lr0] FXam(fiCsQc /ZP8~)CJqK5M,Rx|>.^( p 6rp5؁eH BeE&,^n}g.j.XnT`䄟q6'܏X%7gNRκ:+%UJF!` \EqKY&.y\Tn11x^r!(A@V1_6hvip}UcHS׍Ml[/C\ٖ6PD.#GAt3+jz$7۝PD6憈3M',Ph{ jh@g.lXBf:dkI_~+p'jQiz3j#D]|%' {:Dw4 7`*Zϟ[M+N"80)Lz1^*d(*mk$Cam+Xbl9{7k,;! Mb18gj@HE"ڙ09Ut/-bB8Ņو Y6kXE=a+Ӊ,؜ ס{ 5,ٍ5c-=uO 54-ЩOw!V1y5ӫQ1ghʎ)6gͻ=6lqak'!?n5ξLE<*g*LIU hCdy vN>( ۽C2[Ԣd'p.jae#\6,LL8?zE "F 8|+ O 4>cte>awx=F`[5 !G1J@<ݮX;0 FW0ctR{KFf$Kws4..+k(PWYeC؋Rћii磪9-t-|e7)!y7j<5a0F9!RCs #x(FwѢ8uf%]zlʟ$rric UL1j_Y]J(q[]HZm=j+Sf0&\3HA$ƍԫs?eVM'ZխH?rJ{MŒEȠ̘K}1 T_-'T&!03,Â3\ҵ9r<.Il}/#hJMo~Ilq8|cPwªT} Vʕ|>Mtl&pۘJnWya(ҫ~P8UzU;T"9jd5 S, Gő/(U '^??OU^xZ;{~A???o;kmj[?HA?k'7u{ 3',ݽ4ď6&7dg aF( .@`xuW[\7 Y9oQMG\'*ȇs占DX0gys'lܛSa\:(K`s߯n2)n8]}ʹ,  v22ҢQݺP>_ VϋF0՘#!gN?'b0w[5[ !8m7~?>cTPT*}U'-13 57P&[2zqY0r޴y&v jG;t" ]᫇*Y>F5KߒmVklGtJL5TRӖ1!L A0(qBdwڞ0DoyN_}SG,}n#-i_uC\Y({ίEf1ʆY*K"EPlɎm+|B\&l!gZay5ǮӚbDߣĒf6i܈s 0B4fEWuNzogߺ.xv(qo\~z{eih:DVc>ĪfX Рlibs OL)U @յ2s^V2ϷdL2O?'d/#} w`\3_NGpBE=a t&yVxPy~PT=O$baiRUB(.FE2`N N8VxB 6YVt,ChQ!GiSez28V*S )%DZ!#]Cmc QFNZw~}VcJԷcջuN/ya0 <;ˉeNr.k0|X|Im8NKʍ0d6 #r[WZaEbP0ƉPl_,{0!r6r%-3 mL(zNN 2~ji3,@* B`a@^ЋitPahv+?t1r;7BHal,9n-K4%(xLYcFs]4̣`->5;..rY`.j@@UNkpleX%b>0CC0#40): _1/v7;;L[[.mmbʵiIKi艊u8W7"b Nr*Gl%Zk aDsD)5{7Yh`"CqA3߷U=r\D-ڼUtn-#ߐ(dZJ:* >%H;/4)^>a+OҁYFi:}96g8VE- chæY/ d.HS èѼQBdj#*Il1dS߰ K|P\3+_$DJ^z=j@~J#fB3"E#HR~?Kط>7M8jNC2ѨRRcw-ӭ8&A9M)wUhy'l~*:nvjL".x+| h l12rw',рGQRڦ@-S7Cƣ QZ0Iph PmYg2)b6tb=[r5"A)70D0h#h{ax15VhQp:oga˦agCE;1,n' ݣ8g88.Q68lY'ăDzj%q% rөgX,h!7;CS,vцXT]냟=3I&cSL]1 [W! G*L>W:]\~:"xEĠumCceH{̳65tp{"qpoPOԱ" :KPz Dxtw2Q!ltr5x>:>al>@n7==2S'gMׯ0m+iV0EcRN|\`Sk glϖGOc MqIi"h dd"x7r=i $3r8Bp'Ud\,)]`,U ȓ,fiB!Մ6DC* r}lKDT?`2 6Ks hK6=v`YW_ ݍR&@Kvݻ C1-ZwkDa=m*TMpԘ=vTXaE@>aM,#'+ F%؄["2K7  gNw//JV [3fGY1x-š~BBSN853k^+gjy:O+ai3gLF. "^1ZzrZ+qv9GFhu "'p2(<تnct+>S_W^_3oKf7ͼ~37ͼ~3t_EUn+@ ^WyZ<5Y(&aO\3[0I Pg>)>GL;5FΑ rs0гw 3m5F-3'~>!X\?&Ĝ>s{]3&#N ~sMOT}:-gN~?2 Q%Lmu=n υ%8pi2 ,2K ;Eo+ț %<@Ǥ4Vb M&`!B2D 5`8[6FFv6\/.B,Iבq[+.iV(k=;~r|N Уj.6UG,ࣂxP7z*,QT{FQ -xڣP}$$TO} xhIxmBM;<\dAu9Kn&' 37]|P>IK+2n*N: #*NBAׂk/?I{s>f-paxQ -{&PPBN3 TO~SQAt;J8M3_), ICf`S^cpш!e7LT/W3o cf4,gݯ ?֠C3t쥕]Y}SMw͆GCoB܎5^\Tf.4oӖNlmX@ƎeӨBi=FLt``z4.,+.#!\] p0"0&RX)P'uփhع1-Bz6F  q`O =$^B ZSt9no0 p'1ÜO"IAU]~L`q-Fc_3(D:l# dSÇ빔wYwoj'4%%|y}1-RbѿƣOL=! d8؄i=8Q=M|tY ]cd!vCiq2R+cP4 zj|ޯ W0*VO_֮l2Q4o!݆|0U02f`iؖ\S] fSBrI[R>]rH`G#q*WSϥ cH{Xa$XSјoJR QrEF޸ݍ4|`y [&.Xxlx| 9GOjӓwp>8"@t!#ț0;{s6<:,Xͧc1#1KW_)ղc[^/dfoffoffq_2!sVaل8!^%+`& 6 uEQA1^׿NnwQrцCʋ4j-%5k0l^YTu' xQ֏4WY߯ՎE Naˊspo_G6;ZW7SXqrCSCRS68&]CĂ6-嶀;-[l W N Z%T N D:GlF}Q)]ma~q鵜$Vf"5.E,cݙL>FO1Tz2 wАacGS]z4_^5^^N{|YXɐ x-7gwMmi|=) Ƚx™|~BMo6n|g<͋pY7)Y9L"_^̤f\"u]boޜ!Ɔ|Ȕ 9kDZ4gY\{ǩvc/p~^sO;~@1$)ak3|x#i6B݀KKgmXFG??g_e_Wfe_Wfe__ ?K~5#ED[ 6Z1&|ڌƊ_ϘՠA(pV>٣`Y笤2[)s~,7hzlIasrN!!7Мlb[W|N6ysl< *E% eB_;})_*,8XN8OԮxFήL6Pvzm s,/Za뚓ZfV_N鑿#62SzjEzvxSA,%Pyj;c <=<~{Go 0̿VL5G+aG5ZrO$R N="ؤ,H\v4%Oe`3s71 wڣ^ta1j 1F;,z^a78 /8gE 2m:J=>2|ɯˮ`BH Ǜ;͒.ѝ@>;x.9o]i-\_QYFߥK8"əx7_%j.j7[eD*=5(Pe, ΨWe4WXo{0pȱ|,a4#KҮ r%sS9g\5'3Fܖa/R XnAۆ+ twpvxwxtu^ε!wĶN}K8 m3eHꆂӑh'h3V$BEnA3a})EmfD"9+X\"b4E@mXzE2#Z{ȃ£:9Ʒ7@E*;@u˄CƠk<59i]q 6 @ ٸɴs͇͜2X>Lpp6vؚc=))u))t)M'l☀Ed0Zh/c` S2\It%,^( &m_r[4b4{N3/fUx>lLL&cx"4˧zR/ip" 0E|Mv(GMB+ѠXfVVe`eZ8Ƶ %5Xnn5m(TSSezhuF 5xl/,:h?.uYYYᡂR h xc; BloYA@1/l ?'%d)Qhg=2o>n !KbU4H4^$ !=ȞJC(͜F=<:Xu`Xn!ںe42;.S C^NiՅM#ɿX6Oѿ7R l$,V6J.GA0V>[ƖEA$HN:}-͆seH\C]Ѷfwp׼WM\ V$ E •UCr8n˜bDq8l `hnH;H8P=:afyx\NN,&N]ś:(iVw4Цj%t$75v ǜ+$DP1EЪ"֢;' |wLmdJZB{ʢ k#FG0 4X;5MD y dt©GL)֖ W,Rm 7) [`ݖRݽ_z{t<;[ا+n+TՊ6$hַ+@bQYBikni`he. @@F eOXD%o]G^Y-}Lgݛ8ՋCQ<0EWRhhܔ~. XڽȅJ٨y_[Пx:nt3`J?D[辋 o J Vϣ/5kLz:rl__o?2#?2#?t TjN?hP^;˲^oOdԛ˕_Vbb* d%0A(}^[)ٲ`PhPEh+wm})[3Ѿjj?rOJ4wȌ82O-+kI*dd}=9ɚ(BVpQ{mDuX<}U`DŽ2;h(}|JU(C,c5^ƪUFyhnn(%QiZ5Y-@)dyCV-Fm) 4u:քaJm:{7AG+ȘurNċ.GQR_b($L5"Y &P1ۦL~ OAw0,2)9K 앸[ ` ؟|q͗mwweş͚19{@̨p٪ĹUnݩ|U:r}߬c|c$^R98G|.Z1_xӄHxjx/) OergH\ZG/~Ik<%KA]ꕣ[{TsbFcy],j@aY]xkvo%!Ax6?*X[IOZΞ*N-7חǗkH7ߺM)czÎחf",ɫ NՊ]5˳0M0D)t CwitJg"cMFD`nﱁG*̛3y/["z]N+=8Ӛ)O&:$'IVq+N.uN&v (ozXtD 9ktKaE-;6o5}oV]}:M~sjtfO0OX$ ͲgQw^FcMdD_}*מ{}FND$xBMѠi7IOTbǘPv_Lu9\O?VAx/p ߋ竕E&L3o7fLU3U{(ؾj0ZjM}vªWMQ)}#?FE4-|;t6I[AO@$c9Dn>$ Aȧ]CR   7Lqmn1r#?O3o;:$a'2~ݼ5A㲁|RƖq'Q4غ4  ϖBqP6U0#9!T;Q̃vM#5|V i,FJ$aFH)B=1% Zl ZR ~zzq{5H:8o`E7cd fB7h.Et5| =Ew,d+ҫI86 ;À*IӾ:'{)}85ƞn)(llZ8rf#x9cDCq;*z:->F+&{YD>QY$a3Jsq+76 obv8d!׭_6;hRr&SeDf-@r ."RVce,/p9e؊F͒ي'G`Ct)*OOcx-Mqh}TɨĈS5D8Hu K}StPDB6 aCV`K7tK#Ծ#7쭘%>9j0], A+9$ߜIf"@:Xeiz(әKfb66hns^R0(;}dI؅CCBE 0j29~)KSs|rl3 bxGp %AaRx`Pu>{.[߷ lR$c]2VŠ;=ŮzР͕XA5nXt0V3,s7KƬ1棞:gzPN %膎|v{G%DU*g 7ӈ)e7^M:SZEqJ]Ox~HRLzkq6(Q0(U-f4nz(,{=5Ϭ]4Hu~[E ]U[ⸯ}sVFi\422p`,vىpjCn=2Ĕ&:SLX*91*dEKvc'Xf5M[N9ewՓOuk0Lml=wN Z'dzo\hyꢞ~s#w+yAA F`)c( ."=wSB_5Ě܈͘ O}|K5{3!#VE8tdfYmN6s5Ϥi [L{?CAE+U`ǟL*]IQ9%(n2he3+hH h9H9hZlO W!T5؇#F]Sx),3.[H h:JX!po^M9mPrH4bm,yR}y u.%b*)[*n.O%cx[$Rr=zg⥭gISlٕ&dؖ kx89Y!;0MnG}5,Pf HLA) xoU.iR7k_Ŀ z֫iʍ4>+/@YHyD+Ù]t8ٮz.Me]j$}jpZt܂>*ƑJܸϕ:Q)&l%Or2fzR? }OHoU e<5Co7"(Iv|LOd͙2.NeelQsG_S< ?ʋ Fr9g4J_pu >O'yn*? AaT#%.Q0o]-0?/us/Gpr.0H0H _0H 0( 08 N}nߴ;^Q{'CV,'d}O>'d}O>700