#!/usr/bin/env bash # # Copyright (C) 2011-2017 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" grep intel_sgx /lib/modules/$(uname -r)/modules.builtin &> /dev/null && { echo "$PKG_NAME already exists in kernel!" exit 4 } 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=98 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=5b00590c3475e5c8f01d05085a69551e # 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 :Yތ^yIJ sblJԱLϣY:4›if>?)a 0z/Y'Hs=im`OZ6%d=S%0]2|&' &iQ0"`Xq?T`AW]xCЇ =4:6wC3A@egKM6/4"e)3BsR`#h'c ل. hh3@e{pa5@,2n.מx$wIu42j9h^ nhY,+Y!JbxH[-{H?/iK4mhh(e='һ@Rߑ4CYRJD:ܽ,@A!8=.ȵ4h]m\l y.z$`(FG~O2זV)_K2Py44@s lw$ږRkoЉ ^s$'( 1w&IhS1|:|" xSd8:yF&Qy+~o6ǻ!lbi 1#jQш\i^;D:]L " 'B-{{9ÆL` cK8|5D'S :KSe #SGCi 2jtmX!8B@lp|F7sKGù"x@{6 R†Yd "QKʳ! ΂ʓռD+ xA,Lה2_sm_8:Th"1efD VP 3[.&gk%C:{ZLL^b?5&v{k.W+172 !ʺmA>.s=9 rT'Jo a.n5oENJR6*Dr-H-- c1` RcN$ ˏfH XY`gȂH͑K6i2<C)CiIrWJ_ި;*YI C؝R M^r\eyK_\.u޼_sm ǁfm™zguF5]濞ups$ppE|f T!B Qd! CL::6~J0! * ˹cD"hV΂Iֶi01CyLˡŞLƲ>HkRORbls6RktUggْhD(c.VDX`4u2צ.)3z jduRrg b) ax:- i=עm:tsOlnC̩siDq2N_hckʗP.Ki"94s39MMMCսȲ_c{8Otp5^]8]YK>̴qGW *2CEj)0W2ao=nLQ7.>3 Ԩ,H@{mRվexf2LK2V9\jt/V'*b%Udž%f C@K n|eLx߿B~?vL3ϰDm}ZA\ ( /w/j(c[EAb9i X4ww "x ib@S;݅vQ zQ nXކ=q]m`C(.p[3UZ(ȑ!-Նܕe֮#dHlՀe3u騀MQ5Ă\.0y0 c6|xYu1,|p5R4.Lm.U-Y2B,V :^Mc&Fq RgYlIg-F݁h <P .K <@];zKI?'#Ϝ=:?pLH< "T1G2wu𒤻gv}{sDsC _ɂ(}JMf4:\@Kn!eX*>L9T Ҁ2_ԡS;e. %ިdhKC l("67 m&;Sʍ[GDƶB7D,9'l0+GQg,Hxcֱ"f “A ѳ9y (s(}7 '=QTp}S7|:Ʌ֞!Km51?,GI;F.jrxp XV`Bht1Z$%֔(à:˃8^ [w?kKC0 W?ꉭfkaZn%.@%la)uMQ"I;?⑩žx _FH:dn(6EiBi?mta>&8CkU N^`b+vEXq5'㷫v?]ϮgWd4k/7Gj`4:Y1cӳnVu2l%e𱪕V$s֫G#  3}= Ν]RJ jk ]ZmK.O.`z{SL~M.>N%#TFNbլ^2ݑM/ ؓQ.x KN>U켣P(&)Ƴoa= z-ǎmыOCmFtz1qڇkɎ$:EmƪT`8 ׽8(P-<۞Fz;JHAE`~azT\C<FqhKQ'dæ'/Ԏ68HA~ol9X^Ir}{xW#qD&Et9:{J{ #l`in5mM?| Ƴ#>'{x==Fƈ3P1 }u&VFkY_g ȋڋV [D1QA!a{C9U>K?Ti%3ٗ!Y5fxG_0/7[QG2obQkȗuEEǪR7RWʑ1-Rs(qҗ6wWx#{;T{o9hۗ|$noowC^Uk}=b7/kam&^ߜsưm#|AO'[NE|UἫB\pqG?V| 1#K|=Ndm!ӂ߸W}I{@j">9qˏ^Rļ[-K{/֒(6hеiH# @cXzIδ0P̅MآKdo WcvÕή BIpXZsW oET qgZ4ip)R=2>]XOAp3T0S 4pLe+ՁTs۪9?SMBK?BKzgC={ rʋsH|Up׼KG@TYh0/|L2s|$.bnӜBƶ=\S>yo&עLAY3|)  P=@ 3 :/U ۳>]LR 6SbS}CL LLIř(9vFS N `dDlMl𲗟<m;dI͛*f)J6Z6Dvɰj3cO=PXh==Km $Os 4M~o묅y9Olwku5uteKt틋ߤr Hjy?Fr5mהuQ+Vn5P ~J ֊o-CEX xY9VZeWwv?]ϮgWv?VZ31{ {k3ڢGY5gE{Ym΁"g[ ޶R; =>ny}FH GjT)̯bNl# `)6Esg6fE6I;u5aE Ƌ+YH~'H7}\!|Y 8:EUj|+w@ b$s˙~Sv9}%"ctCءRM쀠]%[նc OmĻ?Ӊ3S9J}dELörȾ^Sٱii@I1*Ȫ d1+PO1~cHR9d*L f s@x qUþ_ 0bDvU31{R@K#8݊ۻC(&Ł}#+CJj@b`+7˶Xq.ĢdhߊP_FCl $1+QAO0IHT`z`$ߖ44!D|#JnZY;[e\B Wӧ ":j eツ40"±U {ߒw9WG^l02at!X $KJ"մA,q w l]$#Th+-߳Ğ)QܳH3OɌ=N=Zh(QX)Jp{L xzՀ 5"CHo{Le?쬉_')tIJ𚯴vuLܝ"`e [^$5ȷobԸMq99{D_xF {=Q6̗aFfs[EEj9 9c~ ! f^ۨL$@J$`zZmA[l Ao u@ȔD +Ւ(ࠀ830K1Nq܎(Yv*Ls C!{o^+^S1c /4YQ7.Ձ=U`~K]5[U,O A4ddD%@D/7ƴDW !#$ֵ'Ŕp#TL\~Q$/_?vW[ /3LMܺeZuz,of9x) ۬)y }OVlDE.Ẋ.-_Gki>{ݒf*nK=?҇ 6.lSRN_kA9ڳ13b`LڪV;Ob&B.,XС8BXR;̈!{'XM1in'2*pWb0MPd:,,ù&,a~wI6*Jc K+P"S{:wd,i3h@6 3҄BS+m*+!6VϦǺ^kw%YۚPxA6jJاIQ5{z nErIV:nT"L̅c[H/ _$TOUS`!S[L ,1ꋭ"-&Gr9Ʌ|Pf[tE I20VmV䥫|Vǧe;%I$cţ~|8!\=eSM^o]ޔ-KWҾSqP'C j׳#R xl. &諥¿O3¤dBՉ4QuX+qt\~]ǀ`tB5Q93 FeQN 31ѶniJ1g]b(H2Ic+yZ^;Y+;6{qP~ BPua`:%`v&PyoƄ!\>r.ˏ&~ⴋ/Xϩ0(~stMتhXs[Cq.VP2cpKթ"KmJ|')wJ}s[ڡ%YC.'R)F}W#\ Ft^wLݽ[ y .dna@Y` ޙoG OzH$+[%(kNiotU1K ?h9JsZ/]$m!:i褢Sֈ2iǭ炩`MX+DtB Iy>FQ$yڎ,3cϕeP=LSR^vm,-c il/ͱLXc mї- |nH|~?nG{$;N7`Qk+%vC EaKp6EڻdpQ]ƭ&B*IF*މ7[i<\*o{sMR&/lY$x_2JB,+5tMKh6Ww5kaP<4#C%z-!EszQKb7Wj5kmӮ Z,m 8#Т)ʵ̫5f]!da>UvW,d ?&ԙ]q-oo5y pJө2.$@,vs; B_ ҊxĀf0Qwi8=E.1æ?= f:FLXkը*})%k9i55#ϭCԬ`,V56d<Sǚa\eNxWTü9 Jmq3uxȻ'$&&6! iMqQ)tAs dH9J3,giC)xCcouϖ~,[4x&ˢREZA/J.| 0ʬs0}qm`mѹ K5EޝDkFQ:}Fc5q7H10H?]2b'B`50 ]˞Gvlidt3Б[i}7o1B))V6VK[%׵&;HZ\`o:S:ܡRI'd^;!YCw #`_c5!6KP MxO! hM jN}S&* kp]rPubn4;br&Ǥ?)©L="`gXy%lRdbGIqtyd%]~C@ @{ }_Zk\c+$TBŷ0Bt4M>p>cL)=D*sQ]%ϸCdo<"7& V.Y< <">}R3~ -x3=:?"Q95f757 K`"J?]}.֍prgؖNWӧV<)M&fRh$&/#}fq[ZԠ]wNpQxtvQ[|y`!n_>}]NgOd9 X]`W˽tRTQ#qX@ !0 }h neU@9k:3!?3Dts/h|ӛ5F)aRbq9B+ϔ4 7Il, EU˓,I[FcgZQ7Cuq:5j6?XӞ+ODt!T𳻭 g 3B*DSUҒX7B求+J#t%%|g),L[M>٧9w1B'M8PpqժUOߡ灓\>z dMH 4Yr)V ^YT< QD!8#m6J4n^63(& scy:)lYE)fh3Ey鄒R@}Iux̶Rn;vޯ٧.EIӬPkNG*5 ;BEnHq0XVZON,ûG+T:9>S[ǥbʲ{^Ĝ 6H9EPBr8poVdpk)ߨ}Dz_84-$A}Uf_%YlDҷ:[:&\d 0j5HVk3DKX-%Im"1ba%]󼍈[LǬe/$塚c^&~7Xf&CceiK$q[ݟp,pTrz]읔 {>FG@,ߐ0>_LœR˒Ohgr2Ҙ-{(n[ʫCx7/+lFFc:Y: UsU,7?s\7%l(dm|DZ );gC$Z 8'w}їy5gy7jx8;Q[pl,GoN:3s<&o]TaF WqV'(-RASm*VNp#5q1CeH J\5SI0%.#uӊW+8enUPz7mc>#] 8'5x `(*ԛI!vEXn~SMJ!*C '{4ʼn,4\ra1˗1_(ދ9pbtTMLӌ{c8 p?`y=JNټvf4Ip{u5yyב9`j/!4v24`)/\!pj7E4-jzJKqsJl6#F29 FٹpGG:ہ\ \3Ք_ްēB,~ex' F*攓j޴RVR5NQM[Y5f煌+ 4ta z֍U0(8PYNޥ,EO0.q|prh :^nD-1if^䉢COjlPvڤgkÞm6[n>?-А|%ޣt=/6j#dq$ODA#zP9WD\Q\0<*ͭQO.< P*@Q@jr{ # `YUGW1QƏ>6 :#%HD!>0{_aC~,U 1v&2s5 Jb5鬒7@Dx_ʧ{)W`QqZYMA@58++q&3Y^ N%z4'4GQo/~|.J-yrqwQr? «|S}<\ms2Φl}#k֑-r LG-)\vgp #)O.bFZuPLX ϫ O` ):kzdWvM$G[5h8ҼD~ϵTòG cڦ1VQ)+Ф5/+0QL ]Ta@dIWɠOЭ`BO0cG)OڴaaԄa<[XE^pHxύ6zSQKEkg慎C7 R): ;hXr/;$UkHeTOΏP^J}MT8^P+9TPqFM'gG MZD + 5;ց᭞TKhWrA^gXJ `W@O˯+LCaZ堁2:INaEA RA&WKqX>A(̞X ױ0%WFqѨgg4hWguz:sXny&J_]ԫ4FV8oTNae{rVU|jo*KV4b$L& ̌WV^W_TRgXjRūֱ@Tބ:em5Z]Q=wU,^ۇ}u,S8G"OGF;MSӟҘ+cQ(_h:#( JAVnF@CY~-SAPeSY6^`7at2z4FpuNUcD P v-^ VOk&a]tXԪt:2S}!ѲSMmM5bctR)y* ;O/S>- s|?9;8/xX*_Y+,{/: LG>0uQ"yE`0bYy\W8(0`Me([C=b zU>}[?: Vt:ꗽL<"vkMcQeL+ ;OMaXPcxϥx)t[Z罼0*LNL1jQ[oÊӯz=}L ߇'mL|!|lC$] e灱U\PG]7^^_^ et|CÙdqZ"qZ|e"'8IY8qi@:e8&e,>s崤GB)me3՗NM ҄r764wQ!K*!l Du,Ô̙d#I9#>x20;1`rĬi[d5lM'/~t&"`lN)Rjn$r(*BE˝1+spnnX-;;;Nnlǐ `5_ڟMlM/i va }BuI_Tv"[<$Jnq>O섟ˮ=vKmAR+xD1&Vi*"4H9;K4?+tH2FC$wp88)ػҦ=7bOfO),Ame *3!%e E$ ̠n3*+p3't$`b ځ&1JscOR-daKcQVCcb=Ǧʠ2n="[%c6far>J.e%+MǥdUfsSs%MM9jjkqruқq+3~"3ݞ ĢD+B2H3/Bk7A:[X NxЋ'7.jor4Ir&s[{١Uً@]=*XI BIޏv4S@f# Кp3YqƉLݸE*Jc/Sr Nx.#˜HK,Y-B-QF E/YwT1+Pfu5%#<5Dv$M\0]Jn,B c}[7q!`/';[݃KfcqJd@r;Btjn,<`= e㭌1QJaZFcO_GZPHk ס:\5fR|t޵y̖eMՀ McO!J+˦BYs;$s?SnٜzGkꇣᛓAޕ@:C H7g5+`k^e^^ û1RNusn0|%+ *>Gx5H( {x)1M e7$(ϓ- Ӌ/ck#ضi"&@EeJ.њN6bc/ZIj+7dW. 7|2,ozt6Z5u0#m: 5B 7&FYTDݘ\ 9'*bMtL.Q@oꡀ|[A ZX>[|"cX,?E"c]?#Pzd^_Ϋy\"<A784bVK'D'O[9_<ߗ#u8Y>,ON%d&#b[,R]n5; u-@8`12%5YSƙe56Yv15m\fV̴Ej.tAO5p*r齨wղ t(RԺ, 'qWM?xt:/)HFu '^cKND%XmS*.|ޜh^OT,Cr85܂r BY$-@)iulbym9\)k[M#g CxA_xna`Q `PUMgfqքƱȜ#SQhj3 r6 ABO#I\_A,+le)>f,=scUh466b1t! 8ڄ*0a{ypGNP@ w:S64ep6ʏ<c;XI*|e=9ݞr $#] T#9px#`r+zUc"moxB~KN8H0whC ǖ< 7+r>Xgw[sĪTE BE)[O2kzw}w?UO i(,ekKvӠa2ٔW- 6>Td"4j)TSRB3yl%~kXS8džJזv쯂Iu#SWd&o|IR7niWM dk%%|prb1}j˴FžBiT&7deOɂס2,,|ΚjOuvx(ƸEivQz0 2ٟtzM^2wYQY=JYh'R;dX'Wx}eu?q;CZԏ"syu1Iwb tD_ɄDvM.4NkyYrUT7Z,Bf57!23$$=)޹5>dQtϑQP;K> d,1NZm?C\'^|=>WAv.a~U&N\r̞[Nv*ū <6Vp0/ؿ,]JrgSh'bZx2ϲX91m6tKQX>UѼI,cG]3b$M;!bws=# DzԼMRfS8'J^.#-ir R#PctxZ#;H2(,Vݳ*(q| ) !Nu*F֨j+̑( SEoh:, ǺY?:;.SX^7 v{Xw9[IpAPձTA A>ilK``QsLDa&d)P5JZ]&]MaQ(CQ"s5mshrP1&&oc GABk_NL:-Yknceiw#3L0MҧbQQ)w_BJ-Nc`2&[aMT- #Ú <лiMzj޻OҞ{JCK E:!tGdԌ&S1hM1HD[$*D+ -:Gylǐi>$$oN=؄0-bYng^ (Id[hUp~t?U*!ړ{p!YE8/Ӏڰ`H oT r2*Bf]k=Ro[H]^}=/%ώo#;k{]~E"_/E y5*OHDz|P>%LJd=}^=; ߕJtPan&G͏q@UY-ҭ` 3ZtIr;X%WW99;8_>J?D؅QDvc<,v@xsܦLV=PF.,QnQ\DWo2>= ~yR)%u垺hg r)'{;5B; \=sJ͹܏)>iJ5$S*֦_& o3ՏyvgMZ4[t3kzl>TDkςAQ94yb䂇8գ*vx'_ߝ^w|': +"go+N': p{.}D7)= 8Y*'p) IߟS1v)C!b?Z="a[u;:(p PA8."MڈY<ߛ-YޢåKng55E/l2 ¢@ ×IX^lM>Eyzo804 X#5X[cbר|`jF9nfPR:cKI3<Ϻ1^D=`d&E`(‰ܥ{hχrxz1Nf>9t6X.iՙK E%e&ioX(z3\' ZIP![=ld p$G}SqQ:{zppY'5nUyz|Š2 ׬mp77措_Si,z=uBEl좁ga9`>+F@G4;\dώ[c;`?F]|VϱT6p܎4y # `1N96iTIlseiR_p|)D 4 sCJLE *l{Ce\mǗkF\e?y˄fz%5fXӈa0{), Njn{-f&Q, 1%qˡߊ9 l(#f22XQVdg  /@ V@TS ~՚z_PN{>מP#bS {-8uSq/kOi宯-we><#=-*v]P":*3 Q0c i{!D3I|'YjLfP) ,0C,݌jfD ڍ <ϦZH1q?D}ڨ@}JE8 Y!LKNW5W6] 'hcoΨHA528 Pa%ΧhBqă-HeGB֢K!^9_2yױ#pPEaa٧|G./hȐG'y8nlIR8[;H@vd=IA+j $T%.3cŏٌI.Ist|F dG+&%,X@r=R9 Q:+gn \I!θe`ϑ K>ķUtkvA;۲ 5[S3OÇӅ|Pd8ٙC'mLۇRp:G|l6{3/f?ٽI/%A>`V/ǒS5=Ø!Ln5Ԛ=@LKBgM I1RIRRb-ViSmnջ9 *jܧnY]av^_g%Gځ~ӝE-?E"cX,?pGs@С H>#aƇ\n2X_s|3T3Sw=C"ENP'a_ Oք;:xƿ^-isPGRZJ/1hL7N3]5wº}Tje]S ҞCq`YO8TY\T?㖿fwLBݺkVYٱմnEa}`iVpxM;>G C@Fq5M"K0wȭ!P3lY5pgX:le!>`sŗ/"ՀaޝHStܔ^} ӻb#'ڍvF'4^^npO}6q9"Ĝvj"}š]x&Zx伤+l95&y V8[E|`fO0H+BRN@C酗;I!I& BHǢ)bk p9 ݱVyXv)eP](7wdr)W}{;l8֠?GVC*cῪM,v.Bw֫8c؇E6g.L'<5ާ`_V( sI>x,e \O/O0Ꜷ[4r%|W8(\*7$Hh?L(숍Ș7V) Zw|Wx$},ʉ{M.^k|-V/'d&gΛ?|%ǂ-E/jҾE1хƘ 4qd:pD>PVkoe s O'01k=B.~4ocԱmd76' wuoC 5ZzİC^,v+^/ 7FyoFA@u-6HZ6ˍӨ7~(obgd+[7.n;P`a~x.n>Ch(E![ zZo;Ooc`x< 7حxGz`Ynz e&b#q=bo4nĭSz9g%Q0QO]U-\10v_Z4 #0A &KA7ƭQg8om YǟG7?}'/j%*뿵_w=ZژGF(.#$ ⴵ<$pRQY:Cx>=2Oحp{z^O>OQѷ:<=zG!=ӣruz0Nѷ9=z 7GA=ӣqq|~P7H?ua_܊v5dD2c Ui(:Lowc\v<nMX4mj2߹Kb-qvֲeHynU'g֣{jwVMhrxeNFv5u?vV<Mvy0l:!yZӗS19BxQ9;/`0 \0b0 $2pbӢXhw`8n̨-ig2C>mK^y"=@_ʕhĔӽ5fV_4q CW˛p n!4?7^H&#{HRu2'm8Drp<a>b6 q)}?AjW@6wCBMy]FtCGD%q^!ќOtNU3O/$_BLr\y fg*)ֲ;)#VZ~/5^SMvRmX@?OR1\;OR?/o6rRXԴY8]i2A ft|> 'm{S.~-~-~-~-~-~-~-~-~-~7?rh